@aephia/atlas-kit 0.6.0-next.12 → 0.6.0-next.121

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 (737) hide show
  1. package/README.md +3 -1
  2. package/dist/cargo/actions/deposit.d.ts +2 -2
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  4. package/dist/cargo/actions/deposit.js +28 -117
  5. package/dist/cargo/actions/deposit.js.map +1 -1
  6. package/dist/cargo/actions/index.d.ts +1 -1
  7. package/dist/cargo/actions/index.d.ts.map +1 -1
  8. package/dist/cargo/actions/index.js +28 -84
  9. package/dist/cargo/actions/index.js.map +1 -1
  10. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  11. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  12. package/dist/cargo/actions/wallet-context.js +118 -7
  13. package/dist/cargo/actions/wallet-context.js.map +1 -1
  14. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  15. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  16. package/dist/cargo/actions/wallet-token.js +0 -53
  17. package/dist/cargo/actions/wallet-token.js.map +1 -1
  18. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  19. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  20. package/dist/cargo/actions/withdrawal.js +39 -164
  21. package/dist/cargo/actions/withdrawal.js.map +1 -1
  22. package/dist/cargo/index.d.ts.map +1 -1
  23. package/dist/cargo/index.js +2 -10
  24. package/dist/cargo/index.js.map +1 -1
  25. package/dist/claim-stakes/actions/index.d.ts +14 -1
  26. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  27. package/dist/claim-stakes/actions/index.js +399 -592
  28. package/dist/claim-stakes/actions/index.js.map +1 -1
  29. package/dist/claim-stakes/index.d.ts +14 -0
  30. package/dist/claim-stakes/index.d.ts.map +1 -1
  31. package/dist/claim-stakes/index.js +25 -12
  32. package/dist/claim-stakes/index.js.map +1 -1
  33. package/dist/client/context.d.ts.map +1 -1
  34. package/dist/client/context.js +1 -1
  35. package/dist/client/context.js.map +1 -1
  36. package/dist/client/contracts.d.ts +16 -6
  37. package/dist/client/contracts.d.ts.map +1 -1
  38. package/dist/client/errors.d.ts +6 -2
  39. package/dist/client/errors.d.ts.map +1 -1
  40. package/dist/client/errors.js +31 -1
  41. package/dist/client/errors.js.map +1 -1
  42. package/dist/client/index.d.ts +35 -0
  43. package/dist/client/index.d.ts.map +1 -1
  44. package/dist/client/index.js +35 -0
  45. package/dist/client/index.js.map +1 -1
  46. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  47. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  48. package/dist/client/rpc-subscription-provider.js +190 -0
  49. package/dist/client/rpc-subscription-provider.js.map +1 -0
  50. package/dist/combat/actions/index.d.ts +4 -4
  51. package/dist/combat/actions/index.d.ts.map +1 -1
  52. package/dist/combat/actions/index.js +207 -261
  53. package/dist/combat/actions/index.js.map +1 -1
  54. package/dist/combat/index.d.ts +13 -3
  55. package/dist/combat/index.d.ts.map +1 -1
  56. package/dist/combat/index.js +9 -16
  57. package/dist/combat/index.js.map +1 -1
  58. package/dist/crafting/actions/index.d.ts +12 -1
  59. package/dist/crafting/actions/index.d.ts.map +1 -1
  60. package/dist/crafting/actions/index.js +181 -303
  61. package/dist/crafting/actions/index.js.map +1 -1
  62. package/dist/crafting/index.d.ts +33 -3
  63. package/dist/crafting/index.d.ts.map +1 -1
  64. package/dist/crafting/index.js +49 -28
  65. package/dist/crafting/index.js.map +1 -1
  66. package/dist/factions/actions/index.d.ts +2 -1
  67. package/dist/factions/actions/index.d.ts.map +1 -1
  68. package/dist/factions/actions/index.js +6 -4
  69. package/dist/factions/actions/index.js.map +1 -1
  70. package/dist/factions/index.d.ts +1 -1
  71. package/dist/factions/index.d.ts.map +1 -1
  72. package/dist/factions/index.js +16 -18
  73. package/dist/factions/index.js.map +1 -1
  74. package/dist/factions/profile-faction.d.ts +20 -8
  75. package/dist/factions/profile-faction.d.ts.map +1 -1
  76. package/dist/factions/profile-faction.js +20 -8
  77. package/dist/factions/profile-faction.js.map +1 -1
  78. package/dist/fleets/actions/add-ship.d.ts +35 -0
  79. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  80. package/dist/fleets/actions/add-ship.js +120 -0
  81. package/dist/fleets/actions/add-ship.js.map +1 -0
  82. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  83. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  84. package/dist/fleets/actions/create-fleet.js +108 -0
  85. package/dist/fleets/actions/create-fleet.js.map +1 -0
  86. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  87. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  88. package/dist/fleets/actions/crew-transfer.js +94 -0
  89. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  90. package/dist/fleets/actions/dock-bounds.d.ts +38 -0
  91. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  92. package/dist/fleets/actions/dock-bounds.js +46 -0
  93. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  94. package/dist/fleets/actions/index.d.ts +64 -24
  95. package/dist/fleets/actions/index.d.ts.map +1 -1
  96. package/dist/fleets/actions/index.js +385 -334
  97. package/dist/fleets/actions/index.js.map +1 -1
  98. package/dist/fleets/actions/respawn.d.ts +38 -0
  99. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  100. package/dist/fleets/actions/respawn.js +93 -0
  101. package/dist/fleets/actions/respawn.js.map +1 -0
  102. package/dist/fleets/actions/ship-import.d.ts +1 -1
  103. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  104. package/dist/fleets/actions/ship-import.js +67 -91
  105. package/dist/fleets/actions/ship-import.js.map +1 -1
  106. package/dist/fleets/cooldown.d.ts +44 -0
  107. package/dist/fleets/cooldown.d.ts.map +1 -0
  108. package/dist/fleets/cooldown.js +43 -0
  109. package/dist/fleets/cooldown.js.map +1 -0
  110. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  111. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  112. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  113. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  114. package/dist/fleets/index.d.ts +35 -0
  115. package/dist/fleets/index.d.ts.map +1 -1
  116. package/dist/fleets/index.js +54 -12
  117. package/dist/fleets/index.js.map +1 -1
  118. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  119. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  120. package/dist/fleets/movement-arithmetic.js +41 -0
  121. package/dist/fleets/movement-arithmetic.js.map +1 -0
  122. package/dist/fleets/subwarp-estimate.d.ts +70 -0
  123. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  124. package/dist/fleets/subwarp-estimate.js +38 -0
  125. package/dist/fleets/subwarp-estimate.js.map +1 -0
  126. package/dist/fleets/travel-profile.d.ts +102 -0
  127. package/dist/fleets/travel-profile.d.ts.map +1 -0
  128. package/dist/fleets/travel-profile.js +120 -0
  129. package/dist/fleets/travel-profile.js.map +1 -0
  130. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  131. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  132. package/dist/fleets/warp-lane-estimate.js +36 -0
  133. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  134. package/dist/fleets/warp-lane-policy.d.ts +68 -0
  135. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  136. package/dist/fleets/warp-lane-policy.js +91 -0
  137. package/dist/fleets/warp-lane-policy.js.map +1 -0
  138. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  139. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  140. package/dist/fleets/warp-lane-toll.js +79 -0
  141. package/dist/fleets/warp-lane-toll.js.map +1 -0
  142. package/dist/identity/actions/create-profile.d.ts +1 -1
  143. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  144. package/dist/identity/actions/create-profile.js +2 -2
  145. package/dist/identity/actions/create-profile.js.map +1 -1
  146. package/dist/identity/actions/index.d.ts +4 -4
  147. package/dist/identity/actions/index.d.ts.map +1 -1
  148. package/dist/identity/actions/index.js +51 -29
  149. package/dist/identity/actions/index.js.map +1 -1
  150. package/dist/identity/index.d.ts +5 -2
  151. package/dist/identity/index.d.ts.map +1 -1
  152. package/dist/identity/index.js +6 -12
  153. package/dist/identity/index.js.map +1 -1
  154. package/dist/identity/research-state.d.ts +60 -0
  155. package/dist/identity/research-state.d.ts.map +1 -0
  156. package/dist/identity/research-state.js +68 -0
  157. package/dist/identity/research-state.js.map +1 -0
  158. package/dist/index.d.ts +24 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +20 -3
  161. package/dist/index.js.map +1 -1
  162. package/dist/internal/c4/account-decoding.d.ts +49 -0
  163. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  164. package/dist/internal/c4/account-decoding.js +74 -0
  165. package/dist/internal/c4/account-decoding.js.map +1 -0
  166. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  167. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  168. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  169. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  170. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  171. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  172. package/dist/internal/c4/cargo-pod.js +13 -0
  173. package/dist/internal/c4/cargo-pod.js.map +1 -0
  174. package/dist/internal/c4/character-modifier.d.ts +1 -1
  175. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  176. package/dist/internal/c4/character-registration.d.ts +2 -0
  177. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  178. package/dist/internal/c4/character-registration.js +2 -0
  179. package/dist/internal/c4/character-registration.js.map +1 -1
  180. package/dist/internal/c4/character.d.ts +157 -0
  181. package/dist/internal/c4/character.d.ts.map +1 -0
  182. package/dist/internal/c4/character.js +64 -0
  183. package/dist/internal/c4/character.js.map +1 -0
  184. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  185. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  186. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  187. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  188. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  189. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  190. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
  191. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  192. package/dist/internal/c4/claim-stake-definitions.js +2 -1
  193. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  194. package/dist/internal/c4/claim-stake.d.ts +4 -27
  195. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  196. package/dist/internal/c4/claim-stake.js +38 -83
  197. package/dist/internal/c4/claim-stake.js.map +1 -1
  198. package/dist/internal/c4/combat.d.ts +1 -82
  199. package/dist/internal/c4/combat.d.ts.map +1 -1
  200. package/dist/internal/c4/combat.js +16 -213
  201. package/dist/internal/c4/combat.js.map +1 -1
  202. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  203. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  204. package/dist/internal/c4/crafting-process-codec.js +34 -0
  205. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  206. package/dist/internal/c4/crafting.d.ts +25 -33
  207. package/dist/internal/c4/crafting.d.ts.map +1 -1
  208. package/dist/internal/c4/crafting.js +76 -127
  209. package/dist/internal/c4/crafting.js.map +1 -1
  210. package/dist/internal/c4/currency-cache.d.ts +6 -0
  211. package/dist/internal/c4/currency-cache.d.ts.map +1 -0
  212. package/dist/internal/c4/currency-cache.js +27 -0
  213. package/dist/internal/c4/currency-cache.js.map +1 -0
  214. package/dist/internal/c4/discriminators.d.ts +81 -0
  215. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  216. package/dist/internal/c4/discriminators.js +166 -0
  217. package/dist/internal/c4/discriminators.js.map +1 -0
  218. package/dist/internal/c4/docking-funding.d.ts +4 -0
  219. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  220. package/dist/internal/c4/docking-funding.js +11 -0
  221. package/dist/internal/c4/docking-funding.js.map +1 -0
  222. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  223. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  224. package/dist/internal/c4/faction-epoch-meter.js +26 -0
  225. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  226. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  227. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  228. package/dist/internal/c4/faction-treasury.js +41 -0
  229. package/dist/internal/c4/faction-treasury.js.map +1 -0
  230. package/dist/internal/c4/faction.d.ts +21 -0
  231. package/dist/internal/c4/faction.d.ts.map +1 -0
  232. package/dist/internal/c4/faction.js +23 -0
  233. package/dist/internal/c4/faction.js.map +1 -0
  234. package/dist/internal/c4/factions.d.ts +13 -57
  235. package/dist/internal/c4/factions.d.ts.map +1 -1
  236. package/dist/internal/c4/factions.js +79 -222
  237. package/dist/internal/c4/factions.js.map +1 -1
  238. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  239. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  240. package/dist/internal/c4/fleet-arrival.js +42 -0
  241. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  242. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  243. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  244. package/dist/internal/c4/fleet-creation.js +171 -0
  245. package/dist/internal/c4/fleet-creation.js.map +1 -0
  246. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  247. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  248. package/dist/internal/c4/fleet-crew-binding.js +31 -44
  249. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  250. package/dist/internal/c4/fleet-respawn.d.ts +17 -0
  251. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  252. package/dist/internal/c4/fleet-respawn.js +62 -0
  253. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  254. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  255. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  256. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  257. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  258. package/dist/internal/c4/fleet.d.ts +48 -19
  259. package/dist/internal/c4/fleet.d.ts.map +1 -1
  260. package/dist/internal/c4/fleet.js +50 -87
  261. package/dist/internal/c4/fleet.js.map +1 -1
  262. package/dist/internal/c4/game-definition-layout.d.ts +2 -0
  263. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
  264. package/dist/internal/c4/game-definition-layout.js +4 -0
  265. package/dist/internal/c4/game-definition-layout.js.map +1 -1
  266. package/dist/internal/c4/game.d.ts +76 -30
  267. package/dist/internal/c4/game.d.ts.map +1 -1
  268. package/dist/internal/c4/game.js +173 -124
  269. package/dist/internal/c4/game.js.map +1 -1
  270. package/dist/internal/c4/identity.d.ts +3 -152
  271. package/dist/internal/c4/identity.d.ts.map +1 -1
  272. package/dist/internal/c4/identity.js +19 -126
  273. package/dist/internal/c4/identity.js.map +1 -1
  274. package/dist/internal/c4/local-market-order.d.ts +29 -0
  275. package/dist/internal/c4/local-market-order.d.ts.map +1 -0
  276. package/dist/internal/c4/local-market-order.js +46 -0
  277. package/dist/internal/c4/local-market-order.js.map +1 -0
  278. package/dist/internal/c4/loot-layout.js +1 -1
  279. package/dist/internal/c4/loot-layout.js.map +1 -1
  280. package/dist/internal/c4/loot.d.ts +87 -0
  281. package/dist/internal/c4/loot.d.ts.map +1 -0
  282. package/dist/internal/c4/loot.js +108 -0
  283. package/dist/internal/c4/loot.js.map +1 -0
  284. package/dist/internal/c4/loyalty.d.ts +0 -27
  285. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  286. package/dist/internal/c4/loyalty.js +32 -160
  287. package/dist/internal/c4/loyalty.js.map +1 -1
  288. package/dist/internal/c4/market.d.ts +2 -38
  289. package/dist/internal/c4/market.d.ts.map +1 -1
  290. package/dist/internal/c4/market.js +26 -120
  291. package/dist/internal/c4/market.js.map +1 -1
  292. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  293. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  294. package/dist/internal/c4/mining-instructions.js +3 -0
  295. package/dist/internal/c4/mining-instructions.js.map +1 -0
  296. package/dist/internal/c4/open-signal.d.ts +8 -0
  297. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  298. package/dist/internal/c4/open-signal.js +37 -0
  299. package/dist/internal/c4/open-signal.js.map +1 -0
  300. package/dist/internal/c4/pda.d.ts +31 -0
  301. package/dist/internal/c4/pda.d.ts.map +1 -1
  302. package/dist/internal/c4/pda.js +60 -17
  303. package/dist/internal/c4/pda.js.map +1 -1
  304. package/dist/internal/c4/profile-faction.d.ts +2 -1
  305. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  306. package/dist/internal/c4/profile-faction.js +36 -72
  307. package/dist/internal/c4/profile-faction.js.map +1 -1
  308. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  309. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  310. package/dist/internal/c4/profile-permissions.js +2 -1
  311. package/dist/internal/c4/profile-permissions.js.map +1 -1
  312. package/dist/internal/c4/region-geometry.d.ts +8 -0
  313. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  314. package/dist/internal/c4/region-geometry.js +43 -0
  315. package/dist/internal/c4/region-geometry.js.map +1 -0
  316. package/dist/internal/c4/rewards.d.ts +1 -61
  317. package/dist/internal/c4/rewards.d.ts.map +1 -1
  318. package/dist/internal/c4/rewards.js +23 -203
  319. package/dist/internal/c4/rewards.js.map +1 -1
  320. package/dist/internal/c4/runtime-bindings.d.ts +4 -0
  321. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  322. package/dist/internal/c4/runtime-bindings.js +4 -0
  323. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  324. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  325. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  326. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  327. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  328. package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
  329. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  330. package/dist/internal/c4/scan-lifecycle.js +235 -0
  331. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  332. package/dist/internal/c4/scanning.d.ts +1 -28
  333. package/dist/internal/c4/scanning.d.ts.map +1 -1
  334. package/dist/internal/c4/scanning.js +32 -103
  335. package/dist/internal/c4/scanning.js.map +1 -1
  336. package/dist/internal/c4/ship-import.d.ts +4 -0
  337. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  338. package/dist/internal/c4/ship-import.js +13 -0
  339. package/dist/internal/c4/ship-import.js.map +1 -0
  340. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  341. package/dist/internal/c4/ship-stats.js +45 -43
  342. package/dist/internal/c4/ship-stats.js.map +1 -1
  343. package/dist/internal/c4/starbase.d.ts +0 -32
  344. package/dist/internal/c4/starbase.d.ts.map +1 -1
  345. package/dist/internal/c4/starbase.js +26 -136
  346. package/dist/internal/c4/starbase.js.map +1 -1
  347. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  348. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  349. package/dist/internal/c4/world.d.ts +36 -7
  350. package/dist/internal/c4/world.d.ts.map +1 -1
  351. package/dist/internal/c4/world.js +87 -129
  352. package/dist/internal/c4/world.js.map +1 -1
  353. package/dist/internal/cargo.d.ts +2 -0
  354. package/dist/internal/cargo.d.ts.map +1 -1
  355. package/dist/internal/cargo.js +8 -0
  356. package/dist/internal/cargo.js.map +1 -1
  357. package/dist/internal/fleet.d.ts +1 -0
  358. package/dist/internal/fleet.d.ts.map +1 -1
  359. package/dist/internal/fleet.js +3 -1
  360. package/dist/internal/fleet.js.map +1 -1
  361. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  362. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  363. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  364. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  365. package/dist/internal/planning/account-state.d.ts +6 -0
  366. package/dist/internal/planning/account-state.d.ts.map +1 -1
  367. package/dist/internal/planning/account-state.js +13 -0
  368. package/dist/internal/planning/account-state.js.map +1 -1
  369. package/dist/internal/planning/action-runtime.d.ts +38 -0
  370. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  371. package/dist/internal/planning/action-runtime.js +63 -0
  372. package/dist/internal/planning/action-runtime.js.map +1 -0
  373. package/dist/internal/planning/arrival-guards.d.ts +19 -0
  374. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  375. package/dist/internal/planning/arrival-guards.js +172 -0
  376. package/dist/internal/planning/arrival-guards.js.map +1 -0
  377. package/dist/internal/planning/authorization-adapter.d.ts +45 -37
  378. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  379. package/dist/internal/planning/authorization-adapter.js +169 -81
  380. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  381. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  382. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  383. package/dist/internal/planning/character-registration-guard.js +59 -0
  384. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  385. package/dist/internal/planning/character-registration.d.ts +23 -0
  386. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  387. package/dist/internal/planning/character-registration.js +87 -0
  388. package/dist/internal/planning/character-registration.js.map +1 -0
  389. package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
  390. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
  391. package/dist/internal/planning/currency-cache-guard.js +33 -0
  392. package/dist/internal/planning/currency-cache-guard.js.map +1 -0
  393. package/dist/internal/planning/democracy-history.d.ts +50 -0
  394. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  395. package/dist/internal/planning/democracy-history.js +189 -0
  396. package/dist/internal/planning/democracy-history.js.map +1 -0
  397. package/dist/internal/planning/direct-options.d.ts +17 -0
  398. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  399. package/dist/internal/planning/direct-options.js +43 -0
  400. package/dist/internal/planning/direct-options.js.map +1 -0
  401. package/dist/internal/planning/faction-enrollment.d.ts +0 -4
  402. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  403. package/dist/internal/planning/faction-enrollment.js +1 -31
  404. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  405. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  406. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  407. package/dist/internal/planning/faction-trade-guards.js +15 -0
  408. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  409. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  410. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  411. package/dist/internal/planning/faction-trade-state.js +43 -0
  412. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  413. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  414. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  415. package/dist/internal/planning/fleet-arrival.js +107 -0
  416. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  417. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  418. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  419. package/dist/internal/planning/fleet-attack-xp.js +104 -0
  420. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  421. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  422. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  423. package/dist/internal/planning/fleet-creation.js +89 -0
  424. package/dist/internal/planning/fleet-creation.js.map +1 -0
  425. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  426. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  427. package/dist/internal/planning/fleet-crew-guard.js +48 -0
  428. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  429. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  430. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  431. package/dist/internal/planning/fleet-crew-transfer.js +123 -0
  432. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  433. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
  434. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  435. package/dist/internal/planning/fleet-dock-funding-guard.js +209 -0
  436. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  437. package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
  438. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  439. package/dist/internal/planning/fleet-dock-funding.js +154 -0
  440. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  441. package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
  442. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
  443. package/dist/internal/planning/fleet-docking-guard.js +43 -0
  444. package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
  445. package/dist/internal/planning/fleet-docking.d.ts +10 -0
  446. package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
  447. package/dist/internal/planning/fleet-docking.js +71 -0
  448. package/dist/internal/planning/fleet-docking.js.map +1 -0
  449. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  450. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  451. package/dist/internal/planning/fleet-respawn.js +164 -0
  452. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  453. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  454. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  455. package/dist/internal/planning/fleet-ship-assembly.js +118 -0
  456. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  457. package/dist/internal/planning/fleet-state.d.ts +25 -0
  458. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-state.js +28 -0
  460. package/dist/internal/planning/fleet-state.js.map +1 -0
  461. package/dist/internal/planning/governance-fees.d.ts +64 -0
  462. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  463. package/dist/internal/planning/governance-fees.js +231 -0
  464. package/dist/internal/planning/governance-fees.js.map +1 -0
  465. package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
  466. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
  467. package/dist/internal/planning/local-market-order-funding.js +128 -0
  468. package/dist/internal/planning/local-market-order-funding.js.map +1 -0
  469. package/dist/internal/planning/local-market-order.d.ts +40 -0
  470. package/dist/internal/planning/local-market-order.d.ts.map +1 -0
  471. package/dist/internal/planning/local-market-order.js +139 -0
  472. package/dist/internal/planning/local-market-order.js.map +1 -0
  473. package/dist/internal/planning/mining-stop.d.ts +14 -0
  474. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  475. package/dist/internal/planning/mining-stop.js +42 -0
  476. package/dist/internal/planning/mining-stop.js.map +1 -0
  477. package/dist/internal/planning/movement-character.d.ts +7 -0
  478. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  479. package/dist/internal/planning/movement-character.js +41 -0
  480. package/dist/internal/planning/movement-character.js.map +1 -0
  481. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  482. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  483. package/dist/internal/planning/movement-xp-guard.js +104 -0
  484. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  485. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  486. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  487. package/dist/internal/planning/open-signal-guard.js +32 -0
  488. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  489. package/dist/internal/planning/open-signal.d.ts +31 -0
  490. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  491. package/dist/internal/planning/open-signal.js +85 -0
  492. package/dist/internal/planning/open-signal.js.map +1 -0
  493. package/dist/internal/planning/original-token.d.ts +40 -0
  494. package/dist/internal/planning/original-token.d.ts.map +1 -0
  495. package/dist/internal/planning/original-token.js +112 -0
  496. package/dist/internal/planning/original-token.js.map +1 -0
  497. package/dist/internal/planning/own-starbase-facts.d.ts +33 -0
  498. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  499. package/dist/internal/planning/own-starbase-facts.js +49 -0
  500. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  501. package/dist/internal/planning/plan-fields.d.ts +60 -0
  502. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  503. package/dist/internal/planning/plan-fields.js +159 -0
  504. package/dist/internal/planning/plan-fields.js.map +1 -0
  505. package/dist/internal/planning/plan-guards.d.ts +4 -0
  506. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  507. package/dist/internal/planning/plan-guards.js +168 -0
  508. package/dist/internal/planning/plan-guards.js.map +1 -0
  509. package/dist/internal/planning/profile-key.d.ts +13 -0
  510. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  511. package/dist/internal/planning/profile-key.js +20 -0
  512. package/dist/internal/planning/profile-key.js.map +1 -0
  513. package/dist/internal/planning/recipe-state.d.ts +6 -0
  514. package/dist/internal/planning/recipe-state.d.ts.map +1 -0
  515. package/dist/internal/planning/recipe-state.js +20 -0
  516. package/dist/internal/planning/recipe-state.js.map +1 -0
  517. package/dist/internal/planning/rent.d.ts +19 -0
  518. package/dist/internal/planning/rent.d.ts.map +1 -0
  519. package/dist/internal/planning/rent.js +35 -0
  520. package/dist/internal/planning/rent.js.map +1 -0
  521. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  522. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  523. package/dist/internal/planning/respawn-guards.js +42 -0
  524. package/dist/internal/planning/respawn-guards.js.map +1 -0
  525. package/dist/internal/planning/runtime-guards.d.ts +41 -0
  526. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  527. package/dist/internal/planning/runtime-guards.js +640 -0
  528. package/dist/internal/planning/runtime-guards.js.map +1 -0
  529. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  530. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  531. package/dist/internal/planning/scan-completion-guard.js +95 -0
  532. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  533. package/dist/internal/planning/scan-completion.d.ts +20 -0
  534. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  535. package/dist/internal/planning/scan-completion.js +197 -0
  536. package/dist/internal/planning/scan-completion.js.map +1 -0
  537. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  538. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  539. package/dist/internal/planning/scan-detect-guard.js +77 -0
  540. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  541. package/dist/internal/planning/scan-detect.d.ts +24 -0
  542. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  543. package/dist/internal/planning/scan-detect.js +245 -0
  544. package/dist/internal/planning/scan-detect.js.map +1 -0
  545. package/dist/internal/planning/scan-input.d.ts +9 -0
  546. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  547. package/dist/internal/planning/scan-input.js +58 -0
  548. package/dist/internal/planning/scan-input.js.map +1 -0
  549. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  550. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  551. package/dist/internal/planning/ship-import-funding.js +53 -0
  552. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  553. package/dist/internal/planning/ship-token.d.ts +1 -6
  554. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  555. package/dist/internal/planning/ship-token.js +2 -41
  556. package/dist/internal/planning/ship-token.js.map +1 -1
  557. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  558. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  559. package/dist/internal/planning/starbase-player-owner.js +17 -0
  560. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  561. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  562. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  563. package/dist/internal/planning/starbase-system-guard.js +94 -0
  564. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  565. package/dist/internal/planning/starbase-system.d.ts +15 -0
  566. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  567. package/dist/internal/planning/starbase-system.js +25 -0
  568. package/dist/internal/planning/starbase-system.js.map +1 -0
  569. package/dist/internal/planning/token-mint.d.ts +4 -0
  570. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  571. package/dist/internal/planning/token-mint.js +16 -0
  572. package/dist/internal/planning/token-mint.js.map +1 -0
  573. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  574. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  575. package/dist/internal/planning/trade-faction-market.js +56 -0
  576. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  577. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  578. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  579. package/dist/internal/planning/wallet-starbase.js +39 -0
  580. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  581. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  582. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  583. package/dist/internal/planning/xp-runtime.js +117 -0
  584. package/dist/internal/planning/xp-runtime.js.map +1 -0
  585. package/dist/internal/read-meta.d.ts +12 -0
  586. package/dist/internal/read-meta.d.ts.map +1 -1
  587. package/dist/internal/read-meta.js +10 -0
  588. package/dist/internal/read-meta.js.map +1 -1
  589. package/dist/internal/system-program.d.ts +4 -0
  590. package/dist/internal/system-program.d.ts.map +1 -0
  591. package/dist/internal/system-program.js +3 -0
  592. package/dist/internal/system-program.js.map +1 -0
  593. package/dist/loyalty/actions/index.d.ts +1 -1
  594. package/dist/loyalty/actions/index.d.ts.map +1 -1
  595. package/dist/loyalty/actions/index.js +15 -45
  596. package/dist/loyalty/actions/index.js.map +1 -1
  597. package/dist/loyalty/index.d.ts.map +1 -1
  598. package/dist/loyalty/index.js +6 -18
  599. package/dist/loyalty/index.js.map +1 -1
  600. package/dist/markets/actions/index.d.ts +62 -4
  601. package/dist/markets/actions/index.d.ts.map +1 -1
  602. package/dist/markets/actions/index.js +230 -178
  603. package/dist/markets/actions/index.js.map +1 -1
  604. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  605. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  606. package/dist/markets/actions/trade-faction-market.js +277 -0
  607. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  608. package/dist/markets/index.d.ts +38 -7
  609. package/dist/markets/index.d.ts.map +1 -1
  610. package/dist/markets/index.js +59 -20
  611. package/dist/markets/index.js.map +1 -1
  612. package/dist/mining/actions/index.d.ts +87 -0
  613. package/dist/mining/actions/index.d.ts.map +1 -0
  614. package/dist/mining/actions/index.js +319 -0
  615. package/dist/mining/actions/index.js.map +1 -0
  616. package/dist/mining/estimate.d.ts +114 -0
  617. package/dist/mining/estimate.d.ts.map +1 -0
  618. package/dist/mining/estimate.js +127 -0
  619. package/dist/mining/estimate.js.map +1 -0
  620. package/dist/mining/index.d.ts +9 -2
  621. package/dist/mining/index.d.ts.map +1 -1
  622. package/dist/mining/index.js +10 -13
  623. package/dist/mining/index.js.map +1 -1
  624. package/dist/mining/profile.d.ts +82 -0
  625. package/dist/mining/profile.d.ts.map +1 -0
  626. package/dist/mining/profile.js +109 -0
  627. package/dist/mining/profile.js.map +1 -0
  628. package/dist/planning/assembly.d.ts +6 -1
  629. package/dist/planning/assembly.d.ts.map +1 -1
  630. package/dist/planning/assembly.js +12 -8
  631. package/dist/planning/assembly.js.map +1 -1
  632. package/dist/planning/execution.d.ts +19 -3
  633. package/dist/planning/execution.d.ts.map +1 -1
  634. package/dist/planning/execution.js +504 -72
  635. package/dist/planning/execution.js.map +1 -1
  636. package/dist/planning/index.d.ts +196 -149
  637. package/dist/planning/index.d.ts.map +1 -1
  638. package/dist/planning/index.js +31 -355
  639. package/dist/planning/index.js.map +1 -1
  640. package/dist/planning/plan-construction.d.ts +25 -0
  641. package/dist/planning/plan-construction.d.ts.map +1 -0
  642. package/dist/planning/plan-construction.js +143 -0
  643. package/dist/planning/plan-construction.js.map +1 -0
  644. package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
  645. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
  646. package/dist/planning/plan-sequence-checkpoint.js +16 -7
  647. package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
  648. package/dist/planning/plan-sequence-execution.d.ts +5 -0
  649. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  650. package/dist/planning/plan-sequence-execution.js +74 -40
  651. package/dist/planning/plan-sequence-execution.js.map +1 -1
  652. package/dist/planning/plan-sequence.d.ts +2 -1
  653. package/dist/planning/plan-sequence.d.ts.map +1 -1
  654. package/dist/planning/plan-sequence.js +8 -1
  655. package/dist/planning/plan-sequence.js.map +1 -1
  656. package/dist/planning/plan-validation.d.ts +17 -0
  657. package/dist/planning/plan-validation.d.ts.map +1 -0
  658. package/dist/planning/plan-validation.js +127 -0
  659. package/dist/planning/plan-validation.js.map +1 -0
  660. package/dist/planning/simulation.d.ts +25 -1
  661. package/dist/planning/simulation.d.ts.map +1 -1
  662. package/dist/planning/simulation.js +111 -11
  663. package/dist/planning/simulation.js.map +1 -1
  664. package/dist/registry/cargo.d.ts +7 -12
  665. package/dist/registry/cargo.d.ts.map +1 -1
  666. package/dist/registry/cargo.js +20 -20
  667. package/dist/registry/cargo.js.map +1 -1
  668. package/dist/registry/docking.d.ts +10 -0
  669. package/dist/registry/docking.d.ts.map +1 -0
  670. package/dist/registry/docking.js +12 -0
  671. package/dist/registry/docking.js.map +1 -0
  672. package/dist/registry/index.d.ts +4 -0
  673. package/dist/registry/index.d.ts.map +1 -1
  674. package/dist/registry/index.js +190 -224
  675. package/dist/registry/index.js.map +1 -1
  676. package/dist/registry/onboarding.d.ts +10 -2
  677. package/dist/registry/onboarding.d.ts.map +1 -1
  678. package/dist/registry/onboarding.js +20 -7
  679. package/dist/registry/onboarding.js.map +1 -1
  680. package/dist/registry/scanning.d.ts +7 -0
  681. package/dist/registry/scanning.d.ts.map +1 -0
  682. package/dist/registry/scanning.js +13 -0
  683. package/dist/registry/scanning.js.map +1 -0
  684. package/dist/registry/ship-stats-snapshot.js +19 -19
  685. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  686. package/dist/registry/ships.d.ts +22 -2
  687. package/dist/registry/ships.d.ts.map +1 -1
  688. package/dist/registry/ships.js +31 -4
  689. package/dist/registry/ships.js.map +1 -1
  690. package/dist/registry/xp-runtime.d.ts +4 -0
  691. package/dist/registry/xp-runtime.d.ts.map +1 -0
  692. package/dist/registry/xp-runtime.js +14 -0
  693. package/dist/registry/xp-runtime.js.map +1 -0
  694. package/dist/rewards/index.d.ts +11 -5
  695. package/dist/rewards/index.d.ts.map +1 -1
  696. package/dist/rewards/index.js +10 -21
  697. package/dist/rewards/index.js.map +1 -1
  698. package/dist/scanning/actions/index.d.ts +116 -0
  699. package/dist/scanning/actions/index.d.ts.map +1 -0
  700. package/dist/scanning/actions/index.js +191 -0
  701. package/dist/scanning/actions/index.js.map +1 -0
  702. package/dist/scanning/index.d.ts +5 -2
  703. package/dist/scanning/index.d.ts.map +1 -1
  704. package/dist/scanning/index.js +17 -21
  705. package/dist/scanning/index.js.map +1 -1
  706. package/dist/scanning/lifecycle.d.ts +77 -0
  707. package/dist/scanning/lifecycle.d.ts.map +1 -0
  708. package/dist/scanning/lifecycle.js +93 -0
  709. package/dist/scanning/lifecycle.js.map +1 -0
  710. package/dist/scanning/odds.d.ts +111 -0
  711. package/dist/scanning/odds.d.ts.map +1 -0
  712. package/dist/scanning/odds.js +294 -0
  713. package/dist/scanning/odds.js.map +1 -0
  714. package/dist/scanning/signals.d.ts +121 -0
  715. package/dist/scanning/signals.d.ts.map +1 -0
  716. package/dist/scanning/signals.js +171 -0
  717. package/dist/scanning/signals.js.map +1 -0
  718. package/dist/starbases/actions/index.d.ts +1 -1
  719. package/dist/starbases/actions/index.d.ts.map +1 -1
  720. package/dist/starbases/actions/index.js +16 -58
  721. package/dist/starbases/actions/index.js.map +1 -1
  722. package/dist/starbases/index.d.ts.map +1 -1
  723. package/dist/starbases/index.js +3 -11
  724. package/dist/starbases/index.js.map +1 -1
  725. package/dist/world/index.d.ts +110 -5
  726. package/dist/world/index.d.ts.map +1 -1
  727. package/dist/world/index.js +112 -15
  728. package/dist/world/index.js.map +1 -1
  729. package/dist/world/planet-claim-stake-plots.d.ts +130 -0
  730. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  731. package/dist/world/planet-claim-stake-plots.js +110 -0
  732. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  733. package/dist/world/starbase-status.d.ts +176 -0
  734. package/dist/world/starbase-status.d.ts.map +1 -0
  735. package/dist/world/starbase-status.js +153 -0
  736. package/dist/world/starbase-status.js.map +1 -0
  737. package/package.json +10 -2
@@ -1,5 +1,5 @@
1
- import { type Address } from '@solana/kit';
2
- import type { RawAccount } from '../../client/contracts.js';
1
+ import type { Address } from '@solana/kit';
2
+ import type { RawAccount, SageContext } from '../../client/contracts.js';
3
3
  import type { EntityRef } from '../../client/refs.js';
4
4
  import type { PlanPrecondition } from '../../planning/index.js';
5
5
  export interface StarbasePlayerIntent {
@@ -10,5 +10,54 @@ export interface StarbasePlayerIntent {
10
10
  readonly character: EntityRef<'character'>;
11
11
  }
12
12
  export declare function observeWalletAccount(account: RawAccount, role?: string): Promise<PlanPrecondition>;
13
- export { validateWalletCargoCache } from '../../internal/c4/wallet-cargo-cache.js';
13
+ /** Requires an exact raw u64 amount and a u16 cargo id. */
14
+ export declare function validateWalletCargoAmount(amount: unknown, cargoId: unknown): void;
15
+ /** Pre-read facts shared by wallet deposits and withdrawals: the authorization
16
+ * Profile's canonical Starbase Player, the fresh cargo configuration, and the
17
+ * canonical Game cargo cache and its shared vault for the cargo mint. */
18
+ export declare function resolveWalletCargo(ctx: SageContext, starbase: StarbasePlayerIntent, profile: Address, cargoId: number, game: Address): Promise<{
19
+ bump: import("@solana/kit").ProgramDerivedAddressBump;
20
+ cache: Address<string>;
21
+ character: Address;
22
+ config: Readonly<{
23
+ configHash: string;
24
+ rawAccount: RawAccount;
25
+ cargo: import("@staratlas/dev-sage").CargoType;
26
+ cache: import("../../client/contracts.js").Address;
27
+ sequenceId: number;
28
+ }>;
29
+ mint: Address;
30
+ player: Address;
31
+ system: import("../../client/contracts.js").Address;
32
+ vault: Address;
33
+ }>;
34
+ type WalletCargo = Awaited<ReturnType<typeof resolveWalletCargo>>;
35
+ /** Requires an account read for a wallet cargo transfer to exist. */
36
+ export declare function requireWalletAccount(account: RawAccount | undefined, address: Address, action: 'deposit' | 'withdrawal'): RawAccount;
37
+ /** Reads the Profile, Character, Starbase Player, System, cargo cache, mint
38
+ * and shared vault with `extra` accounts in the same batch, and requires the
39
+ * shared Starbase graph, cache, mint and vault facts. Returns the extra
40
+ * accounts as read, missing ones included. */
41
+ export declare function readWalletCargo(ctx: SageContext, cargo: WalletCargo, profile: Address, game: Address, action: 'deposit' | 'withdrawal', extra: readonly Address[]): Promise<{
42
+ cacheData: import("@staratlas/dev-sage").CargoDefinitionsCache;
43
+ characterRaw: RawAccount;
44
+ decimals: number;
45
+ extraAccounts: (RawAccount | undefined)[];
46
+ playerData: Readonly<import("../../starbases/index.js").StarbasePlayerAccountData>;
47
+ playerRaw: RawAccount;
48
+ profileRaw: RawAccount;
49
+ systemGuard: {
50
+ describes: string;
51
+ requireCss?: true;
52
+ kind: "starbase-system";
53
+ address: import("../../client/contracts.js").Address;
54
+ game: Address;
55
+ starbaseSequenceId: bigint;
56
+ };
57
+ vaultBalance: bigint;
58
+ }>;
59
+ /** The mint, cargo configuration and cargo cache guards shared by wallet
60
+ * cargo Plans. */
61
+ export declare function walletCargoGuards(cargo: WalletCargo, cargoId: number, game: Address, decimals: number): readonly PlanPrecondition[];
62
+ export {};
14
63
  //# sourceMappingURL=wallet-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-context.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,UAAU,EACnB,IAAI,SAAiB,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"wallet-context.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,UAAU,EACnB,IAAI,SAAiB,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,2DAA2D;AAC3D,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,QAwB1E;AAED;;yEAEyE;AACzE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;GAyBd;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAElE,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAAG,YAAY,GAC/B,UAAU,CAQZ;AAED;;;8CAG8C;AAC9C,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,SAAS,GAAG,YAAY,EAChC,KAAK,EAAE,SAAS,OAAO,EAAE;;;;;;;;;;;;;;;;;GAkE1B;AAED;kBACkB;AAClB,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,SAAS,gBAAgB,EAAE,CAyB7B"}
@@ -1,12 +1,123 @@
1
- import { hashAccountState } from '../../internal/planning/account-state.js';
2
- import {} from '@solana/kit';
1
+ import { accountStatePrecondition } from '../../internal/planning/account-state.js';
2
+ import { InvalidActionInputError } from '../../client/errors.js';
3
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
4
+ import { validateWalletCargoCache } from '../../internal/c4/wallet-cargo-cache.js';
5
+ import { deriveAssociatedTokenAddress, readTokenAccount, } from '../../internal/planning/original-token.js';
6
+ import { requireProfileStarbasePlayer } from '../../internal/planning/starbase-player-owner.js';
7
+ import { validateTokenMint } from '../../internal/planning/token-mint.js';
8
+ import { validateWalletStarbase } from '../../internal/planning/wallet-starbase.js';
9
+ import { readFreshGameCargoBytesConfiguration } from '../../registry/cargo.js';
10
+ import { failWalletCargo } from './wallet-token.js';
11
+ import { deriveCargoDefinitionsCacheAddress } from '../../internal/c4/pda.js';
3
12
  export async function observeWalletAccount(account, role = 'prerequisite') {
13
+ return accountStatePrecondition(account, `${role} account ${account.address} retains its observed owner and data; native balance is not guarded.`);
14
+ }
15
+ /** Requires an exact raw u64 amount and a u16 cargo id. */
16
+ export function validateWalletCargoAmount(amount, cargoId) {
17
+ if (typeof amount !== 'bigint' ||
18
+ amount <= 0n ||
19
+ amount > 18446744073709551615n)
20
+ throw new InvalidActionInputError('amount', amount, 'a positive bigint in the unsigned u64 range', 'Supply an exact raw token amount as bigint.');
21
+ if (typeof cargoId !== 'number' ||
22
+ !Number.isSafeInteger(cargoId) ||
23
+ cargoId < 0 ||
24
+ cargoId > 65535)
25
+ throw new InvalidActionInputError('cargoId', cargoId, 'an unsigned u16 cargo ID', 'Choose an existing cargo definition ID.');
26
+ }
27
+ /** Pre-read facts shared by wallet deposits and withdrawals: the authorization
28
+ * Profile's canonical Starbase Player, the fresh cargo configuration, and the
29
+ * canonical Game cargo cache and its shared vault for the cargo mint. */
30
+ export async function resolveWalletCargo(ctx, starbase, profile, cargoId, game) {
31
+ if (starbase.kind !== 'starbasePlayer')
32
+ failWalletCargo('The loaded Starbase must be a Starbase Player registration.', starbase.address);
33
+ const character = await requireProfileStarbasePlayer(starbase, profile, game);
34
+ const config = await readFreshGameCargoBytesConfiguration(ctx, cargoId);
35
+ const [cache, bump] = await deriveCargoDefinitionsCacheAddress(game);
36
+ if (config.cache !== cache)
37
+ failWalletCargo('The configured cargo cache does not match the canonical Game cargo-cache PDA.', config.cache);
4
38
  return {
5
- kind: 'account-state',
6
- address: account.address,
7
- dataHash: await hashAccountState(account.owner, account.data),
8
- describes: `${role} account ${account.address} retains its observed owner and data; native balance is not guarded.`,
39
+ bump,
40
+ cache,
41
+ character,
42
+ config,
43
+ mint: config.cargo.mint,
44
+ player: starbase.address,
45
+ system: starbase.system.address,
46
+ vault: await deriveAssociatedTokenAddress(cache, config.cargo.mint),
9
47
  };
10
48
  }
11
- export { validateWalletCargoCache } from '../../internal/c4/wallet-cargo-cache.js';
49
+ /** Requires an account read for a wallet cargo transfer to exist. */
50
+ export function requireWalletAccount(account, address, action) {
51
+ return (account ??
52
+ failWalletCargo(`Required ${action} account ${address} is missing. Register the player or create the required accounts separately.`, address));
53
+ }
54
+ /** Reads the Profile, Character, Starbase Player, System, cargo cache, mint
55
+ * and shared vault with `extra` accounts in the same batch, and requires the
56
+ * shared Starbase graph, cache, mint and vault facts. Returns the extra
57
+ * accounts as read, missing ones included. */
58
+ export async function readWalletCargo(ctx, cargo, profile, game, action, extra) {
59
+ const addresses = [
60
+ profile,
61
+ cargo.character,
62
+ cargo.player,
63
+ cargo.system,
64
+ cargo.cache,
65
+ cargo.mint,
66
+ cargo.vault,
67
+ ];
68
+ const candidates = await readContextRawAccounts(ctx, [
69
+ ...addresses,
70
+ ...extra,
71
+ ]);
72
+ const [profileRaw, characterRaw, playerRaw, systemRaw, cacheRaw, mintRaw, vaultRaw,] = addresses.map((address, index) => requireWalletAccount(candidates[index], address, action));
73
+ const { playerData, systemGuard } = await validateWalletStarbase({
74
+ profile: profileRaw,
75
+ character: characterRaw,
76
+ player: playerRaw,
77
+ system: systemRaw,
78
+ }, {
79
+ game,
80
+ profile,
81
+ character: cargo.character,
82
+ system: cargo.system,
83
+ requireCss: action === 'deposit',
84
+ }, failWalletCargo);
85
+ return {
86
+ cacheData: validateWalletCargoCache(cacheRaw, game, cargo.bump),
87
+ characterRaw,
88
+ decimals: validateTokenMint(mintRaw),
89
+ extraAccounts: candidates.slice(addresses.length),
90
+ playerData,
91
+ playerRaw,
92
+ profileRaw,
93
+ systemGuard,
94
+ vaultBalance: readTokenAccount(vaultRaw, cargo.mint, cargo.cache, failWalletCargo),
95
+ };
96
+ }
97
+ /** The mint, cargo configuration and cargo cache guards shared by wallet
98
+ * cargo Plans. */
99
+ export function walletCargoGuards(cargo, cargoId, game, decimals) {
100
+ return [
101
+ {
102
+ kind: 'token-mint',
103
+ address: cargo.mint,
104
+ decimals,
105
+ describes: `Mint ${cargo.mint} remains a valid initialized original Token Mint with unchanged decimals; supply and authorities may change.`,
106
+ },
107
+ {
108
+ kind: 'game-cargo-bytes-config',
109
+ address: game,
110
+ cargoId,
111
+ configHash: cargo.config.configHash,
112
+ describes: 'The selected cargo’s full encoded configuration, including its stored name, and cache identity remain unchanged; unrelated Game changes are allowed.',
113
+ },
114
+ {
115
+ kind: 'cargo-cache',
116
+ address: cargo.cache,
117
+ game,
118
+ bump: cargo.bump,
119
+ describes: 'The canonical cargo cache retains valid Game identity and layout; counters may change.',
120
+ },
121
+ ];
122
+ }
12
123
  //# sourceMappingURL=wallet-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-context.js","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAgB,MAAM,aAAa,CAAC;AAY3C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAmB,EACnB,IAAI,GAAG,cAAc;IAErB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;QAC7D,SAAS,EAAE,GAAG,IAAI,YAAY,OAAO,CAAC,OAAO,sEAAsE;KACpH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"wallet-context.js","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-context.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,3 @@
1
- import { type Address } from '@solana/kit';
2
- import type { RawAccount } from '../../client/contracts.js';
3
- export declare const ORIGINAL_TOKEN_PROGRAM: Address;
1
+ import type { Address } from '@solana/kit';
4
2
  export declare function failWalletCargo(message: string, address: Address): never;
5
- export declare function deriveWalletTokenAddress(owner: Address, mint: Address): Promise<Address>;
6
- export declare function validateWalletMint(account: RawAccount): number;
7
- export declare function validateWalletToken(account: RawAccount, mint: Address, owner: Address): bigint;
8
3
  //# sourceMappingURL=wallet-token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-token.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,eAAO,MAAM,sBAAsB,EACgB,OAAO,CAAC;AAI3D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMxE;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAWlB;AA6BD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAW9D;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAuBR"}
1
+ {"version":3,"file":"wallet-token.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMxE"}
@@ -1,58 +1,5 @@
1
- import { getAddressDecoder, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
2
1
  import { SageSdkError } from '../../client/errors.js';
3
- export const ORIGINAL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
4
- const ASSOCIATED_TOKEN_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
5
2
  export function failWalletCargo(message, address) {
6
3
  throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the accounts or select a supported original Token account before planning again.`, { address });
7
4
  }
8
- export async function deriveWalletTokenAddress(owner, mint) {
9
- const encode = getAddressEncoder();
10
- const [result] = await getProgramDerivedAddress({
11
- programAddress: ASSOCIATED_TOKEN_PROGRAM,
12
- seeds: [
13
- encode.encode(owner),
14
- encode.encode(ORIGINAL_TOKEN_PROGRAM),
15
- encode.encode(mint),
16
- ],
17
- });
18
- return result;
19
- }
20
- function view(account, size) {
21
- if (account.executable ||
22
- account.owner !== ORIGINAL_TOKEN_PROGRAM ||
23
- account.data.length !== size) {
24
- failWalletCargo(`Account ${account.address} must have the original Token program owner and exactly ${String(size)} bytes; Token-2022 and multisig layouts are unsupported.`, account.address);
25
- }
26
- return new DataView(account.data.buffer, account.data.byteOffset, account.data.byteLength);
27
- }
28
- function option(view, offset, account) {
29
- if (view.getUint32(offset, true) > 1) {
30
- failWalletCargo(`Token account ${account.address} has an invalid optional field.`, account.address);
31
- }
32
- }
33
- export function validateWalletMint(account) {
34
- const bytes = view(account, 82);
35
- option(bytes, 0, account);
36
- option(bytes, 46, account);
37
- if (bytes.getUint8(45) !== 1) {
38
- failWalletCargo(`Cargo mint ${account.address} is not initialized.`, account.address);
39
- }
40
- return bytes.getUint8(44);
41
- }
42
- export function validateWalletToken(account, mint, owner) {
43
- const bytes = view(account, 165);
44
- option(bytes, 72, account);
45
- option(bytes, 109, account);
46
- option(bytes, 129, account);
47
- if (bytes.getUint8(108) !== 1) {
48
- failWalletCargo(`Token account ${account.address} must be initialized and unfrozen.`, account.address);
49
- }
50
- const decode = getAddressDecoder();
51
- if (decode.decode(account.data.subarray(0, 32)) !== mint ||
52
- decode.decode(account.data.subarray(32, 64)) !== owner) {
53
- failWalletCargo(`Token account ${account.address} must contain cargo mint ${mint} and be owned internally by ${owner}; delegated spending is unsupported.`, account.address);
54
- }
55
- // A recorded delegate does not prevent the actual owner from transferring.
56
- return bytes.getBigUint64(64, true);
57
- }
58
5
  //# sourceMappingURL=wallet-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-token.js","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-token.js","sourceRoot":"","sources":["../../../src/cargo/actions/wallet-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAgB;IAC/D,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,GAAG,OAAO,2FAA2F,EACrG,EAAE,OAAO,EAAE,CACZ,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type Address } from '@solana/kit';
2
2
  import type { SageContext } from '../../client/contracts.js';
3
3
  import { type PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
4
- import { type Plan } from '../../planning/index.js';
4
+ import type { Plan } from '../../planning/index.js';
5
5
  import { type StarbasePlayerIntent } from './wallet-context.js';
6
6
  /** An exact withdrawal to an explicit receiving wallet, independently of Profile authority.
7
7
  * `destinationAccount` permits creating only a missing canonical ATA. An existing
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAkBzE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAEL,KAAK,IAAI,EAGV,MAAM,yBAAyB,CAAC;AASjC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAO7B;;;;;;;;;GASG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CA0Wf"}
1
+ {"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/cargo/actions/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAQ1D,OAAO,KAAK,EAAE,IAAI,EAA8B,MAAM,yBAAyB,CAAC;AAGhF,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;GASG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CA2Lf"}
@@ -1,25 +1,11 @@
1
- import { AccountRole, getAddressEncoder, getProgramDerivedAddress, isOffCurveAddress, } from '@solana/kit';
1
+ import { isOffCurveAddress } from '@solana/kit';
2
2
  import { InvalidActionInputError } from '../../client/errors.js';
3
- import { readContextRawAccounts } from '../../client/reconciliation.js';
4
- import { sage } from '../../internal/c4/bindings.js';
5
- import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
6
- import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
7
- import { starSystemAccountDefinition, deriveStarSystemAddress, } from '../../internal/c4/world.js';
8
3
  import { requireGameAddress } from '../../internal/game-context.js';
9
4
  import { adaptWithdrawCargoFromGameInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
10
- import { createPlan, } from '../../planning/index.js';
11
- import { readFreshGameCargoConfiguration } from '../../registry/cargo.js';
12
- import { deriveWalletTokenAddress, failWalletCargo, validateWalletMint, validateWalletToken, ORIGINAL_TOKEN_PROGRAM, } from './wallet-token.js';
13
- import { observeWalletAccount, validateWalletCargoCache, } from './wallet-context.js';
14
- const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
15
- const SYSTEM_PROGRAM = '11111111111111111111111111111111';
16
- const RENT_SYSVAR = 'SysvarRent111111111111111111111111111111111';
17
- const SYSVAR_OWNER = 'Sysvar1111111111111111111111111111111111111';
18
- function required(account, address) {
19
- if (!account)
20
- failWalletCargo(`Required withdrawal account ${address} is missing. Register the player or initialize its prerequisites separately.`, address);
21
- return account;
22
- }
5
+ import { TOKEN_TRANSFER_DISCLOSURE, deriveAssociatedTokenAddress, isTokenMultisig, readTokenAccount, resolveAssociatedTokenCreation, } from '../../internal/planning/original-token.js';
6
+ import { buildPlannerPlan } from '../../planning/plan-construction.js';
7
+ import { failWalletCargo } from './wallet-token.js';
8
+ import { observeWalletAccount, readWalletCargo, resolveWalletCargo, validateWalletCargoAmount, walletCargoGuards, } from './wallet-context.js';
23
9
  /** Plans an exact game-to-wallet withdrawal without signing or submitting.
24
10
  * Current verified game/token conversion is limited to zero-decimal cargo mints.
25
11
  * The recipient never signs merely to receive tokens. ATA creation is explicit,
@@ -40,119 +26,49 @@ function required(account, address) {
40
26
  */
41
27
  export async function planWithdrawCargoFromGame(ctx, starbase, options) {
42
28
  validatePlanAuthorization(options.authorization);
43
- if (typeof options.amount !== 'bigint' ||
44
- options.amount <= 0n ||
45
- options.amount > 18446744073709551615n)
46
- throw new InvalidActionInputError('amount', options.amount, 'a positive bigint in the unsigned u64 range', 'Supply an exact raw token amount as bigint.');
47
- if (!Number.isSafeInteger(options.cargoId) ||
48
- options.cargoId < 0 ||
49
- options.cargoId > 65535)
50
- throw new InvalidActionInputError('cargoId', options.cargoId, 'an unsigned u16 cargo ID', 'Choose an existing cargo definition ID.');
29
+ validateWalletCargoAmount(options.amount, options.cargoId);
51
30
  const creation = options.destinationAccount;
52
31
  if (creation && (creation.mode !== 'create-if-missing' || !creation.payer))
53
32
  throw new InvalidActionInputError('destinationAccount', creation, 'create-if-missing with an explicit payer', 'Provide an address-only payer to opt into canonical ATA creation.');
54
33
  const game = requireGameAddress(ctx);
55
- const character = await findCharacterPda(options.authorization.profile, game);
56
- const player = await deriveStarbasePlayerAddress(starbase.system.address, character);
57
- if (starbase.kind !== 'starbasePlayer' ||
58
- starbase.address !== player ||
59
- starbase.playerProfile.address !== options.authorization.profile ||
60
- starbase.character.address !== character)
61
- failWalletCargo('The loaded Starbase must belong to the authorized Profile and its canonical Character.', starbase.address);
62
- const config = await readFreshGameCargoConfiguration(ctx, options.cargoId);
63
- const [cache, bump] = await getProgramDerivedAddress({
64
- programAddress: sage.SAGE_PROGRAM_ADDRESS,
65
- seeds: [
66
- new TextEncoder().encode('CargoDefinitionsCache'),
67
- getAddressEncoder().encode(game),
68
- ],
69
- });
70
- if (config.cache !== cache)
71
- failWalletCargo('The configured cargo cache differs from the canonical Game cache.', config.cache);
72
- const canonicalDestination = await deriveWalletTokenAddress(options.recipient, config.cargo.mint);
34
+ const { profile } = options.authorization;
35
+ const cargo = await resolveWalletCargo(ctx, starbase, profile, options.cargoId, game);
36
+ const canonicalDestination = await deriveAssociatedTokenAddress(options.recipient, cargo.mint);
73
37
  const destination = options.destination ?? canonicalDestination;
74
- const source = await deriveWalletTokenAddress(cache, config.cargo.mint);
38
+ const source = cargo.vault;
75
39
  if (destination === source)
76
40
  failWalletCargo('The withdrawal destination is the shared Game vault itself. Choose a different recipient token account so the withdrawal actually transfers tokens out of the vault.', destination);
77
- const addresses = [
78
- options.authorization.profile,
79
- character,
80
- player,
81
- starbase.system.address,
82
- cache,
83
- config.cargo.mint,
84
- source,
85
- ];
86
- const candidates = await readContextRawAccounts(ctx, [
87
- ...addresses,
41
+ const { cacheData, characterRaw, decimals, extraAccounts: [destinationRaw, recipientRaw], playerData, playerRaw, profileRaw, systemGuard, vaultBalance: backing, } = await readWalletCargo(ctx, cargo, profile, game, 'withdrawal', [
88
42
  destination,
89
43
  options.recipient,
90
44
  ]);
91
- const accounts = addresses.map((address, index) => required(candidates[index], address));
92
- const [profileRaw, characterRaw, playerRaw, systemRaw, cacheRaw, mintRaw, vaultRaw,] = accounts;
93
- const destinationRaw = candidates[addresses.length];
94
- const recipientRaw = candidates[addresses.length + 1];
95
- profileAccountDefinition.decode(profileRaw);
96
- const characterData = characterAccountDefinition.decode(characterRaw);
97
- const playerData = starbasePlayerAccountDefinition.decode(playerRaw);
98
- const systemData = starSystemAccountDefinition.decode(systemRaw);
99
- if (characterData.game !== game ||
100
- characterData.playerProfile !== options.authorization.profile ||
101
- playerData.playerProfile !== options.authorization.profile ||
102
- playerData.character !== character ||
103
- playerData.system !== starbase.system.address ||
104
- systemData.game !== game ||
105
- (await deriveStarSystemAddress(game, systemData.systemId)) !==
106
- starbase.system.address)
107
- failWalletCargo('Fresh Profile, Character, System and player Starbase relationships do not match the configured Game.', player);
108
- const cacheData = validateWalletCargoCache(cacheRaw, game, bump);
109
- const decimals = validateWalletMint(mintRaw);
110
45
  if (decimals !== 0)
111
- failWalletCargo('Withdrawal game/token conversion for nonzero-decimal cargo mints is not verified. Use supported zero-decimal cargo until a bindings/program review establishes conversion.', config.cargo.mint);
112
- const backing = validateWalletToken(vaultRaw, config.cargo.mint, cache);
46
+ failWalletCargo('Withdrawal game/token conversion for nonzero-decimal cargo mints is not verified. Use supported zero-decimal cargo until a bindings/program review establishes conversion.', cargo.mint);
113
47
  if (destinationRaw)
114
- validateWalletToken(destinationRaw, config.cargo.mint, options.recipient);
115
- if (recipientRaw &&
116
- recipientRaw.data.length === 355 &&
117
- (recipientRaw.owner === ORIGINAL_TOKEN_PROGRAM ||
118
- recipientRaw.owner ===
119
- 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'))
48
+ readTokenAccount(destinationRaw, cargo.mint, options.recipient, failWalletCargo);
49
+ if (isTokenMultisig(recipientRaw))
120
50
  failWalletCargo('Token multisig recipients are outside the supported wallet cargo contract.', options.recipient);
121
51
  const entitlement = playerData.cargo.amounts.find((item) => item.cargoId === options.cargoId)
122
52
  ?.amount ?? 0n;
123
53
  if (entitlement < options.amount)
124
- failWalletCargo(`Player Starbase cargo entitlement ${String(entitlement)} is below requested ${String(options.amount)}. Shared vault backing is not personal inventory. Reduce the amount.`, player);
54
+ failWalletCargo(`Player Starbase cargo entitlement ${String(entitlement)} is below requested ${String(options.amount)}. Shared vault backing is not personal inventory. Reduce the amount.`, cargo.player);
125
55
  if (backing < options.amount)
126
56
  failWalletCargo(`Shared Game vault backing ${String(backing)} is below requested ${String(options.amount)}. Retry after backing is restored.`, source);
127
- if (config.cargo.withdrawEpochDuration === 0)
57
+ if (cargo.config.cargo.withdrawEpochDuration === 0)
128
58
  failWalletCargo('Withdrawal of this cargo is disabled by the Game configuration.', game);
129
- if (options.amount > config.cargo.circuitBreaker)
130
- failWalletCargo(`Requested amount exceeds the configured per-epoch withdrawal cap ${String(config.cargo.circuitBreaker)}. Reduce the amount.`, cache);
59
+ if (options.amount > cargo.config.cargo.circuitBreaker)
60
+ failWalletCargo(`Requested amount exceeds the configured per-epoch withdrawal cap ${String(cargo.config.cargo.circuitBreaker)}. Reduce the amount.`, cargo.cache);
131
61
  const preconditions = await Promise.all([
132
62
  [profileRaw, 'Profile authorization'],
133
63
  [characterRaw, 'Character identity'],
134
64
  [playerRaw, 'personal Starbase inventory'],
135
- [systemRaw, 'System access configuration'],
136
- [mintRaw, 'mint configuration'],
137
65
  ...(recipientRaw ? [[recipientRaw, 'wallet authority']] : []),
138
66
  ].map(([account, role]) => observeWalletAccount(account, role)));
139
- preconditions.push({
140
- kind: 'game-cargo-config',
141
- address: game,
142
- cargoId: options.cargoId,
143
- configHash: config.configHash,
144
- describes: 'The selected cargo configuration and cache identity remain unchanged; unrelated Game changes are allowed.',
145
- }, {
146
- kind: 'cargo-cache',
147
- address: cache,
148
- game,
149
- bump,
150
- describes: 'The canonical cargo cache retains valid Game identity and layout; counters may change.',
151
- }, {
67
+ preconditions.push(systemGuard, ...walletCargoGuards(cargo, options.cargoId, game, decimals), {
152
68
  kind: 'token-account',
153
69
  address: source,
154
- mint: config.cargo.mint,
155
- owner: cache,
70
+ mint: cargo.mint,
71
+ owner: cargo.cache,
156
72
  minimumBalance: options.amount,
157
73
  describes: 'The existing shared vault remains a valid original Token account with sufficient raw tokens.',
158
74
  }, ...(destinationRaw
@@ -160,7 +76,7 @@ export async function planWithdrawCargoFromGame(ctx, starbase, options) {
160
76
  {
161
77
  kind: 'token-account',
162
78
  address: destination,
163
- mint: config.cargo.mint,
79
+ mint: cargo.mint,
164
80
  owner: options.recipient,
165
81
  minimumBalance: 0n,
166
82
  describes: 'The existing destination remains a valid original Token account; incoming tokens are allowed.',
@@ -169,9 +85,9 @@ export async function planWithdrawCargoFromGame(ctx, starbase, options) {
169
85
  : []));
170
86
  if (!recipientRaw)
171
87
  preconditions.push({
172
- kind: 'account-absent',
88
+ kind: 'system-account-or-absent',
173
89
  address: options.recipient,
174
- describes: 'The recipient authority account remains absent, preserving its observed non-multisig state.',
90
+ describes: 'The recipient wallet may remain absent or receive native funding as an empty, non-executable System account.',
175
91
  });
176
92
  const steps = [];
177
93
  if (!destinationRaw) {
@@ -179,83 +95,42 @@ export async function planWithdrawCargoFromGame(ctx, starbase, options) {
179
95
  failWalletCargo('The destination token account is missing. Create custom accounts separately or explicitly opt into canonical ATA creation with a payer.', destination);
180
96
  if (isOffCurveAddress(creation.payer))
181
97
  failWalletCargo('ATA creation payer must be a directly signing address.', creation.payer);
182
- const extraAddresses = [
183
- RENT_SYSVAR,
184
- creation.payer,
185
- ATA_PROGRAM,
186
- SYSTEM_PROGRAM,
187
- ORIGINAL_TOKEN_PROGRAM,
188
- ];
189
- const extraCandidates = await readContextRawAccounts(ctx, extraAddresses);
190
- const extra = extraAddresses.map((address, index) => required(extraCandidates[index], address));
191
- const [rent, payer, ...programs] = extra;
192
- if (programs.some((program) => !program.executable))
193
- failWalletCargo('Associated-token creation requires executable associated-token, System and original Token programs in this deployment.', ATA_PROGRAM);
194
- if (rent.owner !== SYSVAR_OWNER ||
195
- rent.executable ||
196
- rent.data.length !== 17)
197
- failWalletCargo('The deployment Rent sysvar has an unsupported owner or layout. Verify storage funding before creating an ATA.', RENT_SYSVAR);
198
- const rentView = new DataView(rent.data.buffer, rent.data.byteOffset, rent.data.byteLength);
199
- const rate = rentView.getBigUint64(0, true);
200
- const threshold = rentView.getFloat64(8, true);
201
- const rawCost = Number(rate * 293n) * threshold;
202
- if (!Number.isFinite(rawCost) ||
203
- rawCost < 0 ||
204
- !Number.isSafeInteger(Math.floor(rawCost)))
205
- failWalletCargo('ATA rent exemption cannot be represented exactly for this deployment.', RENT_SYSVAR);
206
- const storageFunding = BigInt(Math.floor(rawCost));
207
- if (payer.owner !== SYSTEM_PROGRAM ||
208
- payer.executable ||
209
- payer.data.length !== 0 ||
210
- payer.lamports < storageFunding)
211
- failWalletCargo(`ATA payer must be a System wallet with at least ${String(storageFunding)} lamports for storage, in addition to transaction fees.`, creation.payer);
212
- preconditions.push(...(await Promise.all(extra.map((account, index) => observeWalletAccount(account, [
213
- 'Rent configuration',
214
- 'ATA payer identity',
215
- 'associated-token program',
216
- 'System program',
217
- 'Token program',
218
- ][index])))), {
98
+ const ata = await resolveAssociatedTokenCreation(ctx, {
99
+ payer: creation.payer,
100
+ address: destination,
101
+ owner: options.recipient,
102
+ mint: cargo.mint,
103
+ }, failWalletCargo, observeWalletAccount);
104
+ preconditions.push(...ata.preconditions, {
219
105
  kind: 'token-account-or-absent',
220
106
  address: destination,
221
- mint: config.cargo.mint,
107
+ mint: cargo.mint,
222
108
  owner: options.recipient,
223
109
  describes: 'The canonical recipient ATA is absent or a valid initialized unfrozen original Token account for this exact mint and recipient.',
224
110
  });
225
111
  steps.push({
226
- describes: `Create the canonical recipient ATA ${destination} idempotently. Payer ${creation.payer} funds ${String(storageFunding)} lamports of rent-exempt storage if still absent; this is separate from transaction fees.`,
112
+ describes: `Create the canonical recipient ATA ${destination} idempotently. Payer ${creation.payer} funds ${String(ata.storageFunding)} lamports of rent-exempt storage if still absent; this is separate from transaction fees.`,
227
113
  signers: [creation.payer],
228
- instruction: {
229
- programAddress: ATA_PROGRAM,
230
- accounts: [
231
- { address: creation.payer, role: AccountRole.WRITABLE_SIGNER },
232
- { address: destination, role: AccountRole.WRITABLE },
233
- { address: options.recipient, role: AccountRole.READONLY },
234
- { address: config.cargo.mint, role: AccountRole.READONLY },
235
- { address: SYSTEM_PROGRAM, role: AccountRole.READONLY },
236
- { address: ORIGINAL_TOKEN_PROGRAM, role: AccountRole.READONLY },
237
- ],
238
- data: new Uint8Array([1]),
239
- },
114
+ instruction: ata.instruction,
240
115
  });
241
116
  }
242
117
  const epoch = cacheData.cargoTypeCache.get(options.cargoId);
243
- const describes = `Withdraw ${String(options.amount)} raw token units of cargo ${String(options.cargoId)} from shared Game vault ${source} to ${destination}, owned by explicit recipient ${options.recipient}; debit the same verified zero-decimal quantity from player Starbase ${player}. Profile authority ${options.authorization.authority} signs; receiving does not require a recipient signature. Epoch duration ${String(config.cargo.withdrawEpochDuration)}, cap ${String(config.cargo.circuitBreaker)}; ${epoch ? `observed cache epoch ${String(epoch.currentEpoch)}, total withdrawn ${String(epoch.totalWithdrawn)}` : 'no retained cargo epoch entry'}. No remaining-epoch budget is predicted. Permissions, rollover, competing withdrawals and final balances remain chain-authoritative; simulate before signing. Transaction fees are paid separately by the execution fee payer.`;
118
+ const describes = `Withdraw ${String(options.amount)} raw token units of cargo ${String(options.cargoId)} from shared Game vault ${source} to ${destination}, owned by explicit recipient ${options.recipient}; debit the same verified zero-decimal quantity from player Starbase ${cargo.player}. Profile authority ${options.authorization.authority} signs; receiving does not require a recipient signature. Epoch duration ${String(cargo.config.cargo.withdrawEpochDuration)}, cap ${String(cargo.config.cargo.circuitBreaker)}; ${epoch ? `observed cache epoch ${String(epoch.currentEpoch)}, total withdrawn ${String(epoch.totalWithdrawn)}` : 'no retained cargo epoch entry'}. No remaining-epoch budget is predicted. Permissions, rollover, competing withdrawals and final balances remain chain-authoritative; simulate before signing. Transaction fees are paid separately by the execution fee payer. ${TOKEN_TRANSFER_DISCLOSURE}${recipientRaw ? '' : ' An absent recipient wallet may receive native funding as an empty, non-executable System account.'}`;
244
119
  steps.push({
245
120
  describes,
246
121
  signers: [options.authorization.authority],
247
122
  instruction: adaptWithdrawCargoFromGameInstruction({
248
123
  authorization: options.authorization,
249
- systemAndStarbasePlayerSystem: starbase.system.address,
250
- systemAndStarbasePlayerStarbasePlayer: player,
124
+ systemAndStarbasePlayerSystem: cargo.system,
125
+ systemAndStarbasePlayerStarbasePlayer: cargo.player,
251
126
  game,
252
- cargoCache: cache,
127
+ cargoCache: cargo.cache,
253
128
  source,
254
129
  destination,
255
130
  amount: options.amount,
256
131
  }),
257
132
  });
258
- return createPlan({
133
+ return buildPlannerPlan({
259
134
  kind: 'cargo.wallet-withdrawal',
260
135
  summary: describes,
261
136
  preconditions,