@aephia/atlas-kit 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +124 -0
- package/dist/bindings.d.ts +11 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +11 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +122 -0
- package/dist/cargo/actions/index.d.ts.map +1 -0
- package/dist/cargo/actions/index.js +526 -0
- package/dist/cargo/actions/index.js.map +1 -0
- package/dist/cargo/index.d.ts +77 -0
- package/dist/cargo/index.d.ts.map +1 -0
- package/dist/cargo/index.js +102 -0
- package/dist/cargo/index.js.map +1 -0
- package/dist/claim-stakes/index.d.ts +64 -0
- package/dist/claim-stakes/index.d.ts.map +1 -0
- package/dist/claim-stakes/index.js +97 -0
- package/dist/claim-stakes/index.js.map +1 -0
- package/dist/client/context.d.ts +21 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +1374 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/contracts.d.ts +671 -0
- package/dist/client/contracts.d.ts.map +1 -0
- package/dist/client/contracts.js +2 -0
- package/dist/client/contracts.js.map +1 -0
- package/dist/client/deployments.d.ts +3 -0
- package/dist/client/deployments.d.ts.map +1 -0
- package/dist/client/deployments.js +2 -0
- package/dist/client/deployments.js.map +1 -0
- package/dist/client/errors.d.ts +227 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +288 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +4 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +10 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/provider-errors.d.ts +9 -0
- package/dist/client/provider-errors.d.ts.map +1 -0
- package/dist/client/provider-errors.js +12 -0
- package/dist/client/provider-errors.js.map +1 -0
- package/dist/client/reconciliation.d.ts +10 -0
- package/dist/client/reconciliation.d.ts.map +1 -0
- package/dist/client/reconciliation.js +9 -0
- package/dist/client/reconciliation.js.map +1 -0
- package/dist/client/refs.d.ts +23 -0
- package/dist/client/refs.d.ts.map +1 -0
- package/dist/client/refs.js +12 -0
- package/dist/client/refs.js.map +1 -0
- package/dist/combat/index.d.ts +256 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +222 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/crafting/index.d.ts +308 -0
- package/dist/crafting/index.d.ts.map +1 -0
- package/dist/crafting/index.js +400 -0
- package/dist/crafting/index.js.map +1 -0
- package/dist/factions/index.d.ts +292 -0
- package/dist/factions/index.d.ts.map +1 -0
- package/dist/factions/index.js +334 -0
- package/dist/factions/index.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +200 -0
- package/dist/fleets/actions/index.d.ts.map +1 -0
- package/dist/fleets/actions/index.js +854 -0
- package/dist/fleets/actions/index.js.map +1 -0
- package/dist/fleets/index.d.ts +100 -0
- package/dist/fleets/index.d.ts.map +1 -0
- package/dist/fleets/index.js +124 -0
- package/dist/fleets/index.js.map +1 -0
- package/dist/identity/index.d.ts +225 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +341 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +401 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +519 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/c4/adapter.d.ts +6 -0
- package/dist/internal/c4/adapter.d.ts.map +1 -0
- package/dist/internal/c4/adapter.js +2 -0
- package/dist/internal/c4/adapter.js.map +1 -0
- package/dist/internal/c4/bindings.d.ts +4 -0
- package/dist/internal/c4/bindings.d.ts.map +1 -0
- package/dist/internal/c4/bindings.js +4 -0
- package/dist/internal/c4/bindings.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +5 -0
- package/dist/internal/c4/character-modifier.d.ts.map +1 -0
- package/dist/internal/c4/character-modifier.js +100 -0
- package/dist/internal/c4/character-modifier.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +140 -0
- package/dist/internal/c4/claim-stake.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake.js +205 -0
- package/dist/internal/c4/claim-stake.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +98 -0
- package/dist/internal/c4/combat.d.ts.map +1 -0
- package/dist/internal/c4/combat.js +232 -0
- package/dist/internal/c4/combat.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +170 -0
- package/dist/internal/c4/crafting.d.ts.map +1 -0
- package/dist/internal/c4/crafting.js +387 -0
- package/dist/internal/c4/crafting.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +248 -0
- package/dist/internal/c4/factions.d.ts.map +1 -0
- package/dist/internal/c4/factions.js +589 -0
- package/dist/internal/c4/factions.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.js +51 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +310 -0
- package/dist/internal/c4/fleet.d.ts.map +1 -0
- package/dist/internal/c4/fleet.js +393 -0
- package/dist/internal/c4/fleet.js.map +1 -0
- package/dist/internal/c4/game.d.ts +192 -0
- package/dist/internal/c4/game.d.ts.map +1 -0
- package/dist/internal/c4/game.js +396 -0
- package/dist/internal/c4/game.js.map +1 -0
- package/dist/internal/c4/identity.d.ts +193 -0
- package/dist/internal/c4/identity.d.ts.map +1 -0
- package/dist/internal/c4/identity.js +180 -0
- package/dist/internal/c4/identity.js.map +1 -0
- package/dist/internal/c4/loot-layout.d.ts +20 -0
- package/dist/internal/c4/loot-layout.d.ts.map +1 -0
- package/dist/internal/c4/loot-layout.js +29 -0
- package/dist/internal/c4/loot-layout.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +102 -0
- package/dist/internal/c4/loyalty.d.ts.map +1 -0
- package/dist/internal/c4/loyalty.js +318 -0
- package/dist/internal/c4/loyalty.js.map +1 -0
- package/dist/internal/c4/market.d.ts +112 -0
- package/dist/internal/c4/market.d.ts.map +1 -0
- package/dist/internal/c4/market.js +247 -0
- package/dist/internal/c4/market.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +6 -0
- package/dist/internal/c4/pda.d.ts.map +1 -0
- package/dist/internal/c4/pda.js +45 -0
- package/dist/internal/c4/pda.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts +14 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -0
- package/dist/internal/c4/profile-faction.js +69 -0
- package/dist/internal/c4/profile-faction.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +135 -0
- package/dist/internal/c4/rewards.d.ts.map +1 -0
- package/dist/internal/c4/rewards.js +305 -0
- package/dist/internal/c4/rewards.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +85 -0
- package/dist/internal/c4/scanning.d.ts.map +1 -0
- package/dist/internal/c4/scanning.js +180 -0
- package/dist/internal/c4/scanning.js.map +1 -0
- package/dist/internal/c4/starbase.d.ts +186 -0
- package/dist/internal/c4/starbase.d.ts.map +1 -0
- package/dist/internal/c4/starbase.js +259 -0
- package/dist/internal/c4/starbase.js.map +1 -0
- package/dist/internal/c4/world.d.ts +294 -0
- package/dist/internal/c4/world.d.ts.map +1 -0
- package/dist/internal/c4/world.js +417 -0
- package/dist/internal/c4/world.js.map +1 -0
- package/dist/internal/cargo.d.ts +65 -0
- package/dist/internal/cargo.d.ts.map +1 -0
- package/dist/internal/cargo.js +46 -0
- package/dist/internal/cargo.js.map +1 -0
- package/dist/internal/claim-stake.d.ts +31 -0
- package/dist/internal/claim-stake.d.ts.map +1 -0
- package/dist/internal/claim-stake.js +20 -0
- package/dist/internal/claim-stake.js.map +1 -0
- package/dist/internal/fleet.d.ts +165 -0
- package/dist/internal/fleet.d.ts.map +1 -0
- package/dist/internal/fleet.js +179 -0
- package/dist/internal/fleet.js.map +1 -0
- package/dist/internal/game-context.d.ts +4 -0
- package/dist/internal/game-context.d.ts.map +1 -0
- package/dist/internal/game-context.js +9 -0
- package/dist/internal/game-context.js.map +1 -0
- package/dist/internal/immutable-tree.d.ts +5 -0
- package/dist/internal/immutable-tree.d.ts.map +1 -0
- package/dist/internal/immutable-tree.js +47 -0
- package/dist/internal/immutable-tree.js.map +1 -0
- package/dist/internal/json.d.ts +7 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +33 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +63 -0
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
- package/dist/internal/planning/authorization-adapter.js +222 -0
- package/dist/internal/planning/authorization-adapter.js.map +1 -0
- package/dist/internal/read-meta.d.ts +84 -0
- package/dist/internal/read-meta.d.ts.map +1 -0
- package/dist/internal/read-meta.js +28 -0
- package/dist/internal/read-meta.js.map +1 -0
- package/dist/internal/resolved-snapshot.d.ts +3 -0
- package/dist/internal/resolved-snapshot.d.ts.map +1 -0
- package/dist/internal/resolved-snapshot.js +11 -0
- package/dist/internal/resolved-snapshot.js.map +1 -0
- package/dist/internal/zink/provider.d.ts +9 -0
- package/dist/internal/zink/provider.d.ts.map +1 -0
- package/dist/internal/zink/provider.js +213 -0
- package/dist/internal/zink/provider.js.map +1 -0
- package/dist/loyalty/index.d.ts +195 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/loyalty/index.js +289 -0
- package/dist/loyalty/index.js.map +1 -0
- package/dist/markets/index.d.ts +195 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +232 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/mining/index.d.ts +156 -0
- package/dist/mining/index.d.ts.map +1 -0
- package/dist/mining/index.js +236 -0
- package/dist/mining/index.js.map +1 -0
- package/dist/planning/assembly.d.ts +42 -0
- package/dist/planning/assembly.d.ts.map +1 -0
- package/dist/planning/assembly.js +141 -0
- package/dist/planning/assembly.js.map +1 -0
- package/dist/planning/composition.d.ts +4 -0
- package/dist/planning/composition.d.ts.map +1 -0
- package/dist/planning/composition.js +76 -0
- package/dist/planning/composition.js.map +1 -0
- package/dist/planning/execution.d.ts +93 -0
- package/dist/planning/execution.d.ts.map +1 -0
- package/dist/planning/execution.js +549 -0
- package/dist/planning/execution.js.map +1 -0
- package/dist/planning/index.d.ts +219 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +375 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/plan-instances.d.ts +3 -0
- package/dist/planning/plan-instances.d.ts.map +1 -0
- package/dist/planning/plan-instances.js +8 -0
- package/dist/planning/plan-instances.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.js +449 -0
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts +72 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
- package/dist/planning/plan-sequence-execution.js +410 -0
- package/dist/planning/plan-sequence-execution.js.map +1 -0
- package/dist/planning/plan-sequence.d.ts +244 -0
- package/dist/planning/plan-sequence.d.ts.map +1 -0
- package/dist/planning/plan-sequence.js +264 -0
- package/dist/planning/plan-sequence.js.map +1 -0
- package/dist/planning/simulation.d.ts +50 -0
- package/dist/planning/simulation.d.ts.map +1 -0
- package/dist/planning/simulation.js +69 -0
- package/dist/planning/simulation.js.map +1 -0
- package/dist/registry/combat.d.ts +5 -0
- package/dist/registry/combat.d.ts.map +1 -0
- package/dist/registry/combat.js +7 -0
- package/dist/registry/combat.js.map +1 -0
- package/dist/registry/index.d.ts +138 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +397 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/rewards/index.d.ts +202 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +290 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/scanning/index.d.ts +185 -0
- package/dist/scanning/index.d.ts.map +1 -0
- package/dist/scanning/index.js +207 -0
- package/dist/scanning/index.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +60 -0
- package/dist/starbases/actions/index.d.ts.map +1 -0
- package/dist/starbases/actions/index.js +245 -0
- package/dist/starbases/actions/index.js.map +1 -0
- package/dist/starbases/index.d.ts +165 -0
- package/dist/starbases/index.d.ts.map +1 -0
- package/dist/starbases/index.js +213 -0
- package/dist/starbases/index.js.map +1 -0
- package/dist/world/index.d.ts +180 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +265 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { Address, DiscoveryRequest, ProgramAccountFilter, SageContext, SnapshotEnvelope } from '../../client/contracts.js';
|
|
2
|
+
import type { C4AccountAdapter } from './adapter.js';
|
|
3
|
+
/** Stable StarbasePlayer offsets verified against the pinned generated codec. */
|
|
4
|
+
export declare const STARBASE_PLAYER_FILTER_OFFSETS: Readonly<{
|
|
5
|
+
character: 74;
|
|
6
|
+
discriminator: 0;
|
|
7
|
+
profile: 9;
|
|
8
|
+
system: 42;
|
|
9
|
+
}>;
|
|
10
|
+
/** Stable StarbaseUpgradeProcess offsets verified against the pinned codec. */
|
|
11
|
+
export declare const STARBASE_UPGRADE_FILTER_OFFSETS: Readonly<{
|
|
12
|
+
discriminator: 0;
|
|
13
|
+
player: 73;
|
|
14
|
+
profile: 9;
|
|
15
|
+
system: 41;
|
|
16
|
+
}>;
|
|
17
|
+
/** Audited player-local Starbase relationships. */
|
|
18
|
+
export declare const STARBASE_RELATIONSHIPS: readonly [{
|
|
19
|
+
readonly from: "starSystem + character";
|
|
20
|
+
readonly kind: "derived";
|
|
21
|
+
readonly mechanism: "StarbasePlayer PDA seeds: literal, System, Character";
|
|
22
|
+
readonly to: "starbasePlayer";
|
|
23
|
+
}, {
|
|
24
|
+
readonly from: "character | starSystem";
|
|
25
|
+
readonly kind: "discovered";
|
|
26
|
+
readonly mechanism: "targeted discriminator and stored-field filters";
|
|
27
|
+
readonly to: "starbasePlayer[]";
|
|
28
|
+
}, {
|
|
29
|
+
readonly from: "starbasePlayer";
|
|
30
|
+
readonly kind: "stored";
|
|
31
|
+
readonly mechanism: "Profile, System, and Character account fields";
|
|
32
|
+
readonly to: "profile | starSystem | character";
|
|
33
|
+
}, {
|
|
34
|
+
readonly from: "starbasePlayer";
|
|
35
|
+
readonly kind: "nested";
|
|
36
|
+
readonly mechanism: "CargoPod, respawn queue, facility, and escrow values";
|
|
37
|
+
readonly to: "cargoPod";
|
|
38
|
+
}, {
|
|
39
|
+
readonly from: "starbasePlayer";
|
|
40
|
+
readonly kind: "stored";
|
|
41
|
+
readonly mechanism: "StarbaseUpgradeProcess.starbasePlayer field discovery";
|
|
42
|
+
readonly to: "starbaseUpgradeProcess[]";
|
|
43
|
+
}, {
|
|
44
|
+
readonly from: "starbasePlayer";
|
|
45
|
+
readonly kind: "instruction-only";
|
|
46
|
+
readonly mechanism: "repair, registration, and contribution co-accounts";
|
|
47
|
+
readonly to: "sharedStarbase | currencyCache";
|
|
48
|
+
}];
|
|
49
|
+
/** Stable translated Starbase faction.
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const faction: StarbasePlayerFaction = 'mud';
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export type StarbasePlayerFaction = 'unaligned' | 'mud' | 'oni' | 'ustur';
|
|
56
|
+
/** One translated respawn queue.
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* declare const queue: StarbaseRespawnQueueData;
|
|
60
|
+
* console.log(queue.quantityRaw);
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export interface StarbaseRespawnQueueData {
|
|
64
|
+
readonly quantityRaw: bigint;
|
|
65
|
+
readonly completesAtUnixSeconds: bigint;
|
|
66
|
+
}
|
|
67
|
+
/** One unresolved ship respawn queue.
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* declare const queue: StarbaseShipRespawnData;
|
|
71
|
+
* console.log(queue.shipId);
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export interface StarbaseShipRespawnData extends StarbaseRespawnQueueData {
|
|
75
|
+
readonly shipId: number;
|
|
76
|
+
}
|
|
77
|
+
/** One unresolved facility respawn queue.
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* declare const queue: StarbaseFacilityRespawnData;
|
|
81
|
+
* console.log(queue.definitionId);
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export interface StarbaseFacilityRespawnData extends StarbaseRespawnQueueData {
|
|
85
|
+
readonly definitionId: number;
|
|
86
|
+
}
|
|
87
|
+
/** One unresolved cargo quantity.
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* declare const amount: StarbaseCargoAmountData;
|
|
91
|
+
* console.log(amount.cargoId, amount.amount);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export interface StarbaseCargoAmountData {
|
|
95
|
+
readonly cargoId: number;
|
|
96
|
+
readonly amount: bigint;
|
|
97
|
+
}
|
|
98
|
+
/** One translated nested CargoPod before definition resolution.
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* declare const cargo: StarbaseCargoPodData;
|
|
102
|
+
* console.log(cargo.amounts);
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export interface StarbaseCargoPodData {
|
|
106
|
+
readonly sequenceId: number;
|
|
107
|
+
readonly usedStorageUnitsRaw: bigint;
|
|
108
|
+
readonly amounts: readonly StarbaseCargoAmountData[];
|
|
109
|
+
}
|
|
110
|
+
/** One unresolved escrowed ship quantity.
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* declare const ship: StarbaseEscrowedShipData;
|
|
114
|
+
* console.log(ship.shipId, ship.quantityRaw);
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export interface StarbaseEscrowedShipData {
|
|
118
|
+
readonly shipId: number;
|
|
119
|
+
readonly quantityRaw: bigint;
|
|
120
|
+
}
|
|
121
|
+
/** Fully translated StarbasePlayer account data before registry joins.
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* declare const data: StarbasePlayerAccountData;
|
|
125
|
+
* console.log(data.character, data.respawning.craftingHabs);
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export interface StarbasePlayerAccountData {
|
|
129
|
+
readonly version: number;
|
|
130
|
+
readonly playerProfile: Address;
|
|
131
|
+
readonly faction: StarbasePlayerFaction;
|
|
132
|
+
readonly system: Address;
|
|
133
|
+
readonly character: Address;
|
|
134
|
+
readonly totalCrew: number;
|
|
135
|
+
readonly busyCrew: number;
|
|
136
|
+
readonly respawning: {
|
|
137
|
+
readonly crew: StarbaseRespawnQueueData;
|
|
138
|
+
readonly ships: readonly StarbaseShipRespawnData[];
|
|
139
|
+
readonly claimStakes: readonly StarbaseFacilityRespawnData[];
|
|
140
|
+
readonly craftingHabs: readonly StarbaseFacilityRespawnData[];
|
|
141
|
+
readonly cargo: StarbaseCargoPodData;
|
|
142
|
+
};
|
|
143
|
+
readonly sequenceId: bigint;
|
|
144
|
+
readonly cargoRespawnEndsAtUnixSeconds: bigint;
|
|
145
|
+
readonly bump: number;
|
|
146
|
+
readonly shipsInEscrow: readonly StarbaseEscrowedShipData[];
|
|
147
|
+
readonly cargo: StarbaseCargoPodData;
|
|
148
|
+
}
|
|
149
|
+
/** Fully translated StarbaseUpgradeProcess account data before registry joins.
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* declare const data: StarbaseUpgradeProcessAccountData;
|
|
153
|
+
* console.log(data.resourceId, data.quantityRaw);
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export interface StarbaseUpgradeProcessAccountData {
|
|
157
|
+
readonly version: number;
|
|
158
|
+
readonly playerProfile: Address;
|
|
159
|
+
readonly system: Address;
|
|
160
|
+
readonly starbasePlayer: Address;
|
|
161
|
+
readonly starbaseSequenceId: bigint;
|
|
162
|
+
readonly resourceId: number;
|
|
163
|
+
readonly quantityRaw: bigint;
|
|
164
|
+
readonly numCrew: number;
|
|
165
|
+
readonly startsAtUnixSeconds: bigint;
|
|
166
|
+
readonly endsAtUnixSeconds: bigint;
|
|
167
|
+
}
|
|
168
|
+
/** Stable StarbasePlayer account definition for the pinned C4 bindings. */
|
|
169
|
+
export declare const starbasePlayerAccountDefinition: C4AccountAdapter<StarbasePlayerAccountData>;
|
|
170
|
+
/** Stable StarbaseUpgradeProcess account definition for the pinned bindings. */
|
|
171
|
+
export declare const starbaseUpgradeProcessAccountDefinition: C4AccountAdapter<StarbaseUpgradeProcessAccountData>;
|
|
172
|
+
/** Derives StarbasePlayer from its generated System + Character seed recipe.
|
|
173
|
+
*
|
|
174
|
+
* This uses Kit directly because calling the generated bundle selects its
|
|
175
|
+
* browser-only crypto assertion under Node, while Kit's conditional export
|
|
176
|
+
* works in both supported environments. The generated helper equivalence is
|
|
177
|
+
* pinned by the adapter contract tests.
|
|
178
|
+
*/
|
|
179
|
+
export declare function deriveStarbasePlayerAddress(system: Address, character: Address): Promise<Address>;
|
|
180
|
+
export declare function buildStarbasePlayerCharacterDiscoveryFilters(character: Address): readonly ProgramAccountFilter[];
|
|
181
|
+
export declare function buildStarbasePlayerSystemDiscoveryFilters(system: Address): readonly ProgramAccountFilter[];
|
|
182
|
+
export declare function buildStarbaseUpgradePlayerDiscoveryFilters(player: Address): readonly ProgramAccountFilter[];
|
|
183
|
+
export declare function discoverStarbasePlayersByCharacter(context: SageContext, character: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<StarbasePlayerAccountData>[]>;
|
|
184
|
+
export declare function discoverStarbasePlayersBySystem(context: SageContext, system: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<StarbasePlayerAccountData>[]>;
|
|
185
|
+
export declare function discoverStarbaseUpgradeProcessesByPlayer(context: SageContext, player: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<StarbaseUpgradeProcessAccountData>[]>;
|
|
186
|
+
//# sourceMappingURL=starbase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/starbase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { SAGE_PROGRAM_ADDRESS, STARBASE_PLAYER_DISCRIMINATOR, STARBASE_UPGRADE_PROCESS_DISCRIMINATOR, getStarbasePlayerDecoder, getStarbaseUpgradeProcessDecoder, } from '@staratlas/dev-sage';
|
|
2
|
+
import { Faction } from '@staratlas/dev-profile-faction';
|
|
3
|
+
import { getAddressEncoder, getBytesEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
4
|
+
import { AccountDecodeError, InvalidAccountOwnerError, InvalidDiscriminatorError, } from '../../client/errors.js';
|
|
5
|
+
const STARBASE_PLAYER_MINIMUM_DATA_LENGTH = 191;
|
|
6
|
+
const STARBASE_UPGRADE_MINIMUM_DATA_LENGTH = 141;
|
|
7
|
+
const PLAYER_DISCRIMINATOR = Object.freeze(Array.from(STARBASE_PLAYER_DISCRIMINATOR));
|
|
8
|
+
const UPGRADE_DISCRIMINATOR = Object.freeze(Array.from(STARBASE_UPGRADE_PROCESS_DISCRIMINATOR));
|
|
9
|
+
/** Stable StarbasePlayer offsets verified against the pinned generated codec. */
|
|
10
|
+
export const STARBASE_PLAYER_FILTER_OFFSETS = Object.freeze({
|
|
11
|
+
character: 74,
|
|
12
|
+
discriminator: 0,
|
|
13
|
+
profile: 9,
|
|
14
|
+
system: 42,
|
|
15
|
+
});
|
|
16
|
+
/** Stable StarbaseUpgradeProcess offsets verified against the pinned codec. */
|
|
17
|
+
export const STARBASE_UPGRADE_FILTER_OFFSETS = Object.freeze({
|
|
18
|
+
discriminator: 0,
|
|
19
|
+
player: 73,
|
|
20
|
+
profile: 9,
|
|
21
|
+
system: 41,
|
|
22
|
+
});
|
|
23
|
+
/** Audited player-local Starbase relationships. */
|
|
24
|
+
export const STARBASE_RELATIONSHIPS = Object.freeze([
|
|
25
|
+
{
|
|
26
|
+
from: 'starSystem + character',
|
|
27
|
+
kind: 'derived',
|
|
28
|
+
mechanism: 'StarbasePlayer PDA seeds: literal, System, Character',
|
|
29
|
+
to: 'starbasePlayer',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
from: 'character | starSystem',
|
|
33
|
+
kind: 'discovered',
|
|
34
|
+
mechanism: 'targeted discriminator and stored-field filters',
|
|
35
|
+
to: 'starbasePlayer[]',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
from: 'starbasePlayer',
|
|
39
|
+
kind: 'stored',
|
|
40
|
+
mechanism: 'Profile, System, and Character account fields',
|
|
41
|
+
to: 'profile | starSystem | character',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
from: 'starbasePlayer',
|
|
45
|
+
kind: 'nested',
|
|
46
|
+
mechanism: 'CargoPod, respawn queue, facility, and escrow values',
|
|
47
|
+
to: 'cargoPod',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
from: 'starbasePlayer',
|
|
51
|
+
kind: 'stored',
|
|
52
|
+
mechanism: 'StarbaseUpgradeProcess.starbasePlayer field discovery',
|
|
53
|
+
to: 'starbaseUpgradeProcess[]',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
from: 'starbasePlayer',
|
|
57
|
+
kind: 'instruction-only',
|
|
58
|
+
mechanism: 'repair, registration, and contribution co-accounts',
|
|
59
|
+
to: 'sharedStarbase | currencyCache',
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
function faction(value) {
|
|
63
|
+
switch (value) {
|
|
64
|
+
case Faction.Unaligned:
|
|
65
|
+
return 'unaligned';
|
|
66
|
+
case Faction.Mud:
|
|
67
|
+
return 'mud';
|
|
68
|
+
case Faction.Oni:
|
|
69
|
+
return 'oni';
|
|
70
|
+
case Faction.Ustur:
|
|
71
|
+
return 'ustur';
|
|
72
|
+
/* v8 ignore next -- the generated enum decoder rejects unknown values. */
|
|
73
|
+
default:
|
|
74
|
+
throw new RangeError(`Unsupported StarbasePlayer faction ${String(value)}.`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function queue(value) {
|
|
78
|
+
return {
|
|
79
|
+
completesAtUnixSeconds: value.completeAt,
|
|
80
|
+
quantityRaw: value.quantity,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function cargoPod(value) {
|
|
84
|
+
return {
|
|
85
|
+
amounts: [...value.amounts].map(([cargoId, amount]) => ({
|
|
86
|
+
amount,
|
|
87
|
+
cargoId,
|
|
88
|
+
})),
|
|
89
|
+
sequenceId: value.seqId,
|
|
90
|
+
usedStorageUnitsRaw: value.storageCost,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function translatePlayer(value) {
|
|
94
|
+
return {
|
|
95
|
+
bump: value.bump,
|
|
96
|
+
busyCrew: value.busyCrew,
|
|
97
|
+
cargo: cargoPod(value.cargoPod),
|
|
98
|
+
cargoRespawnEndsAtUnixSeconds: value.cargoRespawnEndsAt,
|
|
99
|
+
character: value.character,
|
|
100
|
+
faction: faction(value.faction),
|
|
101
|
+
playerProfile: value.playerProfile,
|
|
102
|
+
respawning: {
|
|
103
|
+
cargo: cargoPod(value.respawningCargo),
|
|
104
|
+
claimStakes: [...value.respawningClaimStakes].map(([definitionId, value]) => ({ definitionId, ...queue(value) })),
|
|
105
|
+
craftingHabs: [...value.respawningCraftingHabs].map(([definitionId, value]) => ({ definitionId, ...queue(value) })),
|
|
106
|
+
crew: queue(value.respawningCrew),
|
|
107
|
+
ships: [...value.respawningShips].map(([shipId, value]) => ({
|
|
108
|
+
shipId,
|
|
109
|
+
...queue(value),
|
|
110
|
+
})),
|
|
111
|
+
},
|
|
112
|
+
sequenceId: value.seqId,
|
|
113
|
+
shipsInEscrow: [...value.shipsInEscrow].map(([shipId, quantityRaw]) => ({
|
|
114
|
+
quantityRaw,
|
|
115
|
+
shipId,
|
|
116
|
+
})),
|
|
117
|
+
system: value.system,
|
|
118
|
+
totalCrew: value.totalCrew,
|
|
119
|
+
version: value.version,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function translateUpgrade(value) {
|
|
123
|
+
return {
|
|
124
|
+
endsAtUnixSeconds: value.endTime,
|
|
125
|
+
numCrew: value.numCrew,
|
|
126
|
+
playerProfile: value.profile,
|
|
127
|
+
quantityRaw: value.quantity,
|
|
128
|
+
resourceId: value.resourceId,
|
|
129
|
+
starbasePlayer: value.starbasePlayer,
|
|
130
|
+
starbaseSequenceId: value.starbaseSeqId,
|
|
131
|
+
startsAtUnixSeconds: value.startTime,
|
|
132
|
+
system: value.system,
|
|
133
|
+
version: value.version,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function validate(account, type, discriminator, minimumDataLength) {
|
|
137
|
+
if (account.owner !== SAGE_PROGRAM_ADDRESS) {
|
|
138
|
+
throw new InvalidAccountOwnerError(type, account.address, SAGE_PROGRAM_ADDRESS, account.owner);
|
|
139
|
+
}
|
|
140
|
+
if (account.data.length < discriminator.length ||
|
|
141
|
+
!discriminator.every((byte, index) => account.data[index] === byte)) {
|
|
142
|
+
throw new InvalidDiscriminatorError(type, account.address);
|
|
143
|
+
}
|
|
144
|
+
if (account.data.length < minimumDataLength) {
|
|
145
|
+
throw new AccountDecodeError(type, account.address, new RangeError(`Expected at least ${minimumDataLength} ${type} account bytes, received ${account.data.length}.`));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function decodeExactly(account, type, read) {
|
|
149
|
+
try {
|
|
150
|
+
const [decoded, offset] = read(account.data, 0);
|
|
151
|
+
if (offset !== account.data.length) {
|
|
152
|
+
throw new RangeError(`Decoded ${offset} of ${account.data.length} ${type} account bytes; trailing bytes are not accepted.`);
|
|
153
|
+
}
|
|
154
|
+
return decoded;
|
|
155
|
+
}
|
|
156
|
+
catch (cause) {
|
|
157
|
+
throw new AccountDecodeError(type, account.address, cause);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function validatePlayer(account) {
|
|
161
|
+
validate(account, 'starbasePlayer', PLAYER_DISCRIMINATOR, STARBASE_PLAYER_MINIMUM_DATA_LENGTH);
|
|
162
|
+
}
|
|
163
|
+
function validateUpgrade(account) {
|
|
164
|
+
validate(account, 'starbaseUpgradeProcess', UPGRADE_DISCRIMINATOR, STARBASE_UPGRADE_MINIMUM_DATA_LENGTH);
|
|
165
|
+
}
|
|
166
|
+
/** Stable StarbasePlayer account definition for the pinned C4 bindings. */
|
|
167
|
+
export const starbasePlayerAccountDefinition = Object.freeze({
|
|
168
|
+
decode(account) {
|
|
169
|
+
validatePlayer(account);
|
|
170
|
+
return translatePlayer(decodeExactly(account, 'starbasePlayer', (bytes, offset) => getStarbasePlayerDecoder().read(bytes, offset)));
|
|
171
|
+
},
|
|
172
|
+
discriminator: PLAYER_DISCRIMINATOR,
|
|
173
|
+
minimumDataLength: STARBASE_PLAYER_MINIMUM_DATA_LENGTH,
|
|
174
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
175
|
+
type: 'starbasePlayer',
|
|
176
|
+
validate: validatePlayer,
|
|
177
|
+
});
|
|
178
|
+
/** Stable StarbaseUpgradeProcess account definition for the pinned bindings. */
|
|
179
|
+
export const starbaseUpgradeProcessAccountDefinition = Object.freeze({
|
|
180
|
+
decode(account) {
|
|
181
|
+
validateUpgrade(account);
|
|
182
|
+
return translateUpgrade(decodeExactly(account, 'starbaseUpgradeProcess', (bytes, offset) => getStarbaseUpgradeProcessDecoder().read(bytes, offset)));
|
|
183
|
+
},
|
|
184
|
+
discriminator: UPGRADE_DISCRIMINATOR,
|
|
185
|
+
minimumDataLength: STARBASE_UPGRADE_MINIMUM_DATA_LENGTH,
|
|
186
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
187
|
+
type: 'starbaseUpgradeProcess',
|
|
188
|
+
validate: validateUpgrade,
|
|
189
|
+
});
|
|
190
|
+
/** Derives StarbasePlayer from its generated System + Character seed recipe.
|
|
191
|
+
*
|
|
192
|
+
* This uses Kit directly because calling the generated bundle selects its
|
|
193
|
+
* browser-only crypto assertion under Node, while Kit's conditional export
|
|
194
|
+
* works in both supported environments. The generated helper equivalence is
|
|
195
|
+
* pinned by the adapter contract tests.
|
|
196
|
+
*/
|
|
197
|
+
export async function deriveStarbasePlayerAddress(system, character) {
|
|
198
|
+
const [address] = await getProgramDerivedAddress({
|
|
199
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
200
|
+
seeds: [
|
|
201
|
+
getBytesEncoder().encode(new Uint8Array([
|
|
202
|
+
83, 116, 97, 114, 98, 97, 115, 101, 80, 108, 97, 121, 101, 114,
|
|
203
|
+
])),
|
|
204
|
+
getAddressEncoder().encode(system),
|
|
205
|
+
getAddressEncoder().encode(character),
|
|
206
|
+
],
|
|
207
|
+
});
|
|
208
|
+
return address;
|
|
209
|
+
}
|
|
210
|
+
function filters(discriminator, offset, address) {
|
|
211
|
+
return Object.freeze([
|
|
212
|
+
{ bytes: new Uint8Array(discriminator), offset: 0 },
|
|
213
|
+
{ bytes: new Uint8Array(getAddressEncoder().encode(address)), offset },
|
|
214
|
+
]);
|
|
215
|
+
}
|
|
216
|
+
export function buildStarbasePlayerCharacterDiscoveryFilters(character) {
|
|
217
|
+
return filters(STARBASE_PLAYER_DISCRIMINATOR, STARBASE_PLAYER_FILTER_OFFSETS.character, character);
|
|
218
|
+
}
|
|
219
|
+
export function buildStarbasePlayerSystemDiscoveryFilters(system) {
|
|
220
|
+
return filters(STARBASE_PLAYER_DISCRIMINATOR, STARBASE_PLAYER_FILTER_OFFSETS.system, system);
|
|
221
|
+
}
|
|
222
|
+
export function buildStarbaseUpgradePlayerDiscoveryFilters(player) {
|
|
223
|
+
return filters(STARBASE_UPGRADE_PROCESS_DISCRIMINATOR, STARBASE_UPGRADE_FILTER_OFFSETS.player, player);
|
|
224
|
+
}
|
|
225
|
+
async function discoverPlayers(context, relatedAddress, relation, options = {}) {
|
|
226
|
+
const players = await context.data.discover(starbasePlayerAccountDefinition, {
|
|
227
|
+
...options,
|
|
228
|
+
filters: relation === 'character'
|
|
229
|
+
? buildStarbasePlayerCharacterDiscoveryFilters(relatedAddress)
|
|
230
|
+
: buildStarbasePlayerSystemDiscoveryFilters(relatedAddress),
|
|
231
|
+
strategy: 'targeted-program-accounts',
|
|
232
|
+
});
|
|
233
|
+
for (const player of players) {
|
|
234
|
+
if (player.data[relation] !== relatedAddress) {
|
|
235
|
+
throw new AccountDecodeError('starbasePlayer', player.address, new RangeError('The decoded StarbasePlayer contradicted its discovery filter.'), `A discovered Starbase Player candidate did not match the requested ${relation}. Verify the provider and pinned StarbasePlayer filter offsets before retrying.`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return players;
|
|
239
|
+
}
|
|
240
|
+
export function discoverStarbasePlayersByCharacter(context, character, options) {
|
|
241
|
+
return discoverPlayers(context, character, 'character', options);
|
|
242
|
+
}
|
|
243
|
+
export function discoverStarbasePlayersBySystem(context, system, options) {
|
|
244
|
+
return discoverPlayers(context, system, 'system', options);
|
|
245
|
+
}
|
|
246
|
+
export async function discoverStarbaseUpgradeProcessesByPlayer(context, player, options = {}) {
|
|
247
|
+
const upgrades = await context.data.discover(starbaseUpgradeProcessAccountDefinition, {
|
|
248
|
+
...options,
|
|
249
|
+
filters: buildStarbaseUpgradePlayerDiscoveryFilters(player),
|
|
250
|
+
strategy: 'targeted-program-accounts',
|
|
251
|
+
});
|
|
252
|
+
for (const upgrade of upgrades) {
|
|
253
|
+
if (upgrade.data.starbasePlayer !== player) {
|
|
254
|
+
throw new AccountDecodeError('starbaseUpgradeProcess', upgrade.address, new RangeError('The decoded StarbaseUpgradeProcess contradicted its discovery filter.'), 'A discovered Starbase upgrade candidate did not match the requested Starbase Player. Verify the provider and pinned StarbaseUpgradeProcess filter offsets before retrying.');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return upgrades;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=starbase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase.js","sourceRoot":"","sources":["../../../src/internal/c4/starbase.ts"],"names":[],"mappings":"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"}
|