SageIDL: {
accounts: [{
docs: ["This account is used to store relevant information for a crafting process instance"];
name: "craftingInstance";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for the `Starbase`"];
name: "seqId";
type: "u16";
}, {
docs: ["The number of crew taking part in the crafting process"];
name: "numCrew";
type: "u64";
}, {
docs: ["The `StarbasePlayer` account address"];
name: "starbasePlayer";
type: "publicKey";
}, {
docs: ["The `CraftingProcess` account address"];
name: "craftingProcess";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Keeps track of a fleet while it is disbanded"];
name: "disbandedFleet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game id this belongs to."];
name: "gameId";
type: "publicKey";
}, {
docs: ["The owner's profile."];
name: "ownerProfile";
type: "publicKey";
}, {
docs: ["The `Starbase` at which the original `Fleet` was disbanded."];
name: "starbase";
type: "publicKey";
}, {
docs: ["The label or name of the disbanded fleet."];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["The `FleetShips` account belonging to the original `Fleet` that was disbanded."];
name: "fleetShips";
type: "publicKey";
}, {
docs: ["The disbanded fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A `SAGE` fleet."];
name: "fleet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game id this belongs to."];
name: "gameId";
type: "publicKey";
}, {
docs: ["The owner's profile."];
name: "ownerProfile";
type: "publicKey";
}, {
docs: ["Fleet Ships Key"];
name: "fleetShips";
type: "publicKey";
}, {
docs: ["The fleet's sub-authority.", "If [`Some`] will have the exclusive ability to interact with this fleet."];
name: "subProfile";
type: {
defined: "OptionalNonSystemPubkey";
};
}, {
docs: ["The authority for revoking a sun-authority."];
name: "subProfileInvalidator";
type: "publicKey";
}, {
docs: ["The label or name of the fleet."];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["The number of ships in the fleet."];
name: "shipCounts";
type: {
defined: "ShipCounts";
};
}, {
docs: ["The time at which the warp cooldown expires"];
name: "warpCooldownExpiresAt";
type: "i64";
}, {
docs: ["The time at which the scan cooldown expires"];
name: "scanCooldownExpiresAt";
type: "i64";
}, {
docs: ["The fleet's stats."];
name: "stats";
type: {
defined: "ShipStats";
};
}, {
docs: ["The Cargo pod representing the fleet's cargo hold"];
name: "cargoHold";
type: "publicKey";
}, {
docs: ["The Cargo pod representing the fleet's fuel tank"];
name: "fuelTank";
type: "publicKey";
}, {
docs: ["The Cargo pod representing the fleet's ammo bank"];
name: "ammoBank";
type: "publicKey";
}, {
docs: ["The update id for the `Fleet`"];
name: "updateId";
type: "u64";
}, {
docs: ["The fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Keeps track of a the individual ships that make up a fleet"];
name: "fleetShips";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The `Fleet` account this belongs to"];
name: "fleet";
type: "publicKey";
}, {
docs: ["List length of `RemainingData`"];
name: "fleetShipsInfoCount";
type: "u32";
}, {
docs: ["The disbanded fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Global Game Configuration variables"];
name: "game";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for updates."];
name: "updateId";
type: "u64";
}, {
docs: ["The [`Profile`](player_profile::state::Profile) that handles the sector program permissions"];
name: "profile";
type: "publicKey";
}, {
docs: ["The associated `GameState` account."];
name: "gameState";
type: "publicKey";
}, {
docs: ["Points setting"];
name: "points";
type: {
defined: "Points";
};
}, {
docs: ["Cargo settings"];
name: "cargo";
type: {
defined: "Cargo";
};
}, {
docs: ["Crafting settings"];
name: "crafting";
type: {
defined: "Crafting";
};
}, {
docs: ["mint related settings"];
name: "mints";
type: {
defined: "Mints";
};
}, {
docs: ["vault related settings"];
name: "vaults";
type: {
defined: "Vaults";
};
}, {
docs: ["Data for risk zones"];
name: "riskZones";
type: {
defined: "RiskZonesData";
};
}];
kind: "struct";
};
}, {
docs: ["Keeps track of variables that may change frequently during a `Game` session"];
name: "gameState";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for updates"];
name: "updateId";
type: "u64";
}, {
docs: ["The `Game` that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["Fleet settings"];
name: "fleet";
type: {
defined: "FleetInfo";
};
}, {
docs: ["Global levers"];
name: "levers";
type: {
defined: "Levers";
};
}, {
docs: ["Miscellaneous settings"];
name: "misc";
type: {
defined: "MiscVariables";
};
}, {
docs: ["PDA bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Represents a token registered as an item that can be mined"];
name: "mineItem";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id account this item is registered with"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The name of the `MineItem`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the mint representing the items mined"];
name: "mint";
type: "publicKey";
}, {
docs: ["The `MineItem` update id"];
name: "mineItemUpdateId";
type: "u64";
}, {
docs: ["How hard it is to mine this item -> Ranges from 1-10"];
name: "resourceHardness";
type: "u16";
}, {
docs: ["The number of resource accounts for this mine item"];
name: "numResourceAccounts";
type: "u64";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Planet"];
name: "planet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The name of this `Planet`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the `Game` that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["sub_coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["the planet type"];
name: "planetType";
type: "u8";
}, {
docs: ["the planet position"];
name: "position";
type: "u8";
}, {
docs: ["size"];
name: "size";
type: "u64";
}, {
docs: ["maximum health"];
name: "maxHp";
type: "u64";
}, {
docs: ["The current health of the `Planet`."];
name: "currentHealth";
type: "u64";
}, {
docs: ["the cumulative amount mined from this `Asteroid`"];
name: "amountMined";
type: "u64";
}, {
docs: ["the number of resources at this `Asteroid`"];
name: "numResources";
type: "u8";
}, {
docs: ["the number of entities currently mining at this `Asteroid`"];
name: "numMiners";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Represents a mine-able item existing at a particular location (e.g. a planet)"];
name: "resource";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id pubkey"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the location's pubkey"];
name: "location";
type: "publicKey";
}, {
docs: ["the mine item pubkey"];
name: "mineItem";
type: "publicKey";
}, {
docs: ["the location type"];
name: "locationType";
type: "u8";
}, {
docs: ["How abundant the resource is at the location -> Ranges from 1-5"];
name: "systemRichness";
type: "u16";
}, {
docs: ["the cumulative amount mined from this resource"];
name: "amountMined";
type: "u64";
}, {
docs: ["the number of entities currently mining this resource"];
name: "numMiners";
type: "u64";
}, {
docs: ["The `MineItem` update id"];
name: "mineItemUpdateId";
type: "u64";
}, {
docs: ["The `Resource` update id"];
name: "resourceUpdateId";
type: "u64";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A `SAGE` player's profile."];
name: "sagePlayerProfile";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The `Profile` key"];
name: "playerProfile";
type: "publicKey";
}, {
docs: ["The id of the `Game`"];
name: "gameId";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Sector"];
name: "sector";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["coordinates as [x, y]"];
name: "coordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The discoverer of this sector"];
name: "discoverer";
type: "publicKey";
}, {
docs: ["The name of this sector"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the number of stars in this system"];
name: "numStars";
type: "u16";
}, {
docs: ["the number of planets in this system"];
name: "numPlanets";
type: "u16";
}, {
docs: ["the number of moons in this system"];
name: "numMoons";
type: "u16";
}, {
docs: ["the number of num_asteroid belts in this system"];
name: "numAsteroidBelts";
type: "u16";
}, {
docs: ["the number of connections in this system"];
name: "numConnections";
type: "u16";
}, {
docs: ["PDA bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["This account represents a Ship"];
name: "ship";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id account this Ship is registered with"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the mint representing the Ship"];
name: "mint";
type: "publicKey";
}, {
docs: ["The name of this `Ship`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: "u8";
}, {
docs: ["The ship's stats"];
name: "stats";
type: {
defined: "ShipStats";
};
}, {
docs: ["The `update_id` for the `Ship`"];
name: "updateId";
type: "u64";
}, {
docs: ["The max `Game` `update_id` that the `Ship` is valid for"];
name: "maxUpdateId";
type: "u64";
}, {
docs: ["the next `Ship` account to use when this `Ship` is updated"];
name: "next";
type: {
defined: "OptionalNonSystemPubkey";
};
}];
kind: "struct";
};
}, {
docs: ["`Star` account"];
name: "star";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The name of this `Star`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["size"];
name: "size";
type: "u64";
}, {
docs: ["sub_coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["the star type"];
name: "starType";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Starbase"];
name: "starbase";
type: {
fields: [{
docs: ["The data version of this `Starbase` account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id that this `Starbase` belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this `Starbase` belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["the [`CraftingFacility`] to use for crafting at this `Starbase`"];
name: "craftingFacility";
type: "publicKey";
}, {
docs: ["The name of this `Starbase`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The faction of the `Starbase`."];
name: "faction";
type: "u8";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}, {
docs: ["The sequence id for the `Starbase`"];
name: "seqId";
type: "u16";
}, {
docs: ["The state of the `Starbase`. Is a [`StarbaseState`]."];
name: "state";
type: "u8";
}, {
docs: ["The level of the `Starbase`."];
name: "level";
type: "u8";
}, {
docs: ["The `Starbase` health points."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position (`sector::state::Ring`) available for this `Starbase`"];
name: "sectorRingAvailable";
type: "u8";
}, {
docs: ["The `Starbase` upgrade state using `StarbaseUpgradeLevelState`"];
name: "upgradeState";
type: "i64";
}, {
docs: ["The last time the starbase was built or destroyed"];
name: "builtDestroyedTimestamp";
type: "i64";
}, {
docs: ["The number of fleets currently upgrading the `Starbase`"];
name: "numUpgradingFleets";
type: "u64";
}, {
docs: ["The total rate at which the SB is currently upgrading"];
name: "totalUpgradeRate";
type: "u64";
}, {
docs: ["The total received amount of material for upgrading the `Starbase` until the `last_updated_rate_timestamp`"];
name: "receivedUpgradeMaterials";
type: "u64";
}, {
docs: ["The total required amount of material for upgrading the `Starbase`"];
name: "requiredUpgradeMaterials";
type: "u64";
}, {
docs: ["The last time the SB total upgrade rate was updated"];
name: "lastUpdatedRateTimestamp";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["The `SAGE` player info within a `Starbase`"];
name: "starbasePlayer";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The `Profile` key"];
name: "playerProfile";
type: "publicKey";
}, {
docs: ["The id of the `Game`"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The `Starbase` key"];
name: "starbase";
type: "publicKey";
}, {
docs: ["The `SagePlayerProfile` key"];
name: "sagePlayerProfile";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}, {
docs: ["List length of `RemainingData`"];
name: "shipEscrowCount";
type: "u32";
}, {
docs: ["The total crew members from the player's fleets at the `Starbase`"];
name: "totalCrew";
type: "u64";
}, {
docs: ["The number of crew members that is engaged/busy and not available"];
name: "busyCrew";
type: "u64";
}, {
docs: ["The `Game` update id"];
name: "updateId";
type: "u64";
}, {
docs: ["Number of updated items in `RemainingData` list", "This will be `ship_escrow_count` when all ships in escrow are up-to-date"];
name: "updatedShipEscrowCount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Survey Data Unit (SDU) Tracker"];
name: "surveyDataUnitTracker";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The Survey Data Unit Mint"];
name: "mint";
type: "publicKey";
}, {
docs: ["The signer for this account"];
name: "signer";
type: "publicKey";
}, {
docs: ["The signer for this account"];
name: "signerBump";
type: "u8";
}, {
docs: ["Survey Data Units found in the last `MAX_SECONDS` seconds", "This is structured such that the 0th index represents SDUs found `MAX_SECONDS` seconds ago,", "and the last index represents SDUs found in the most recent second", "NB: the only reason why this is `[u32; MAX_SECONDS]` and not `[u16; MAX_SECONDS]` is to prevent overflows"];
name: "surveyDataUnitBySecond";
type: {
array: ["u32", 60];
};
}, {
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: "u32";
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: "u16";
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage", "10,000 == 100%, 100 = 1%, etc."];
name: "probability";
type: "u16";
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: "u16";
}, {
docs: ["The number of Sectors that can be scanned"];
name: "numSectors";
type: "u16";
}, {
docs: ["The last time the `SurveyDataUnitTracker` was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}];
errors: [{
code: 6000;
msg: "Incorrect admin address.";
name: "IncorrectAdminAddress";
}, {
code: 6001;
msg: "An expected remaining account is missing.";
name: "MissingRemainingAccount";
}, {
code: 6002;
msg: "No Stargate connections available.";
name: "NoStargateConnectionsAvailable";
}, {
code: 6003;
msg: "The provided Stargates are not connected.";
name: "StargatesNotConnected";
}, {
code: 6004;
msg: "Invalid Planet Type.";
name: "InvalidPlanetType";
}, {
code: 6005;
msg: "Invalid Ring Type.";
name: "InvalidRingType";
}, {
code: 6006;
msg: "Invalid Star Type.";
name: "InvalidStarType";
}, {
code: 6007;
msg: "Invalid Or Inactive Game";
name: "InvalidOrInactiveGame";
}, {
code: 6008;
msg: "Invalid Ship Size Class.";
name: "InvalidShipSizeClass";
}, {
code: 6009;
msg: "Incorrect Account Size.";
name: "IncorrectAccountSize";
}, {
code: 6010;
msg: "The update_id is mismatched.";
name: "UpdateIdMismatch";
}, {
code: 6011;
msg: "The account is already active.";
name: "AlreadyActive";
}, {
code: 6012;
msg: "The account is inactive.";
name: "InactiveAccount";
}, {
code: 6013;
msg: "The game account is invalid.";
name: "InvalidGame";
}, {
code: 6014;
msg: "The game state account is invalid.";
name: "InvalidGameState";
}, {
code: 6015;
msg: "The sector account is invalid.";
name: "InvalidSector";
}, {
code: 6016;
msg: "Incorrect sage game_id account address.";
name: "IncorrectVarsAccountAddress";
}, {
code: 6017;
msg: "Insufficient Fuel to complete movement";
name: "InsufficientFuel";
}, {
code: 6018;
msg: "Distance of movement is greater than the allowed maximum";
name: "DistanceGreaterThanMax";
}, {
code: 6019;
msg: "Numeric overflow";
name: "NumericOverflow";
}, {
code: 6020;
msg: "Invalid Location Type.";
name: "InvalidLocationType";
}, {
code: 6021;
msg: "The provided location type is not supported.";
name: "LocationTypeNotSupported";
}, {
code: 6022;
msg: "Incorrect mine item address.";
name: "IncorrectMineItem";
}, {
code: 6023;
msg: "Incorrect authority address.";
name: "IncorrectAuthorityAddress";
}, {
code: 6024;
msg: "Incorrect resource address.";
name: "IncorrectResourceAddress";
}, {
code: 6025;
msg: "Incorrect mint authority.";
name: "IncorrectMintAuthority";
}, {
code: 6026;
msg: "The mint authority should exist.";
name: "MintAuthorityIsNone";
}, {
code: 6027;
msg: "The current fleet state is not valid.";
name: "InvalidCurrentFleetState";
}, {
code: 6028;
msg: "The current starbase state is not valid.";
name: "InvalidCurrentStarbaseState";
}, {
code: 6029;
msg: "Authority mismatch";
name: "AuthorityMismatch";
}, {
code: 6030;
msg: "Mint mismatch";
name: "MintMismatch";
}, {
code: 6031;
msg: "Incorrect token address.";
name: "TokenMismatch";
}, {
code: 6032;
msg: "Owner mismatch";
name: "OwnerMismatch";
}, {
code: 6033;
msg: "Game ID mismatch";
name: "GameMismatch";
}, {
code: 6034;
msg: "Profile mismatch";
name: "ProfileMismatch";
}, {
code: 6035;
msg: "SagePlayerProfile mismatch";
name: "SagePlayerProfileMismatch";
}, {
code: 6036;
msg: "Starbase mismatch";
name: "StarbaseMismatch";
}, {
code: 6037;
msg: "Faction mismatch";
name: "FactionMismatch";
}, {
code: 6038;
msg: "Sequence id mismatch";
name: "SeqIdMismatch";
}, {
code: 6039;
msg: "Ship mismatch";
name: "ShipMismatch";
}, {
code: 6040;
msg: "Cargo Pod mismatch";
name: "CargoPodMismatch";
}, {
code: 6041;
msg: "Planet mismatch";
name: "PlanetMismatch";
}, {
code: 6042;
msg: "MineItem mismatch";
name: "MineItemMismatch";
}, {
code: 6043;
msg: "Location mismatch";
name: "LocationMismatch";
}, {
code: 6044;
msg: "Escrow key not found in remaining data";
name: "InvalidEscrowKey";
}, {
code: 6045;
msg: "Insufficient Ship token amount";
name: "InvalidShipAmount";
}, {
code: 6046;
msg: "Insufficient Ship hangar space amount";
name: "InvalidShipHangarSpaceAmount";
}, {
code: 6047;
msg: "Invalid crew amount";
name: "InvalidCrewAmount";
}, {
code: 6048;
msg: "Invalid state";
name: "InvalidState";
}, {
code: 6049;
msg: "Invalid distance";
name: "InvalidDistance";
}, {
code: 6050;
msg: "Not at central space station";
name: "NotAtCentralSpaceStation";
}, {
code: 6051;
msg: "The instruction does not expect a ship account";
name: "ShipNotExpected";
}, {
code: 6052;
msg: "Address mismatch";
name: "AddressMismatch";
}, {
code: 6053;
msg: "Invalid sector connection";
name: "InvalidSectorConnection";
}, {
code: 6054;
msg: "Invalid Starbase level";
name: "InvalidStarbaseLevel";
}, {
code: 6055;
msg: "Invalid Starbase upgrade recipe category";
name: "InvalidStarbaseUpgradeRecipeCategory";
}, {
code: 6056;
msg: "Hangar upgrade not Possible";
name: "HangarUpgradeNotPossible";
}, {
code: 6057;
msg: "Disbanded fleet not empty";
name: "DisbandedFleetNotEmpty";
}, {
code: 6058;
msg: "Faulty movement";
name: "FaultyMovement";
}, {
code: 6059;
msg: "Incorrect Account Type for Handle Raw";
name: "IncorrectHandleRawAccount";
}, {
code: 6060;
msg: "Insufficient Ship Cargo Capacity";
name: "InsufficientShipCargoCapacity";
}, {
code: 6061;
msg: "Fleet does not need update";
name: "FleetDoesNotNeedUpdate";
}, {
code: 6062;
msg: "Must disband fleet";
name: "MustDisbandFleet";
}, {
code: 6063;
msg: "Cannot force-disband fleet";
name: "CannotForceDisbandFleet";
}, {
code: 6064;
msg: "Ship mismatch or already updated";
name: "ShipMismatchOrAlreadyUpdated";
}, {
code: 6065;
msg: "Ship already updated";
name: "ShipAlreadyUpdated";
}, {
code: 6066;
msg: "Invalid next ship address";
name: "InvalidNextShipAddress";
}, {
code: 6067;
msg: "Ship is not valid for forced disband of fleet";
name: "InvalidShipForForcedDisband";
}, {
code: 6068;
msg: "Warp range exceeded";
name: "InvalidWarpRange";
}, {
code: 6069;
msg: "Invalid Ingredient";
name: "InvalidIngredient";
}, {
code: 6070;
msg: "Starbase Upgrade Not in progress";
name: "StarbaseUpgradeNotInProgress";
}, {
code: 6071;
msg: "Fleet Not in queue";
name: "FleetNotInQueue";
}, {
code: 6072;
msg: "Need to clean Starbase upgrade queue";
name: "NeedCleanStarbaseUpgradeQueue";
}, {
code: 6073;
msg: "Planet Not Reachable";
name: "PlanetNotReachable";
}, {
code: 6074;
msg: "Respawn Not Possible";
name: "RespawnNotPossible";
}, {
code: 6075;
msg: "Cannot enter enemy faction's Security Zone";
name: "InvalidMovement";
}, {
code: 6076;
msg: "The Cargo Pod contains a non-zero amount of the Cargo Type";
name: "CargoAmountAboveZero";
}, {
code: 6077;
msg: "The Cargo Pod is invalid";
name: "InvalidCargoPod";
}, {
code: 6078;
msg: "Invalid Zone Coordinates";
name: "InvalidZoneCoordinates";
}, {
code: 6079;
msg: "Respawn time not elapsed";
name: "RespawnTimeNotElapsed";
}, {
code: 6080;
msg: "The Account is Active";
name: "ActiveAccount";
}, {
code: 6081;
msg: "Starbase Player mismatch";
name: "StarbasePlayerMismatch";
}, {
code: 6082;
msg: "The account has already been processed";
name: "AlreadyProcessed";
}, {
code: 6083;
msg: "The amount is invalid";
name: "InvalidAmount";
}, {
code: 6084;
msg: "Warp is on cooldown";
name: "WarpIsOnCooldown";
}, {
code: 6085;
msg: "Program Mismatch";
name: "ProgramMismatch";
}, {
code: 6086;
msg: "Current Instruction Is Not Only Instruction";
name: "MustBeOnlyInstruction";
}, {
code: 6087;
msg: "Invalid Time";
name: "InvalidTime";
}, {
code: 6088;
msg: "Scanning is on cooldown";
name: "ScanIsOnCooldown";
}, {
code: 6089;
msg: "Invalid Fleet Size";
name: "InvalidFleetSize";
}, {
code: 6090;
msg: "The feature is inactive";
name: "InactiveFeature";
}, {
code: 6091;
msg: "Zero ships added to fleet";
name: "ZeroShipsAdded";
}, {
code: 6092;
msg: "Generic invalid data";
name: "GenericInvalid";
}];
instructions: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}];
args: [{
name: "input";
type: {
defined: "ManageGameInput";
};
}];
name: "activateGameState";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for adding the connection"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The first connected sector"];
isMut: true;
isSigner: false;
name: "sector1";
}, {
docs: ["The second connected sector"];
isMut: true;
isSigner: false;
name: "sector2";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
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: "addConnection";
}, {
accounts: [{
docs: ["The fleet owner's profile."];
isMut: false;
isSigner: false;
name: "ownerProfile";
}, {
docs: ["The key on the owner profile with renting permissions."];
isMut: false;
isSigner: true;
name: "ownerKey";
}, {
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "invalidator";
}, {
docs: ["The profile to rent to."];
isMut: false;
isSigner: false;
name: "subProfile";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "ownerKeyIndex";
type: "u16";
}];
name: "addRental";
}, {
accounts: [{
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Origin Token Account"];
isMut: true;
isSigner: false;
name: "originTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "AddShipEscrowInput";
};
}];
name: "addShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The funder for the new `Fleet`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "AddShipToFleetInput";
};
}];
name: "addShipToFleet";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to cancel"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCancelCraftingProcessInput";
};
}];
name: "cancelCraftingProcess";
}, {
accounts: [{
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "subProfileInvalidator";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The new sub profile"];
isMut: false;
isSigner: false;
name: "newSubProfile";
}];
args: [];
name: "changeRental";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The token mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseClaimCraftingNonConsumablesInput";
};
}];
name: "claimCraftingNonConsumables";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingProcess`] account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting [`Recipe`]"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The craftable item"];
isMut: false;
isSigner: false;
name: "craftableItem";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source account of the tokens - owner should be `craftable_item`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseClaimCraftingOutputInput";
};
}];
name: "claimCraftingOutputs";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to close"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe account"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCloseCraftingProcessInput";
};
}];
name: "closeCraftingProcess";
}, {
accounts: [{
docs: ["The key on the player profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The player profile."];
isMut: false;
isSigner: false;
name: "playerProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}];
args: [{
name: "input";
type: {
defined: "CloseDisbandedFleetInput";
};
}];
name: "closeDisbandedFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The cargo pod, owned by the fleet"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The destination token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "token";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "closeFleetCargoPodTokenAccount";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "token";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "closeStarbaseCargoTokenAccount";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new `GameState`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The old [`GameState`] account"];
isMut: false;
isSigner: false;
name: "oldGameState";
}, {
docs: ["The [`GameState`] account", "This will and should fail if there already exists a `GameState`for the desired `update_id`"];
isMut: true;
isSigner: false;
name: "newGameState";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "ManageGameInput";
};
}];
name: "copyGameState";
}, {
accounts: [{
docs: ["The funder for the new crafting process"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCreateCargoPodInput";
};
}];
name: "createCargoPod";
}, {
accounts: [{
docs: ["The funder for the new crafting process"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to initialize"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account (NOT initialized)"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The crafting domain"];
isMut: false;
isSigner: false;
name: "craftingDomain";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCreateCraftingProcessInput";
};
}];
name: "createCraftingProcess";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder for the new `Fleet`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The new fleet `cargo_hold` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The new fleet `fuel_tank` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The new fleet `ammo_bank` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
docs: ["The [`Ship`] Account - represents the first ship in the new fleet"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "CreateFleetInput";
};
}];
name: "createFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "DepositCargoToFleetInput";
};
}];
name: "depositCargoToFleet";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source token account - owned by the `key`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "CargoToGameInput";
};
}];
name: "depositCargoToGame";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingFacility`](crafting::CraftingFacility) account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The source cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source account of the tokens - owner should be `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseDepositCraftingIngredientInput";
};
}];
name: "depositCraftingIngredient";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The Location address"];
isMut: true;
isSigner: false;
name: "location";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterResource";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterStarbase";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}];
args: [{
name: "input";
type: {
defined: "DeregisterSurveyDataUnitTrackerInput";
};
}];
name: "deregisterSurveyDataUnitTracker";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "DisbandFleetInput";
};
}];
name: "disbandFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "DisbandedFleetToEscrowInput";
};
}];
name: "disbandedFleetToEscrow";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The mine item token bank to drain"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Where to send tokens from the bank"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "drainMineItemBank";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing rent refunds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The `SurveyDataUnitTracker` signer"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTrackerSigner";
}, {
docs: ["The SDU token bank to drain"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Where to send tokens from the bank"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "drainSurveyDataUnitsBank";
}, {
accounts: [{
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
args: [];
name: "fleetStateHandler";
}, {
accounts: [{
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The new [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`Ship`]", "Must provide at least one ship that is invalid for this instruction"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "ForcedDisbandFleetInput";
};
}];
name: "forceDisbandFleet";
}, {
accounts: [{
docs: ["The `Fleet` Account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The `cargo_type` for the token"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The mint of the token account"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "forceDropFleetCargo";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "idleToLoadingBay";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["Source Token account for ATLAS, owned by the player"];
isMut: true;
isSigner: false;
name: "atlasTokenFrom";
}, {
docs: ["Vault Token account for ATLAS"];
isMut: true;
isSigner: false;
name: "atlasTokenTo";
}, {
docs: ["The Solana Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "IdleToRespawnInput";
};
}];
name: "idleToRespawn";
}, {
accounts: [{
docs: ["The entity calling this instruction"];
isMut: true;
isSigner: true;
name: "signer";
}, {
docs: ["The sector permissions [`Profile`]"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: true;
name: "gameId";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initGame";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new `GameState`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "InitGameStateInput";
};
}];
name: "initGameState";
}, {
accounts: [{
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "subProfileInvalidator";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}];
args: [];
name: "invalidateRental";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The current [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "invalidateShip";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "loadingBayToIdle";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}, {
docs: ["The fuel tank cargo pod"];
isMut: false;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The source token account for fuel - owned by the `fuel_tank`"];
isMut: false;
isSigner: false;
name: "fuelTokenFrom";
}, {
docs: ["Source Token account for ATLAS, owned by the player"];
isMut: true;
isSigner: false;
name: "atlasTokenFrom";
}, {
docs: ["Vault Token account for ATLAS"];
isMut: true;
isSigner: false;
name: "atlasTokenTo";
}, {
docs: ["The Solana Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "MineAsteroidToRespawnInput";
};
}];
name: "mineAsteroidToRespawn";
}, {
accounts: [{
docs: ["The key authorized for the cpi points instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The points permissions [`Profile`](player_profile::state::Profile)"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The `PointCategory`"];
isMut: false;
isSigner: false;
name: "pointsCategory";
}, {
docs: ["The `PointsModifier` account to be inited in Points CPI"];
isMut: true;
isSigner: false;
name: "pointsModifierAccount";
}, {
docs: ["The points program"];
isMut: false;
isSigner: false;
name: "pointsProgram";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "game";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterFleetsPointsModifierInput";
};
}];
name: "registerFleetsPointModifier";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new mine item"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The mint address representing the mine item"];
isMut: true;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterMineItemInput";
};
}];
name: "registerMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: true;
name: "planet";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterPlanetInput";
};
}];
name: "registerPlanet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new resource"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The Location address"];
isMut: true;
isSigner: false;
name: "location";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterResourceInput";
};
}];
name: "registerResource";
}, {
accounts: [{
docs: ["The player permissions [`Profile`]"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder for the new profile"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The `SagePlayerProfile` account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "registerSagePlayerProfile";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new sector"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The discoverer of this sector"];
isMut: false;
isSigner: false;
name: "discoverer";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "coordinates";
type: {
array: ["i64", 2];
};
}, {
name: "name";
type: {
array: ["u8", 64];
};
}, {
name: "keyIndex";
type: "u16";
}];
name: "registerSector";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Ship`] account"];
isMut: true;
isSigner: true;
name: "ship";
}, {
docs: ["The mint address representing the [`Ship`]"];
isMut: false;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterShipInput";
};
}];
name: "registerShip";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Star`] account"];
isMut: true;
isSigner: true;
name: "star";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterStarInput";
};
}];
name: "registerStar";
}, {
accounts: [{
docs: ["The funder for the new star base"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`Sector`] account"];
isMut: false;
isSigner: false;
name: "sector";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameStateAndProfile";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterStarbaseInputUnpacked";
};
}];
name: "registerStarbase";
}, {
accounts: [{
docs: ["The funder -- pays account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: false;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The faction that the player belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] account to initialize"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "registerStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new mine item"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The mint for the new `SurveyDataUnitTracker`"];
isMut: false;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterSurveyDataUnitTrackerInput";
};
}];
name: "registerSurveyDataUnitTracker";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The cargo pod (should be empty)"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseRemoveCargoPodInput";
};
}];
name: "removeCargoPod";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the rent refund funds from the connections go to."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The first sector to remove from"];
isMut: true;
isSigner: false;
name: "sector1";
}, {
docs: ["The second sector to remove from"];
isMut: true;
isSigner: false;
name: "sector2";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "sector1Index";
type: "u16";
}, {
name: "sector2Index";
type: "u16";
}, {
name: "keyIndex";
type: "u16";
}];
name: "removeConnection";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Destination Token Account"];
isMut: true;
isSigner: false;
name: "destinationTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RemoveShipEscrowInput";
};
}];
name: "removeInvalidShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Destination Token Account"];
isMut: true;
isSigner: false;
name: "destinationTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RemoveShipEscrowInput";
};
}];
name: "removeShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: false;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: false;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: false;
isSigner: false;
name: "ammoBank";
}];
args: [{
name: "input";
type: {
defined: "RespawnToLoadingBayInput";
};
}];
name: "respawnToLoadingBay";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The `SurveyDataUnitTracker` signer"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTrackerSigner";
}, {
docs: ["The general cargo hold cargo pod for the fleet"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["Source token account for the SDU, owned by `survey_data_unit_tracker_signer`"];
isMut: true;
isSigner: false;
name: "sduTokenFrom";
}, {
docs: ["Destination token account for the SDU, owned by cargo_hold"];
isMut: true;
isSigner: false;
name: "sduTokenTo";
}, {
docs: ["Token account for repair kit, owned by fleet"];
isMut: true;
isSigner: false;
name: "repairKitTokenFrom";
}, {
docs: ["The food token mint"];
isMut: true;
isSigner: false;
name: "repairKitMint";
}, {
docs: ["The cargo type of the SDU"];
isMut: false;
isSigner: false;
name: "sduCargoType";
}, {
docs: ["The cargo type of Repair Kits"];
isMut: false;
isSigner: false;
name: "repairKitCargoType";
}, {
docs: ["The cargo stats definition"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The cargo program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["Solana Instructions Sysvar"];
isMut: false;
isSigner: false;
name: "instructionsSysvar";
}, {
docs: ["Solana recent slothashes"];
isMut: false;
isSigner: false;
name: "recentSlothashes";
}];
args: [{
name: "input";
type: {
defined: "ScanForSurveyDataUnitsInput";
};
}];
name: "scanForSurveyDataUnits";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The current [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}, {
docs: ["The next [`Ship`] account"];
isMut: true;
isSigner: false;
name: "nextShip";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "setNextShip";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingProcess`] account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting [`Recipe`]"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The `CraftingFacility` account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseStartCraftingProcessInput";
};
}];
name: "startCraftingProcess";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}];
args: [{
name: "input";
type: {
defined: "StartMiningAsteroidInput";
};
}];
name: "startMiningAsteroid";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}];
args: [{
name: "input";
type: {
defined: "StartSubwarpInput";
};
}];
name: "startSubwarp";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The cargo type account for fuel"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The mint of the token account"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StopMiningAsteroidInput";
};
}];
name: "stopMiningAsteroid";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}];
args: [{
name: "input";
type: {
defined: "StopSubwarpInput";
};
}];
name: "stopSubwarp";
}, {
accounts: [{
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}];
args: [];
name: "syncResource";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [];
name: "syncStarbasePlayer";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseTransferCargoInput";
};
}];
name: "transferCargoAtStarbase";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "TransferCargoWithinFleetInput";
};
}];
name: "transferCargoWithinFleet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}];
args: [{
name: "input";
type: {
defined: "UpdateGameInput";
};
}];
name: "updateGame";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}];
args: [{
name: "input";
type: {
defined: "UpdateGameStateInput";
};
}];
name: "updateGameState";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}];
args: [{
name: "input";
type: {
defined: "UpdateMineItemInput";
};
}];
name: "updateMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}];
args: [{
name: "input";
type: {
defined: "UpdatePlanetInput";
};
}];
name: "updatePlanet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}];
args: [{
name: "input";
type: {
defined: "UpdateResourceInput";
};
}];
name: "updateResource";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipInput";
};
}];
name: "updateShip";
}, {
accounts: [{
docs: ["The old [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "oldShip";
}, {
docs: ["The address indicated as `next` in the `old_ship` account"];
isMut: false;
isSigner: false;
name: "next";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipEscrowInput";
};
}];
name: "updateShipEscrow";
}, {
accounts: [{
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The old [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "oldShip";
}, {
docs: ["The address indicated as `next` in the `old_ship` account"];
isMut: false;
isSigner: false;
name: "next";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipFleetInput";
};
}];
name: "updateShipInFleet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Star`] account"];
isMut: true;
isSigner: false;
name: "star";
}];
args: [{
name: "input";
type: {
defined: "UpdateStarInput";
};
}];
name: "updateStar";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "UpdateStarbaseInput";
};
}];
name: "updateStarbase";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}];
args: [{
name: "input";
type: {
defined: "UpdateSurveyDataUnitTrackerInput";
};
}];
name: "updateSurveyDataUnitTracker";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "fromStarbase";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "toStarbase";
}, {
docs: ["The Sector account representing the fleet`s current sector"];
isMut: false;
isSigner: false;
name: "fromSector";
}, {
docs: ["The Sector account that `Fleet` will move to"];
isMut: false;
isSigner: false;
name: "toSector";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The `Cargo Type` Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The `CargoStatsDefinition` for the cargo type"];
isMut: false;
isSigner: false;
name: "statsDefinition";
}, {
docs: ["The fuel source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "fuelTokenFrom";
}, {
docs: ["Token Mint - The fuel mint"];
isMut: true;
isSigner: false;
name: "fuelMint";
}, {
docs: ["The fee source token account"];
isMut: true;
isSigner: false;
name: "feeTokenFrom";
}, {
docs: ["The fee destination token account"];
isMut: true;
isSigner: false;
name: "feeTokenTo";
}, {
docs: ["Fee Token Mint"];
isMut: true;
isSigner: false;
name: "feeMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WarpLaneInput";
};
}];
name: "warpLane";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The cargo type account for fuel"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "statsDefinition";
}, {
docs: ["The source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Token Mint - The fuel mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WarpToCoordinateInput";
};
}];
name: "warpToCoordinate";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod, owned by the fleet"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod, owned by the Starbase player"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WithdrawCargoFromFleetInput";
};
}];
name: "withdrawCargoFromFleet";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `key`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "CargoToGameInput";
};
}];
name: "withdrawCargoFromGame";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingFacility`](crafting::CraftingFacility) account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The token mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseWithdrawCraftingIngredientInput";
};
}];
name: "withdrawCraftingIngredient";
}];
name: "sage";
types: [{
docs: ["Struct for data input for `AddShipEscrow`"];
name: "AddShipEscrowInput";
type: {
fields: [{
docs: ["Amount of `Ship` tokens to transfer to escrow"];
name: "shipAmount";
type: "u64";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`", "Some index `WrappedShipEscrow`, or None for new `WrappedShipEscrow`"];
name: "index";
type: {
option: "u32";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "AddShipToFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u8";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: {
option: "u32";
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Type containing derived sub-levers used in `calculate_base_emissions()` discriminated by ship size"];
name: "BaseEmissionsBySizeUtil";
type: {
fields: [{
docs: ["xx_small"];
name: "xxSmall";
type: "u64";
}, {
docs: ["x_small"];
name: "xSmall";
type: "u64";
}, {
docs: ["small"];
name: "small";
type: "u64";
}, {
docs: ["medium"];
name: "medium";
type: "u64";
}, {
docs: ["large"];
name: "large";
type: "u64";
}, {
docs: ["capital"];
name: "capital";
type: "u64";
}, {
docs: ["commander"];
name: "commander";
type: "u64";
}, {
docs: ["titan"];
name: "titan";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update `base_emissions_by_size_util`"];
name: "BaseEmissionsBySizeUtilInput";
type: {
fields: [{
docs: ["xx_small"];
name: "xxSmall";
type: "u64";
}, {
docs: ["x_small"];
name: "xSmall";
type: "u64";
}, {
docs: ["small"];
name: "small";
type: "u64";
}, {
docs: ["medium"];
name: "medium";
type: "u64";
}, {
docs: ["large"];
name: "large";
type: "u64";
}, {
docs: ["capital"];
name: "capital";
type: "u64";
}, {
docs: ["commander"];
name: "commander";
type: "u64";
}, {
docs: ["titan"];
name: "titan";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Variables for the Cargo program"];
name: "Cargo";
type: {
fields: [{
docs: ["The cargo stats definition account"];
name: "statsDefinition";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["A ship's cargo stats"];
name: "CargoStats";
type: {
fields: [{
docs: ["the capacity of the ship's cargo hold"];
name: "cargoCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's fuel tank"];
name: "fuelCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's ammo bank"];
name: "ammoCapacity";
type: "u32";
}, {
docs: ["the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "ammoConsumptionRate";
type: "u32";
}, {
docs: ["the amount of food consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "foodConsumptionRate";
type: "u32";
}, {
docs: ["the amount of resources that can be mined by a ship per second"];
name: "miningRate";
type: "u32";
}, {
docs: ["the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase"];
name: "upgradeRate";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`CargoStats`]"];
name: "CargoStatsUnpacked";
type: {
fields: [{
docs: ["the capacity of the ship's cargo hold"];
name: "cargoCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's fuel tank"];
name: "fuelCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's ammo bank"];
name: "ammoCapacity";
type: "u32";
}, {
docs: ["the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "ammoConsumptionRate";
type: "u32";
}, {
docs: ["the amount of food consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "foodConsumptionRate";
type: "u32";
}, {
docs: ["the amount of resources that can be mined by a ship per second"];
name: "miningRate";
type: "u32";
}, {
docs: ["the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase"];
name: "upgradeRate";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `DepositCargoToGame`"];
name: "CargoToGameInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "CloseDisbandedFleetInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Variables for the Crafting program"];
name: "Crafting";
type: {
fields: [{
docs: ["The crafting domain account"];
name: "domain";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "CreateFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u8";
}, {
docs: ["the fleet label"];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}, {
docs: ["cargo hold seeds"];
name: "cargoHoldSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["fuel tank seeds"];
name: "fuelTankSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["ammo bank seeds"];
name: "ammoBankSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `DepositCargoToFleet`"];
name: "DepositCargoToFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input that has `key_index`"];
name: "DeregisterSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "DisbandFleetInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "DisbandedFleetToEscrowInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u16";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: {
option: "u32";
};
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["`Starbase` levels discriminated by faction"];
name: "FactionsStarbaseLevelInfo";
type: {
fields: [{
docs: ["Mud Starbase Levels Info"];
name: "mud";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}, {
docs: ["Oni Starbase Levels Info"];
name: "oni";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}, {
docs: ["Ustur Starbase Levels Info"];
name: "ustur";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}];
kind: "struct";
};
}, {
docs: ["Variables for the Fleet program"];
name: "FleetInfo";
type: {
fields: [{
docs: ["`Starbase` levels discriminated by faction"];
name: "starbaseLevels";
type: {
defined: "FactionsStarbaseLevelInfo";
};
}, {
docs: ["The fleets account registered as a modifier for LP in the Points program"];
name: "fleetsLpModifier";
type: {
defined: "FleetsPointModifier";
};
}, {
docs: ["The fleets account registered as a modifier for XP in the Points program"];
name: "fleetsXpModifier";
type: {
defined: "FleetsPointModifier";
};
}, {
docs: ["Maximum `Fleet` size allowed"];
name: "maxFleetSize";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update fleet settings"];
name: "FleetInput";
type: {
fields: [{
docs: ["`Starbase` Level Info array"];
name: "starbaseLevelInfoArray";
type: {
option: {
vec: {
defined: "StarbaseLevelInfoArrayInput";
};
};
};
}, {
docs: ["Maximum `Fleet` size allowed"];
name: "maxFleetSize";
type: {
option: "u32";
};
}, {
docs: ["The bump for the `FleetsLPModifier` account"];
name: "fleetsLpModifierBump";
type: {
option: "u8";
};
}, {
docs: ["The bump for the `FleetsXPModifier` account"];
name: "fleetsXpModifierBump";
type: {
option: "u8";
};
}];
kind: "struct";
};
}, {
docs: ["Struct that represents info on a single ship type in a fleet"];
name: "FleetShipsInfo";
type: {
fields: [{
docs: ["The `Ship` account address"];
name: "ship";
type: "publicKey";
}, {
docs: ["The `Ship` token amount in escrow"];
name: "amount";
type: "u64";
}, {
docs: ["The update id for the `Ship`"];
name: "updateId";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["The upgrade start state for a fleet"];
name: "FleetStarbaseUpgradeState";
type: {
kind: "enum";
variants: [{
name: "NotFullyFilled";
}, {
name: "Started";
}, {
name: "Burning";
}];
};
}, {
docs: ["The fleets account registered as a modifier in the Points program"];
name: "FleetsPointModifier";
type: {
fields: [{
docs: ["`FleetsPointModifier` Pubkey"];
name: "pubkey";
type: "publicKey";
}, {
docs: ["`FleetsPointModifier` bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "ForcedDisbandFleetInput";
type: {
fields: [{
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::Idle`](crate::state_machine::FleetStateData::Idle) state"];
name: "Idle";
type: {
fields: [{
docs: ["The star system the fleet is in"];
name: "sector";
type: {
array: ["i64", 2];
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize an `IdleToRespawn` Ix"];
name: "IdleToRespawnInput";
type: {
fields: [{
docs: ["index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `InitGameState`"];
name: "InitGameStateInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input that has `key_index`"];
name: "KeyIndexInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Global levers"];
name: "Levers";
type: {
fields: [{
docs: ["global lever that scales the quantity of resources. Units are 10000ths. Valid output values > 0."];
name: "l0ResourcesScalarMultiplication";
type: "u64";
}, {
docs: ["global lever which impacts the distribution of effective emissions. Units are 10000ths. Valid output values >= 0."];
name: "l1EmissionsMainBreaker";
type: "u64";
}, {
docs: ["global lever which impacts the effect that system richness has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l2SystemRichnessEmissions";
type: "u64";
}, {
docs: ["global lever which impacts the effect that ship size has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l3ShipSizeWeight";
type: "u64";
}, {
docs: ["global lever which impacts the effect that resource hardness has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l4ResourceHardness";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of warping. Units are 10000ths. Valid output values > 1."];
name: "l5FuelWarpBreaker";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of planet exit. Units are 10000ths. Valid output values > 1."];
name: "l6FuelPlanetBreaker";
type: "u64";
}, {
docs: ["Module wide lever that impacts refinement from R20 (hydrogen) to R4 (fuel). Units are 10000ths. Valid output values > 1."];
name: "l7FuelRefinementEfficiency";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of mining. Units are 10000ths. Valid output values between 0 and 1."];
name: "l8MiningFoodBreaker";
type: "u64";
}, {
docs: ["Module wide lever that impacts refinement from R20 (organics) to R4 (food). Units are 10000ths. Valid output values > 0."];
name: "l10FoodRefinementEfficiency";
type: "u64";
}, {
docs: ["Module specific lever that scales the quantity of organics in the economy."];
name: "l11OrganicsScalarMultiplication";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of combat. Units are 10000ths. Valid output values > 0."];
name: "l16FuelCombatBreaker";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of subwarp mvmt. Units are 10000ths. Valid output values > 0."];
name: "l21FuelSubwarpBreaker";
type: "u64";
}, {
docs: ["Set of derived sub-levers used in `calculate_base_emissions()`.", "Math formula: `l1_emissions_main_breaker.powf(l3_ship_size_weight * ship_size)`"];
name: "baseEmissionsBySizeUtil";
type: {
defined: "BaseEmissionsBySizeUtil";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update levers"];
name: "LeversInput";
type: {
fields: [{
docs: ["global lever that scales the quantity of resources."];
name: "l0ResourcesScalarMultiplication";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the distribution of effective emissions."];
name: "l1EmissionsMainBreaker";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that system richness has on resource emissions."];
name: "l2SystemRichnessEmissions";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that ship size has on resource emissions."];
name: "l3ShipSizeWeight";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that resource hardness has on resource emissions."];
name: "l4ResourceHardness";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of warping"];
name: "l5FuelWarpBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of planet exit"];
name: "l6FuelPlanetBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that impacts refinement from R20 (hydrogen) to R4 (fuel)"];
name: "l7FuelRefinementEfficiency";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of mining. (Value between 0 and 1)"];
name: "l8MiningFoodBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that impacts refinement from R20 (organics) to R4 (food)"];
name: "l10FoodRefinementEfficiency";
type: {
option: "u64";
};
}, {
docs: ["Module specific lever that scales the quantity of organics in the economy."];
name: "l11OrganicsScalarMultiplication";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of combat. Units are 10000ths. Valid output values > 0."];
name: "l16FuelCombatBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of subwarp mvmt. Units are 10000ths. Valid output values > 0."];
name: "l21FuelSubwarpBreaker";
type: {
option: "u64";
};
}];
kind: "struct";
};
}, {
docs: ["Represents different types of locations that a `Resource` might be found"];
name: "LocationType";
type: {
kind: "enum";
variants: [{
name: "Planet";
}];
};
}, {
docs: ["Struct for data input to managing Game accounts"];
name: "ManageGameInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MineAsteroid`](crate::state_machine::FleetStateData::MineAsteroid) state"];
name: "MineAsteroid";
type: {
fields: [{
docs: ["The `Asteroid` the `Fleet` is mining (Must be an asteroid belt)"];
name: "asteroid";
type: "publicKey";
}, {
docs: ["The `Resource` being mined on the `Asteroid`"];
name: "resource";
type: "publicKey";
}, {
docs: ["The timestamp at which mining activity started"];
name: "start";
type: "i64";
}, {
docs: ["The timestamp at which mining activity stops"];
name: "end";
type: "i64";
}, {
docs: ["The last time the `Fleet` was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `MineAsteroidToRespawnInput`"];
name: "MineAsteroidToRespawnInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Token mints"];
name: "Mints";
type: {
fields: [{
docs: ["ATLAS token mint"];
name: "atlas";
type: "publicKey";
}, {
docs: ["POLIS token mint"];
name: "polis";
type: "publicKey";
}, {
docs: ["ammunition"];
name: "ammo";
type: "publicKey";
}, {
docs: ["food"];
name: "food";
type: "publicKey";
}, {
docs: ["fuel"];
name: "fuel";
type: "publicKey";
}, {
docs: ["repair kit"];
name: "repairKit";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["A ship's miscellaneous stats"];
name: "MiscStats";
type: {
fields: [{
docs: ["Number of crew in the ship"];
name: "crew";
type: "u64";
}, {
docs: ["the time it takes the ship to respawn"];
name: "respawnTime";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to scan again after scanning"];
name: "scanCoolDown";
type: "u16";
}, {
docs: ["the amount of food required to do a scan"];
name: "scanRepairKitAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`MiscStats`]"];
name: "MiscStatsUnpacked";
type: {
fields: [{
docs: ["Number of crew in the ship"];
name: "crew";
type: "u64";
}, {
docs: ["the time it takes the ship to respawn"];
name: "respawnTime";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to scan again after scanning"];
name: "scanCoolDown";
type: "u16";
}, {
docs: ["the amount of food required to do a scan"];
name: "scanRepairKitAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Miscellaneous game state variables"];
name: "MiscVariables";
type: {
fields: [{
docs: ["Percentage by which the \"warp lane\" movement type reduces warp fuel cost"];
name: "warpLaneFuelCostReduction";
type: "i32";
}, {
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."];
name: "respawnFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to update miscellaneous settings"];
name: "MiscVariablesInput";
type: {
fields: [{
docs: ["Percentage by which the \"warp lane\" movement type reduces warp fuel cost"];
name: "warpLaneFuelCostReduction";
type: {
option: "i32";
};
}, {
docs: ["Respawn fee, charged in ATLAS"];
name: "respawnFee";
type: {
option: "u64";
};
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MoveSubwarp`] state"];
name: "MoveSubwarp";
type: {
fields: [{
docs: ["The sector the fleet is coming from"];
name: "fromSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The sector the fleet is going to"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The sector the fleet is currently in"];
name: "currentSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["When the fleet started subwarp"];
name: "departureTime";
type: "i64";
}, {
docs: ["When the fleet will finish subwarp"];
name: "arrivalTime";
type: "i64";
}, {
docs: ["The fuel cost of the subwarp"];
name: "fuelExpenditure";
type: "u64";
}, {
docs: ["The last update time"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MoveWarp`] state"];
name: "MoveWarp";
type: {
fields: [{
docs: ["The star system the fleet is coming from"];
name: "fromSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The star system the fleet is going to"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["When the fleet started warping"];
name: "warpStart";
type: "i64";
}, {
docs: ["When the warp will end"];
name: "warpFinish";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["A ship's movement stats"];
name: "MovementStats";
type: {
fields: [{
docs: ["the amount of distance that the ship can cover in one second while sub-warping"];
name: "subwarpSpeed";
type: "u32";
}, {
docs: ["the amount of distance that the ship can cover in one second while warping"];
name: "warpSpeed";
type: "u32";
}, {
docs: ["the max distance that the ship can warp"];
name: "maxWarpDistance";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to warp again after a warp"];
name: "warpCoolDown";
type: "u16";
}, {
docs: ["the amount of fuel consumed by the ship when sub-warp moving"];
name: "subwarpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel consumed by the ship when warp moving"];
name: "warpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel required to exit a planet"];
name: "planetExitFuelAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`MovementStats`]"];
name: "MovementStatsUnpacked";
type: {
fields: [{
docs: ["the amount of distance that the ship can cover in one second while sub-warping"];
name: "subwarpSpeed";
type: "u32";
}, {
docs: ["the amount of distance that the ship can cover in one second while warping"];
name: "warpSpeed";
type: "u32";
}, {
docs: ["the max distance that the ship can warp"];
name: "maxWarpDistance";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to warp again after a warp"];
name: "warpCoolDown";
type: "u16";
}, {
docs: ["the amount of fuel consumed by the ship when sub-warp moving"];
name: "subwarpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel consumed by the ship when warp moving"];
name: "warpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel required to exit a planet"];
name: "planetExitFuelAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["A pubkey sized option that is none if set to the system program."];
name: "OptionalNonSystemPubkey";
type: {
fields: [{
name: "key";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Represents different types a `Planet` could be"];
name: "PlanetType";
type: {
kind: "enum";
variants: [{
name: "Terrestrial";
}, {
name: "Volcanic";
}, {
name: "Barren";
}, {
name: "AsteroidBelt";
}, {
name: "GasGiant";
}, {
name: "IceGiant";
}, {
name: "Dark";
}];
};
}, {
docs: ["Variables for the Points program"];
name: "Points";
type: {
fields: [{
docs: ["Represents the points category to use for XP (experience points)"];
name: "xpPointsCategory";
type: "publicKey";
}, {
docs: ["Represents the points category to use for LP (loyalty points)"];
name: "lpPointsCategory";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to register a points modifier for fleets program"];
name: "RegisterFleetsPointsModifierInput";
type: {
fields: [{
docs: ["The modifier can increment points"];
name: "canIncrement";
type: "bool";
}, {
docs: ["The modifier can decrement points"];
name: "canDecrement";
type: "bool";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["The points category of the modifier (XP/LP)"];
name: "pointsCategory";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "RegisterMineItemInput";
type: {
fields: [{
docs: ["The name of the `MineItem`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["How hard it is to mine this item"];
name: "resourceHardness";
type: "u16";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Planet"];
name: "RegisterPlanetInput";
type: {
fields: [{
docs: ["`Planet` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Planet` size"];
name: "size";
type: "u64";
}, {
docs: ["`Planet` max health"];
name: "maxHp";
type: "u64";
}, {
docs: ["`Planet` sub_coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["`Planet` type"];
name: "planetType";
type: "u8";
}, {
docs: ["`Planet` position"];
name: "position";
type: "u8";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "RegisterResourceInput";
type: {
fields: [{
docs: ["`Resource` location type"];
name: "locationType";
type: "u8";
}, {
docs: ["`Resource` `system_richness`"];
name: "systemRichness";
type: "u16";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Ship"];
name: "RegisterShipInput";
type: {
fields: [{
docs: ["The `Ship` name/label"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: {
defined: "SizeClass";
};
}, {
docs: ["The stats for the ship"];
name: "stats";
type: {
defined: "ShipStatsUnpacked";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["Whether the ship is initialized to active (`update_id == current_update_id`)"];
name: "isActive";
type: "bool";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Star"];
name: "RegisterStarInput";
type: {
fields: [{
docs: ["`Star` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Star` size"];
name: "size";
type: "u64";
}, {
docs: ["`Star` sub_coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["`Star` type"];
name: "starType";
type: "u8";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register `Starbase`"];
name: "RegisterStarbaseInput";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index representing the level of the `Starbase` in the game variables."];
name: "starbaseLevelIndex";
type: "u8";
}, {
docs: ["The `Starbase` faction"];
name: "faction";
type: "u8";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RegisterStarbaseInput`]"];
name: "RegisterStarbaseInputUnpacked";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index representing the level of the `Starbase` in the game variables."];
name: "starbaseLevelIndex";
type: "u8";
}, {
docs: ["The `Starbase` faction"];
name: "faction";
type: "u8";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register SurveyDataUnitTracker"];
name: "RegisterSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: "u32";
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: "u16";
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage"];
name: "probability";
type: "u16";
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: "u16";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `RemoveShipEscrow`"];
name: "RemoveShipEscrowInput";
type: {
fields: [{
docs: ["Amount of `Ship` tokens to transfer from escrow"];
name: "shipAmount";
type: "u64";
}, {
docs: ["the index of the `ProfileKey` in `Profile` with required permissions"];
name: "permissionKeyIndex";
type: "u16";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::Respawn`](crate::state_machine::FleetStateData::Respawn) state"];
name: "Respawn";
type: {
fields: [{
docs: ["The star system the fleet was in when it entered the `Respawn` state"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The time `Respawn` started"];
name: "start";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `RespawnToLoadingBay`"];
name: "RespawnToLoadingBayInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["`RiskZone` center and radius"];
name: "RiskZoneData";
type: {
fields: [{
docs: ["Risk zone center"];
name: "center";
type: {
array: ["i64", 2];
};
}, {
docs: ["Risk zone radius"];
name: "radius";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RiskZoneData`]"];
name: "RiskZoneDataUnpacked";
type: {
fields: [{
docs: ["Risk zone center"];
name: "center";
type: {
array: ["i64", 2];
};
}, {
docs: ["Risk zone radius"];
name: "radius";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["[`RiskZoneData`] for [`RiskZones`]"];
name: "RiskZonesData";
type: {
fields: [{
docs: ["Mud security zone"];
name: "mudSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Oni security zone"];
name: "oniSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Ustur security zone"];
name: "usturSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["High risk zone"];
name: "highRiskZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Medium risk zone"];
name: "mediumRiskZone";
type: {
defined: "RiskZoneData";
};
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RiskZonesData`]"];
name: "RiskZonesDataUnpacked";
type: {
fields: [{
docs: ["Mud security zone"];
name: "mudSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Oni security zone"];
name: "oniSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Ustur security zone"];
name: "usturSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["High risk zone"];
name: "highRiskZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Medium risk zone"];
name: "mediumRiskZone";
type: {
defined: "RiskZoneData";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Scan For Survey Data Units"];
name: "ScanForSurveyDataUnitsInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Connection between sectors"];
name: "SectorConnection";
type: {
fields: [{
docs: ["The sector connected to"];
name: "connectionSector";
type: "publicKey";
}, {
docs: ["The location of the connection"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["Connection flags"];
name: "flags";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Represents the orbital position of a `Planet` in the `Sector`"];
name: "SectorRing";
type: {
kind: "enum";
variants: [{
name: "Inner";
}, {
name: "Mid";
}, {
name: "Outer";
}];
};
}, {
docs: ["Ship counts for a fleet."];
name: "ShipCounts";
type: {
fields: [{
docs: ["The total number of ships in the fleet."];
name: "total";
type: "u32";
}, {
docs: ["Used when updating a fleet.", "Value is 0 when fleet update is in progress"];
name: "updated";
type: "u32";
}, {
docs: ["The number of xx small ships in the fleet."];
name: "xxSmall";
type: "u16";
}, {
docs: ["The number of x small ships in the fleet."];
name: "xSmall";
type: "u16";
}, {
docs: ["The number of small ships in the fleet."];
name: "small";
type: "u16";
}, {
docs: ["The number of medium ships in the fleet."];
name: "medium";
type: "u16";
}, {
docs: ["The number of large ships in the fleet."];
name: "large";
type: "u16";
}, {
docs: ["The number of capital ships in the fleet."];
name: "capital";
type: "u16";
}, {
docs: ["The number of commander ships in the fleet."];
name: "commander";
type: "u16";
}, {
docs: ["The number of titan ships in the fleet."];
name: "titan";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`ShipCounts`]"];
name: "ShipCountsUnpacked";
type: {
fields: [{
docs: ["The total number of ships in the fleet."];
name: "total";
type: "u32";
}, {
docs: ["Used when updating a fleet.", "Value is 0 when fleet update is in progress"];
name: "updated";
type: "u32";
}, {
docs: ["The number of xx small ships in the fleet."];
name: "xxSmall";
type: "u16";
}, {
docs: ["The number of x small ships in the fleet."];
name: "xSmall";
type: "u16";
}, {
docs: ["The number of small ships in the fleet."];
name: "small";
type: "u16";
}, {
docs: ["The number of medium ships in the fleet."];
name: "medium";
type: "u16";
}, {
docs: ["The number of large ships in the fleet."];
name: "large";
type: "u16";
}, {
docs: ["The number of capital ships in the fleet."];
name: "capital";
type: "u16";
}, {
docs: ["The number of commander ships in the fleet."];
name: "commander";
type: "u16";
}, {
docs: ["The number of titan ships in the fleet."];
name: "titan";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Ship sizes."];
name: "ShipSizes";
type: {
fields: [{
docs: ["The size of xx small ships"];
name: "xxSmall";
type: "u8";
}, {
docs: ["The size of x small ships"];
name: "xSmall";
type: "u8";
}, {
docs: ["The size of small ships"];
name: "small";
type: "u8";
}, {
docs: ["The size of medium ships"];
name: "medium";
type: "u8";
}, {
docs: ["The size of large ships"];
name: "large";
type: "u8";
}, {
docs: ["The size of capital ships"];
name: "capital";
type: "u8";
}, {
docs: ["The size of commander ships"];
name: "commander";
type: "u8";
}, {
docs: ["The size of titan ships"];
name: "titan";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A ship's stats"];
name: "ShipStats";
type: {
fields: [{
docs: ["Movement stats for the ship"];
name: "movementStats";
type: {
defined: "MovementStats";
};
}, {
docs: ["Cargo stats for the ship"];
name: "cargoStats";
type: {
defined: "CargoStats";
};
}, {
docs: ["Miscellaneous stats for the ship"];
name: "miscStats";
type: {
defined: "MiscStats";
};
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`ShipStats`]"];
name: "ShipStatsUnpacked";
type: {
fields: [{
docs: ["Movement stats for the ship"];
name: "movementStats";
type: {
defined: "MovementStats";
};
}, {
docs: ["Cargo stats for the ship"];
name: "cargoStats";
type: {
defined: "CargoStats";
};
}, {
docs: ["Miscellaneous stats for the ship"];
name: "miscStats";
type: {
defined: "MiscStats";
};
}];
kind: "struct";
};
}, {
docs: ["Represents different types of Ships"];
name: "SizeClass";
type: {
kind: "enum";
variants: [{
name: "XxSmall";
}, {
name: "XSmall";
}, {
name: "Small";
}, {
name: "Medium";
}, {
name: "Large";
}, {
name: "Capital";
}, {
name: "Commander";
}, {
name: "Titan";
}];
};
}, {
docs: ["Represents different types of Stars"];
name: "StarType";
type: {
kind: "enum";
variants: [{
name: "WhiteDwarf";
}, {
name: "RedDwarf";
}, {
name: "Solar";
}, {
name: "HotBlue";
}, {
name: "RedGiant";
}];
};
}, {
docs: ["Struct for data input to cancel a `CraftingProcess`"];
name: "StarbaseCancelCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Claim Crafting Process Non-consumable inputs"];
name: "StarbaseClaimCraftingNonConsumablesInput";
type: {
fields: [{
docs: ["the index of the recipe output"];
name: "ingredientIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to close a `CraftingProcess`"];
name: "StarbaseClaimCraftingOutputInput";
type: {
fields: [{
docs: ["the index of the recipe output"];
name: "ingredientIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to close a `CraftingProcess`"];
name: "StarbaseCloseCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `StarbaseCreateCargoPod`"];
name: "StarbaseCreateCargoPodInput";
type: {
fields: [{
docs: ["cargo pod seeds"];
name: "podSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to create a `CraftingProcess`"];
name: "StarbaseCreateCraftingProcessInput";
type: {
fields: [{
docs: ["crafting id"];
name: "craftingId";
type: "u64";
}, {
docs: ["the index of the recipe's category"];
name: "recipeCategoryIndex";
type: "u16";
}, {
docs: ["quantity of outputs to craft"];
name: "quantity";
type: "u64";
}, {
docs: ["number of crew members to use for this crafting process"];
name: "numCrew";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to deposit an ingredient"];
name: "StarbaseDepositCraftingIngredientInput";
type: {
fields: [{
docs: ["the amount of ingredient to deposit"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the recipe ingredient"];
name: "ingredientIndex";
type: "u16";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Information associated with `Starbase` levels"];
name: "StarbaseLevelInfo";
type: {
fields: [{
docs: ["The crafting recipe required to upgrade a `Starbase` to this level"];
name: "recipeForUpgrade";
type: "publicKey";
}, {
docs: ["The crafting recipe category enabled for crafting at a `Starbase` of this level."];
name: "recipeCategoryForLevel";
type: "publicKey";
}, {
docs: ["The `Starbase` health points for this level."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points for this level."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position `Ring` available for this level"];
name: "sectorRingAvailable";
type: "u8";
}, {
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."];
name: "warpLaneMovementFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Starbase Level Settings"];
name: "StarbaseLevelInfoArrayInput";
type: {
fields: [{
docs: ["The level of the `Starbase`."];
name: "level";
type: "u8";
}, {
docs: ["The `Starbase` faction."];
name: "faction";
type: "u8";
}, {
docs: ["The `Starbase` health points for this level."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points for this level."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position `Ring` available for this level"];
name: "sectorRingAvailable";
type: {
defined: "SectorRing";
};
}, {
docs: ["Fee charged for the \"warp lane\" movement type which is meant to be charged in ATLAS"];
name: "warpLaneMovementFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::StarbaseLoadingBay`] state"];
name: "StarbaseLoadingBay";
type: {
fields: [{
docs: ["The `Starbase` is in the loading bay of"];
name: "starbase";
type: "publicKey";
}, {
docs: ["The last time this fleet was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `StarbaseRemoveCargoPod`"];
name: "StarbaseRemoveCargoPodInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to start a crafting process"];
name: "StarbaseStartCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The state of a `Starbase`."];
name: "StarbaseState";
type: {
kind: "enum";
variants: [{
name: "Active";
}, {
name: "Destroyed";
}];
};
}, {
docs: ["Struct for data input to `DepositCargoToGame`"];
name: "StarbaseTransferCargoInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The data for the `StarbaseUpgrade` state"];
name: "StarbaseUpgrade";
type: {
fields: [{
docs: ["The `Starbase` being upgraded"];
name: "starbase";
type: "publicKey";
}, {
docs: ["[`FleetStarbaseUpgradeState`]"];
name: "upgradeState";
type: "u8";
}, {
docs: ["When the fleet started participation in the `Starbase` upgrade."];
name: "startUpgrade";
type: "i64";
}, {
docs: ["When the fleet completes participation in the `Starbase` upgrade. This is a \"potential\" end time, constrained by max resources or user decision.", "If `upgrade_state` is set to `NotFullyFilled`, this is set to the max duration in upgrading state with the partial ingredients deposited."];
name: "endUpgrade";
type: "i64";
}, {
docs: ["used to check if expected inputs have been supplied"];
name: "checksum";
type: {
array: ["u8", 16];
};
}];
kind: "struct";
};
}, {
docs: ["The upgrade state for one SB lvl"];
name: "StarbaseUpgradeLevelState";
type: {
kind: "enum";
variants: [{
name: "NotStarted";
}, {
name: "Started";
}, {
fields: [{
docs: ["Timestamp of the upgrade completion"];
name: "timestamp";
type: "i64";
}];
name: "Finished";
}];
};
}, {
docs: ["`Starbase` upgrade task item"];
name: "StarbaseUpgradeTask";
type: {
fields: [{
docs: ["The `Fleet` Pubkey"];
name: "fleet";
type: "publicKey";
}, {
docs: ["The timestamp at which the fleet completes its contribution to the upgrade"];
name: "completionTime";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to withdraw an ingredient"];
name: "StarbaseWithdrawCraftingIngredientInput";
type: {
fields: [{
docs: ["the amount of ingredient to withdraw"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the recipe ingredient"];
name: "ingredientIndex";
type: "u16";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `StartMiningAsteroid`"];
name: "StartMiningAsteroidInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize an `SubwarpMovement`"];
name: "StartSubwarpInput";
type: {
fields: [{
docs: ["The destination coordinates"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `StopMiningAsteroidInput`"];
name: "StopMiningAsteroidInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to stop an `SubwarpMovement`"];
name: "StopSubwarpInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `TransferCargoWithinFleet`"];
name: "TransferCargoWithinFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update instruction"];
name: "UpdateGameInput";
type: {
fields: [{
docs: ["Cargo settings"];
name: "cargo";
type: "u8";
}, {
docs: ["Crafting settings"];
name: "crafting";
type: "u8";
}, {
docs: ["Mints"];
name: "mints";
type: "u8";
}, {
docs: ["Vaults"];
name: "vaults";
type: "u8";
}, {
docs: ["Points settings"];
name: "points";
type: "u8";
}, {
docs: ["Data for risk zones"];
name: "riskZones";
type: {
option: {
defined: "RiskZonesDataUnpacked";
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update instruction"];
name: "UpdateGameStateInput";
type: {
fields: [{
docs: ["Fleet settings"];
name: "fleet";
type: {
option: {
defined: "FleetInput";
};
};
}, {
docs: ["Levers"];
name: "levers";
type: {
option: {
defined: "LeversInput";
};
};
}, {
docs: ["Set of derived sub-levers used in `calculate_base_emissions()`."];
name: "baseEmissionsBySizeUtil";
type: {
option: {
defined: "BaseEmissionsBySizeUtilInput";
};
};
}, {
docs: ["Miscellaneous settings"];
name: "misc";
type: {
option: {
defined: "MiscVariablesInput";
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "UpdateMineItemInput";
type: {
fields: [{
docs: ["The name of the `MineItem`"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["How hard it is to mine this item"];
name: "resourceHardness";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Planet"];
name: "UpdatePlanetInput";
type: {
fields: [{
docs: ["`Planet` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Planet` size"];
name: "size";
type: {
option: "u64";
};
}, {
docs: ["`Planet` max_hp"];
name: "maxHp";
type: {
option: "u64";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Resource"];
name: "UpdateResourceInput";
type: {
fields: [{
docs: ["`Resource` richness"];
name: "systemRichness";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `UpdateShipEscrow`"];
name: "UpdateShipEscrowInput";
type: {
fields: [{
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "UpdateShipFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u16";
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Ship"];
name: "UpdateShipInput";
type: {
fields: [{
docs: ["The `Ship` name/label"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: {
defined: "SizeClass";
};
}, {
docs: ["The stats for the ship"];
name: "stats";
type: {
defined: "ShipStatsUnpacked";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Star"];
name: "UpdateStarInput";
type: {
fields: [{
docs: ["`Star` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Star` size"];
name: "size";
type: {
option: "u64";
};
}, {
docs: ["`Star` type"];
name: "starType";
type: {
option: "u8";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update `Starbase`"];
name: "UpdateStarbaseInput";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
option: {
array: ["i64", 2];
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update SurveyDataUnitTracker"];
name: "UpdateSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: {
option: "u32";
};
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: {
option: "u16";
};
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage"];
name: "probability";
type: {
option: "u16";
};
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Token vaults"];
name: "Vaults";
type: {
fields: [{
docs: ["ATLAS token mint"];
name: "atlas";
type: "publicKey";
}, {
docs: ["POLIS token mint"];
name: "polis";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize a `WarpLane`"];
name: "WarpLaneInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["Index of the to_sector in `SectorConnections` of the from_sector"];
name: "toSectorIndex";
type: "u16";
}, {
docs: ["Index of the from_sector in `SectorConnections` of the to_sector"];
name: "fromSectorIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize a `WarpToCoordinate`"];
name: "WarpToCoordinateInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["The destination coordinates"];
name: "toSector";
type: {
array: ["i64", 2];
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `WithdrawCargoFromFleet`"];
name: "WithdrawCargoFromFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Wrapped `Ship` escrow info"];
name: "WrappedShipEscrow";
type: {
fields: [{
docs: ["The `Ship` account address"];
name: "ship";
type: "publicKey";
}, {
docs: ["The `Ship` token amount in escrow"];
name: "amount";
type: "u64";
}, {
docs: ["The update id for the `Ship`"];
name: "updateId";
type: "u64";
}];
kind: "struct";
};
}];
version: "0.1.0";
}
Type declaration
-
accounts: [{
docs: ["This account is used to store relevant information for a crafting process instance"];
name: "craftingInstance";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for the `Starbase`"];
name: "seqId";
type: "u16";
}, {
docs: ["The number of crew taking part in the crafting process"];
name: "numCrew";
type: "u64";
}, {
docs: ["The `StarbasePlayer` account address"];
name: "starbasePlayer";
type: "publicKey";
}, {
docs: ["The `CraftingProcess` account address"];
name: "craftingProcess";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Keeps track of a fleet while it is disbanded"];
name: "disbandedFleet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game id this belongs to."];
name: "gameId";
type: "publicKey";
}, {
docs: ["The owner's profile."];
name: "ownerProfile";
type: "publicKey";
}, {
docs: ["The `Starbase` at which the original `Fleet` was disbanded."];
name: "starbase";
type: "publicKey";
}, {
docs: ["The label or name of the disbanded fleet."];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["The `FleetShips` account belonging to the original `Fleet` that was disbanded."];
name: "fleetShips";
type: "publicKey";
}, {
docs: ["The disbanded fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A `SAGE` fleet."];
name: "fleet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game id this belongs to."];
name: "gameId";
type: "publicKey";
}, {
docs: ["The owner's profile."];
name: "ownerProfile";
type: "publicKey";
}, {
docs: ["Fleet Ships Key"];
name: "fleetShips";
type: "publicKey";
}, {
docs: ["The fleet's sub-authority.", "If [`Some`] will have the exclusive ability to interact with this fleet."];
name: "subProfile";
type: {
defined: "OptionalNonSystemPubkey";
};
}, {
docs: ["The authority for revoking a sun-authority."];
name: "subProfileInvalidator";
type: "publicKey";
}, {
docs: ["The label or name of the fleet."];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["The number of ships in the fleet."];
name: "shipCounts";
type: {
defined: "ShipCounts";
};
}, {
docs: ["The time at which the warp cooldown expires"];
name: "warpCooldownExpiresAt";
type: "i64";
}, {
docs: ["The time at which the scan cooldown expires"];
name: "scanCooldownExpiresAt";
type: "i64";
}, {
docs: ["The fleet's stats."];
name: "stats";
type: {
defined: "ShipStats";
};
}, {
docs: ["The Cargo pod representing the fleet's cargo hold"];
name: "cargoHold";
type: "publicKey";
}, {
docs: ["The Cargo pod representing the fleet's fuel tank"];
name: "fuelTank";
type: "publicKey";
}, {
docs: ["The Cargo pod representing the fleet's ammo bank"];
name: "ammoBank";
type: "publicKey";
}, {
docs: ["The update id for the `Fleet`"];
name: "updateId";
type: "u64";
}, {
docs: ["The fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Keeps track of a the individual ships that make up a fleet"];
name: "fleetShips";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The `Fleet` account this belongs to"];
name: "fleet";
type: "publicKey";
}, {
docs: ["List length of `RemainingData`"];
name: "fleetShipsInfoCount";
type: "u32";
}, {
docs: ["The disbanded fleet's bump."];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Global Game Configuration variables"];
name: "game";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for updates."];
name: "updateId";
type: "u64";
}, {
docs: ["The [`Profile`](player_profile::state::Profile) that handles the sector program permissions"];
name: "profile";
type: "publicKey";
}, {
docs: ["The associated `GameState` account."];
name: "gameState";
type: "publicKey";
}, {
docs: ["Points setting"];
name: "points";
type: {
defined: "Points";
};
}, {
docs: ["Cargo settings"];
name: "cargo";
type: {
defined: "Cargo";
};
}, {
docs: ["Crafting settings"];
name: "crafting";
type: {
defined: "Crafting";
};
}, {
docs: ["mint related settings"];
name: "mints";
type: {
defined: "Mints";
};
}, {
docs: ["vault related settings"];
name: "vaults";
type: {
defined: "Vaults";
};
}, {
docs: ["Data for risk zones"];
name: "riskZones";
type: {
defined: "RiskZonesData";
};
}];
kind: "struct";
};
}, {
docs: ["Keeps track of variables that may change frequently during a `Game` session"];
name: "gameState";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The sequence id for updates"];
name: "updateId";
type: "u64";
}, {
docs: ["The `Game` that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["Fleet settings"];
name: "fleet";
type: {
defined: "FleetInfo";
};
}, {
docs: ["Global levers"];
name: "levers";
type: {
defined: "Levers";
};
}, {
docs: ["Miscellaneous settings"];
name: "misc";
type: {
defined: "MiscVariables";
};
}, {
docs: ["PDA bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Represents a token registered as an item that can be mined"];
name: "mineItem";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id account this item is registered with"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The name of the `MineItem`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the mint representing the items mined"];
name: "mint";
type: "publicKey";
}, {
docs: ["The `MineItem` update id"];
name: "mineItemUpdateId";
type: "u64";
}, {
docs: ["How hard it is to mine this item -> Ranges from 1-10"];
name: "resourceHardness";
type: "u16";
}, {
docs: ["The number of resource accounts for this mine item"];
name: "numResourceAccounts";
type: "u64";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Planet"];
name: "planet";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The name of this `Planet`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the `Game` that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["sub_coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["the planet type"];
name: "planetType";
type: "u8";
}, {
docs: ["the planet position"];
name: "position";
type: "u8";
}, {
docs: ["size"];
name: "size";
type: "u64";
}, {
docs: ["maximum health"];
name: "maxHp";
type: "u64";
}, {
docs: ["The current health of the `Planet`."];
name: "currentHealth";
type: "u64";
}, {
docs: ["the cumulative amount mined from this `Asteroid`"];
name: "amountMined";
type: "u64";
}, {
docs: ["the number of resources at this `Asteroid`"];
name: "numResources";
type: "u8";
}, {
docs: ["the number of entities currently mining at this `Asteroid`"];
name: "numMiners";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Represents a mine-able item existing at a particular location (e.g. a planet)"];
name: "resource";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id pubkey"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the location's pubkey"];
name: "location";
type: "publicKey";
}, {
docs: ["the mine item pubkey"];
name: "mineItem";
type: "publicKey";
}, {
docs: ["the location type"];
name: "locationType";
type: "u8";
}, {
docs: ["How abundant the resource is at the location -> Ranges from 1-5"];
name: "systemRichness";
type: "u16";
}, {
docs: ["the cumulative amount mined from this resource"];
name: "amountMined";
type: "u64";
}, {
docs: ["the number of entities currently mining this resource"];
name: "numMiners";
type: "u64";
}, {
docs: ["The `MineItem` update id"];
name: "mineItemUpdateId";
type: "u64";
}, {
docs: ["The `Resource` update id"];
name: "resourceUpdateId";
type: "u64";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A `SAGE` player's profile."];
name: "sagePlayerProfile";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The `Profile` key"];
name: "playerProfile";
type: "publicKey";
}, {
docs: ["The id of the `Game`"];
name: "gameId";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Sector"];
name: "sector";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["coordinates as [x, y]"];
name: "coordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The discoverer of this sector"];
name: "discoverer";
type: "publicKey";
}, {
docs: ["The name of this sector"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the number of stars in this system"];
name: "numStars";
type: "u16";
}, {
docs: ["the number of planets in this system"];
name: "numPlanets";
type: "u16";
}, {
docs: ["the number of moons in this system"];
name: "numMoons";
type: "u16";
}, {
docs: ["the number of num_asteroid belts in this system"];
name: "numAsteroidBelts";
type: "u16";
}, {
docs: ["the number of connections in this system"];
name: "numConnections";
type: "u16";
}, {
docs: ["PDA bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["This account represents a Ship"];
name: "ship";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id account this Ship is registered with"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the mint representing the Ship"];
name: "mint";
type: "publicKey";
}, {
docs: ["The name of this `Ship`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: "u8";
}, {
docs: ["The ship's stats"];
name: "stats";
type: {
defined: "ShipStats";
};
}, {
docs: ["The `update_id` for the `Ship`"];
name: "updateId";
type: "u64";
}, {
docs: ["The max `Game` `update_id` that the `Ship` is valid for"];
name: "maxUpdateId";
type: "u64";
}, {
docs: ["the next `Ship` account to use when this `Ship` is updated"];
name: "next";
type: {
defined: "OptionalNonSystemPubkey";
};
}];
kind: "struct";
};
}, {
docs: ["`Star` account"];
name: "star";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The name of this `Star`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["size"];
name: "size";
type: "u64";
}, {
docs: ["sub_coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["the star type"];
name: "starType";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Starbase"];
name: "starbase";
type: {
fields: [{
docs: ["The data version of this `Starbase` account."];
name: "version";
type: "u8";
}, {
docs: ["the game_id that this `Starbase` belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["the sector that this `Starbase` belongs to"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["the [`CraftingFacility`] to use for crafting at this `Starbase`"];
name: "craftingFacility";
type: "publicKey";
}, {
docs: ["The name of this `Starbase`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["coordinates as [x, y]"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The faction of the `Starbase`."];
name: "faction";
type: "u8";
}, {
docs: ["bump for PDA"];
name: "bump";
type: "u8";
}, {
docs: ["The sequence id for the `Starbase`"];
name: "seqId";
type: "u16";
}, {
docs: ["The state of the `Starbase`. Is a [`StarbaseState`]."];
name: "state";
type: "u8";
}, {
docs: ["The level of the `Starbase`."];
name: "level";
type: "u8";
}, {
docs: ["The `Starbase` health points."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position (`sector::state::Ring`) available for this `Starbase`"];
name: "sectorRingAvailable";
type: "u8";
}, {
docs: ["The `Starbase` upgrade state using `StarbaseUpgradeLevelState`"];
name: "upgradeState";
type: "i64";
}, {
docs: ["The last time the starbase was built or destroyed"];
name: "builtDestroyedTimestamp";
type: "i64";
}, {
docs: ["The number of fleets currently upgrading the `Starbase`"];
name: "numUpgradingFleets";
type: "u64";
}, {
docs: ["The total rate at which the SB is currently upgrading"];
name: "totalUpgradeRate";
type: "u64";
}, {
docs: ["The total received amount of material for upgrading the `Starbase` until the `last_updated_rate_timestamp`"];
name: "receivedUpgradeMaterials";
type: "u64";
}, {
docs: ["The total required amount of material for upgrading the `Starbase`"];
name: "requiredUpgradeMaterials";
type: "u64";
}, {
docs: ["The last time the SB total upgrade rate was updated"];
name: "lastUpdatedRateTimestamp";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["The `SAGE` player info within a `Starbase`"];
name: "starbasePlayer";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The `Profile` key"];
name: "playerProfile";
type: "publicKey";
}, {
docs: ["The id of the `Game`"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The `Starbase` key"];
name: "starbase";
type: "publicKey";
}, {
docs: ["The `SagePlayerProfile` key"];
name: "sagePlayerProfile";
type: "publicKey";
}, {
docs: ["Bump of Account PDA"];
name: "bump";
type: "u8";
}, {
docs: ["List length of `RemainingData`"];
name: "shipEscrowCount";
type: "u32";
}, {
docs: ["The total crew members from the player's fleets at the `Starbase`"];
name: "totalCrew";
type: "u64";
}, {
docs: ["The number of crew members that is engaged/busy and not available"];
name: "busyCrew";
type: "u64";
}, {
docs: ["The `Game` update id"];
name: "updateId";
type: "u64";
}, {
docs: ["Number of updated items in `RemainingData` list", "This will be `ship_escrow_count` when all ships in escrow are up-to-date"];
name: "updatedShipEscrowCount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Survey Data Unit (SDU) Tracker"];
name: "surveyDataUnitTracker";
type: {
fields: [{
docs: ["The data version of this account."];
name: "version";
type: "u8";
}, {
docs: ["The game_id that this belongs to"];
name: "gameId";
type: "publicKey";
}, {
docs: ["The Survey Data Unit Mint"];
name: "mint";
type: "publicKey";
}, {
docs: ["The signer for this account"];
name: "signer";
type: "publicKey";
}, {
docs: ["The signer for this account"];
name: "signerBump";
type: "u8";
}, {
docs: ["Survey Data Units found in the last `MAX_SECONDS` seconds", "This is structured such that the 0th index represents SDUs found `MAX_SECONDS` seconds ago,", "and the last index represents SDUs found in the most recent second", "NB: the only reason why this is `[u32; MAX_SECONDS]` and not `[u16; MAX_SECONDS]` is to prevent overflows"];
name: "surveyDataUnitBySecond";
type: {
array: ["u32", 60];
};
}, {
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: "u32";
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: "u16";
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage", "10,000 == 100%, 100 = 1%, etc."];
name: "probability";
type: "u16";
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: "u16";
}, {
docs: ["The number of Sectors that can be scanned"];
name: "numSectors";
type: "u16";
}, {
docs: ["The last time the `SurveyDataUnitTracker` was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}]
-
errors: [{
code: 6000;
msg: "Incorrect admin address.";
name: "IncorrectAdminAddress";
}, {
code: 6001;
msg: "An expected remaining account is missing.";
name: "MissingRemainingAccount";
}, {
code: 6002;
msg: "No Stargate connections available.";
name: "NoStargateConnectionsAvailable";
}, {
code: 6003;
msg: "The provided Stargates are not connected.";
name: "StargatesNotConnected";
}, {
code: 6004;
msg: "Invalid Planet Type.";
name: "InvalidPlanetType";
}, {
code: 6005;
msg: "Invalid Ring Type.";
name: "InvalidRingType";
}, {
code: 6006;
msg: "Invalid Star Type.";
name: "InvalidStarType";
}, {
code: 6007;
msg: "Invalid Or Inactive Game";
name: "InvalidOrInactiveGame";
}, {
code: 6008;
msg: "Invalid Ship Size Class.";
name: "InvalidShipSizeClass";
}, {
code: 6009;
msg: "Incorrect Account Size.";
name: "IncorrectAccountSize";
}, {
code: 6010;
msg: "The update_id is mismatched.";
name: "UpdateIdMismatch";
}, {
code: 6011;
msg: "The account is already active.";
name: "AlreadyActive";
}, {
code: 6012;
msg: "The account is inactive.";
name: "InactiveAccount";
}, {
code: 6013;
msg: "The game account is invalid.";
name: "InvalidGame";
}, {
code: 6014;
msg: "The game state account is invalid.";
name: "InvalidGameState";
}, {
code: 6015;
msg: "The sector account is invalid.";
name: "InvalidSector";
}, {
code: 6016;
msg: "Incorrect sage game_id account address.";
name: "IncorrectVarsAccountAddress";
}, {
code: 6017;
msg: "Insufficient Fuel to complete movement";
name: "InsufficientFuel";
}, {
code: 6018;
msg: "Distance of movement is greater than the allowed maximum";
name: "DistanceGreaterThanMax";
}, {
code: 6019;
msg: "Numeric overflow";
name: "NumericOverflow";
}, {
code: 6020;
msg: "Invalid Location Type.";
name: "InvalidLocationType";
}, {
code: 6021;
msg: "The provided location type is not supported.";
name: "LocationTypeNotSupported";
}, {
code: 6022;
msg: "Incorrect mine item address.";
name: "IncorrectMineItem";
}, {
code: 6023;
msg: "Incorrect authority address.";
name: "IncorrectAuthorityAddress";
}, {
code: 6024;
msg: "Incorrect resource address.";
name: "IncorrectResourceAddress";
}, {
code: 6025;
msg: "Incorrect mint authority.";
name: "IncorrectMintAuthority";
}, {
code: 6026;
msg: "The mint authority should exist.";
name: "MintAuthorityIsNone";
}, {
code: 6027;
msg: "The current fleet state is not valid.";
name: "InvalidCurrentFleetState";
}, {
code: 6028;
msg: "The current starbase state is not valid.";
name: "InvalidCurrentStarbaseState";
}, {
code: 6029;
msg: "Authority mismatch";
name: "AuthorityMismatch";
}, {
code: 6030;
msg: "Mint mismatch";
name: "MintMismatch";
}, {
code: 6031;
msg: "Incorrect token address.";
name: "TokenMismatch";
}, {
code: 6032;
msg: "Owner mismatch";
name: "OwnerMismatch";
}, {
code: 6033;
msg: "Game ID mismatch";
name: "GameMismatch";
}, {
code: 6034;
msg: "Profile mismatch";
name: "ProfileMismatch";
}, {
code: 6035;
msg: "SagePlayerProfile mismatch";
name: "SagePlayerProfileMismatch";
}, {
code: 6036;
msg: "Starbase mismatch";
name: "StarbaseMismatch";
}, {
code: 6037;
msg: "Faction mismatch";
name: "FactionMismatch";
}, {
code: 6038;
msg: "Sequence id mismatch";
name: "SeqIdMismatch";
}, {
code: 6039;
msg: "Ship mismatch";
name: "ShipMismatch";
}, {
code: 6040;
msg: "Cargo Pod mismatch";
name: "CargoPodMismatch";
}, {
code: 6041;
msg: "Planet mismatch";
name: "PlanetMismatch";
}, {
code: 6042;
msg: "MineItem mismatch";
name: "MineItemMismatch";
}, {
code: 6043;
msg: "Location mismatch";
name: "LocationMismatch";
}, {
code: 6044;
msg: "Escrow key not found in remaining data";
name: "InvalidEscrowKey";
}, {
code: 6045;
msg: "Insufficient Ship token amount";
name: "InvalidShipAmount";
}, {
code: 6046;
msg: "Insufficient Ship hangar space amount";
name: "InvalidShipHangarSpaceAmount";
}, {
code: 6047;
msg: "Invalid crew amount";
name: "InvalidCrewAmount";
}, {
code: 6048;
msg: "Invalid state";
name: "InvalidState";
}, {
code: 6049;
msg: "Invalid distance";
name: "InvalidDistance";
}, {
code: 6050;
msg: "Not at central space station";
name: "NotAtCentralSpaceStation";
}, {
code: 6051;
msg: "The instruction does not expect a ship account";
name: "ShipNotExpected";
}, {
code: 6052;
msg: "Address mismatch";
name: "AddressMismatch";
}, {
code: 6053;
msg: "Invalid sector connection";
name: "InvalidSectorConnection";
}, {
code: 6054;
msg: "Invalid Starbase level";
name: "InvalidStarbaseLevel";
}, {
code: 6055;
msg: "Invalid Starbase upgrade recipe category";
name: "InvalidStarbaseUpgradeRecipeCategory";
}, {
code: 6056;
msg: "Hangar upgrade not Possible";
name: "HangarUpgradeNotPossible";
}, {
code: 6057;
msg: "Disbanded fleet not empty";
name: "DisbandedFleetNotEmpty";
}, {
code: 6058;
msg: "Faulty movement";
name: "FaultyMovement";
}, {
code: 6059;
msg: "Incorrect Account Type for Handle Raw";
name: "IncorrectHandleRawAccount";
}, {
code: 6060;
msg: "Insufficient Ship Cargo Capacity";
name: "InsufficientShipCargoCapacity";
}, {
code: 6061;
msg: "Fleet does not need update";
name: "FleetDoesNotNeedUpdate";
}, {
code: 6062;
msg: "Must disband fleet";
name: "MustDisbandFleet";
}, {
code: 6063;
msg: "Cannot force-disband fleet";
name: "CannotForceDisbandFleet";
}, {
code: 6064;
msg: "Ship mismatch or already updated";
name: "ShipMismatchOrAlreadyUpdated";
}, {
code: 6065;
msg: "Ship already updated";
name: "ShipAlreadyUpdated";
}, {
code: 6066;
msg: "Invalid next ship address";
name: "InvalidNextShipAddress";
}, {
code: 6067;
msg: "Ship is not valid for forced disband of fleet";
name: "InvalidShipForForcedDisband";
}, {
code: 6068;
msg: "Warp range exceeded";
name: "InvalidWarpRange";
}, {
code: 6069;
msg: "Invalid Ingredient";
name: "InvalidIngredient";
}, {
code: 6070;
msg: "Starbase Upgrade Not in progress";
name: "StarbaseUpgradeNotInProgress";
}, {
code: 6071;
msg: "Fleet Not in queue";
name: "FleetNotInQueue";
}, {
code: 6072;
msg: "Need to clean Starbase upgrade queue";
name: "NeedCleanStarbaseUpgradeQueue";
}, {
code: 6073;
msg: "Planet Not Reachable";
name: "PlanetNotReachable";
}, {
code: 6074;
msg: "Respawn Not Possible";
name: "RespawnNotPossible";
}, {
code: 6075;
msg: "Cannot enter enemy faction's Security Zone";
name: "InvalidMovement";
}, {
code: 6076;
msg: "The Cargo Pod contains a non-zero amount of the Cargo Type";
name: "CargoAmountAboveZero";
}, {
code: 6077;
msg: "The Cargo Pod is invalid";
name: "InvalidCargoPod";
}, {
code: 6078;
msg: "Invalid Zone Coordinates";
name: "InvalidZoneCoordinates";
}, {
code: 6079;
msg: "Respawn time not elapsed";
name: "RespawnTimeNotElapsed";
}, {
code: 6080;
msg: "The Account is Active";
name: "ActiveAccount";
}, {
code: 6081;
msg: "Starbase Player mismatch";
name: "StarbasePlayerMismatch";
}, {
code: 6082;
msg: "The account has already been processed";
name: "AlreadyProcessed";
}, {
code: 6083;
msg: "The amount is invalid";
name: "InvalidAmount";
}, {
code: 6084;
msg: "Warp is on cooldown";
name: "WarpIsOnCooldown";
}, {
code: 6085;
msg: "Program Mismatch";
name: "ProgramMismatch";
}, {
code: 6086;
msg: "Current Instruction Is Not Only Instruction";
name: "MustBeOnlyInstruction";
}, {
code: 6087;
msg: "Invalid Time";
name: "InvalidTime";
}, {
code: 6088;
msg: "Scanning is on cooldown";
name: "ScanIsOnCooldown";
}, {
code: 6089;
msg: "Invalid Fleet Size";
name: "InvalidFleetSize";
}, {
code: 6090;
msg: "The feature is inactive";
name: "InactiveFeature";
}, {
code: 6091;
msg: "Zero ships added to fleet";
name: "ZeroShipsAdded";
}, {
code: 6092;
msg: "Generic invalid data";
name: "GenericInvalid";
}]
-
instructions: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}];
args: [{
name: "input";
type: {
defined: "ManageGameInput";
};
}];
name: "activateGameState";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for adding the connection"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The first connected sector"];
isMut: true;
isSigner: false;
name: "sector1";
}, {
docs: ["The second connected sector"];
isMut: true;
isSigner: false;
name: "sector2";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
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: "addConnection";
}, {
accounts: [{
docs: ["The fleet owner's profile."];
isMut: false;
isSigner: false;
name: "ownerProfile";
}, {
docs: ["The key on the owner profile with renting permissions."];
isMut: false;
isSigner: true;
name: "ownerKey";
}, {
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "invalidator";
}, {
docs: ["The profile to rent to."];
isMut: false;
isSigner: false;
name: "subProfile";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "ownerKeyIndex";
type: "u16";
}];
name: "addRental";
}, {
accounts: [{
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Origin Token Account"];
isMut: true;
isSigner: false;
name: "originTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "AddShipEscrowInput";
};
}];
name: "addShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The funder for the new `Fleet`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "AddShipToFleetInput";
};
}];
name: "addShipToFleet";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to cancel"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCancelCraftingProcessInput";
};
}];
name: "cancelCraftingProcess";
}, {
accounts: [{
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "subProfileInvalidator";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The new sub profile"];
isMut: false;
isSigner: false;
name: "newSubProfile";
}];
args: [];
name: "changeRental";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The token mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseClaimCraftingNonConsumablesInput";
};
}];
name: "claimCraftingNonConsumables";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingProcess`] account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting [`Recipe`]"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The craftable item"];
isMut: false;
isSigner: false;
name: "craftableItem";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source account of the tokens - owner should be `craftable_item`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseClaimCraftingOutputInput";
};
}];
name: "claimCraftingOutputs";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to close"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe account"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCloseCraftingProcessInput";
};
}];
name: "closeCraftingProcess";
}, {
accounts: [{
docs: ["The key on the player profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The player profile."];
isMut: false;
isSigner: false;
name: "playerProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}];
args: [{
name: "input";
type: {
defined: "CloseDisbandedFleetInput";
};
}];
name: "closeDisbandedFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The cargo pod, owned by the fleet"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The destination token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "token";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "closeFleetCargoPodTokenAccount";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "token";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "closeStarbaseCargoTokenAccount";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new `GameState`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The old [`GameState`] account"];
isMut: false;
isSigner: false;
name: "oldGameState";
}, {
docs: ["The [`GameState`] account", "This will and should fail if there already exists a `GameState`for the desired `update_id`"];
isMut: true;
isSigner: false;
name: "newGameState";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "ManageGameInput";
};
}];
name: "copyGameState";
}, {
accounts: [{
docs: ["The funder for the new crafting process"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCreateCargoPodInput";
};
}];
name: "createCargoPod";
}, {
accounts: [{
docs: ["The funder for the new crafting process"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account to initialize"];
isMut: true;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The `CraftingFacility` account"];
isMut: true;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account (NOT initialized)"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The crafting domain"];
isMut: false;
isSigner: false;
name: "craftingDomain";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseCreateCraftingProcessInput";
};
}];
name: "createCraftingProcess";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder for the new `Fleet`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The new fleet `cargo_hold` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The new fleet `fuel_tank` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The new fleet `ammo_bank` cargo pod (not initialized)"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
docs: ["The [`Ship`] Account - represents the first ship in the new fleet"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "CreateFleetInput";
};
}];
name: "createFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "DepositCargoToFleetInput";
};
}];
name: "depositCargoToFleet";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source token account - owned by the `key`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "CargoToGameInput";
};
}];
name: "depositCargoToGame";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingFacility`](crafting::CraftingFacility) account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The source cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source account of the tokens - owner should be `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseDepositCraftingIngredientInput";
};
}];
name: "depositCraftingIngredient";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The Location address"];
isMut: true;
isSigner: false;
name: "location";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterResource";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "deregisterStarbase";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}];
args: [{
name: "input";
type: {
defined: "DeregisterSurveyDataUnitTrackerInput";
};
}];
name: "deregisterSurveyDataUnitTracker";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "DisbandFleetInput";
};
}];
name: "disbandFleet";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "DisbandedFleetToEscrowInput";
};
}];
name: "disbandedFleetToEscrow";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing funds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The mine item token bank to drain"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Where to send tokens from the bank"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "drainMineItemBank";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the closing rent refunds go."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The `SurveyDataUnitTracker` signer"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTrackerSigner";
}, {
docs: ["The SDU token bank to drain"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Where to send tokens from the bank"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "KeyIndexInput";
};
}];
name: "drainSurveyDataUnitsBank";
}, {
accounts: [{
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
args: [];
name: "fleetStateHandler";
}, {
accounts: [{
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The new [`DisbandedFleet`] account"];
isMut: true;
isSigner: false;
name: "disbandedFleet";
}, {
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: true;
isSigner: false;
name: "ammoBank";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`Ship`]", "Must provide at least one ship that is invalid for this instruction"];
isMut: false;
isSigner: false;
name: "ship";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "ForcedDisbandFleetInput";
};
}];
name: "forceDisbandFleet";
}, {
accounts: [{
docs: ["The `Fleet` Account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The `cargo_type` for the token"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The mint of the token account"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "forceDropFleetCargo";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "idleToLoadingBay";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["Source Token account for ATLAS, owned by the player"];
isMut: true;
isSigner: false;
name: "atlasTokenFrom";
}, {
docs: ["Vault Token account for ATLAS"];
isMut: true;
isSigner: false;
name: "atlasTokenTo";
}, {
docs: ["The Solana Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "IdleToRespawnInput";
};
}];
name: "idleToRespawn";
}, {
accounts: [{
docs: ["The entity calling this instruction"];
isMut: true;
isSigner: true;
name: "signer";
}, {
docs: ["The sector permissions [`Profile`]"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: true;
name: "gameId";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initGame";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new `GameState`"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "InitGameStateInput";
};
}];
name: "initGameState";
}, {
accounts: [{
docs: ["This is a signer to help make sure the fleet won't be locked."];
isMut: false;
isSigner: true;
name: "subProfileInvalidator";
}, {
docs: ["The fleet to rent out."];
isMut: true;
isSigner: false;
name: "fleet";
}];
args: [];
name: "invalidateRental";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The current [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "invalidateShip";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "loadingBayToIdle";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}, {
docs: ["The fuel tank cargo pod"];
isMut: false;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The source token account for fuel - owned by the `fuel_tank`"];
isMut: false;
isSigner: false;
name: "fuelTokenFrom";
}, {
docs: ["Source Token account for ATLAS, owned by the player"];
isMut: true;
isSigner: false;
name: "atlasTokenFrom";
}, {
docs: ["Vault Token account for ATLAS"];
isMut: true;
isSigner: false;
name: "atlasTokenTo";
}, {
docs: ["The Solana Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "MineAsteroidToRespawnInput";
};
}];
name: "mineAsteroidToRespawn";
}, {
accounts: [{
docs: ["The key authorized for the cpi points instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The points permissions [`Profile`](player_profile::state::Profile)"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The `PointCategory`"];
isMut: false;
isSigner: false;
name: "pointsCategory";
}, {
docs: ["The `PointsModifier` account to be inited in Points CPI"];
isMut: true;
isSigner: false;
name: "pointsModifierAccount";
}, {
docs: ["The points program"];
isMut: false;
isSigner: false;
name: "pointsProgram";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "game";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterFleetsPointsModifierInput";
};
}];
name: "registerFleetsPointModifier";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new mine item"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The mint address representing the mine item"];
isMut: true;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterMineItemInput";
};
}];
name: "registerMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: true;
name: "planet";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterPlanetInput";
};
}];
name: "registerPlanet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new resource"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The Location address"];
isMut: true;
isSigner: false;
name: "location";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterResourceInput";
};
}];
name: "registerResource";
}, {
accounts: [{
docs: ["The player permissions [`Profile`]"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The funder for the new profile"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The `SagePlayerProfile` account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "registerSagePlayerProfile";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new sector"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The discoverer of this sector"];
isMut: false;
isSigner: false;
name: "discoverer";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "coordinates";
type: {
array: ["i64", 2];
};
}, {
name: "name";
type: {
array: ["u8", 64];
};
}, {
name: "keyIndex";
type: "u16";
}];
name: "registerSector";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Ship`] account"];
isMut: true;
isSigner: true;
name: "ship";
}, {
docs: ["The mint address representing the [`Ship`]"];
isMut: false;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterShipInput";
};
}];
name: "registerShip";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder - pays for account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Star`] account"];
isMut: true;
isSigner: true;
name: "star";
}, {
docs: ["The [`Sector`] account"];
isMut: true;
isSigner: false;
name: "sector";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterStarInput";
};
}];
name: "registerStar";
}, {
accounts: [{
docs: ["The funder for the new star base"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`Sector`] account"];
isMut: false;
isSigner: false;
name: "sector";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameStateAndProfile";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterStarbaseInputUnpacked";
};
}];
name: "registerStarbase";
}, {
accounts: [{
docs: ["The funder -- pays account rent"];
isMut: true;
isSigner: true;
name: "funder";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: false;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The faction that the player belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] account to initialize"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "registerStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new mine item"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The mint for the new `SurveyDataUnitTracker`"];
isMut: false;
isSigner: false;
name: "mint";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RegisterSurveyDataUnitTrackerInput";
};
}];
name: "registerSurveyDataUnitTracker";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The cargo pod (should be empty)"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseRemoveCargoPodInput";
};
}];
name: "removeCargoPod";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["Where the rent refund funds from the connections go to."];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The first sector to remove from"];
isMut: true;
isSigner: false;
name: "sector1";
}, {
docs: ["The second sector to remove from"];
isMut: true;
isSigner: false;
name: "sector2";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "sector1Index";
type: "u16";
}, {
name: "sector2Index";
type: "u16";
}, {
name: "keyIndex";
type: "u16";
}];
name: "removeConnection";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Destination Token Account"];
isMut: true;
isSigner: false;
name: "destinationTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RemoveShipEscrowInput";
};
}];
name: "removeInvalidShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The [`SagePlayerProfile`] account"];
isMut: true;
isSigner: false;
name: "sagePlayerProfile";
}, {
docs: ["The Destination Token Account"];
isMut: true;
isSigner: false;
name: "destinationTokenAccount";
}, {
docs: ["The [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "ship";
}, {
docs: ["The Escrow Token Account"];
isMut: true;
isSigner: false;
name: "shipEscrowTokenAccount";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "RemoveShipEscrowInput";
};
}];
name: "removeShipEscrow";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The fleet `cargo_hold` cargo pod"];
isMut: false;
isSigner: false;
name: "cargoHold";
}, {
docs: ["The fleet `fuel_tank` cargo pod"];
isMut: false;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The fleet `ammo_bank` cargo pod"];
isMut: false;
isSigner: false;
name: "ammoBank";
}];
args: [{
name: "input";
type: {
defined: "RespawnToLoadingBayInput";
};
}];
name: "respawnToLoadingBay";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}, {
docs: ["The `SurveyDataUnitTracker` signer"];
isMut: false;
isSigner: false;
name: "surveyDataUnitTrackerSigner";
}, {
docs: ["The general cargo hold cargo pod for the fleet"];
isMut: true;
isSigner: false;
name: "cargoHold";
}, {
docs: ["Source token account for the SDU, owned by `survey_data_unit_tracker_signer`"];
isMut: true;
isSigner: false;
name: "sduTokenFrom";
}, {
docs: ["Destination token account for the SDU, owned by cargo_hold"];
isMut: true;
isSigner: false;
name: "sduTokenTo";
}, {
docs: ["Token account for repair kit, owned by fleet"];
isMut: true;
isSigner: false;
name: "repairKitTokenFrom";
}, {
docs: ["The food token mint"];
isMut: true;
isSigner: false;
name: "repairKitMint";
}, {
docs: ["The cargo type of the SDU"];
isMut: false;
isSigner: false;
name: "sduCargoType";
}, {
docs: ["The cargo type of Repair Kits"];
isMut: false;
isSigner: false;
name: "repairKitCargoType";
}, {
docs: ["The cargo stats definition"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The cargo program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["Solana Instructions Sysvar"];
isMut: false;
isSigner: false;
name: "instructionsSysvar";
}, {
docs: ["Solana recent slothashes"];
isMut: false;
isSigner: false;
name: "recentSlothashes";
}];
args: [{
name: "input";
type: {
defined: "ScanForSurveyDataUnitsInput";
};
}];
name: "scanForSurveyDataUnits";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The current [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}, {
docs: ["The next [`Ship`] account"];
isMut: true;
isSigner: false;
name: "nextShip";
}];
args: [{
name: "keyIndex";
type: "u16";
}];
name: "setNextShip";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingProcess`] account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The crafting [`Recipe`]"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The `CraftingFacility` account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseStartCraftingProcessInput";
};
}];
name: "startCraftingProcess";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}];
args: [{
name: "input";
type: {
defined: "StartMiningAsteroidInput";
};
}];
name: "startMiningAsteroid";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}];
args: [{
name: "input";
type: {
defined: "StartSubwarpInput";
};
}];
name: "startSubwarp";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The cargo type account for fuel"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The mint of the token account"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StopMiningAsteroidInput";
};
}];
name: "stopMiningAsteroid";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}];
args: [{
name: "input";
type: {
defined: "StopSubwarpInput";
};
}];
name: "stopSubwarp";
}, {
accounts: [{
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}];
args: [];
name: "syncResource";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [];
name: "syncStarbasePlayer";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseTransferCargoInput";
};
}];
name: "transferCargoAtStarbase";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The origin cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "TransferCargoWithinFleetInput";
};
}];
name: "transferCargoWithinFleet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: true;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}];
args: [{
name: "input";
type: {
defined: "UpdateGameInput";
};
}];
name: "updateGame";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`GameState`] account"];
isMut: true;
isSigner: false;
name: "gameState";
}];
args: [{
name: "input";
type: {
defined: "UpdateGameStateInput";
};
}];
name: "updateGameState";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`MineItem`] account"];
isMut: true;
isSigner: false;
name: "mineItem";
}];
args: [{
name: "input";
type: {
defined: "UpdateMineItemInput";
};
}];
name: "updateMineItem";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Planet`] account"];
isMut: true;
isSigner: false;
name: "planet";
}];
args: [{
name: "input";
type: {
defined: "UpdatePlanetInput";
};
}];
name: "updatePlanet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`MineItem`] account"];
isMut: false;
isSigner: false;
name: "mineItem";
}, {
docs: ["The [`Resource`] account"];
isMut: true;
isSigner: false;
name: "resource";
}];
args: [{
name: "input";
type: {
defined: "UpdateResourceInput";
};
}];
name: "updateResource";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Ship`] account"];
isMut: true;
isSigner: false;
name: "ship";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipInput";
};
}];
name: "updateShip";
}, {
accounts: [{
docs: ["The old [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "oldShip";
}, {
docs: ["The address indicated as `next` in the `old_ship` account"];
isMut: false;
isSigner: false;
name: "next";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: true;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipEscrowInput";
};
}];
name: "updateShipEscrow";
}, {
accounts: [{
docs: ["The [`Fleet`] account"];
isMut: true;
isSigner: false;
name: "fleet";
}, {
docs: ["The [`FleetShips`] account"];
isMut: true;
isSigner: false;
name: "fleetShips";
}, {
docs: ["The old [`Ship`] Account"];
isMut: false;
isSigner: false;
name: "oldShip";
}, {
docs: ["The address indicated as `next` in the `old_ship` account"];
isMut: false;
isSigner: false;
name: "next";
}, {
accounts: [{
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccounts";
}];
args: [{
name: "input";
type: {
defined: "UpdateShipFleetInput";
};
}];
name: "updateShipInFleet";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`Star`] account"];
isMut: true;
isSigner: false;
name: "star";
}];
args: [{
name: "input";
type: {
defined: "UpdateStarInput";
};
}];
name: "updateStar";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The funder for the new game"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The [`Starbase`] account"];
isMut: true;
isSigner: false;
name: "starbase";
}, {
docs: ["The Solana System program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "input";
type: {
defined: "UpdateStarbaseInput";
};
}];
name: "updateStarbase";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfile";
}, {
docs: ["The [`SurveyDataUnitTracker`] account"];
isMut: true;
isSigner: false;
name: "surveyDataUnitTracker";
}];
args: [{
name: "input";
type: {
defined: "UpdateSurveyDataUnitTrackerInput";
};
}];
name: "updateSurveyDataUnitTracker";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "fromStarbase";
}, {
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "toStarbase";
}, {
docs: ["The Sector account representing the fleet`s current sector"];
isMut: false;
isSigner: false;
name: "fromSector";
}, {
docs: ["The Sector account that `Fleet` will move to"];
isMut: false;
isSigner: false;
name: "toSector";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The `Cargo Type` Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The `CargoStatsDefinition` for the cargo type"];
isMut: false;
isSigner: false;
name: "statsDefinition";
}, {
docs: ["The fuel source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "fuelTokenFrom";
}, {
docs: ["Token Mint - The fuel mint"];
isMut: true;
isSigner: false;
name: "fuelMint";
}, {
docs: ["The fee source token account"];
isMut: true;
isSigner: false;
name: "feeTokenFrom";
}, {
docs: ["The fee destination token account"];
isMut: true;
isSigner: false;
name: "feeTokenTo";
}, {
docs: ["Fee Token Mint"];
isMut: true;
isSigner: false;
name: "feeMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WarpLaneInput";
};
}];
name: "warpLane";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
docs: ["The fuel tank cargo pod"];
isMut: true;
isSigner: false;
name: "fuelTank";
}, {
docs: ["The cargo type account for fuel"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "statsDefinition";
}, {
docs: ["The source token account - owned by the `fuel_tank`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["Token Mint - The fuel mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WarpToCoordinateInput";
};
}];
name: "warpToCoordinate";
}, {
accounts: [{
accounts: [{
accounts: [{
accounts: [{
docs: ["The key on the profile."];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The profile that owns the fleet."];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "owningProfileFaction";
}, {
docs: ["The fleet."];
isMut: true;
isSigner: false;
name: "fleet";
}];
name: "fleetAndOwner";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameFleetAndOwner";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsFleetAndOwner";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The origin cargo pod, owned by the fleet"];
isMut: true;
isSigner: false;
name: "cargoPodFrom";
}, {
docs: ["The destination cargo pod, owned by the Starbase player"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod_from`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "WithdrawCargoFromFleetInput";
};
}];
name: "withdrawCargoFromFleet";
}, {
accounts: [{
docs: ["The funds_to - receives rent refund"];
isMut: true;
isSigner: false;
name: "fundsTo";
}, {
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The new cargo pod"];
isMut: true;
isSigner: false;
name: "cargoPod";
}, {
docs: ["The cargo type account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
docs: ["The source token account - owned by the `cargo_pod`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination token account - owned by the `key`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The mint of the token accounts"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["Token Program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "CargoToGameInput";
};
}];
name: "withdrawCargoFromGame";
}, {
accounts: [{
accounts: [{
docs: ["The [`Starbase`] account"];
isMut: false;
isSigner: false;
name: "starbase";
}, {
docs: ["The [`StarbasePlayer`] Account"];
isMut: false;
isSigner: false;
name: "starbasePlayer";
}];
name: "starbaseAndStarbasePlayer";
}, {
docs: ["The [`CraftingInstance`] account"];
isMut: false;
isSigner: false;
name: "craftingInstance";
}, {
docs: ["The [`CraftingFacility`](crafting::CraftingFacility) account"];
isMut: false;
isSigner: false;
name: "craftingFacility";
}, {
docs: ["The crafting process account"];
isMut: true;
isSigner: false;
name: "craftingProcess";
}, {
docs: ["The destination cargo pod account"];
isMut: true;
isSigner: false;
name: "cargoPodTo";
}, {
docs: ["The crafting recipe"];
isMut: false;
isSigner: false;
name: "craftingRecipe";
}, {
docs: ["The Cargo Type Account"];
isMut: false;
isSigner: false;
name: "cargoType";
}, {
docs: ["The cargo stats definition account"];
isMut: false;
isSigner: false;
name: "cargoStatsDefinition";
}, {
accounts: [{
accounts: [{
docs: ["The key authorized for this instruction"];
isMut: false;
isSigner: true;
name: "key";
}, {
docs: ["The [`Profile`] account"];
isMut: false;
isSigner: false;
name: "profile";
}, {
docs: ["The faction that the profile belongs to."];
isMut: false;
isSigner: false;
name: "profileFaction";
}, {
docs: ["The [`Game`] account"];
isMut: false;
isSigner: false;
name: "gameId";
}];
name: "gameAndProfileAndFaction";
}, {
docs: ["The [`GameState`] account"];
isMut: false;
isSigner: false;
name: "gameState";
}];
name: "gameAccountsAndProfile";
}, {
docs: ["The source account of the tokens - owner should be `crafting_process`"];
isMut: true;
isSigner: false;
name: "tokenFrom";
}, {
docs: ["The destination account of the tokens - owner should be `cargo_pod_to`"];
isMut: true;
isSigner: false;
name: "tokenTo";
}, {
docs: ["The token mint"];
isMut: true;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The Crafting Program"];
isMut: false;
isSigner: false;
name: "craftingProgram";
}, {
docs: ["The Cargo Program"];
isMut: false;
isSigner: false;
name: "cargoProgram";
}, {
docs: ["The [Token] program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "input";
type: {
defined: "StarbaseWithdrawCraftingIngredientInput";
};
}];
name: "withdrawCraftingIngredient";
}]
-
name: "sage"
-
types: [{
docs: ["Struct for data input for `AddShipEscrow`"];
name: "AddShipEscrowInput";
type: {
fields: [{
docs: ["Amount of `Ship` tokens to transfer to escrow"];
name: "shipAmount";
type: "u64";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`", "Some index `WrappedShipEscrow`, or None for new `WrappedShipEscrow`"];
name: "index";
type: {
option: "u32";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "AddShipToFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u8";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: {
option: "u32";
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Type containing derived sub-levers used in `calculate_base_emissions()` discriminated by ship size"];
name: "BaseEmissionsBySizeUtil";
type: {
fields: [{
docs: ["xx_small"];
name: "xxSmall";
type: "u64";
}, {
docs: ["x_small"];
name: "xSmall";
type: "u64";
}, {
docs: ["small"];
name: "small";
type: "u64";
}, {
docs: ["medium"];
name: "medium";
type: "u64";
}, {
docs: ["large"];
name: "large";
type: "u64";
}, {
docs: ["capital"];
name: "capital";
type: "u64";
}, {
docs: ["commander"];
name: "commander";
type: "u64";
}, {
docs: ["titan"];
name: "titan";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update `base_emissions_by_size_util`"];
name: "BaseEmissionsBySizeUtilInput";
type: {
fields: [{
docs: ["xx_small"];
name: "xxSmall";
type: "u64";
}, {
docs: ["x_small"];
name: "xSmall";
type: "u64";
}, {
docs: ["small"];
name: "small";
type: "u64";
}, {
docs: ["medium"];
name: "medium";
type: "u64";
}, {
docs: ["large"];
name: "large";
type: "u64";
}, {
docs: ["capital"];
name: "capital";
type: "u64";
}, {
docs: ["commander"];
name: "commander";
type: "u64";
}, {
docs: ["titan"];
name: "titan";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Variables for the Cargo program"];
name: "Cargo";
type: {
fields: [{
docs: ["The cargo stats definition account"];
name: "statsDefinition";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["A ship's cargo stats"];
name: "CargoStats";
type: {
fields: [{
docs: ["the capacity of the ship's cargo hold"];
name: "cargoCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's fuel tank"];
name: "fuelCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's ammo bank"];
name: "ammoCapacity";
type: "u32";
}, {
docs: ["the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "ammoConsumptionRate";
type: "u32";
}, {
docs: ["the amount of food consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "foodConsumptionRate";
type: "u32";
}, {
docs: ["the amount of resources that can be mined by a ship per second"];
name: "miningRate";
type: "u32";
}, {
docs: ["the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase"];
name: "upgradeRate";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`CargoStats`]"];
name: "CargoStatsUnpacked";
type: {
fields: [{
docs: ["the capacity of the ship's cargo hold"];
name: "cargoCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's fuel tank"];
name: "fuelCapacity";
type: "u32";
}, {
docs: ["the capacity of the ship's ammo bank"];
name: "ammoCapacity";
type: "u32";
}, {
docs: ["the amount of ammo consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "ammoConsumptionRate";
type: "u32";
}, {
docs: ["the amount of food consumed per second by the ship when doing non-combat activities e.g. mining"];
name: "foodConsumptionRate";
type: "u32";
}, {
docs: ["the amount of resources that can be mined by a ship per second"];
name: "miningRate";
type: "u32";
}, {
docs: ["the amount of upgrade material that is consumed by a ship per second while upgrading a Starbase"];
name: "upgradeRate";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `DepositCargoToGame`"];
name: "CargoToGameInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "CloseDisbandedFleetInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Variables for the Crafting program"];
name: "Crafting";
type: {
fields: [{
docs: ["The crafting domain account"];
name: "domain";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "CreateFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u8";
}, {
docs: ["the fleet label"];
name: "fleetLabel";
type: {
array: ["u8", 32];
};
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}, {
docs: ["cargo hold seeds"];
name: "cargoHoldSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["fuel tank seeds"];
name: "fuelTankSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["ammo bank seeds"];
name: "ammoBankSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `DepositCargoToFleet`"];
name: "DepositCargoToFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input that has `key_index`"];
name: "DeregisterSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "DisbandFleetInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "DisbandedFleetToEscrowInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u16";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: {
option: "u32";
};
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["`Starbase` levels discriminated by faction"];
name: "FactionsStarbaseLevelInfo";
type: {
fields: [{
docs: ["Mud Starbase Levels Info"];
name: "mud";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}, {
docs: ["Oni Starbase Levels Info"];
name: "oni";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}, {
docs: ["Ustur Starbase Levels Info"];
name: "ustur";
type: {
array: [{
defined: "StarbaseLevelInfo";
}, 7];
};
}];
kind: "struct";
};
}, {
docs: ["Variables for the Fleet program"];
name: "FleetInfo";
type: {
fields: [{
docs: ["`Starbase` levels discriminated by faction"];
name: "starbaseLevels";
type: {
defined: "FactionsStarbaseLevelInfo";
};
}, {
docs: ["The fleets account registered as a modifier for LP in the Points program"];
name: "fleetsLpModifier";
type: {
defined: "FleetsPointModifier";
};
}, {
docs: ["The fleets account registered as a modifier for XP in the Points program"];
name: "fleetsXpModifier";
type: {
defined: "FleetsPointModifier";
};
}, {
docs: ["Maximum `Fleet` size allowed"];
name: "maxFleetSize";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update fleet settings"];
name: "FleetInput";
type: {
fields: [{
docs: ["`Starbase` Level Info array"];
name: "starbaseLevelInfoArray";
type: {
option: {
vec: {
defined: "StarbaseLevelInfoArrayInput";
};
};
};
}, {
docs: ["Maximum `Fleet` size allowed"];
name: "maxFleetSize";
type: {
option: "u32";
};
}, {
docs: ["The bump for the `FleetsLPModifier` account"];
name: "fleetsLpModifierBump";
type: {
option: "u8";
};
}, {
docs: ["The bump for the `FleetsXPModifier` account"];
name: "fleetsXpModifierBump";
type: {
option: "u8";
};
}];
kind: "struct";
};
}, {
docs: ["Struct that represents info on a single ship type in a fleet"];
name: "FleetShipsInfo";
type: {
fields: [{
docs: ["The `Ship` account address"];
name: "ship";
type: "publicKey";
}, {
docs: ["The `Ship` token amount in escrow"];
name: "amount";
type: "u64";
}, {
docs: ["The update id for the `Ship`"];
name: "updateId";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["The upgrade start state for a fleet"];
name: "FleetStarbaseUpgradeState";
type: {
kind: "enum";
variants: [{
name: "NotFullyFilled";
}, {
name: "Started";
}, {
name: "Burning";
}];
};
}, {
docs: ["The fleets account registered as a modifier in the Points program"];
name: "FleetsPointModifier";
type: {
fields: [{
docs: ["`FleetsPointModifier` Pubkey"];
name: "pubkey";
type: "publicKey";
}, {
docs: ["`FleetsPointModifier` bump"];
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "ForcedDisbandFleetInput";
type: {
fields: [{
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::Idle`](crate::state_machine::FleetStateData::Idle) state"];
name: "Idle";
type: {
fields: [{
docs: ["The star system the fleet is in"];
name: "sector";
type: {
array: ["i64", 2];
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize an `IdleToRespawn` Ix"];
name: "IdleToRespawnInput";
type: {
fields: [{
docs: ["index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `InitGameState`"];
name: "InitGameStateInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input that has `key_index`"];
name: "KeyIndexInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Global levers"];
name: "Levers";
type: {
fields: [{
docs: ["global lever that scales the quantity of resources. Units are 10000ths. Valid output values > 0."];
name: "l0ResourcesScalarMultiplication";
type: "u64";
}, {
docs: ["global lever which impacts the distribution of effective emissions. Units are 10000ths. Valid output values >= 0."];
name: "l1EmissionsMainBreaker";
type: "u64";
}, {
docs: ["global lever which impacts the effect that system richness has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l2SystemRichnessEmissions";
type: "u64";
}, {
docs: ["global lever which impacts the effect that ship size has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l3ShipSizeWeight";
type: "u64";
}, {
docs: ["global lever which impacts the effect that resource hardness has on resource emissions. Units are 10000ths. Valid output values > 0."];
name: "l4ResourceHardness";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of warping. Units are 10000ths. Valid output values > 1."];
name: "l5FuelWarpBreaker";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of planet exit. Units are 10000ths. Valid output values > 1."];
name: "l6FuelPlanetBreaker";
type: "u64";
}, {
docs: ["Module wide lever that impacts refinement from R20 (hydrogen) to R4 (fuel). Units are 10000ths. Valid output values > 1."];
name: "l7FuelRefinementEfficiency";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of mining. Units are 10000ths. Valid output values between 0 and 1."];
name: "l8MiningFoodBreaker";
type: "u64";
}, {
docs: ["Module wide lever that impacts refinement from R20 (organics) to R4 (food). Units are 10000ths. Valid output values > 0."];
name: "l10FoodRefinementEfficiency";
type: "u64";
}, {
docs: ["Module specific lever that scales the quantity of organics in the economy."];
name: "l11OrganicsScalarMultiplication";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of combat. Units are 10000ths. Valid output values > 0."];
name: "l16FuelCombatBreaker";
type: "u64";
}, {
docs: ["Module wide lever that directly impacts the nominal cost of subwarp mvmt. Units are 10000ths. Valid output values > 0."];
name: "l21FuelSubwarpBreaker";
type: "u64";
}, {
docs: ["Set of derived sub-levers used in `calculate_base_emissions()`.", "Math formula: `l1_emissions_main_breaker.powf(l3_ship_size_weight * ship_size)`"];
name: "baseEmissionsBySizeUtil";
type: {
defined: "BaseEmissionsBySizeUtil";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update levers"];
name: "LeversInput";
type: {
fields: [{
docs: ["global lever that scales the quantity of resources."];
name: "l0ResourcesScalarMultiplication";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the distribution of effective emissions."];
name: "l1EmissionsMainBreaker";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that system richness has on resource emissions."];
name: "l2SystemRichnessEmissions";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that ship size has on resource emissions."];
name: "l3ShipSizeWeight";
type: {
option: "u64";
};
}, {
docs: ["global lever which impacts the effect that resource hardness has on resource emissions."];
name: "l4ResourceHardness";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of warping"];
name: "l5FuelWarpBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of planet exit"];
name: "l6FuelPlanetBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that impacts refinement from R20 (hydrogen) to R4 (fuel)"];
name: "l7FuelRefinementEfficiency";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of mining. (Value between 0 and 1)"];
name: "l8MiningFoodBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that impacts refinement from R20 (organics) to R4 (food)"];
name: "l10FoodRefinementEfficiency";
type: {
option: "u64";
};
}, {
docs: ["Module specific lever that scales the quantity of organics in the economy."];
name: "l11OrganicsScalarMultiplication";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of combat. Units are 10000ths. Valid output values > 0."];
name: "l16FuelCombatBreaker";
type: {
option: "u64";
};
}, {
docs: ["Module wide lever that directly impacts the nominal cost of subwarp mvmt. Units are 10000ths. Valid output values > 0."];
name: "l21FuelSubwarpBreaker";
type: {
option: "u64";
};
}];
kind: "struct";
};
}, {
docs: ["Represents different types of locations that a `Resource` might be found"];
name: "LocationType";
type: {
kind: "enum";
variants: [{
name: "Planet";
}];
};
}, {
docs: ["Struct for data input to managing Game accounts"];
name: "ManageGameInput";
type: {
fields: [{
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MineAsteroid`](crate::state_machine::FleetStateData::MineAsteroid) state"];
name: "MineAsteroid";
type: {
fields: [{
docs: ["The `Asteroid` the `Fleet` is mining (Must be an asteroid belt)"];
name: "asteroid";
type: "publicKey";
}, {
docs: ["The `Resource` being mined on the `Asteroid`"];
name: "resource";
type: "publicKey";
}, {
docs: ["The timestamp at which mining activity started"];
name: "start";
type: "i64";
}, {
docs: ["The timestamp at which mining activity stops"];
name: "end";
type: "i64";
}, {
docs: ["The last time the `Fleet` was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `MineAsteroidToRespawnInput`"];
name: "MineAsteroidToRespawnInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Token mints"];
name: "Mints";
type: {
fields: [{
docs: ["ATLAS token mint"];
name: "atlas";
type: "publicKey";
}, {
docs: ["POLIS token mint"];
name: "polis";
type: "publicKey";
}, {
docs: ["ammunition"];
name: "ammo";
type: "publicKey";
}, {
docs: ["food"];
name: "food";
type: "publicKey";
}, {
docs: ["fuel"];
name: "fuel";
type: "publicKey";
}, {
docs: ["repair kit"];
name: "repairKit";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["A ship's miscellaneous stats"];
name: "MiscStats";
type: {
fields: [{
docs: ["Number of crew in the ship"];
name: "crew";
type: "u64";
}, {
docs: ["the time it takes the ship to respawn"];
name: "respawnTime";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to scan again after scanning"];
name: "scanCoolDown";
type: "u16";
}, {
docs: ["the amount of food required to do a scan"];
name: "scanRepairKitAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`MiscStats`]"];
name: "MiscStatsUnpacked";
type: {
fields: [{
docs: ["Number of crew in the ship"];
name: "crew";
type: "u64";
}, {
docs: ["the time it takes the ship to respawn"];
name: "respawnTime";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to scan again after scanning"];
name: "scanCoolDown";
type: "u16";
}, {
docs: ["the amount of food required to do a scan"];
name: "scanRepairKitAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Miscellaneous game state variables"];
name: "MiscVariables";
type: {
fields: [{
docs: ["Percentage by which the \"warp lane\" movement type reduces warp fuel cost"];
name: "warpLaneFuelCostReduction";
type: "i32";
}, {
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."];
name: "respawnFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to update miscellaneous settings"];
name: "MiscVariablesInput";
type: {
fields: [{
docs: ["Percentage by which the \"warp lane\" movement type reduces warp fuel cost"];
name: "warpLaneFuelCostReduction";
type: {
option: "i32";
};
}, {
docs: ["Respawn fee, charged in ATLAS"];
name: "respawnFee";
type: {
option: "u64";
};
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MoveSubwarp`] state"];
name: "MoveSubwarp";
type: {
fields: [{
docs: ["The sector the fleet is coming from"];
name: "fromSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The sector the fleet is going to"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The sector the fleet is currently in"];
name: "currentSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["When the fleet started subwarp"];
name: "departureTime";
type: "i64";
}, {
docs: ["When the fleet will finish subwarp"];
name: "arrivalTime";
type: "i64";
}, {
docs: ["The fuel cost of the subwarp"];
name: "fuelExpenditure";
type: "u64";
}, {
docs: ["The last update time"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::MoveWarp`] state"];
name: "MoveWarp";
type: {
fields: [{
docs: ["The star system the fleet is coming from"];
name: "fromSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The star system the fleet is going to"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["When the fleet started warping"];
name: "warpStart";
type: "i64";
}, {
docs: ["When the warp will end"];
name: "warpFinish";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["A ship's movement stats"];
name: "MovementStats";
type: {
fields: [{
docs: ["the amount of distance that the ship can cover in one second while sub-warping"];
name: "subwarpSpeed";
type: "u32";
}, {
docs: ["the amount of distance that the ship can cover in one second while warping"];
name: "warpSpeed";
type: "u32";
}, {
docs: ["the max distance that the ship can warp"];
name: "maxWarpDistance";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to warp again after a warp"];
name: "warpCoolDown";
type: "u16";
}, {
docs: ["the amount of fuel consumed by the ship when sub-warp moving"];
name: "subwarpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel consumed by the ship when warp moving"];
name: "warpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel required to exit a planet"];
name: "planetExitFuelAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`MovementStats`]"];
name: "MovementStatsUnpacked";
type: {
fields: [{
docs: ["the amount of distance that the ship can cover in one second while sub-warping"];
name: "subwarpSpeed";
type: "u32";
}, {
docs: ["the amount of distance that the ship can cover in one second while warping"];
name: "warpSpeed";
type: "u32";
}, {
docs: ["the max distance that the ship can warp"];
name: "maxWarpDistance";
type: "u16";
}, {
docs: ["the time it takes the ship to be able to warp again after a warp"];
name: "warpCoolDown";
type: "u16";
}, {
docs: ["the amount of fuel consumed by the ship when sub-warp moving"];
name: "subwarpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel consumed by the ship when warp moving"];
name: "warpFuelConsumptionRate";
type: "u32";
}, {
docs: ["the amount of fuel required to exit a planet"];
name: "planetExitFuelAmount";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["A pubkey sized option that is none if set to the system program."];
name: "OptionalNonSystemPubkey";
type: {
fields: [{
name: "key";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Represents different types a `Planet` could be"];
name: "PlanetType";
type: {
kind: "enum";
variants: [{
name: "Terrestrial";
}, {
name: "Volcanic";
}, {
name: "Barren";
}, {
name: "AsteroidBelt";
}, {
name: "GasGiant";
}, {
name: "IceGiant";
}, {
name: "Dark";
}];
};
}, {
docs: ["Variables for the Points program"];
name: "Points";
type: {
fields: [{
docs: ["Represents the points category to use for XP (experience points)"];
name: "xpPointsCategory";
type: "publicKey";
}, {
docs: ["Represents the points category to use for LP (loyalty points)"];
name: "lpPointsCategory";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to register a points modifier for fleets program"];
name: "RegisterFleetsPointsModifierInput";
type: {
fields: [{
docs: ["The modifier can increment points"];
name: "canIncrement";
type: "bool";
}, {
docs: ["The modifier can decrement points"];
name: "canDecrement";
type: "bool";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["The points category of the modifier (XP/LP)"];
name: "pointsCategory";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "RegisterMineItemInput";
type: {
fields: [{
docs: ["The name of the `MineItem`"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["How hard it is to mine this item"];
name: "resourceHardness";
type: "u16";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Planet"];
name: "RegisterPlanetInput";
type: {
fields: [{
docs: ["`Planet` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Planet` size"];
name: "size";
type: "u64";
}, {
docs: ["`Planet` max health"];
name: "maxHp";
type: "u64";
}, {
docs: ["`Planet` sub_coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["`Planet` type"];
name: "planetType";
type: "u8";
}, {
docs: ["`Planet` position"];
name: "position";
type: "u8";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "RegisterResourceInput";
type: {
fields: [{
docs: ["`Resource` location type"];
name: "locationType";
type: "u8";
}, {
docs: ["`Resource` `system_richness`"];
name: "systemRichness";
type: "u16";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Ship"];
name: "RegisterShipInput";
type: {
fields: [{
docs: ["The `Ship` name/label"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: {
defined: "SizeClass";
};
}, {
docs: ["The stats for the ship"];
name: "stats";
type: {
defined: "ShipStatsUnpacked";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["Whether the ship is initialized to active (`update_id == current_update_id`)"];
name: "isActive";
type: "bool";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register Star"];
name: "RegisterStarInput";
type: {
fields: [{
docs: ["`Star` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Star` size"];
name: "size";
type: "u64";
}, {
docs: ["`Star` sub_coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["`Star` type"];
name: "starType";
type: "u8";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register `Starbase`"];
name: "RegisterStarbaseInput";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index representing the level of the `Starbase` in the game variables."];
name: "starbaseLevelIndex";
type: "u8";
}, {
docs: ["The `Starbase` faction"];
name: "faction";
type: "u8";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RegisterStarbaseInput`]"];
name: "RegisterStarbaseInputUnpacked";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index representing the level of the `Starbase` in the game variables."];
name: "starbaseLevelIndex";
type: "u8";
}, {
docs: ["The `Starbase` faction"];
name: "faction";
type: "u8";
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register SurveyDataUnitTracker"];
name: "RegisterSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: "u32";
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: "u16";
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage"];
name: "probability";
type: "u16";
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: "u16";
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `RemoveShipEscrow`"];
name: "RemoveShipEscrowInput";
type: {
fields: [{
docs: ["Amount of `Ship` tokens to transfer from escrow"];
name: "shipAmount";
type: "u64";
}, {
docs: ["the index of the `ProfileKey` in `Profile` with required permissions"];
name: "permissionKeyIndex";
type: "u16";
}, {
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::Respawn`](crate::state_machine::FleetStateData::Respawn) state"];
name: "Respawn";
type: {
fields: [{
docs: ["The star system the fleet was in when it entered the `Respawn` state"];
name: "sector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The time `Respawn` started"];
name: "start";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `RespawnToLoadingBay`"];
name: "RespawnToLoadingBayInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["`RiskZone` center and radius"];
name: "RiskZoneData";
type: {
fields: [{
docs: ["Risk zone center"];
name: "center";
type: {
array: ["i64", 2];
};
}, {
docs: ["Risk zone radius"];
name: "radius";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RiskZoneData`]"];
name: "RiskZoneDataUnpacked";
type: {
fields: [{
docs: ["Risk zone center"];
name: "center";
type: {
array: ["i64", 2];
};
}, {
docs: ["Risk zone radius"];
name: "radius";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["[`RiskZoneData`] for [`RiskZones`]"];
name: "RiskZonesData";
type: {
fields: [{
docs: ["Mud security zone"];
name: "mudSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Oni security zone"];
name: "oniSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Ustur security zone"];
name: "usturSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["High risk zone"];
name: "highRiskZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Medium risk zone"];
name: "mediumRiskZone";
type: {
defined: "RiskZoneData";
};
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`RiskZonesData`]"];
name: "RiskZonesDataUnpacked";
type: {
fields: [{
docs: ["Mud security zone"];
name: "mudSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Oni security zone"];
name: "oniSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Ustur security zone"];
name: "usturSecurityZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["High risk zone"];
name: "highRiskZone";
type: {
defined: "RiskZoneData";
};
}, {
docs: ["Medium risk zone"];
name: "mediumRiskZone";
type: {
defined: "RiskZoneData";
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Scan For Survey Data Units"];
name: "ScanForSurveyDataUnitsInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Connection between sectors"];
name: "SectorConnection";
type: {
fields: [{
docs: ["The sector connected to"];
name: "connectionSector";
type: "publicKey";
}, {
docs: ["The location of the connection"];
name: "subCoordinates";
type: {
array: ["i64", 2];
};
}, {
docs: ["Connection flags"];
name: "flags";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["Represents the orbital position of a `Planet` in the `Sector`"];
name: "SectorRing";
type: {
kind: "enum";
variants: [{
name: "Inner";
}, {
name: "Mid";
}, {
name: "Outer";
}];
};
}, {
docs: ["Ship counts for a fleet."];
name: "ShipCounts";
type: {
fields: [{
docs: ["The total number of ships in the fleet."];
name: "total";
type: "u32";
}, {
docs: ["Used when updating a fleet.", "Value is 0 when fleet update is in progress"];
name: "updated";
type: "u32";
}, {
docs: ["The number of xx small ships in the fleet."];
name: "xxSmall";
type: "u16";
}, {
docs: ["The number of x small ships in the fleet."];
name: "xSmall";
type: "u16";
}, {
docs: ["The number of small ships in the fleet."];
name: "small";
type: "u16";
}, {
docs: ["The number of medium ships in the fleet."];
name: "medium";
type: "u16";
}, {
docs: ["The number of large ships in the fleet."];
name: "large";
type: "u16";
}, {
docs: ["The number of capital ships in the fleet."];
name: "capital";
type: "u16";
}, {
docs: ["The number of commander ships in the fleet."];
name: "commander";
type: "u16";
}, {
docs: ["The number of titan ships in the fleet."];
name: "titan";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`ShipCounts`]"];
name: "ShipCountsUnpacked";
type: {
fields: [{
docs: ["The total number of ships in the fleet."];
name: "total";
type: "u32";
}, {
docs: ["Used when updating a fleet.", "Value is 0 when fleet update is in progress"];
name: "updated";
type: "u32";
}, {
docs: ["The number of xx small ships in the fleet."];
name: "xxSmall";
type: "u16";
}, {
docs: ["The number of x small ships in the fleet."];
name: "xSmall";
type: "u16";
}, {
docs: ["The number of small ships in the fleet."];
name: "small";
type: "u16";
}, {
docs: ["The number of medium ships in the fleet."];
name: "medium";
type: "u16";
}, {
docs: ["The number of large ships in the fleet."];
name: "large";
type: "u16";
}, {
docs: ["The number of capital ships in the fleet."];
name: "capital";
type: "u16";
}, {
docs: ["The number of commander ships in the fleet."];
name: "commander";
type: "u16";
}, {
docs: ["The number of titan ships in the fleet."];
name: "titan";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Ship sizes."];
name: "ShipSizes";
type: {
fields: [{
docs: ["The size of xx small ships"];
name: "xxSmall";
type: "u8";
}, {
docs: ["The size of x small ships"];
name: "xSmall";
type: "u8";
}, {
docs: ["The size of small ships"];
name: "small";
type: "u8";
}, {
docs: ["The size of medium ships"];
name: "medium";
type: "u8";
}, {
docs: ["The size of large ships"];
name: "large";
type: "u8";
}, {
docs: ["The size of capital ships"];
name: "capital";
type: "u8";
}, {
docs: ["The size of commander ships"];
name: "commander";
type: "u8";
}, {
docs: ["The size of titan ships"];
name: "titan";
type: "u8";
}];
kind: "struct";
};
}, {
docs: ["A ship's stats"];
name: "ShipStats";
type: {
fields: [{
docs: ["Movement stats for the ship"];
name: "movementStats";
type: {
defined: "MovementStats";
};
}, {
docs: ["Cargo stats for the ship"];
name: "cargoStats";
type: {
defined: "CargoStats";
};
}, {
docs: ["Miscellaneous stats for the ship"];
name: "miscStats";
type: {
defined: "MiscStats";
};
}];
kind: "struct";
};
}, {
docs: ["Unpacked version of [`ShipStats`]"];
name: "ShipStatsUnpacked";
type: {
fields: [{
docs: ["Movement stats for the ship"];
name: "movementStats";
type: {
defined: "MovementStats";
};
}, {
docs: ["Cargo stats for the ship"];
name: "cargoStats";
type: {
defined: "CargoStats";
};
}, {
docs: ["Miscellaneous stats for the ship"];
name: "miscStats";
type: {
defined: "MiscStats";
};
}];
kind: "struct";
};
}, {
docs: ["Represents different types of Ships"];
name: "SizeClass";
type: {
kind: "enum";
variants: [{
name: "XxSmall";
}, {
name: "XSmall";
}, {
name: "Small";
}, {
name: "Medium";
}, {
name: "Large";
}, {
name: "Capital";
}, {
name: "Commander";
}, {
name: "Titan";
}];
};
}, {
docs: ["Represents different types of Stars"];
name: "StarType";
type: {
kind: "enum";
variants: [{
name: "WhiteDwarf";
}, {
name: "RedDwarf";
}, {
name: "Solar";
}, {
name: "HotBlue";
}, {
name: "RedGiant";
}];
};
}, {
docs: ["Struct for data input to cancel a `CraftingProcess`"];
name: "StarbaseCancelCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Claim Crafting Process Non-consumable inputs"];
name: "StarbaseClaimCraftingNonConsumablesInput";
type: {
fields: [{
docs: ["the index of the recipe output"];
name: "ingredientIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to close a `CraftingProcess`"];
name: "StarbaseClaimCraftingOutputInput";
type: {
fields: [{
docs: ["the index of the recipe output"];
name: "ingredientIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to close a `CraftingProcess`"];
name: "StarbaseCloseCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `StarbaseCreateCargoPod`"];
name: "StarbaseCreateCargoPodInput";
type: {
fields: [{
docs: ["cargo pod seeds"];
name: "podSeeds";
type: {
array: ["u8", 32];
};
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to create a `CraftingProcess`"];
name: "StarbaseCreateCraftingProcessInput";
type: {
fields: [{
docs: ["crafting id"];
name: "craftingId";
type: "u64";
}, {
docs: ["the index of the recipe's category"];
name: "recipeCategoryIndex";
type: "u16";
}, {
docs: ["quantity of outputs to craft"];
name: "quantity";
type: "u64";
}, {
docs: ["number of crew members to use for this crafting process"];
name: "numCrew";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to deposit an ingredient"];
name: "StarbaseDepositCraftingIngredientInput";
type: {
fields: [{
docs: ["the amount of ingredient to deposit"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the recipe ingredient"];
name: "ingredientIndex";
type: "u16";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Information associated with `Starbase` levels"];
name: "StarbaseLevelInfo";
type: {
fields: [{
docs: ["The crafting recipe required to upgrade a `Starbase` to this level"];
name: "recipeForUpgrade";
type: "publicKey";
}, {
docs: ["The crafting recipe category enabled for crafting at a `Starbase` of this level."];
name: "recipeCategoryForLevel";
type: "publicKey";
}, {
docs: ["The `Starbase` health points for this level."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points for this level."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position `Ring` available for this level"];
name: "sectorRingAvailable";
type: "u8";
}, {
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."];
name: "warpLaneMovementFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Starbase Level Settings"];
name: "StarbaseLevelInfoArrayInput";
type: {
fields: [{
docs: ["The level of the `Starbase`."];
name: "level";
type: "u8";
}, {
docs: ["The `Starbase` faction."];
name: "faction";
type: "u8";
}, {
docs: ["The `Starbase` health points for this level."];
name: "hp";
type: "u64";
}, {
docs: ["The `Starbase` shield points for this level."];
name: "sp";
type: "u64";
}, {
docs: ["The planet position `Ring` available for this level"];
name: "sectorRingAvailable";
type: {
defined: "SectorRing";
};
}, {
docs: ["Fee charged for the \"warp lane\" movement type which is meant to be charged in ATLAS"];
name: "warpLaneMovementFee";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["The data for the [`FleetStateData::StarbaseLoadingBay`] state"];
name: "StarbaseLoadingBay";
type: {
fields: [{
docs: ["The `Starbase` is in the loading bay of"];
name: "starbase";
type: "publicKey";
}, {
docs: ["The last time this fleet was updated"];
name: "lastUpdate";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `StarbaseRemoveCargoPod`"];
name: "StarbaseRemoveCargoPodInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to start a crafting process"];
name: "StarbaseStartCraftingProcessInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The state of a `Starbase`."];
name: "StarbaseState";
type: {
kind: "enum";
variants: [{
name: "Active";
}, {
name: "Destroyed";
}];
};
}, {
docs: ["Struct for data input to `DepositCargoToGame`"];
name: "StarbaseTransferCargoInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["The data for the `StarbaseUpgrade` state"];
name: "StarbaseUpgrade";
type: {
fields: [{
docs: ["The `Starbase` being upgraded"];
name: "starbase";
type: "publicKey";
}, {
docs: ["[`FleetStarbaseUpgradeState`]"];
name: "upgradeState";
type: "u8";
}, {
docs: ["When the fleet started participation in the `Starbase` upgrade."];
name: "startUpgrade";
type: "i64";
}, {
docs: ["When the fleet completes participation in the `Starbase` upgrade. This is a \"potential\" end time, constrained by max resources or user decision.", "If `upgrade_state` is set to `NotFullyFilled`, this is set to the max duration in upgrading state with the partial ingredients deposited."];
name: "endUpgrade";
type: "i64";
}, {
docs: ["used to check if expected inputs have been supplied"];
name: "checksum";
type: {
array: ["u8", 16];
};
}];
kind: "struct";
};
}, {
docs: ["The upgrade state for one SB lvl"];
name: "StarbaseUpgradeLevelState";
type: {
kind: "enum";
variants: [{
name: "NotStarted";
}, {
name: "Started";
}, {
fields: [{
docs: ["Timestamp of the upgrade completion"];
name: "timestamp";
type: "i64";
}];
name: "Finished";
}];
};
}, {
docs: ["`Starbase` upgrade task item"];
name: "StarbaseUpgradeTask";
type: {
fields: [{
docs: ["The `Fleet` Pubkey"];
name: "fleet";
type: "publicKey";
}, {
docs: ["The timestamp at which the fleet completes its contribution to the upgrade"];
name: "completionTime";
type: "i64";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to withdraw an ingredient"];
name: "StarbaseWithdrawCraftingIngredientInput";
type: {
fields: [{
docs: ["the amount of ingredient to withdraw"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the recipe ingredient"];
name: "ingredientIndex";
type: "u16";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `StartMiningAsteroid`"];
name: "StartMiningAsteroidInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize an `SubwarpMovement`"];
name: "StartSubwarpInput";
type: {
fields: [{
docs: ["The destination coordinates"];
name: "toSector";
type: {
array: ["i64", 2];
};
}, {
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `StopMiningAsteroidInput`"];
name: "StopMiningAsteroidInput";
type: {
fields: [{
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to stop an `SubwarpMovement`"];
name: "StopSubwarpInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `TransferCargoWithinFleet`"];
name: "TransferCargoWithinFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update instruction"];
name: "UpdateGameInput";
type: {
fields: [{
docs: ["Cargo settings"];
name: "cargo";
type: "u8";
}, {
docs: ["Crafting settings"];
name: "crafting";
type: "u8";
}, {
docs: ["Mints"];
name: "mints";
type: "u8";
}, {
docs: ["Vaults"];
name: "vaults";
type: "u8";
}, {
docs: ["Points settings"];
name: "points";
type: "u8";
}, {
docs: ["Data for risk zones"];
name: "riskZones";
type: {
option: {
defined: "RiskZonesDataUnpacked";
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update instruction"];
name: "UpdateGameStateInput";
type: {
fields: [{
docs: ["Fleet settings"];
name: "fleet";
type: {
option: {
defined: "FleetInput";
};
};
}, {
docs: ["Levers"];
name: "levers";
type: {
option: {
defined: "LeversInput";
};
};
}, {
docs: ["Set of derived sub-levers used in `calculate_base_emissions()`."];
name: "baseEmissionsBySizeUtil";
type: {
option: {
defined: "BaseEmissionsBySizeUtilInput";
};
};
}, {
docs: ["Miscellaneous settings"];
name: "misc";
type: {
option: {
defined: "MiscVariablesInput";
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Register a Resource"];
name: "UpdateMineItemInput";
type: {
fields: [{
docs: ["The name of the `MineItem`"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["How hard it is to mine this item"];
name: "resourceHardness";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Planet"];
name: "UpdatePlanetInput";
type: {
fields: [{
docs: ["`Planet` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Planet` size"];
name: "size";
type: {
option: "u64";
};
}, {
docs: ["`Planet` max_hp"];
name: "maxHp";
type: {
option: "u64";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Resource"];
name: "UpdateResourceInput";
type: {
fields: [{
docs: ["`Resource` richness"];
name: "systemRichness";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the fleet permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for `UpdateShipEscrow`"];
name: "UpdateShipEscrowInput";
type: {
fields: [{
docs: ["Index of `WrappedShipEscrow` in remaining data of `StarbasePlayer`"];
name: "shipEscrowIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input for that has `key_index`"];
name: "UpdateShipFleetInput";
type: {
fields: [{
docs: ["Number of ships to add to the fleet"];
name: "shipAmount";
type: "u16";
}, {
docs: ["Index of `FleetShipsInfo` in remaining data of `FleetShips`"];
name: "fleetShipInfoIndex";
type: "u32";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Ship"];
name: "UpdateShipInput";
type: {
fields: [{
docs: ["The `Ship` name/label"];
name: "name";
type: {
array: ["u8", 64];
};
}, {
docs: ["the ship's size class"];
name: "sizeClass";
type: {
defined: "SizeClass";
};
}, {
docs: ["The stats for the ship"];
name: "stats";
type: {
defined: "ShipStatsUnpacked";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update Star"];
name: "UpdateStarInput";
type: {
fields: [{
docs: ["`Star` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Star` size"];
name: "size";
type: {
option: "u64";
};
}, {
docs: ["`Star` type"];
name: "starType";
type: {
option: "u8";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update `Starbase`"];
name: "UpdateStarbaseInput";
type: {
fields: [{
docs: ["`Starbase` name"];
name: "name";
type: {
option: {
array: ["u8", 64];
};
};
}, {
docs: ["`Starbase` coordinates"];
name: "subCoordinates";
type: {
option: {
array: ["i64", 2];
};
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to Update SurveyDataUnitTracker"];
name: "UpdateSurveyDataUnitTrackerInput";
type: {
fields: [{
docs: ["The global limit on how many SDUs can be found in a `MAX_SECONDS` second period"];
name: "limit";
type: {
option: "u32";
};
}, {
docs: ["The amount of time that must go by before someone can scan a sector again"];
name: "scanCooldown";
type: {
option: "u16";
};
}, {
docs: ["The chance that a player gets an SDU on a legitimate scan, this is meant to be a percentage"];
name: "probability";
type: {
option: "u16";
};
}, {
docs: ["The max number of SDUs that can be found while scanning"];
name: "max";
type: {
option: "u16";
};
}, {
docs: ["the index of the key in the sector permissions profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Token vaults"];
name: "Vaults";
type: {
fields: [{
docs: ["ATLAS token mint"];
name: "atlas";
type: "publicKey";
}, {
docs: ["POLIS token mint"];
name: "polis";
type: "publicKey";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize a `WarpLane`"];
name: "WarpLaneInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["Index of the to_sector in `SectorConnections` of the from_sector"];
name: "toSectorIndex";
type: "u16";
}, {
docs: ["Index of the from_sector in `SectorConnections` of the to_sector"];
name: "fromSectorIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to initialize a `WarpToCoordinate`"];
name: "WarpToCoordinateInput";
type: {
fields: [{
docs: ["The index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}, {
docs: ["The destination coordinates"];
name: "toSector";
type: {
array: ["i64", 2];
};
}];
kind: "struct";
};
}, {
docs: ["Struct for data input to `WithdrawCargoFromFleet`"];
name: "WithdrawCargoFromFleetInput";
type: {
fields: [{
docs: ["cargo amount"];
name: "amount";
type: "u64";
}, {
docs: ["the index of the key in the player profile"];
name: "keyIndex";
type: "u16";
}];
kind: "struct";
};
}, {
docs: ["Wrapped `Ship` escrow info"];
name: "WrappedShipEscrow";
type: {
fields: [{
docs: ["The `Ship` account address"];
name: "ship";
type: "publicKey";
}, {
docs: ["The `Ship` token amount in escrow"];
name: "amount";
type: "u64";
}, {
docs: ["The update id for the `Ship`"];
name: "updateId";
type: "u64";
}];
kind: "struct";
};
}]
-
version: "0.1.0"