@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.
Files changed (279) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +124 -0
  3. package/dist/bindings.d.ts +11 -0
  4. package/dist/bindings.d.ts.map +1 -0
  5. package/dist/bindings.js +11 -0
  6. package/dist/bindings.js.map +1 -0
  7. package/dist/cargo/actions/index.d.ts +122 -0
  8. package/dist/cargo/actions/index.d.ts.map +1 -0
  9. package/dist/cargo/actions/index.js +526 -0
  10. package/dist/cargo/actions/index.js.map +1 -0
  11. package/dist/cargo/index.d.ts +77 -0
  12. package/dist/cargo/index.d.ts.map +1 -0
  13. package/dist/cargo/index.js +102 -0
  14. package/dist/cargo/index.js.map +1 -0
  15. package/dist/claim-stakes/index.d.ts +64 -0
  16. package/dist/claim-stakes/index.d.ts.map +1 -0
  17. package/dist/claim-stakes/index.js +97 -0
  18. package/dist/claim-stakes/index.js.map +1 -0
  19. package/dist/client/context.d.ts +21 -0
  20. package/dist/client/context.d.ts.map +1 -0
  21. package/dist/client/context.js +1374 -0
  22. package/dist/client/context.js.map +1 -0
  23. package/dist/client/contracts.d.ts +671 -0
  24. package/dist/client/contracts.d.ts.map +1 -0
  25. package/dist/client/contracts.js +2 -0
  26. package/dist/client/contracts.js.map +1 -0
  27. package/dist/client/deployments.d.ts +3 -0
  28. package/dist/client/deployments.d.ts.map +1 -0
  29. package/dist/client/deployments.js +2 -0
  30. package/dist/client/deployments.js.map +1 -0
  31. package/dist/client/errors.d.ts +227 -0
  32. package/dist/client/errors.d.ts.map +1 -0
  33. package/dist/client/errors.js +288 -0
  34. package/dist/client/errors.js.map +1 -0
  35. package/dist/client/index.d.ts +7 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +5 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/lifecycle.d.ts +4 -0
  40. package/dist/client/lifecycle.d.ts.map +1 -0
  41. package/dist/client/lifecycle.js +10 -0
  42. package/dist/client/lifecycle.js.map +1 -0
  43. package/dist/client/provider-errors.d.ts +9 -0
  44. package/dist/client/provider-errors.d.ts.map +1 -0
  45. package/dist/client/provider-errors.js +12 -0
  46. package/dist/client/provider-errors.js.map +1 -0
  47. package/dist/client/reconciliation.d.ts +10 -0
  48. package/dist/client/reconciliation.d.ts.map +1 -0
  49. package/dist/client/reconciliation.js +9 -0
  50. package/dist/client/reconciliation.js.map +1 -0
  51. package/dist/client/refs.d.ts +23 -0
  52. package/dist/client/refs.d.ts.map +1 -0
  53. package/dist/client/refs.js +12 -0
  54. package/dist/client/refs.js.map +1 -0
  55. package/dist/combat/index.d.ts +256 -0
  56. package/dist/combat/index.d.ts.map +1 -0
  57. package/dist/combat/index.js +222 -0
  58. package/dist/combat/index.js.map +1 -0
  59. package/dist/crafting/index.d.ts +308 -0
  60. package/dist/crafting/index.d.ts.map +1 -0
  61. package/dist/crafting/index.js +400 -0
  62. package/dist/crafting/index.js.map +1 -0
  63. package/dist/factions/index.d.ts +292 -0
  64. package/dist/factions/index.d.ts.map +1 -0
  65. package/dist/factions/index.js +334 -0
  66. package/dist/factions/index.js.map +1 -0
  67. package/dist/fleets/actions/index.d.ts +200 -0
  68. package/dist/fleets/actions/index.d.ts.map +1 -0
  69. package/dist/fleets/actions/index.js +854 -0
  70. package/dist/fleets/actions/index.js.map +1 -0
  71. package/dist/fleets/index.d.ts +100 -0
  72. package/dist/fleets/index.d.ts.map +1 -0
  73. package/dist/fleets/index.js +124 -0
  74. package/dist/fleets/index.js.map +1 -0
  75. package/dist/identity/index.d.ts +225 -0
  76. package/dist/identity/index.d.ts.map +1 -0
  77. package/dist/identity/index.js +341 -0
  78. package/dist/identity/index.js.map +1 -0
  79. package/dist/index.d.ts +401 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +519 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/internal/c4/adapter.d.ts +6 -0
  84. package/dist/internal/c4/adapter.d.ts.map +1 -0
  85. package/dist/internal/c4/adapter.js +2 -0
  86. package/dist/internal/c4/adapter.js.map +1 -0
  87. package/dist/internal/c4/bindings.d.ts +4 -0
  88. package/dist/internal/c4/bindings.d.ts.map +1 -0
  89. package/dist/internal/c4/bindings.js +4 -0
  90. package/dist/internal/c4/bindings.js.map +1 -0
  91. package/dist/internal/c4/character-modifier.d.ts +5 -0
  92. package/dist/internal/c4/character-modifier.d.ts.map +1 -0
  93. package/dist/internal/c4/character-modifier.js +100 -0
  94. package/dist/internal/c4/character-modifier.js.map +1 -0
  95. package/dist/internal/c4/claim-stake.d.ts +140 -0
  96. package/dist/internal/c4/claim-stake.d.ts.map +1 -0
  97. package/dist/internal/c4/claim-stake.js +205 -0
  98. package/dist/internal/c4/claim-stake.js.map +1 -0
  99. package/dist/internal/c4/combat.d.ts +98 -0
  100. package/dist/internal/c4/combat.d.ts.map +1 -0
  101. package/dist/internal/c4/combat.js +232 -0
  102. package/dist/internal/c4/combat.js.map +1 -0
  103. package/dist/internal/c4/crafting.d.ts +170 -0
  104. package/dist/internal/c4/crafting.d.ts.map +1 -0
  105. package/dist/internal/c4/crafting.js +387 -0
  106. package/dist/internal/c4/crafting.js.map +1 -0
  107. package/dist/internal/c4/factions.d.ts +248 -0
  108. package/dist/internal/c4/factions.d.ts.map +1 -0
  109. package/dist/internal/c4/factions.js +589 -0
  110. package/dist/internal/c4/factions.js.map +1 -0
  111. package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
  112. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
  113. package/dist/internal/c4/fleet-crew-binding.js +51 -0
  114. package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
  115. package/dist/internal/c4/fleet.d.ts +310 -0
  116. package/dist/internal/c4/fleet.d.ts.map +1 -0
  117. package/dist/internal/c4/fleet.js +393 -0
  118. package/dist/internal/c4/fleet.js.map +1 -0
  119. package/dist/internal/c4/game.d.ts +192 -0
  120. package/dist/internal/c4/game.d.ts.map +1 -0
  121. package/dist/internal/c4/game.js +396 -0
  122. package/dist/internal/c4/game.js.map +1 -0
  123. package/dist/internal/c4/identity.d.ts +193 -0
  124. package/dist/internal/c4/identity.d.ts.map +1 -0
  125. package/dist/internal/c4/identity.js +180 -0
  126. package/dist/internal/c4/identity.js.map +1 -0
  127. package/dist/internal/c4/loot-layout.d.ts +20 -0
  128. package/dist/internal/c4/loot-layout.d.ts.map +1 -0
  129. package/dist/internal/c4/loot-layout.js +29 -0
  130. package/dist/internal/c4/loot-layout.js.map +1 -0
  131. package/dist/internal/c4/loyalty.d.ts +102 -0
  132. package/dist/internal/c4/loyalty.d.ts.map +1 -0
  133. package/dist/internal/c4/loyalty.js +318 -0
  134. package/dist/internal/c4/loyalty.js.map +1 -0
  135. package/dist/internal/c4/market.d.ts +112 -0
  136. package/dist/internal/c4/market.d.ts.map +1 -0
  137. package/dist/internal/c4/market.js +247 -0
  138. package/dist/internal/c4/market.js.map +1 -0
  139. package/dist/internal/c4/pda.d.ts +6 -0
  140. package/dist/internal/c4/pda.d.ts.map +1 -0
  141. package/dist/internal/c4/pda.js +45 -0
  142. package/dist/internal/c4/pda.js.map +1 -0
  143. package/dist/internal/c4/profile-faction.d.ts +14 -0
  144. package/dist/internal/c4/profile-faction.d.ts.map +1 -0
  145. package/dist/internal/c4/profile-faction.js +69 -0
  146. package/dist/internal/c4/profile-faction.js.map +1 -0
  147. package/dist/internal/c4/rewards.d.ts +135 -0
  148. package/dist/internal/c4/rewards.d.ts.map +1 -0
  149. package/dist/internal/c4/rewards.js +305 -0
  150. package/dist/internal/c4/rewards.js.map +1 -0
  151. package/dist/internal/c4/scanning.d.ts +85 -0
  152. package/dist/internal/c4/scanning.d.ts.map +1 -0
  153. package/dist/internal/c4/scanning.js +180 -0
  154. package/dist/internal/c4/scanning.js.map +1 -0
  155. package/dist/internal/c4/starbase.d.ts +186 -0
  156. package/dist/internal/c4/starbase.d.ts.map +1 -0
  157. package/dist/internal/c4/starbase.js +259 -0
  158. package/dist/internal/c4/starbase.js.map +1 -0
  159. package/dist/internal/c4/world.d.ts +294 -0
  160. package/dist/internal/c4/world.d.ts.map +1 -0
  161. package/dist/internal/c4/world.js +417 -0
  162. package/dist/internal/c4/world.js.map +1 -0
  163. package/dist/internal/cargo.d.ts +65 -0
  164. package/dist/internal/cargo.d.ts.map +1 -0
  165. package/dist/internal/cargo.js +46 -0
  166. package/dist/internal/cargo.js.map +1 -0
  167. package/dist/internal/claim-stake.d.ts +31 -0
  168. package/dist/internal/claim-stake.d.ts.map +1 -0
  169. package/dist/internal/claim-stake.js +20 -0
  170. package/dist/internal/claim-stake.js.map +1 -0
  171. package/dist/internal/fleet.d.ts +165 -0
  172. package/dist/internal/fleet.d.ts.map +1 -0
  173. package/dist/internal/fleet.js +179 -0
  174. package/dist/internal/fleet.js.map +1 -0
  175. package/dist/internal/game-context.d.ts +4 -0
  176. package/dist/internal/game-context.d.ts.map +1 -0
  177. package/dist/internal/game-context.js +9 -0
  178. package/dist/internal/game-context.js.map +1 -0
  179. package/dist/internal/immutable-tree.d.ts +5 -0
  180. package/dist/internal/immutable-tree.d.ts.map +1 -0
  181. package/dist/internal/immutable-tree.js +47 -0
  182. package/dist/internal/immutable-tree.js.map +1 -0
  183. package/dist/internal/json.d.ts +7 -0
  184. package/dist/internal/json.d.ts.map +1 -0
  185. package/dist/internal/json.js +33 -0
  186. package/dist/internal/json.js.map +1 -0
  187. package/dist/internal/planning/authorization-adapter.d.ts +63 -0
  188. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
  189. package/dist/internal/planning/authorization-adapter.js +222 -0
  190. package/dist/internal/planning/authorization-adapter.js.map +1 -0
  191. package/dist/internal/read-meta.d.ts +84 -0
  192. package/dist/internal/read-meta.d.ts.map +1 -0
  193. package/dist/internal/read-meta.js +28 -0
  194. package/dist/internal/read-meta.js.map +1 -0
  195. package/dist/internal/resolved-snapshot.d.ts +3 -0
  196. package/dist/internal/resolved-snapshot.d.ts.map +1 -0
  197. package/dist/internal/resolved-snapshot.js +11 -0
  198. package/dist/internal/resolved-snapshot.js.map +1 -0
  199. package/dist/internal/zink/provider.d.ts +9 -0
  200. package/dist/internal/zink/provider.d.ts.map +1 -0
  201. package/dist/internal/zink/provider.js +213 -0
  202. package/dist/internal/zink/provider.js.map +1 -0
  203. package/dist/loyalty/index.d.ts +195 -0
  204. package/dist/loyalty/index.d.ts.map +1 -0
  205. package/dist/loyalty/index.js +289 -0
  206. package/dist/loyalty/index.js.map +1 -0
  207. package/dist/markets/index.d.ts +195 -0
  208. package/dist/markets/index.d.ts.map +1 -0
  209. package/dist/markets/index.js +232 -0
  210. package/dist/markets/index.js.map +1 -0
  211. package/dist/mining/index.d.ts +156 -0
  212. package/dist/mining/index.d.ts.map +1 -0
  213. package/dist/mining/index.js +236 -0
  214. package/dist/mining/index.js.map +1 -0
  215. package/dist/planning/assembly.d.ts +42 -0
  216. package/dist/planning/assembly.d.ts.map +1 -0
  217. package/dist/planning/assembly.js +141 -0
  218. package/dist/planning/assembly.js.map +1 -0
  219. package/dist/planning/composition.d.ts +4 -0
  220. package/dist/planning/composition.d.ts.map +1 -0
  221. package/dist/planning/composition.js +76 -0
  222. package/dist/planning/composition.js.map +1 -0
  223. package/dist/planning/execution.d.ts +93 -0
  224. package/dist/planning/execution.d.ts.map +1 -0
  225. package/dist/planning/execution.js +549 -0
  226. package/dist/planning/execution.js.map +1 -0
  227. package/dist/planning/index.d.ts +219 -0
  228. package/dist/planning/index.d.ts.map +1 -0
  229. package/dist/planning/index.js +375 -0
  230. package/dist/planning/index.js.map +1 -0
  231. package/dist/planning/plan-instances.d.ts +3 -0
  232. package/dist/planning/plan-instances.d.ts.map +1 -0
  233. package/dist/planning/plan-instances.js +8 -0
  234. package/dist/planning/plan-instances.js.map +1 -0
  235. package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
  236. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
  237. package/dist/planning/plan-sequence-checkpoint.js +449 -0
  238. package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
  239. package/dist/planning/plan-sequence-execution.d.ts +72 -0
  240. package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
  241. package/dist/planning/plan-sequence-execution.js +410 -0
  242. package/dist/planning/plan-sequence-execution.js.map +1 -0
  243. package/dist/planning/plan-sequence.d.ts +244 -0
  244. package/dist/planning/plan-sequence.d.ts.map +1 -0
  245. package/dist/planning/plan-sequence.js +264 -0
  246. package/dist/planning/plan-sequence.js.map +1 -0
  247. package/dist/planning/simulation.d.ts +50 -0
  248. package/dist/planning/simulation.d.ts.map +1 -0
  249. package/dist/planning/simulation.js +69 -0
  250. package/dist/planning/simulation.js.map +1 -0
  251. package/dist/registry/combat.d.ts +5 -0
  252. package/dist/registry/combat.d.ts.map +1 -0
  253. package/dist/registry/combat.js +7 -0
  254. package/dist/registry/combat.js.map +1 -0
  255. package/dist/registry/index.d.ts +138 -0
  256. package/dist/registry/index.d.ts.map +1 -0
  257. package/dist/registry/index.js +397 -0
  258. package/dist/registry/index.js.map +1 -0
  259. package/dist/rewards/index.d.ts +202 -0
  260. package/dist/rewards/index.d.ts.map +1 -0
  261. package/dist/rewards/index.js +290 -0
  262. package/dist/rewards/index.js.map +1 -0
  263. package/dist/scanning/index.d.ts +185 -0
  264. package/dist/scanning/index.d.ts.map +1 -0
  265. package/dist/scanning/index.js +207 -0
  266. package/dist/scanning/index.js.map +1 -0
  267. package/dist/starbases/actions/index.d.ts +60 -0
  268. package/dist/starbases/actions/index.d.ts.map +1 -0
  269. package/dist/starbases/actions/index.js +245 -0
  270. package/dist/starbases/actions/index.js.map +1 -0
  271. package/dist/starbases/index.d.ts +165 -0
  272. package/dist/starbases/index.d.ts.map +1 -0
  273. package/dist/starbases/index.js +213 -0
  274. package/dist/starbases/index.js.map +1 -0
  275. package/dist/world/index.d.ts +180 -0
  276. package/dist/world/index.d.ts.map +1 -0
  277. package/dist/world/index.js +265 -0
  278. package/dist/world/index.js.map +1 -0
  279. package/package.json +140 -0
@@ -0,0 +1,195 @@
1
+ import type { Address, ReadOptions, SageContext } from '../client/index.js';
2
+ import { type EntityRef } from '../client/refs.js';
3
+ import { type FactionMarketAccountData, type LocalMarketAccountData, type LocalMarketMakerData, type LocalMarketOrderData } from '../internal/c4/market.js';
4
+ import { type CargoDefinitionSummary } from '../registry/index.js';
5
+ /** Derives a Local Market PDA from its verified generated seeds.
6
+ * @example
7
+ * ```ts
8
+ * declare const system: Address;
9
+ * const address = await deriveLocalMarketAddress(system, 1, 0n);
10
+ * ```
11
+ */
12
+ export declare function deriveLocalMarketAddress(system: Address, cargoId: number, starbaseSequenceId: bigint): Promise<Address>;
13
+ /** Derives a Faction Market PDA from its verified generated seeds.
14
+ * @example
15
+ * ```ts
16
+ * declare const game: Address;
17
+ * declare const system: Address;
18
+ * const address = await deriveFactionMarketAddress(game, system, 0n);
19
+ * ```
20
+ */
21
+ export declare function deriveFactionMarketAddress(game: Address, system: Address, starbaseSequenceId: bigint): Promise<Address>;
22
+ /** Discovery controls for Local Market finders.
23
+ * @example
24
+ * ```ts
25
+ * const options: MarketDiscoveryOptions = { commitment: 'confirmed' };
26
+ * ```
27
+ */
28
+ export interface MarketDiscoveryOptions extends ReadOptions {
29
+ readonly signal?: AbortSignal;
30
+ }
31
+ /** One translated Local Market order.
32
+ * @example
33
+ * ```ts
34
+ * declare const order: LocalMarketOrderSnapshot;
35
+ * console.log(order.side, order.priceAtlas);
36
+ * ```
37
+ */
38
+ export interface LocalMarketOrderSnapshot extends LocalMarketOrderData {
39
+ readonly makerRef: EntityRef<'character'>;
40
+ }
41
+ /** One Character's maker state on one order-book side.
42
+ *
43
+ * `escrowedOrReleasedAtlas` is escrowed ATLAS for bids and ATLAS released from
44
+ * completed sales for asks. It does not establish that either amount is
45
+ * currently withdrawable.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * declare const makerState: LocalMarketMakerStateSnapshot;
50
+ * console.log(makerState.escrowedOrReleasedAtlas);
51
+ * ```
52
+ */
53
+ export interface LocalMarketMakerStateSnapshot extends LocalMarketMakerData {
54
+ readonly characterRef: EntityRef<'character'>;
55
+ }
56
+ /** One translated side of a Local Market order book.
57
+ * @example
58
+ * ```ts
59
+ * declare const book: LocalMarketOrderBookSnapshot;
60
+ * console.log(book.orders.length);
61
+ * ```
62
+ */
63
+ export interface LocalMarketOrderBookSnapshot {
64
+ readonly nextOrderIdRaw: bigint;
65
+ readonly makers: readonly LocalMarketMakerStateSnapshot[];
66
+ readonly orders: readonly LocalMarketOrderSnapshot[];
67
+ }
68
+ /** Immutable Local Market, order book, escrow, and maker-state snapshot.
69
+ * @example
70
+ * ```ts
71
+ * declare const market: LocalMarketSnapshot;
72
+ * console.log(market.cargo.name, market.asks.orders);
73
+ * ```
74
+ */
75
+ export interface LocalMarketSnapshot extends Omit<LocalMarketAccountData, 'asks' | 'bids' | 'cargo' | 'initializerProfile' | 'system'> {
76
+ readonly kind: 'localMarket';
77
+ readonly address: Address;
78
+ readonly system: EntityRef<'starSystem'>;
79
+ readonly initializerProfile: EntityRef<'profile'>;
80
+ readonly cargo: CargoDefinitionSummary & {
81
+ readonly amountRaw: bigint;
82
+ };
83
+ readonly bids: LocalMarketOrderBookSnapshot;
84
+ readonly asks: LocalMarketOrderBookSnapshot;
85
+ toJSON(): unknown;
86
+ }
87
+ /** One cargo offer in a Faction Market.
88
+ * @example
89
+ * ```ts
90
+ * declare const offer: FactionMarketOfferSnapshot;
91
+ * console.log(offer.name, offer.priceAtlas);
92
+ * ```
93
+ */
94
+ export interface FactionMarketOfferSnapshot extends CargoDefinitionSummary {
95
+ readonly canBuyFromFaction: boolean;
96
+ readonly canSellToFaction: boolean;
97
+ readonly priceRaw: bigint;
98
+ readonly priceAtlas: number;
99
+ readonly remainingQuantityRaw: bigint;
100
+ }
101
+ /** Immutable Faction Market configuration, lifecycle, and offers snapshot.
102
+ * @example
103
+ * ```ts
104
+ * declare const market: FactionMarketSnapshot;
105
+ * console.log(market.status, market.offers);
106
+ * ```
107
+ */
108
+ export interface FactionMarketSnapshot extends Omit<FactionMarketAccountData, 'game' | 'offers' | 'system'> {
109
+ readonly kind: 'factionMarket';
110
+ readonly address: Address;
111
+ readonly game: EntityRef<'game'>;
112
+ readonly system: EntityRef<'starSystem'>;
113
+ readonly offers: readonly FactionMarketOfferSnapshot[];
114
+ toJSON(): unknown;
115
+ }
116
+ /** Reads one required Local Market by address.
117
+ * @example
118
+ * ```ts
119
+ * declare const ctx: SageContext;
120
+ * declare const address: Address;
121
+ * const market = await getLocalMarket(ctx, address);
122
+ * ```
123
+ */
124
+ export declare function getLocalMarket(context: SageContext, address: Address, options?: ReadOptions): Promise<LocalMarketSnapshot>;
125
+ /** Reads one optional Local Market by address.
126
+ * @example
127
+ * ```ts
128
+ * declare const ctx: SageContext;
129
+ * declare const address: Address;
130
+ * const market = await maybeGetLocalMarket(ctx, address);
131
+ * ```
132
+ */
133
+ export declare function maybeGetLocalMarket(context: SageContext, address: Address, options?: ReadOptions): Promise<LocalMarketSnapshot | undefined>;
134
+ /** Derives and reads a Local Market for cargo at one Starbase incarnation.
135
+ * @example
136
+ * ```ts
137
+ * declare const ctx: SageContext;
138
+ * declare const system: Address;
139
+ * const market = await getLocalMarketForCargo(ctx, system, 1, 0n);
140
+ * ```
141
+ */
142
+ export declare function getLocalMarketForCargo(context: SageContext, system: Address, cargoId: number, starbaseSequenceId: bigint, options?: ReadOptions): Promise<LocalMarketSnapshot>;
143
+ /** Discovers all Local Markets stored for one Star System.
144
+ * @example
145
+ * ```ts
146
+ * declare const ctx: SageContext;
147
+ * declare const system: Address;
148
+ * const markets = await getLocalMarketsBySystem(ctx, system);
149
+ * ```
150
+ */
151
+ export declare function getLocalMarketsBySystem(context: SageContext, system: Address, options?: MarketDiscoveryOptions): Promise<readonly LocalMarketSnapshot[]>;
152
+ /** Returns one Character's open orders with that side's maker state.
153
+ *
154
+ * Bid-side ATLAS is escrowed for buy orders. Ask-side ATLAS was released from
155
+ * completed sell orders. Neither interpretation promises withdrawability.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * declare const ctx: SageContext;
160
+ * declare const market: Address;
161
+ * declare const character: Address;
162
+ * const orders = await getLocalMarketOrdersByCharacter(ctx, market, character);
163
+ * ```
164
+ */
165
+ export declare function getLocalMarketOrdersByCharacter(context: SageContext, market: Address, character: Address, options?: ReadOptions): Promise<readonly (LocalMarketOrderSnapshot & {
166
+ readonly makerState: LocalMarketMakerStateSnapshot;
167
+ })[]>;
168
+ /** Reads one required Faction Market by address.
169
+ * @example
170
+ * ```ts
171
+ * declare const ctx: SageContext;
172
+ * declare const address: Address;
173
+ * const market = await getFactionMarket(ctx, address);
174
+ * ```
175
+ */
176
+ export declare function getFactionMarket(context: SageContext, address: Address, options?: ReadOptions): Promise<FactionMarketSnapshot>;
177
+ /** Reads one optional Faction Market by address.
178
+ * @example
179
+ * ```ts
180
+ * declare const ctx: SageContext;
181
+ * declare const address: Address;
182
+ * const market = await maybeGetFactionMarket(ctx, address);
183
+ * ```
184
+ */
185
+ export declare function maybeGetFactionMarket(context: SageContext, address: Address, options?: ReadOptions): Promise<FactionMarketSnapshot | undefined>;
186
+ /** Derives and reads the configured Game's Faction Market at one Starbase incarnation.
187
+ * @example
188
+ * ```ts
189
+ * declare const ctx: SageContext;
190
+ * declare const system: Address;
191
+ * const market = await getFactionMarketForSystem(ctx, system, 0n);
192
+ * ```
193
+ */
194
+ export declare function getFactionMarketForSystem(context: SageContext, system: Address, starbaseSequenceId: bigint, options?: ReadOptions): Promise<FactionMarketSnapshot>;
195
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ import { AccountDecodeError } from '../client/errors.js';
2
+ import { entityRef } from '../client/refs.js';
3
+ import { deriveFactionMarketAddress as deriveFactionMarketAddressInternal, deriveLocalMarketAddress as deriveLocalMarketAddressInternal, discoverLocalMarketsBySystem, factionMarketAccountDefinition, localMarketAccountDefinition, } from '../internal/c4/market.js';
4
+ import { requireGameAddress } from '../internal/game-context.js';
5
+ import { attachJsonSerialization } from '../internal/json.js';
6
+ import { attachReadMeta, readMeta } from '../internal/read-meta.js';
7
+ import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
8
+ import { resolveCargo, } from '../registry/index.js';
9
+ /** Derives a Local Market PDA from its verified generated seeds.
10
+ * @example
11
+ * ```ts
12
+ * declare const system: Address;
13
+ * const address = await deriveLocalMarketAddress(system, 1, 0n);
14
+ * ```
15
+ */
16
+ export function deriveLocalMarketAddress(system, cargoId, starbaseSequenceId) {
17
+ return deriveLocalMarketAddressInternal(system, cargoId, starbaseSequenceId);
18
+ }
19
+ /** Derives a Faction Market PDA from its verified generated seeds.
20
+ * @example
21
+ * ```ts
22
+ * declare const game: Address;
23
+ * declare const system: Address;
24
+ * const address = await deriveFactionMarketAddress(game, system, 0n);
25
+ * ```
26
+ */
27
+ export function deriveFactionMarketAddress(game, system, starbaseSequenceId) {
28
+ return deriveFactionMarketAddressInternal(game, system, starbaseSequenceId);
29
+ }
30
+ function directMetadata(envelope) {
31
+ return {
32
+ commitment: envelope.commitment,
33
+ slot: envelope.slot,
34
+ source: envelope.source,
35
+ strategy: 'direct',
36
+ };
37
+ }
38
+ function order(value) {
39
+ return { ...value, makerRef: entityRef('character', value.maker) };
40
+ }
41
+ function makerState(value) {
42
+ return { ...value, characterRef: entityRef('character', value.character) };
43
+ }
44
+ function book(value) {
45
+ return {
46
+ makers: value.makers.map(makerState),
47
+ nextOrderIdRaw: value.nextOrderIdRaw,
48
+ orders: value.orders.map(order),
49
+ };
50
+ }
51
+ const LOCAL_SNAPSHOTS = new WeakMap();
52
+ const FACTION_SNAPSHOTS = new WeakMap();
53
+ async function createLocalSnapshot(context, envelope) {
54
+ const expected = await deriveLocalMarketAddress(envelope.data.system, envelope.data.cargo.cargoId, envelope.data.starbaseSequenceId);
55
+ if (expected !== envelope.address) {
56
+ throw new AccountDecodeError('market', envelope.address, new RangeError('The decoded Local Market contradicted its PDA seeds.'), `Local Market ${envelope.address} is not derived from its Star System, cargo id, and Starbase sequence. Verify the address and pinned generated source before retrying.`);
57
+ }
58
+ const { asks, bids, cargo, initializerProfile, system, ...data } = envelope.data;
59
+ return freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
60
+ ...data,
61
+ address: envelope.address,
62
+ asks: book(asks),
63
+ bids: book(bids),
64
+ cargo: {
65
+ ...(await resolveCargo(context, cargo.cargoId)),
66
+ amountRaw: cargo.amountRaw,
67
+ },
68
+ initializerProfile: entityRef('profile', initializerProfile),
69
+ kind: 'localMarket',
70
+ system: entityRef('starSystem', system),
71
+ }), directMetadata(envelope)));
72
+ }
73
+ function toLocalSnapshot(context, envelope) {
74
+ const existing = LOCAL_SNAPSHOTS.get(envelope);
75
+ if (existing !== undefined)
76
+ return existing;
77
+ const pending = createLocalSnapshot(context, envelope);
78
+ LOCAL_SNAPSHOTS.set(envelope, pending);
79
+ void pending.catch(() => LOCAL_SNAPSHOTS.delete(envelope));
80
+ return pending;
81
+ }
82
+ async function createFactionSnapshot(context, envelope) {
83
+ const game = requireGameAddress(context);
84
+ if (envelope.data.game !== game) {
85
+ throw new AccountDecodeError('market', envelope.address, new RangeError('The decoded Faction Market references another Game.'), `Faction Market ${envelope.address} belongs to Game ${envelope.data.game}, not configured Game ${game}. Verify the cluster and address before retrying.`);
86
+ }
87
+ const expected = await deriveFactionMarketAddress(game, envelope.data.system, envelope.data.starbaseSequenceId);
88
+ if (expected !== envelope.address) {
89
+ throw new AccountDecodeError('market', envelope.address, new RangeError('The decoded Faction Market contradicted its PDA seeds.'), `Faction Market ${envelope.address} is not derived from its configured Game, Star System, and Starbase sequence. Verify the address and pinned generated source before retrying.`);
90
+ }
91
+ const { game: _game, offers, system, ...data } = envelope.data;
92
+ const resolvedOffers = await Promise.all(offers.map(async ({ cargoId, ...offer }) => ({
93
+ ...(await resolveCargo(context, cargoId)),
94
+ ...offer,
95
+ })));
96
+ return freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
97
+ ...data,
98
+ address: envelope.address,
99
+ game: entityRef('game', game),
100
+ kind: 'factionMarket',
101
+ offers: resolvedOffers,
102
+ system: entityRef('starSystem', system),
103
+ }), directMetadata(envelope)));
104
+ }
105
+ function toFactionSnapshot(context, envelope) {
106
+ const existing = FACTION_SNAPSHOTS.get(envelope);
107
+ if (existing !== undefined)
108
+ return existing;
109
+ const pending = createFactionSnapshot(context, envelope);
110
+ FACTION_SNAPSHOTS.set(envelope, pending);
111
+ void pending.catch(() => FACTION_SNAPSHOTS.delete(envelope));
112
+ return pending;
113
+ }
114
+ /** Reads one required Local Market by address.
115
+ * @example
116
+ * ```ts
117
+ * declare const ctx: SageContext;
118
+ * declare const address: Address;
119
+ * const market = await getLocalMarket(ctx, address);
120
+ * ```
121
+ */
122
+ export async function getLocalMarket(context, address, options) {
123
+ return toLocalSnapshot(context, await context.data.read(localMarketAccountDefinition, address, options));
124
+ }
125
+ /** Reads one optional Local Market by address.
126
+ * @example
127
+ * ```ts
128
+ * declare const ctx: SageContext;
129
+ * declare const address: Address;
130
+ * const market = await maybeGetLocalMarket(ctx, address);
131
+ * ```
132
+ */
133
+ export async function maybeGetLocalMarket(context, address, options) {
134
+ const [envelope] = await context.data.readMany(localMarketAccountDefinition, [address], options);
135
+ return envelope === undefined
136
+ ? undefined
137
+ : toLocalSnapshot(context, envelope);
138
+ }
139
+ /** Derives and reads a Local Market for cargo at one Starbase incarnation.
140
+ * @example
141
+ * ```ts
142
+ * declare const ctx: SageContext;
143
+ * declare const system: Address;
144
+ * const market = await getLocalMarketForCargo(ctx, system, 1, 0n);
145
+ * ```
146
+ */
147
+ export async function getLocalMarketForCargo(context, system, cargoId, starbaseSequenceId, options) {
148
+ return getLocalMarket(context, await deriveLocalMarketAddress(system, cargoId, starbaseSequenceId), options);
149
+ }
150
+ /** Discovers all Local Markets stored for one Star System.
151
+ * @example
152
+ * ```ts
153
+ * declare const ctx: SageContext;
154
+ * declare const system: Address;
155
+ * const markets = await getLocalMarketsBySystem(ctx, system);
156
+ * ```
157
+ */
158
+ export async function getLocalMarketsBySystem(context, system, options) {
159
+ const envelopes = await discoverLocalMarketsBySystem(context, system, options);
160
+ const meta = readMeta(envelopes);
161
+ return Object.freeze(attachReadMeta(await Promise.all(envelopes.map((envelope) => toLocalSnapshot(context, envelope))), meta));
162
+ }
163
+ /** Returns one Character's open orders with that side's maker state.
164
+ *
165
+ * Bid-side ATLAS is escrowed for buy orders. Ask-side ATLAS was released from
166
+ * completed sell orders. Neither interpretation promises withdrawability.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * declare const ctx: SageContext;
171
+ * declare const market: Address;
172
+ * declare const character: Address;
173
+ * const orders = await getLocalMarketOrdersByCharacter(ctx, market, character);
174
+ * ```
175
+ */
176
+ export async function getLocalMarketOrdersByCharacter(context, market, character, options) {
177
+ const snapshot = await getLocalMarket(context, market, options);
178
+ const matches = (side) => {
179
+ const orders = side.orders.filter((value) => value.maker === character);
180
+ if (orders.length === 0)
181
+ return [];
182
+ const maker = side.makers.find((value) => value.character === character);
183
+ if (maker === undefined) {
184
+ throw new AccountDecodeError('market', market, new RangeError('The decoded Local Market contains matching orders without their MakerInfo state entry.'), `Local Market ${market} contains orders for Character ${character} without that Character's maker state entry. Refresh the Market account and verify the provider and installed binding version before retrying.`);
185
+ }
186
+ return orders.map((value) => ({ ...value, makerState: maker }));
187
+ };
188
+ return freezeResolvedSnapshot([
189
+ ...matches(snapshot.bids),
190
+ ...matches(snapshot.asks),
191
+ ]);
192
+ }
193
+ /** Reads one required Faction Market by address.
194
+ * @example
195
+ * ```ts
196
+ * declare const ctx: SageContext;
197
+ * declare const address: Address;
198
+ * const market = await getFactionMarket(ctx, address);
199
+ * ```
200
+ */
201
+ export async function getFactionMarket(context, address, options) {
202
+ requireGameAddress(context);
203
+ return toFactionSnapshot(context, await context.data.read(factionMarketAccountDefinition, address, options));
204
+ }
205
+ /** Reads one optional Faction Market by address.
206
+ * @example
207
+ * ```ts
208
+ * declare const ctx: SageContext;
209
+ * declare const address: Address;
210
+ * const market = await maybeGetFactionMarket(ctx, address);
211
+ * ```
212
+ */
213
+ export async function maybeGetFactionMarket(context, address, options) {
214
+ requireGameAddress(context);
215
+ const [envelope] = await context.data.readMany(factionMarketAccountDefinition, [address], options);
216
+ return envelope === undefined
217
+ ? undefined
218
+ : toFactionSnapshot(context, envelope);
219
+ }
220
+ /** Derives and reads the configured Game's Faction Market at one Starbase incarnation.
221
+ * @example
222
+ * ```ts
223
+ * declare const ctx: SageContext;
224
+ * declare const system: Address;
225
+ * const market = await getFactionMarketForSystem(ctx, system, 0n);
226
+ * ```
227
+ */
228
+ export async function getFactionMarketForSystem(context, system, starbaseSequenceId, options) {
229
+ const game = requireGameAddress(context);
230
+ return getFactionMarket(context, await deriveFactionMarketAddress(game, system, starbaseSequenceId), options);
231
+ }
232
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { type Address, type DiscoveryRequest, type EntityRef, type ReadOptions, type SageContext } from '../client/index.js';
2
+ import { type WorldFixedValue } from '../internal/c4/world.js';
3
+ import { type CargoDefinitionSummary } from '../registry/index.js';
4
+ /** One registry-resolved resource row nested in an Asteroid deposit.
5
+ * @example
6
+ * ```ts
7
+ * declare const resource: ResourceDepositItem;
8
+ * console.log(resource.cargo.name, resource.richness.value);
9
+ * ```
10
+ */
11
+ export interface ResourceDepositItem {
12
+ readonly cargo: CargoDefinitionSummary;
13
+ readonly richness: WorldFixedValue;
14
+ readonly amountMinedUnitsRaw: bigint;
15
+ readonly activeMinerCountRaw: bigint;
16
+ }
17
+ /** Immutable, translated Asteroid resource-deposit snapshot.
18
+ * @example
19
+ * ```ts
20
+ * declare const deposit: ResourceDepositSnapshot;
21
+ * console.log(deposit.resources);
22
+ * ```
23
+ */
24
+ export interface ResourceDepositSnapshot {
25
+ readonly kind: 'resourceDeposit';
26
+ readonly address: Address;
27
+ readonly bodyId: number;
28
+ readonly name: string;
29
+ readonly game: Address;
30
+ readonly system: EntityRef<'starSystem'>;
31
+ readonly systemSequenceId: bigint;
32
+ readonly lastSyncedAtUnixSeconds: bigint;
33
+ readonly resources: readonly ResourceDepositItem[];
34
+ toJSON(): unknown;
35
+ }
36
+ /** A pure rate input pairing one cargo id with Asteroid richness.
37
+ * @example
38
+ * ```ts
39
+ * const input: MiningOutputRateInput = { cargoId: 8, richness: 1.5 };
40
+ * ```
41
+ */
42
+ export interface MiningOutputRateInput {
43
+ readonly cargoId: number;
44
+ readonly richness: number;
45
+ }
46
+ /** One richness-adjusted resource output in cargo units per second.
47
+ * @example
48
+ * ```ts
49
+ * const rate: MiningOutputRate = { cargoId: 8, unitsPerSecond: 4.5 };
50
+ * ```
51
+ */
52
+ export interface MiningOutputRate {
53
+ readonly cargoId: number;
54
+ readonly unitsPerSecond: number;
55
+ }
56
+ /** One selected and registry-resolved output of an active mining Fleet.
57
+ * @example
58
+ * ```ts
59
+ * declare const output: FleetMiningOutput;
60
+ * console.log(output.cargo.name, output.unitsPerSecond);
61
+ * ```
62
+ */
63
+ export interface FleetMiningOutput extends ResourceDepositItem {
64
+ readonly unitsPerSecond: number;
65
+ }
66
+ /** Immutable current extraction relationship for one active mining Fleet.
67
+ * @example
68
+ * ```ts
69
+ * declare const mining: FleetMiningSnapshot;
70
+ * console.log(mining.outputs);
71
+ * ```
72
+ */
73
+ export interface FleetMiningSnapshot {
74
+ readonly kind: 'fleetMining';
75
+ readonly fleet: EntityRef<'fleet'>;
76
+ readonly ownerProfile: EntityRef<'profile'>;
77
+ readonly asteroid: EntityRef<'celestialBody'>;
78
+ readonly lastUpdatedAtUnixSeconds: bigint;
79
+ readonly regionXpModifier: WorldFixedValue;
80
+ readonly miningRate: {
81
+ readonly raw: bigint;
82
+ readonly unitsPerSecond: number;
83
+ };
84
+ readonly outputs: readonly FleetMiningOutput[];
85
+ toJSON(): unknown;
86
+ }
87
+ /** Options supported by owner-scoped active-mining discovery.
88
+ * @example
89
+ * ```ts
90
+ * const options: MiningDiscoveryOptions = { commitment: 'confirmed' };
91
+ * ```
92
+ */
93
+ export type MiningDiscoveryOptions = Omit<DiscoveryRequest, 'filters' | 'strategy'>;
94
+ /** Reads a required Asteroid resource deposit by CelestialBody address.
95
+ * @example
96
+ * ```ts
97
+ * declare const ctx: SageContext;
98
+ * declare const asteroid: Address;
99
+ * const deposit = await getResourceDeposit(ctx, asteroid);
100
+ * ```
101
+ */
102
+ export declare function getResourceDeposit(context: SageContext, asteroid: Address, options?: ReadOptions): Promise<ResourceDepositSnapshot>;
103
+ /** Reads an optional Asteroid resource deposit by CelestialBody address.
104
+ *
105
+ * Returns `undefined` only when the account does not exist. A present
106
+ * non-Asteroid CelestialBody throws {@link AccountDecodeError} because it is
107
+ * not a resource deposit.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * declare const ctx: SageContext;
112
+ * declare const asteroid: Address;
113
+ * const deposit = await maybeGetResourceDeposit(ctx, asteroid);
114
+ * ```
115
+ */
116
+ export declare function maybeGetResourceDeposit(context: SageContext, asteroid: Address, options?: ReadOptions): Promise<ResourceDepositSnapshot | undefined>;
117
+ /** Derives mining-state age in whole seconds and clamps future timestamps.
118
+ * @example
119
+ * ```ts
120
+ * const age = deriveMiningStateAgeSeconds(100n, 112n); // 12
121
+ * ```
122
+ */
123
+ export declare function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds: bigint, atUnixSeconds: bigint): number;
124
+ /** Derives each selected output rate as Fleet units/second times deposit richness.
125
+ * @example
126
+ * ```ts
127
+ * const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
128
+ * ```
129
+ */
130
+ export declare function deriveMiningOutputRates(fleetUnitsPerSecond: number, outputs: readonly MiningOutputRateInput[]): readonly MiningOutputRate[];
131
+ /** Projects nominal output units from a rate and elapsed seconds.
132
+ * @example
133
+ * ```ts
134
+ * const units = projectMiningOutputUnits(4.5, 20); // 90
135
+ * ```
136
+ */
137
+ export declare function projectMiningOutputUnits(unitsPerSecond: number, elapsedSeconds: number): number;
138
+ /** Reads a Fleet and returns its active extraction relationship, if mining.
139
+ * @example
140
+ * ```ts
141
+ * declare const ctx: SageContext;
142
+ * declare const fleet: Address;
143
+ * const mining = await getFleetMiningState(ctx, fleet);
144
+ * ```
145
+ */
146
+ export declare function getFleetMiningState(context: SageContext, fleet: Address, options?: ReadOptions): Promise<FleetMiningSnapshot | undefined>;
147
+ /** Finds active mining Fleets for one owner through stable Fleet filters.
148
+ * @example
149
+ * ```ts
150
+ * declare const ctx: SageContext;
151
+ * declare const owner: Address;
152
+ * const mining = await getFleetMiningStatesByOwner(ctx, owner);
153
+ * ```
154
+ */
155
+ export declare function getFleetMiningStatesByOwner(context: SageContext, owner: Address, options?: MiningDiscoveryOptions): Promise<readonly FleetMiningSnapshot[]>;
156
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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"}