@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,396 @@
1
+ import { GAME_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, SizeClass, Tier, XpCategory, getGameDecoder, } from '@staratlas/dev-sage';
2
+ import { AccountDecodeError, InvalidAccountOwnerError, InvalidDiscriminatorError, } from '../../client/errors.js';
3
+ import { translateCharacterModifier } from './character-modifier.js';
4
+ const GAME_MINIMUM_DATA_LENGTH = GAME_DISCRIMINATOR.length;
5
+ const FLOYDS_PER_ATLAS = 100_000_000;
6
+ const GAME_ACCOUNT_DISCRIMINATOR = Object.freeze(Array.from(GAME_DISCRIMINATOR));
7
+ function hasDiscriminator(data) {
8
+ return GAME_ACCOUNT_DISCRIMINATOR.every((byte, index) => data[index] === byte);
9
+ }
10
+ function validateGameAccount(account) {
11
+ if (account.owner !== SAGE_PROGRAM_ADDRESS) {
12
+ throw new InvalidAccountOwnerError('game', account.address, SAGE_PROGRAM_ADDRESS, account.owner);
13
+ }
14
+ if (account.data.length < GAME_MINIMUM_DATA_LENGTH ||
15
+ !hasDiscriminator(account.data)) {
16
+ throw new InvalidDiscriminatorError('game', account.address);
17
+ }
18
+ }
19
+ function decodeExactly(account) {
20
+ try {
21
+ const [decoded, offset] = getGameDecoder().read(account.data, 0);
22
+ if (offset !== account.data.length) {
23
+ throw new RangeError(`Decoded ${offset} of ${account.data.length} Game account bytes; trailing bytes are not accepted.`);
24
+ }
25
+ return decoded;
26
+ }
27
+ catch (cause) {
28
+ throw new AccountDecodeError('game', account.address, cause);
29
+ }
30
+ }
31
+ function shipSize(sizeClass) {
32
+ switch (sizeClass) {
33
+ case SizeClass.XxSmall:
34
+ return 'xx-small';
35
+ case SizeClass.Xsmall:
36
+ return 'x-small';
37
+ case SizeClass.Small:
38
+ return 'small';
39
+ case SizeClass.Medium:
40
+ return 'medium';
41
+ case SizeClass.Large:
42
+ return 'large';
43
+ case SizeClass.Capital:
44
+ return 'capital';
45
+ case SizeClass.Commander:
46
+ return 'commander';
47
+ case SizeClass.Titan:
48
+ return 'titan';
49
+ /* v8 ignore next -- the generated enum decoder rejects unknown values. */
50
+ default:
51
+ throw new RangeError(`Unsupported SizeClass value ${String(sizeClass)}.`);
52
+ }
53
+ }
54
+ function translateShip(id, ship) {
55
+ return {
56
+ id,
57
+ mint: ship.mint,
58
+ name: ship.name.replace(/\0/gu, '').trim(),
59
+ sizeClass: shipSize(ship.sizeClass),
60
+ };
61
+ }
62
+ function translateCargo(id, cargo) {
63
+ return {
64
+ categoryId: cargo.category,
65
+ id,
66
+ mint: cargo.mint,
67
+ name: cargo.name.replace(/\0/gu, '').trim(),
68
+ storageCost: cargo.storageCost,
69
+ };
70
+ }
71
+ function translateCargoSection(game) {
72
+ return {
73
+ definitions: [...game.cargoDefinitions.cargoTypes.entries()].map(([id, cargo]) => translateCargo(id, cargo)),
74
+ sequenceId: game.cargoDefinitions.seqId,
75
+ };
76
+ }
77
+ function translateShipsSection(game) {
78
+ return {
79
+ definitions: game.shipDefinitions.ships.unsizedList.map((ship, index) => translateShip(game.shipDefinitions.ships.offsetList[index].key, ship)),
80
+ sequenceId: game.shipDefinitions.seqId,
81
+ };
82
+ }
83
+ function assertCargoDefinitionKeys(account, game) {
84
+ const keysMatchDefinitions = [...game.cargoDefinitions.cargoTypes].every(([id, definition]) => id === definition.id);
85
+ if (!keysMatchDefinitions) {
86
+ throw new AccountDecodeError('game', account.address, new RangeError('Cargo definition container keys do not match their embedded ids.'), `Game ${account.address} contains a malformed cargo definition registry. Refresh the account and verify the pinned binding version before retrying.`);
87
+ }
88
+ }
89
+ function assertShipDefinitionIndex(account, game) {
90
+ const { offsetList, unsizedList } = game.shipDefinitions.ships;
91
+ const offsetsAreOrdered = offsetList.every(({ offset }, index) => index === 0 || offset > offsetList[index - 1].offset);
92
+ const keysMatchDefinitions = offsetList.every(({ key }, index) => key === unsizedList[index]?.id);
93
+ const keysAreUnique = new Set(offsetList.map(({ key }) => key)).size === offsetList.length;
94
+ if (offsetList.length !== unsizedList.length ||
95
+ !offsetsAreOrdered ||
96
+ !keysMatchDefinitions ||
97
+ !keysAreUnique) {
98
+ throw new AccountDecodeError('game', account.address, new RangeError('Ship definition ids are not aligned with their positional definition list.'), `Game ${account.address} contains a malformed ship definition index. Refresh the account and verify the pinned binding version before retrying.`);
99
+ }
100
+ }
101
+ function fixed(value) {
102
+ return { raw: value.raw, value: value.toNumber() };
103
+ }
104
+ function translateCombatConfiguration(account, game) {
105
+ const definitions = [...game.stimulantDefinitions.definitions].map(([cargoId, definition]) => {
106
+ if (!Number.isInteger(definition.effectCount) ||
107
+ definition.effectCount < 0 ||
108
+ definition.effectCount > definition.effects.length) {
109
+ throw new AccountDecodeError('game', account.address, new RangeError(`Stimulant cargo ${cargoId} declares ${definition.effectCount} effects but stores ${definition.effects.length}.`), `Game ${account.address} contains a malformed stimulant definition. Refresh the account and verify the pinned binding version before retrying.`);
110
+ }
111
+ return {
112
+ cargoId,
113
+ effects: definition.effects
114
+ .slice(0, definition.effectCount)
115
+ .map((effect) => ({
116
+ charges: effect.charges,
117
+ deltaBps: effect.deltaBps,
118
+ stackRuleId: effect.stackRule[0],
119
+ statId: effect.stat[0],
120
+ })),
121
+ };
122
+ });
123
+ return {
124
+ cargoRespawnTimeSeconds: game.combat.cargoRespawnTime,
125
+ crewRespawnTimeSeconds: game.combat.crewRespawnTime,
126
+ globalCeasefire: game.combat.globalCeasefire,
127
+ interactionRange: fixed(game.combat.interactionRange),
128
+ lootExclusivityTimeSeconds: game.combat.lootExclusivityTime,
129
+ maxFleetSize: game.combat.maxFleetSize,
130
+ maxLootRate: fixed(game.combat.maxLootRate),
131
+ rawShipsRespawnTimeSeconds: game.combat.rawShipsRespawnTime,
132
+ starbaseUpgradeProgressContinuation: fixed(game.combat.starbaseUpgradeProgressContinuation),
133
+ stimulantDefinitions: {
134
+ definitions,
135
+ sequenceId: game.stimulantDefinitions.seqId,
136
+ },
137
+ };
138
+ }
139
+ /** Typed Game definition translating only combat configuration and stimulants. */
140
+ export const gameCombatAccountDefinition = Object.freeze({
141
+ decode(account) {
142
+ validateGameAccount(account);
143
+ return translateCombatConfiguration(account, decodeExactly(account));
144
+ },
145
+ discriminator: GAME_ACCOUNT_DISCRIMINATOR,
146
+ minimumDataLength: GAME_MINIMUM_DATA_LENGTH,
147
+ programAddress: SAGE_PROGRAM_ADDRESS,
148
+ type: 'game',
149
+ validate: validateGameAccount,
150
+ });
151
+ function tier(value) {
152
+ switch (value) {
153
+ case Tier.One:
154
+ return 'one';
155
+ case Tier.Two:
156
+ return 'two';
157
+ case Tier.Three:
158
+ return 'three';
159
+ case Tier.Four:
160
+ return 'four';
161
+ case Tier.Five:
162
+ return 'five';
163
+ /* v8 ignore next -- the generated enum decoder rejects unknown values. */
164
+ default:
165
+ throw new RangeError(`Unsupported Tier ${String(value)}.`);
166
+ }
167
+ }
168
+ function craftingModifiers(value) {
169
+ return {
170
+ crewCount: fixed(value.crewCountModifier),
171
+ efficiency: fixed(value.craftingEfficiencyModifier),
172
+ fee: fixed(value.craftingFeeModifier),
173
+ speed: fixed(value.craftingSpeedModifier),
174
+ };
175
+ }
176
+ function translateCraftingHab(id, value) {
177
+ return {
178
+ cargoId: value.cargoId,
179
+ hubValue: value.hubValue,
180
+ id,
181
+ name: value.name.replace(/\0/gu, '').trim(),
182
+ placementFeeMultiplier: fixed(value.placementFeeMultiplier),
183
+ providedTagIds: [...value.providedTags],
184
+ rentMultiplier: fixed(value.rentMultiplier),
185
+ requiredTagIds: [...value.requiredTags],
186
+ slots: value.slots,
187
+ tier: tier(value.tier),
188
+ };
189
+ }
190
+ function translateHabBuilding(value) {
191
+ return {
192
+ constructionCost: [...value.constructionCost].map(([cargoId, quantityRaw]) => ({ cargoId, quantityRaw })),
193
+ constructionDurationSeconds: value.constructionTime,
194
+ crewSlots: value.crewSlots,
195
+ hubValue: value.hubValue,
196
+ id: value.buildingId,
197
+ jobCapacity: value.craftingJobConcurrency,
198
+ minimumTier: tier(value.minimumTier),
199
+ modifiers: craftingModifiers(value.craftingModifiers),
200
+ name: value.name.replace(/\0/gu, '').trim(),
201
+ neededCrew: value.neededCrew,
202
+ netRates: [...value.netResourceProduction].map(([cargoId, rate]) => ({
203
+ cargoId,
204
+ unitsPerSecond: rate.toNumber(),
205
+ unitsPerSecondRaw: rate.raw,
206
+ })),
207
+ providedTagIds: [...value.providedTags],
208
+ refunds: [...value.refunds].map(([cargoId, quantityRaw]) => ({
209
+ cargoId,
210
+ quantityRaw,
211
+ })),
212
+ requiredTagIds: [...value.requiredTags],
213
+ researchRequirementIds: [...value.researchRequirements],
214
+ resourceCapacityRaw: value.resourceStorage,
215
+ slots: value.slots,
216
+ unlockedRecipeIds: [...value.recipesUnlocked],
217
+ xpValue: fixed(value.xpValue),
218
+ };
219
+ }
220
+ function translateCraftingHabsSection(game) {
221
+ const source = game.craftingHabDefinitions;
222
+ return {
223
+ definitions: source.craftingHabs.unsizedList.map((definition, index) => ({
224
+ ...translateCraftingHab(source.craftingHabs.offsetList[index].key, definition),
225
+ evictionGracePeriodSeconds: source.evictionGracePeriod,
226
+ respawnDurationSeconds: source.respawnTime,
227
+ })),
228
+ evictionGracePeriodSeconds: source.evictionGracePeriod,
229
+ respawnDurationSeconds: source.respawnTime,
230
+ sequenceId: source.seqId,
231
+ };
232
+ }
233
+ function assertCraftingHabDefinitionIndex(account, game) {
234
+ const { offsetList, unsizedList } = game.craftingHabDefinitions.craftingHabs;
235
+ const offsetsAreOrdered = offsetList.every(({ offset }, index) => index === 0 || offset > offsetList[index - 1].offset);
236
+ const keysAreUnique = new Set(offsetList.map(({ key }) => key)).size === offsetList.length;
237
+ if (offsetList.length !== unsizedList.length ||
238
+ !offsetsAreOrdered ||
239
+ !keysAreUnique) {
240
+ throw new AccountDecodeError('game', account.address, new RangeError('Crafting Hab definition ids are not aligned with their positional definition list.'), `Game ${account.address} contains a malformed Crafting Hab definition index. Refresh the account and verify the pinned binding version before retrying.`);
241
+ }
242
+ }
243
+ function translateHabBuildingsSection(game) {
244
+ const source = game.habBuildingDefinitions;
245
+ return {
246
+ definitions: source.habBuildingDefinitions.unsizedList.map(translateHabBuilding),
247
+ sequenceId: source.seqId,
248
+ };
249
+ }
250
+ const XP_CATEGORIES = [
251
+ [XpCategory.CouncilRank, 'council-rank'],
252
+ [XpCategory.DailyXp, 'daily'],
253
+ [XpCategory.Pilot, 'pilot'],
254
+ [XpCategory.DataRunner, 'data-runner'],
255
+ [XpCategory.Mining, 'mining'],
256
+ [XpCategory.Building, 'building'],
257
+ [XpCategory.Crafting, 'crafting'],
258
+ [XpCategory.Combat, 'combat'],
259
+ ];
260
+ function xpCategory(value) {
261
+ switch (value) {
262
+ case XpCategory.CouncilRank:
263
+ return 'council-rank';
264
+ case XpCategory.DailyXp:
265
+ return 'daily';
266
+ case XpCategory.Pilot:
267
+ return 'pilot';
268
+ case XpCategory.DataRunner:
269
+ return 'data-runner';
270
+ case XpCategory.Mining:
271
+ return 'mining';
272
+ case XpCategory.Building:
273
+ return 'building';
274
+ case XpCategory.Crafting:
275
+ return 'crafting';
276
+ case XpCategory.Combat:
277
+ return 'combat';
278
+ /* v8 ignore next -- the generated enum decoder rejects unknown values. */
279
+ default:
280
+ throw new RangeError(`Unsupported XpCategory ${String(value)}.`);
281
+ }
282
+ }
283
+ function translateXpSection(game) {
284
+ const source = game.xpDefinitions;
285
+ return {
286
+ dailyCheckIn: {
287
+ epochStartUnixSeconds: source.dailyCheckInConfig.epochStartTime,
288
+ loyaltyPointBonusStreakRequirement: source.dailyCheckInConfig.lpBonusStreakReq,
289
+ minimumCheckInIntervalSeconds: source.dailyCheckInConfig.minCheckInTimeDiff,
290
+ streakBonusXp: source.dailyCheckInConfig.streakBonus,
291
+ streakBuyBackCostAtlas: Number(source.dailyCheckInConfig.streakBuyBackCost) / FLOYDS_PER_ATLAS,
292
+ streakBuyBackCostAtlasRaw: source.dailyCheckInConfig.streakBuyBackCost,
293
+ streakBuyBackMaxDays: source.dailyCheckInConfig.streakBuyBackMaxDays,
294
+ xpBase: source.dailyCheckInConfig.xpBase,
295
+ },
296
+ levelThresholds: source.levelThresholds.map((threshold) => ({
297
+ building: threshold.building,
298
+ combat: threshold.combat,
299
+ councilRank: threshold.councilRank,
300
+ crafting: threshold.crafting,
301
+ daily: threshold.dailyXp,
302
+ dataRunner: threshold.dataRunner,
303
+ mining: threshold.mining,
304
+ pilot: threshold.pilot,
305
+ })),
306
+ renown: {
307
+ divisor: source.renownConfig.divisor,
308
+ feederCategoriesRaw: source.renownConfig.feederCategories,
309
+ feederCategories: XP_CATEGORIES.filter(([category]) => (source.renownConfig.feederCategories & (1 << category)) !== 0).map(([, category]) => category),
310
+ },
311
+ sequenceId: source.seqId,
312
+ };
313
+ }
314
+ function assertXpDefinitions(account, game) {
315
+ if (game.xpDefinitions.levelThresholds.length === 0) {
316
+ throw new AccountDecodeError('game', account.address, new RangeError('Game XP definitions contain no level thresholds.'), `Game ${account.address} contains no XP level definitions. Refresh the account and verify the pinned binding version before retrying.`);
317
+ }
318
+ }
319
+ function translateResearchNode(node) {
320
+ return {
321
+ atlasCost: Number(node.atlasCost) / FLOYDS_PER_ATLAS,
322
+ atlasCostRaw: node.atlasCost,
323
+ cargoCosts: [...node.cargoCost].map(([cargoId, quantityRaw]) => ({
324
+ cargoId,
325
+ quantityRaw,
326
+ })),
327
+ costGrowthBasisPoints: node.costGrowthBps,
328
+ id: node.id,
329
+ maxLevel: node.maxLevel,
330
+ modifier: translateCharacterModifier(node.modifier),
331
+ name: node.name.replace(/\0/gu, '').trim(),
332
+ requiredTagIds: [...node.requiredTags],
333
+ xpCosts: [...node.xpCost].map(([category, cost]) => ({
334
+ category: xpCategory(category),
335
+ costRaw: cost.cost,
336
+ minimumLevel: cost.minimumLevel,
337
+ })),
338
+ };
339
+ }
340
+ function assertResearchNodeIndex(account, game) {
341
+ const { offsetList, unsizedList } = game.researchTreeDefinitions.nodes;
342
+ const offsetsAreOrdered = offsetList.every(({ offset }, index) => index === 0 || offset > offsetList[index - 1].offset);
343
+ const keysMatchNodes = offsetList.every(({ key }, index) => key === unsizedList[index]?.id);
344
+ const keysAreUnique = new Set(offsetList.map(({ key }) => key)).size === offsetList.length;
345
+ if (offsetList.length !== unsizedList.length ||
346
+ !offsetsAreOrdered ||
347
+ !keysMatchNodes ||
348
+ !keysAreUnique) {
349
+ throw new AccountDecodeError('game', account.address, new RangeError('Research node ids are not aligned with their positional definition list.'), `Game ${account.address} contains a malformed research node index. Refresh the account and verify the pinned binding version before retrying.`);
350
+ }
351
+ }
352
+ function translateResearchSection(game) {
353
+ return {
354
+ nodes: game.researchTreeDefinitions.nodes.unsizedList.map(translateResearchNode),
355
+ sequenceId: game.researchTreeDefinitions.seqId,
356
+ };
357
+ }
358
+ /** Validates one Game account and translates only the requested sections. */
359
+ export function decodeGameRegistrySections(account, sections) {
360
+ validateGameAccount(account);
361
+ const game = decodeExactly(account);
362
+ if (sections.includes('cargo')) {
363
+ assertCargoDefinitionKeys(account, game);
364
+ }
365
+ if (sections.includes('craftingHabs')) {
366
+ assertCraftingHabDefinitionIndex(account, game);
367
+ }
368
+ if (sections.includes('research')) {
369
+ assertResearchNodeIndex(account, game);
370
+ }
371
+ if (sections.includes('ships')) {
372
+ assertShipDefinitionIndex(account, game);
373
+ }
374
+ if (sections.includes('xp')) {
375
+ assertXpDefinitions(account, game);
376
+ }
377
+ return {
378
+ ...(sections.includes('cargo')
379
+ ? { cargo: translateCargoSection(game) }
380
+ : {}),
381
+ ...(sections.includes('craftingHabs')
382
+ ? { craftingHabs: translateCraftingHabsSection(game) }
383
+ : {}),
384
+ ...(sections.includes('habBuildings')
385
+ ? { habBuildings: translateHabBuildingsSection(game) }
386
+ : {}),
387
+ ...(sections.includes('research')
388
+ ? { research: translateResearchSection(game) }
389
+ : {}),
390
+ ...(sections.includes('ships')
391
+ ? { ships: translateShipsSection(game) }
392
+ : {}),
393
+ ...(sections.includes('xp') ? { xp: translateXpSection(game) } : {}),
394
+ };
395
+ }
396
+ //# sourceMappingURL=game.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.js","sourceRoot":"","sources":["../../../src/internal/c4/game.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ import type { Address } from '../../client/contracts.js';
2
+ import type { C4AccountAdapter } from './adapter.js';
3
+ /** Stable labels for Player Profile key permissions.
4
+ * @example
5
+ * ```ts
6
+ * const permission: ProfilePermission = 'authenticate';
7
+ * ```
8
+ */
9
+ export type ProfilePermission = 'authenticate' | 'addKeys' | 'removeKeys' | 'changeName' | 'createRole' | 'removeRole' | 'setAuthorizer' | 'joinRole' | 'leaveRole' | 'toggleAcceptingNewMembers' | 'addMember' | 'removeMember' | 'drainSolVault';
10
+ /** SDK-owned representation of one Player Profile key.
11
+ * @example
12
+ * ```ts
13
+ * declare const key: ProfileKeyData;
14
+ * const expiresAt = key.expiresAt;
15
+ * ```
16
+ */
17
+ export interface ProfileKeyData {
18
+ readonly address: Address;
19
+ readonly scope: Address;
20
+ readonly expiresAtRaw: bigint;
21
+ readonly expiresAt?: bigint;
22
+ readonly permissionsRaw: bigint;
23
+ readonly permissions: readonly ProfilePermission[];
24
+ }
25
+ /** SDK-owned decoded Player Profile data.
26
+ * @example
27
+ * ```ts
28
+ * declare const profile: ProfileAccountData;
29
+ * const keys = profile.keys;
30
+ * ```
31
+ */
32
+ export interface ProfileAccountData {
33
+ readonly version: number;
34
+ readonly authKeyCount: number;
35
+ readonly keyThreshold: number;
36
+ readonly nextSeqId: bigint;
37
+ readonly createdAt: bigint;
38
+ readonly keys: readonly ProfileKeyData[];
39
+ }
40
+ /** SDK-owned XP values for one Character category.
41
+ * @example
42
+ * ```ts
43
+ * declare const category: CharacterXpCategoryData;
44
+ * const level = category.level;
45
+ * ```
46
+ */
47
+ export interface CharacterXpCategoryData {
48
+ readonly spent: bigint;
49
+ readonly earned: bigint;
50
+ readonly level: number;
51
+ }
52
+ /** SDK-owned Character XP state.
53
+ * @example
54
+ * ```ts
55
+ * declare const xp: CharacterXpData;
56
+ * const pilotLevel = xp.pilot.level;
57
+ * ```
58
+ */
59
+ export interface CharacterXpData {
60
+ readonly seqId: number;
61
+ readonly councilRank: CharacterXpCategoryData;
62
+ readonly dailyXp: CharacterXpCategoryData;
63
+ readonly pilot: CharacterXpCategoryData;
64
+ readonly dataRunner: CharacterXpCategoryData;
65
+ readonly mining: CharacterXpCategoryData;
66
+ readonly building: CharacterXpCategoryData;
67
+ readonly crafting: CharacterXpCategoryData;
68
+ readonly combat: CharacterXpCategoryData;
69
+ readonly councilRankLevelCarry: number;
70
+ }
71
+ /** Stable ship-size labels translated from generated numeric enums.
72
+ * @example
73
+ * ```ts
74
+ * const size: ShipSize = 'medium';
75
+ * ```
76
+ */
77
+ export type ShipSize = 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'capital' | 'commander' | 'titan';
78
+ /** Stable risk-zone labels translated from generated numeric enums.
79
+ * @example
80
+ * ```ts
81
+ * const access: RiskZoneAccess = 'low';
82
+ * ```
83
+ */
84
+ export type RiskZoneAccess = 'low' | 'medium' | 'high';
85
+ /** One translated cargo-specific research modifier.
86
+ * @example
87
+ * ```ts
88
+ * declare const discovery: RareMineralDiscoveryData;
89
+ * const multiplier = discovery.multiplier;
90
+ * ```
91
+ */
92
+ export interface RareMineralDiscoveryData {
93
+ readonly cargoId: number;
94
+ readonly multiplier: number;
95
+ readonly multiplierRaw: bigint;
96
+ }
97
+ /** SDK-owned translation of Character modifier values.
98
+ * @example
99
+ * ```ts
100
+ * declare const modifiers: CharacterModifierData;
101
+ * const fleetLimit = modifiers.fleetSize;
102
+ * ```
103
+ */
104
+ export interface CharacterModifierData {
105
+ readonly fleetSize: number;
106
+ readonly fleetConcurrency: number;
107
+ readonly respawnTimeModifier: number;
108
+ readonly respawnTimeModifierRaw: bigint;
109
+ readonly warpLaneFeeModifier: number;
110
+ readonly warpLaneFeeModifierRaw: bigint;
111
+ readonly warpSpeedModifier: number;
112
+ readonly warpSpeedModifierRaw: bigint;
113
+ readonly subwarpSpeedModifier: number;
114
+ readonly subwarpSpeedModifierRaw: bigint;
115
+ readonly warpCooldownModifier: number;
116
+ readonly warpCooldownModifierRaw: bigint;
117
+ readonly craftingEfficiencyModifier: number;
118
+ readonly craftingEfficiencyModifierRaw: bigint;
119
+ readonly craftingTimeModifier: number;
120
+ readonly craftingTimeModifierRaw: bigint;
121
+ readonly craftingJobConcurrencyBonus: number;
122
+ readonly maxResidentialPlotTier?: 1 | 2 | 3 | 4 | 5;
123
+ readonly maxResidentialPlots: number;
124
+ readonly maxProductivePlotTier?: 1 | 2 | 3 | 4 | 5;
125
+ readonly maxProductivePlots: number;
126
+ readonly securityZoneAccess: RiskZoneAccess;
127
+ readonly enemyFactionZoneAccess: boolean;
128
+ readonly maxDailyStreakLength: number;
129
+ readonly maxShipSize: ShipSize;
130
+ readonly scanPowerModifier: number;
131
+ readonly scanPowerModifierRaw: bigint;
132
+ readonly scanCoolDownModifier: number;
133
+ readonly scanCoolDownModifierRaw: bigint;
134
+ readonly researchTags: readonly number[];
135
+ readonly cargoCategories: readonly number[];
136
+ readonly rareMineralDiscovery: readonly RareMineralDiscoveryData[];
137
+ }
138
+ /** SDK-owned Character modifier state from the Character account.
139
+ * @example
140
+ * ```ts
141
+ * declare const modifiers: CharacterModifiersData;
142
+ * const nodes = modifiers.unlockedNodes;
143
+ * ```
144
+ */
145
+ export interface CharacterModifiersData {
146
+ readonly seqId: number;
147
+ readonly unupdatedCount: number;
148
+ readonly unlockedNodes: readonly number[];
149
+ readonly nodeLevels: readonly {
150
+ readonly nodeId: number;
151
+ readonly level: number;
152
+ }[];
153
+ readonly values: CharacterModifierData;
154
+ }
155
+ /** SDK-owned decoded Character data.
156
+ * @example
157
+ * ```ts
158
+ * declare const character: CharacterAccountData;
159
+ * const atlas = character.atlas;
160
+ * ```
161
+ */
162
+ export interface CharacterAccountData {
163
+ readonly version: number;
164
+ readonly playerProfile: Address;
165
+ readonly game: Address;
166
+ readonly bump: number;
167
+ readonly checkIn: {
168
+ readonly lastCheckInTime: bigint;
169
+ readonly streak: number;
170
+ };
171
+ readonly xp: CharacterXpData;
172
+ readonly atlasRaw: bigint;
173
+ readonly atlas: number;
174
+ readonly counts: {
175
+ readonly claimStakes: number;
176
+ readonly craftingHabs: number;
177
+ readonly fleets: number;
178
+ };
179
+ readonly pilotXpBudget: {
180
+ readonly lastAccrualTime: bigint;
181
+ readonly available: number;
182
+ readonly fractionalCarryRaw: bigint;
183
+ readonly fractionalCarry: number;
184
+ };
185
+ readonly modifiers: CharacterModifiersData;
186
+ }
187
+ /** Stable Player Profile account definition for the pinned C4 bindings. */
188
+ export declare const profileAccountDefinition: C4AccountAdapter<ProfileAccountData>;
189
+ /** Stable Character account definition for the pinned C4 bindings. */
190
+ export declare const characterAccountDefinition: C4AccountAdapter<CharacterAccountData>;
191
+ /** Derives the C4 Character address for a Player Profile and Game. */
192
+ export declare function findCharacterPda(playerProfile: Address, game: Address): Promise<Address>;
193
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/identity.ts"],"names":[],"mappings":"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"}