@aephia/atlas-kit 0.6.0-next.99 → 0.7.0-next.1

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 (765) hide show
  1. package/dist/cargo/actions/deposit.d.ts +4 -1
  2. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  3. package/dist/cargo/actions/deposit.js +56 -133
  4. package/dist/cargo/actions/deposit.js.map +1 -1
  5. package/dist/cargo/actions/index.d.ts +19 -7
  6. package/dist/cargo/actions/index.d.ts.map +1 -1
  7. package/dist/cargo/actions/index.js +106 -89
  8. package/dist/cargo/actions/index.js.map +1 -1
  9. package/dist/cargo/actions/transfer-bounds.d.ts +74 -0
  10. package/dist/cargo/actions/transfer-bounds.d.ts.map +1 -0
  11. package/dist/cargo/actions/transfer-bounds.js +128 -0
  12. package/dist/cargo/actions/transfer-bounds.js.map +1 -0
  13. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  14. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  15. package/dist/cargo/actions/wallet-context.js +118 -7
  16. package/dist/cargo/actions/wallet-context.js.map +1 -1
  17. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  18. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  19. package/dist/cargo/actions/wallet-token.js +0 -45
  20. package/dist/cargo/actions/wallet-token.js.map +1 -1
  21. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  22. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  23. package/dist/cargo/actions/withdrawal.js +37 -163
  24. package/dist/cargo/actions/withdrawal.js.map +1 -1
  25. package/dist/cargo/index.d.ts.map +1 -1
  26. package/dist/cargo/index.js +2 -10
  27. package/dist/cargo/index.js.map +1 -1
  28. package/dist/claim-stakes/actions/index.d.ts +80 -14
  29. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  30. package/dist/claim-stakes/actions/index.js +660 -709
  31. package/dist/claim-stakes/actions/index.js.map +1 -1
  32. package/dist/claim-stakes/index.d.ts +8 -6
  33. package/dist/claim-stakes/index.d.ts.map +1 -1
  34. package/dist/claim-stakes/index.js +12 -18
  35. package/dist/claim-stakes/index.js.map +1 -1
  36. package/dist/client/context.d.ts.map +1 -1
  37. package/dist/client/context.js +353 -37
  38. package/dist/client/context.js.map +1 -1
  39. package/dist/client/contracts.d.ts +54 -1
  40. package/dist/client/contracts.d.ts.map +1 -1
  41. package/dist/client/deployments.d.ts +17 -0
  42. package/dist/client/deployments.d.ts.map +1 -1
  43. package/dist/client/deployments.js +17 -0
  44. package/dist/client/deployments.js.map +1 -1
  45. package/dist/client/index.d.ts +22 -1
  46. package/dist/client/index.d.ts.map +1 -1
  47. package/dist/client/index.js +21 -0
  48. package/dist/client/index.js.map +1 -1
  49. package/dist/client/rpc-subscription-provider.d.ts +2 -0
  50. package/dist/client/rpc-subscription-provider.d.ts.map +1 -1
  51. package/dist/client/rpc-subscription-provider.js +135 -101
  52. package/dist/client/rpc-subscription-provider.js.map +1 -1
  53. package/dist/combat/actions/index.d.ts +30 -12
  54. package/dist/combat/actions/index.d.ts.map +1 -1
  55. package/dist/combat/actions/index.js +264 -252
  56. package/dist/combat/actions/index.js.map +1 -1
  57. package/dist/combat/index.d.ts +25 -8
  58. package/dist/combat/index.d.ts.map +1 -1
  59. package/dist/combat/index.js +21 -18
  60. package/dist/combat/index.js.map +1 -1
  61. package/dist/crafting/actions/fee-rate.d.ts +47 -0
  62. package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
  63. package/dist/crafting/actions/fee-rate.js +58 -0
  64. package/dist/crafting/actions/fee-rate.js.map +1 -0
  65. package/dist/crafting/actions/index.d.ts +28 -28
  66. package/dist/crafting/actions/index.d.ts.map +1 -1
  67. package/dist/crafting/actions/index.js +243 -314
  68. package/dist/crafting/actions/index.js.map +1 -1
  69. package/dist/crafting/estimate.d.ts +101 -0
  70. package/dist/crafting/estimate.d.ts.map +1 -0
  71. package/dist/crafting/estimate.js +108 -0
  72. package/dist/crafting/estimate.js.map +1 -0
  73. package/dist/crafting/index.d.ts +6 -5
  74. package/dist/crafting/index.d.ts.map +1 -1
  75. package/dist/crafting/index.js +6 -13
  76. package/dist/crafting/index.js.map +1 -1
  77. package/dist/factions/actions/index.d.ts +1 -1
  78. package/dist/factions/actions/index.d.ts.map +1 -1
  79. package/dist/factions/actions/index.js +5 -4
  80. package/dist/factions/actions/index.js.map +1 -1
  81. package/dist/factions/index.d.ts +18 -1
  82. package/dist/factions/index.d.ts.map +1 -1
  83. package/dist/factions/index.js +24 -18
  84. package/dist/factions/index.js.map +1 -1
  85. package/dist/fleets/actions/add-ship.d.ts +18 -5
  86. package/dist/fleets/actions/add-ship.d.ts.map +1 -1
  87. package/dist/fleets/actions/add-ship.js +35 -48
  88. package/dist/fleets/actions/add-ship.js.map +1 -1
  89. package/dist/fleets/actions/create-fleet.d.ts +1 -1
  90. package/dist/fleets/actions/create-fleet.d.ts.map +1 -1
  91. package/dist/fleets/actions/create-fleet.js +8 -38
  92. package/dist/fleets/actions/create-fleet.js.map +1 -1
  93. package/dist/fleets/actions/crew-transfer.d.ts +8 -4
  94. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -1
  95. package/dist/fleets/actions/crew-transfer.js +27 -42
  96. package/dist/fleets/actions/crew-transfer.js.map +1 -1
  97. package/dist/fleets/actions/deployment-storage.d.ts +161 -0
  98. package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
  99. package/dist/fleets/actions/deployment-storage.js +297 -0
  100. package/dist/fleets/actions/deployment-storage.js.map +1 -0
  101. package/dist/fleets/actions/disband.d.ts +42 -0
  102. package/dist/fleets/actions/disband.d.ts.map +1 -0
  103. package/dist/fleets/actions/disband.js +107 -0
  104. package/dist/fleets/actions/disband.js.map +1 -0
  105. package/dist/fleets/actions/index.d.ts +55 -11
  106. package/dist/fleets/actions/index.d.ts.map +1 -1
  107. package/dist/fleets/actions/index.js +282 -235
  108. package/dist/fleets/actions/index.js.map +1 -1
  109. package/dist/fleets/actions/respawn.d.ts +1 -1
  110. package/dist/fleets/actions/respawn.d.ts.map +1 -1
  111. package/dist/fleets/actions/respawn.js +8 -37
  112. package/dist/fleets/actions/respawn.js.map +1 -1
  113. package/dist/fleets/actions/ship-import.d.ts +1 -1
  114. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  115. package/dist/fleets/actions/ship-import.js +39 -91
  116. package/dist/fleets/actions/ship-import.js.map +1 -1
  117. package/dist/fleets/actions/sync.d.ts +24 -0
  118. package/dist/fleets/actions/sync.d.ts.map +1 -0
  119. package/dist/fleets/actions/sync.js +55 -0
  120. package/dist/fleets/actions/sync.js.map +1 -0
  121. package/dist/fleets/composition-stats.d.ts +101 -0
  122. package/dist/fleets/composition-stats.d.ts.map +1 -0
  123. package/dist/fleets/composition-stats.js +354 -0
  124. package/dist/fleets/composition-stats.js.map +1 -0
  125. package/dist/fleets/cooldown.d.ts +7 -4
  126. package/dist/fleets/cooldown.d.ts.map +1 -1
  127. package/dist/fleets/cooldown.js +11 -6
  128. package/dist/fleets/cooldown.js.map +1 -1
  129. package/dist/fleets/index.d.ts +1 -0
  130. package/dist/fleets/index.d.ts.map +1 -1
  131. package/dist/fleets/index.js +3 -10
  132. package/dist/fleets/index.js.map +1 -1
  133. package/dist/fleets/movement-arithmetic.d.ts.map +1 -1
  134. package/dist/fleets/movement-arithmetic.js +4 -0
  135. package/dist/fleets/movement-arithmetic.js.map +1 -1
  136. package/dist/fleets/subwarp-estimate.d.ts +3 -1
  137. package/dist/fleets/subwarp-estimate.d.ts.map +1 -1
  138. package/dist/fleets/subwarp-estimate.js +3 -1
  139. package/dist/fleets/subwarp-estimate.js.map +1 -1
  140. package/dist/fleets/warp-lane-policy.d.ts +13 -7
  141. package/dist/fleets/warp-lane-policy.d.ts.map +1 -1
  142. package/dist/fleets/warp-lane-policy.js +19 -7
  143. package/dist/fleets/warp-lane-policy.js.map +1 -1
  144. package/dist/identity/actions/create-profile.d.ts +1 -1
  145. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  146. package/dist/identity/actions/create-profile.js +2 -2
  147. package/dist/identity/actions/create-profile.js.map +1 -1
  148. package/dist/identity/actions/index.d.ts +2 -1
  149. package/dist/identity/actions/index.d.ts.map +1 -1
  150. package/dist/identity/actions/index.js +6 -4
  151. package/dist/identity/actions/index.js.map +1 -1
  152. package/dist/identity/actions/research-unlock.d.ts +61 -0
  153. package/dist/identity/actions/research-unlock.d.ts.map +1 -0
  154. package/dist/identity/actions/research-unlock.js +166 -0
  155. package/dist/identity/actions/research-unlock.js.map +1 -0
  156. package/dist/identity/index.d.ts +62 -2
  157. package/dist/identity/index.d.ts.map +1 -1
  158. package/dist/identity/index.js +63 -12
  159. package/dist/identity/index.js.map +1 -1
  160. package/dist/index.d.ts +2 -1
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +4 -4
  163. package/dist/index.js.map +1 -1
  164. package/dist/internal/c4/account-decoding.d.ts +49 -0
  165. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  166. package/dist/internal/c4/account-decoding.js +74 -0
  167. package/dist/internal/c4/account-decoding.js.map +1 -0
  168. package/dist/internal/c4/career-xp.d.ts +58 -0
  169. package/dist/internal/c4/career-xp.d.ts.map +1 -0
  170. package/dist/internal/c4/career-xp.js +80 -0
  171. package/dist/internal/c4/career-xp.js.map +1 -0
  172. package/dist/internal/c4/cargo-instructions.d.ts +27 -0
  173. package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
  174. package/dist/internal/c4/cargo-instructions.js +41 -0
  175. package/dist/internal/c4/cargo-instructions.js.map +1 -0
  176. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  177. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  178. package/dist/internal/c4/cargo-pod.js +13 -0
  179. package/dist/internal/c4/cargo-pod.js.map +1 -0
  180. package/dist/internal/c4/character-modifier.d.ts +1 -1
  181. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  182. package/dist/internal/c4/character.d.ts +157 -0
  183. package/dist/internal/c4/character.d.ts.map +1 -0
  184. package/dist/internal/c4/character.js +64 -0
  185. package/dist/internal/c4/character.js.map +1 -0
  186. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  187. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  188. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  189. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  190. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  191. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  192. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -0
  193. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  194. package/dist/internal/c4/claim-stake-definitions.js +6 -2
  195. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  196. package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
  197. package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
  198. package/dist/internal/c4/claim-stake-plots.js +29 -0
  199. package/dist/internal/c4/claim-stake-plots.js.map +1 -0
  200. package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
  201. package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
  202. package/dist/internal/c4/claim-stake-standing.js +61 -0
  203. package/dist/internal/c4/claim-stake-standing.js.map +1 -0
  204. package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
  205. package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
  206. package/dist/internal/c4/claim-stake-storage.js +207 -0
  207. package/dist/internal/c4/claim-stake-storage.js.map +1 -0
  208. package/dist/internal/c4/claim-stake.d.ts +9 -6
  209. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  210. package/dist/internal/c4/claim-stake.js +24 -56
  211. package/dist/internal/c4/claim-stake.js.map +1 -1
  212. package/dist/internal/c4/combat-storage.d.ts +20 -0
  213. package/dist/internal/c4/combat-storage.d.ts.map +1 -0
  214. package/dist/internal/c4/combat-storage.js +43 -0
  215. package/dist/internal/c4/combat-storage.js.map +1 -0
  216. package/dist/internal/c4/combat.d.ts +1 -55
  217. package/dist/internal/c4/combat.d.ts.map +1 -1
  218. package/dist/internal/c4/combat.js +16 -180
  219. package/dist/internal/c4/combat.js.map +1 -1
  220. package/dist/internal/c4/crafting-storage.d.ts +20 -0
  221. package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
  222. package/dist/internal/c4/crafting-storage.js +54 -0
  223. package/dist/internal/c4/crafting-storage.js.map +1 -0
  224. package/dist/internal/c4/crafting.d.ts +9 -1
  225. package/dist/internal/c4/crafting.d.ts.map +1 -1
  226. package/dist/internal/c4/crafting.js +38 -98
  227. package/dist/internal/c4/crafting.js.map +1 -1
  228. package/dist/internal/c4/currency-cache.d.ts +1 -1
  229. package/dist/internal/c4/currency-cache.d.ts.map +1 -1
  230. package/dist/internal/c4/currency-cache.js +6 -9
  231. package/dist/internal/c4/currency-cache.js.map +1 -1
  232. package/dist/internal/c4/discriminators.d.ts +93 -0
  233. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  234. package/dist/internal/c4/discriminators.js +190 -0
  235. package/dist/internal/c4/discriminators.js.map +1 -0
  236. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -1
  237. package/dist/internal/c4/faction-epoch-meter.js +5 -10
  238. package/dist/internal/c4/faction-epoch-meter.js.map +1 -1
  239. package/dist/internal/c4/faction-treasury.d.ts.map +1 -1
  240. package/dist/internal/c4/faction-treasury.js +11 -18
  241. package/dist/internal/c4/faction-treasury.js.map +1 -1
  242. package/dist/internal/c4/faction.d.ts +21 -0
  243. package/dist/internal/c4/faction.d.ts.map +1 -0
  244. package/dist/internal/c4/faction.js +23 -0
  245. package/dist/internal/c4/faction.js.map +1 -0
  246. package/dist/internal/c4/factions.d.ts +31 -3
  247. package/dist/internal/c4/factions.d.ts.map +1 -1
  248. package/dist/internal/c4/factions.js +103 -104
  249. package/dist/internal/c4/factions.js.map +1 -1
  250. package/dist/internal/c4/fleet-creation.d.ts +9 -2
  251. package/dist/internal/c4/fleet-creation.d.ts.map +1 -1
  252. package/dist/internal/c4/fleet-creation.js +15 -18
  253. package/dist/internal/c4/fleet-creation.js.map +1 -1
  254. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  255. package/dist/internal/c4/fleet-crew-binding.js +21 -49
  256. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  257. package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
  258. package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
  259. package/dist/internal/c4/fleet-disband-layout.js +7 -0
  260. package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
  261. package/dist/internal/c4/fleet-disband.d.ts +41 -0
  262. package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
  263. package/dist/internal/c4/fleet-disband.js +86 -0
  264. package/dist/internal/c4/fleet-disband.js.map +1 -0
  265. package/dist/internal/c4/fleet-points.d.ts +3 -0
  266. package/dist/internal/c4/fleet-points.d.ts.map +1 -0
  267. package/dist/internal/c4/fleet-points.js +8 -0
  268. package/dist/internal/c4/fleet-points.js.map +1 -0
  269. package/dist/internal/c4/fleet-ship-assembly.d.ts +20 -5
  270. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
  271. package/dist/internal/c4/fleet-ship-assembly.js +62 -10
  272. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
  273. package/dist/internal/c4/fleet-storage.d.ts +44 -0
  274. package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
  275. package/dist/internal/c4/fleet-storage.js +108 -0
  276. package/dist/internal/c4/fleet-storage.js.map +1 -0
  277. package/dist/internal/c4/fleet-sync.d.ts +5 -0
  278. package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
  279. package/dist/internal/c4/fleet-sync.js +15 -0
  280. package/dist/internal/c4/fleet-sync.js.map +1 -0
  281. package/dist/internal/c4/fleet.d.ts +20 -5
  282. package/dist/internal/c4/fleet.d.ts.map +1 -1
  283. package/dist/internal/c4/fleet.js +24 -84
  284. package/dist/internal/c4/fleet.js.map +1 -1
  285. package/dist/internal/c4/game.d.ts +76 -21
  286. package/dist/internal/c4/game.d.ts.map +1 -1
  287. package/dist/internal/c4/game.js +127 -116
  288. package/dist/internal/c4/game.js.map +1 -1
  289. package/dist/internal/c4/identity.d.ts +2 -153
  290. package/dist/internal/c4/identity.d.ts.map +1 -1
  291. package/dist/internal/c4/identity.js +19 -126
  292. package/dist/internal/c4/identity.js.map +1 -1
  293. package/dist/internal/c4/local-market-order.d.ts +4 -6
  294. package/dist/internal/c4/local-market-order.d.ts.map +1 -1
  295. package/dist/internal/c4/local-market-order.js +5 -6
  296. package/dist/internal/c4/local-market-order.js.map +1 -1
  297. package/dist/internal/c4/loot-layout.js +1 -1
  298. package/dist/internal/c4/loot-layout.js.map +1 -1
  299. package/dist/internal/c4/loot.d.ts +89 -0
  300. package/dist/internal/c4/loot.d.ts.map +1 -0
  301. package/dist/internal/c4/loot.js +109 -0
  302. package/dist/internal/c4/loot.js.map +1 -0
  303. package/dist/internal/c4/loyalty.d.ts +7 -3
  304. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  305. package/dist/internal/c4/loyalty.js +41 -130
  306. package/dist/internal/c4/loyalty.js.map +1 -1
  307. package/dist/internal/c4/market-storage.d.ts +25 -0
  308. package/dist/internal/c4/market-storage.d.ts.map +1 -0
  309. package/dist/internal/c4/market-storage.js +53 -0
  310. package/dist/internal/c4/market-storage.js.map +1 -0
  311. package/dist/internal/c4/market.d.ts +3 -0
  312. package/dist/internal/c4/market.d.ts.map +1 -1
  313. package/dist/internal/c4/market.js +20 -76
  314. package/dist/internal/c4/market.js.map +1 -1
  315. package/dist/internal/c4/mining-instructions.d.ts +1 -1
  316. package/dist/internal/c4/mining-instructions.d.ts.map +1 -1
  317. package/dist/internal/c4/mining-instructions.js +1 -1
  318. package/dist/internal/c4/mining-instructions.js.map +1 -1
  319. package/dist/internal/c4/open-signal.d.ts +1 -1
  320. package/dist/internal/c4/open-signal.d.ts.map +1 -1
  321. package/dist/internal/c4/open-signal.js +1 -1
  322. package/dist/internal/c4/open-signal.js.map +1 -1
  323. package/dist/internal/c4/pda.d.ts +49 -1
  324. package/dist/internal/c4/pda.d.ts.map +1 -1
  325. package/dist/internal/c4/pda.js +122 -17
  326. package/dist/internal/c4/pda.js.map +1 -1
  327. package/dist/internal/c4/profile-faction.d.ts +2 -1
  328. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  329. package/dist/internal/c4/profile-faction.js +36 -72
  330. package/dist/internal/c4/profile-faction.js.map +1 -1
  331. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  332. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  333. package/dist/internal/c4/profile-permissions.js +16 -1
  334. package/dist/internal/c4/profile-permissions.js.map +1 -1
  335. package/dist/internal/c4/rewards.d.ts +1 -34
  336. package/dist/internal/c4/rewards.d.ts.map +1 -1
  337. package/dist/internal/c4/rewards.js +23 -170
  338. package/dist/internal/c4/rewards.js.map +1 -1
  339. package/dist/internal/c4/runtime-bindings.d.ts +1 -1
  340. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  341. package/dist/internal/c4/runtime-bindings.js +1 -1
  342. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  343. package/dist/internal/c4/scan-lifecycle.d.ts +21 -3
  344. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  345. package/dist/internal/c4/scan-lifecycle.js +35 -44
  346. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  347. package/dist/internal/c4/scan-storage.d.ts +7 -0
  348. package/dist/internal/c4/scan-storage.d.ts.map +1 -0
  349. package/dist/internal/c4/scan-storage.js +10 -0
  350. package/dist/internal/c4/scan-storage.js.map +1 -0
  351. package/dist/internal/c4/scanning.d.ts +3 -13
  352. package/dist/internal/c4/scanning.d.ts.map +1 -1
  353. package/dist/internal/c4/scanning.js +25 -75
  354. package/dist/internal/c4/scanning.js.map +1 -1
  355. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  356. package/dist/internal/c4/ship-stats.js +24 -26
  357. package/dist/internal/c4/ship-stats.js.map +1 -1
  358. package/dist/internal/c4/starbase.d.ts.map +1 -1
  359. package/dist/internal/c4/starbase.js +24 -96
  360. package/dist/internal/c4/starbase.js.map +1 -1
  361. package/dist/internal/c4/stimulant.d.ts +26 -0
  362. package/dist/internal/c4/stimulant.d.ts.map +1 -0
  363. package/dist/internal/c4/stimulant.js +36 -0
  364. package/dist/internal/c4/stimulant.js.map +1 -0
  365. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  366. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  367. package/dist/internal/c4/world.d.ts +6 -2
  368. package/dist/internal/c4/world.d.ts.map +1 -1
  369. package/dist/internal/c4/world.js +32 -107
  370. package/dist/internal/c4/world.js.map +1 -1
  371. package/dist/internal/fleet-route.d.ts +12 -0
  372. package/dist/internal/fleet-route.d.ts.map +1 -0
  373. package/dist/internal/fleet-route.js +11 -0
  374. package/dist/internal/fleet-route.js.map +1 -0
  375. package/dist/internal/fleet.d.ts +3 -3
  376. package/dist/internal/fleet.d.ts.map +1 -1
  377. package/dist/internal/fleet.js +1 -5
  378. package/dist/internal/fleet.js.map +1 -1
  379. package/dist/internal/loyalty-atlas-bank-state.d.ts +3 -2
  380. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -1
  381. package/dist/internal/loyalty-atlas-bank-state.js +4 -3
  382. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -1
  383. package/dist/internal/planning/account-state.d.ts +6 -0
  384. package/dist/internal/planning/account-state.d.ts.map +1 -1
  385. package/dist/internal/planning/account-state.js +13 -0
  386. package/dist/internal/planning/account-state.js.map +1 -1
  387. package/dist/internal/planning/arrival-guards.d.ts +0 -1
  388. package/dist/internal/planning/arrival-guards.d.ts.map +1 -1
  389. package/dist/internal/planning/arrival-guards.js +3 -18
  390. package/dist/internal/planning/arrival-guards.js.map +1 -1
  391. package/dist/internal/planning/authorization-adapter.d.ts +34 -11
  392. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  393. package/dist/internal/planning/authorization-adapter.js +116 -12
  394. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  395. package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
  396. package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
  397. package/dist/internal/planning/cargo-storage-actions.js +97 -0
  398. package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
  399. package/dist/internal/planning/character-access.d.ts +28 -0
  400. package/dist/internal/planning/character-access.d.ts.map +1 -0
  401. package/dist/internal/planning/character-access.js +41 -0
  402. package/dist/internal/planning/character-access.js.map +1 -0
  403. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -1
  404. package/dist/internal/planning/character-registration-guard.js +2 -1
  405. package/dist/internal/planning/character-registration-guard.js.map +1 -1
  406. package/dist/internal/planning/character-registration.d.ts.map +1 -1
  407. package/dist/internal/planning/character-registration.js +2 -1
  408. package/dist/internal/planning/character-registration.js.map +1 -1
  409. package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
  410. package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
  411. package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
  412. package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
  413. package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
  414. package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
  415. package/dist/internal/planning/combat-storage-actions.js +55 -0
  416. package/dist/internal/planning/combat-storage-actions.js.map +1 -0
  417. package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
  418. package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
  419. package/dist/internal/planning/crafting-storage-actions.js +64 -0
  420. package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
  421. package/dist/internal/planning/currency-cache-guard.d.ts +3 -1
  422. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
  423. package/dist/internal/planning/currency-cache-guard.js +47 -2
  424. package/dist/internal/planning/currency-cache-guard.js.map +1 -1
  425. package/dist/internal/planning/democracy-history.d.ts.map +1 -1
  426. package/dist/internal/planning/democracy-history.js +6 -15
  427. package/dist/internal/planning/democracy-history.js.map +1 -1
  428. package/dist/internal/planning/direct-options.d.ts +17 -0
  429. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  430. package/dist/internal/planning/direct-options.js +43 -0
  431. package/dist/internal/planning/direct-options.js.map +1 -0
  432. package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
  433. package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
  434. package/dist/internal/planning/disband-storage-actions.js +24 -0
  435. package/dist/internal/planning/disband-storage-actions.js.map +1 -0
  436. package/dist/internal/planning/faction-enrollment.d.ts +0 -2
  437. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  438. package/dist/internal/planning/faction-enrollment.js +0 -9
  439. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  440. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -1
  441. package/dist/internal/planning/fleet-arrival.js +10 -8
  442. package/dist/internal/planning/fleet-arrival.js.map +1 -1
  443. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -1
  444. package/dist/internal/planning/fleet-attack-xp.js +5 -11
  445. package/dist/internal/planning/fleet-attack-xp.js.map +1 -1
  446. package/dist/internal/planning/fleet-creation.d.ts.map +1 -1
  447. package/dist/internal/planning/fleet-creation.js +17 -36
  448. package/dist/internal/planning/fleet-creation.js.map +1 -1
  449. package/dist/internal/planning/fleet-crew-guard.d.ts +2 -1
  450. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -1
  451. package/dist/internal/planning/fleet-crew-guard.js +2 -1
  452. package/dist/internal/planning/fleet-crew-guard.js.map +1 -1
  453. package/dist/internal/planning/fleet-crew-transfer.d.ts +1 -1
  454. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -1
  455. package/dist/internal/planning/fleet-crew-transfer.js +45 -24
  456. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -1
  457. package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
  458. package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-disband-guard.js +54 -0
  460. package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
  461. package/dist/internal/planning/fleet-disband.d.ts +36 -0
  462. package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
  463. package/dist/internal/planning/fleet-disband.js +82 -0
  464. package/dist/internal/planning/fleet-disband.js.map +1 -0
  465. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +3 -3
  466. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -1
  467. package/dist/internal/planning/fleet-dock-funding-guard.js +87 -96
  468. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -1
  469. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -1
  470. package/dist/internal/planning/fleet-dock-funding.js +10 -0
  471. package/dist/internal/planning/fleet-dock-funding.js.map +1 -1
  472. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -1
  473. package/dist/internal/planning/fleet-docking-guard.js +3 -1
  474. package/dist/internal/planning/fleet-docking-guard.js.map +1 -1
  475. package/dist/internal/planning/fleet-docking.d.ts +17 -2
  476. package/dist/internal/planning/fleet-docking.d.ts.map +1 -1
  477. package/dist/internal/planning/fleet-docking.js +83 -62
  478. package/dist/internal/planning/fleet-docking.js.map +1 -1
  479. package/dist/internal/planning/fleet-rental.d.ts +5 -0
  480. package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
  481. package/dist/internal/planning/fleet-rental.js +9 -0
  482. package/dist/internal/planning/fleet-rental.js.map +1 -0
  483. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -1
  484. package/dist/internal/planning/fleet-respawn.js +10 -12
  485. package/dist/internal/planning/fleet-respawn.js.map +1 -1
  486. package/dist/internal/planning/fleet-ship-assembly.d.ts +2 -0
  487. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
  488. package/dist/internal/planning/fleet-ship-assembly.js +94 -64
  489. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
  490. package/dist/internal/planning/fleet-state.d.ts +25 -0
  491. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  492. package/dist/internal/planning/fleet-state.js +28 -0
  493. package/dist/internal/planning/fleet-state.js.map +1 -0
  494. package/dist/internal/planning/governance-fees.d.ts.map +1 -1
  495. package/dist/internal/planning/governance-fees.js +7 -15
  496. package/dist/internal/planning/governance-fees.js.map +1 -1
  497. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -1
  498. package/dist/internal/planning/local-market-order-funding.js +4 -2
  499. package/dist/internal/planning/local-market-order-funding.js.map +1 -1
  500. package/dist/internal/planning/local-market-order.d.ts +4 -4
  501. package/dist/internal/planning/local-market-order.d.ts.map +1 -1
  502. package/dist/internal/planning/local-market-order.js +82 -109
  503. package/dist/internal/planning/local-market-order.js.map +1 -1
  504. package/dist/internal/planning/market-storage-actions.d.ts +7 -0
  505. package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
  506. package/dist/internal/planning/market-storage-actions.js +71 -0
  507. package/dist/internal/planning/market-storage-actions.js.map +1 -0
  508. package/dist/internal/planning/mining-stop.d.ts.map +1 -1
  509. package/dist/internal/planning/mining-stop.js +2 -1
  510. package/dist/internal/planning/mining-stop.js.map +1 -1
  511. package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
  512. package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
  513. package/dist/internal/planning/mining-storage-actions.js +57 -0
  514. package/dist/internal/planning/mining-storage-actions.js.map +1 -0
  515. package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
  516. package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
  517. package/dist/internal/planning/movement-storage-actions.js +38 -0
  518. package/dist/internal/planning/movement-storage-actions.js.map +1 -0
  519. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -1
  520. package/dist/internal/planning/movement-xp-guard.js +3 -2
  521. package/dist/internal/planning/movement-xp-guard.js.map +1 -1
  522. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -1
  523. package/dist/internal/planning/open-signal-guard.js +2 -1
  524. package/dist/internal/planning/open-signal-guard.js.map +1 -1
  525. package/dist/internal/planning/open-signal.d.ts.map +1 -1
  526. package/dist/internal/planning/open-signal.js +16 -7
  527. package/dist/internal/planning/open-signal.js.map +1 -1
  528. package/dist/internal/planning/original-token.d.ts +40 -0
  529. package/dist/internal/planning/original-token.d.ts.map +1 -0
  530. package/dist/internal/planning/original-token.js +112 -0
  531. package/dist/internal/planning/original-token.js.map +1 -0
  532. package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
  533. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  534. package/dist/internal/planning/own-starbase-facts.js +52 -0
  535. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  536. package/dist/internal/planning/plan-fields.d.ts +60 -0
  537. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  538. package/dist/internal/planning/plan-fields.js +159 -0
  539. package/dist/internal/planning/plan-fields.js.map +1 -0
  540. package/dist/internal/planning/plan-guards.d.ts +4 -0
  541. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  542. package/dist/internal/planning/plan-guards.js +184 -0
  543. package/dist/internal/planning/plan-guards.js.map +1 -0
  544. package/dist/internal/planning/profile-key.d.ts +13 -0
  545. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  546. package/dist/internal/planning/profile-key.js +20 -0
  547. package/dist/internal/planning/profile-key.js.map +1 -0
  548. package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
  549. package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
  550. package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
  551. package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
  552. package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
  553. package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
  554. package/dist/internal/planning/profile-storage-funding.js +58 -0
  555. package/dist/internal/planning/profile-storage-funding.js.map +1 -0
  556. package/dist/internal/planning/recipe-state.d.ts +4 -1
  557. package/dist/internal/planning/recipe-state.d.ts.map +1 -1
  558. package/dist/internal/planning/recipe-state.js +7 -4
  559. package/dist/internal/planning/recipe-state.js.map +1 -1
  560. package/dist/internal/planning/region-access.d.ts +30 -0
  561. package/dist/internal/planning/region-access.d.ts.map +1 -0
  562. package/dist/internal/planning/region-access.js +94 -0
  563. package/dist/internal/planning/region-access.js.map +1 -0
  564. package/dist/internal/planning/rent-catalog.d.ts +37 -0
  565. package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
  566. package/dist/internal/planning/rent-catalog.js +165 -0
  567. package/dist/internal/planning/rent-catalog.js.map +1 -0
  568. package/dist/internal/planning/research-unlock.d.ts +69 -0
  569. package/dist/internal/planning/research-unlock.d.ts.map +1 -0
  570. package/dist/internal/planning/research-unlock.js +287 -0
  571. package/dist/internal/planning/research-unlock.js.map +1 -0
  572. package/dist/internal/planning/respawn-guards.js +2 -1
  573. package/dist/internal/planning/respawn-guards.js.map +1 -1
  574. package/dist/internal/planning/runtime-guards.d.ts +0 -2
  575. package/dist/internal/planning/runtime-guards.d.ts.map +1 -1
  576. package/dist/internal/planning/runtime-guards.js +49 -29
  577. package/dist/internal/planning/runtime-guards.js.map +1 -1
  578. package/dist/internal/planning/scan-completion-guard.d.ts +6 -6
  579. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -1
  580. package/dist/internal/planning/scan-completion-guard.js +8 -7
  581. package/dist/internal/planning/scan-completion-guard.js.map +1 -1
  582. package/dist/internal/planning/scan-completion.d.ts.map +1 -1
  583. package/dist/internal/planning/scan-completion.js +9 -7
  584. package/dist/internal/planning/scan-completion.js.map +1 -1
  585. package/dist/internal/planning/scan-detect-guard.d.ts +1 -1
  586. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -1
  587. package/dist/internal/planning/scan-detect-guard.js +2 -2
  588. package/dist/internal/planning/scan-detect-guard.js.map +1 -1
  589. package/dist/internal/planning/scan-detect.d.ts +1 -1
  590. package/dist/internal/planning/scan-detect.d.ts.map +1 -1
  591. package/dist/internal/planning/scan-detect.js +10 -8
  592. package/dist/internal/planning/scan-detect.js.map +1 -1
  593. package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
  594. package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
  595. package/dist/internal/planning/scan-idle-scope.js +5 -0
  596. package/dist/internal/planning/scan-idle-scope.js.map +1 -0
  597. package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
  598. package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
  599. package/dist/internal/planning/scan-storage-actions.js +27 -0
  600. package/dist/internal/planning/scan-storage-actions.js.map +1 -0
  601. package/dist/internal/planning/ship-import-funding.js +3 -2
  602. package/dist/internal/planning/ship-import-funding.js.map +1 -1
  603. package/dist/internal/planning/ship-token.d.ts +1 -5
  604. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  605. package/dist/internal/planning/ship-token.js +0 -36
  606. package/dist/internal/planning/ship-token.js.map +1 -1
  607. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  608. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  609. package/dist/internal/planning/starbase-player-owner.js +17 -0
  610. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  611. package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
  612. package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
  613. package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
  614. package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
  615. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -1
  616. package/dist/internal/planning/starbase-system-guard.js +2 -1
  617. package/dist/internal/planning/starbase-system-guard.js.map +1 -1
  618. package/dist/internal/planning/starbase-system.d.ts +5 -2
  619. package/dist/internal/planning/starbase-system.d.ts.map +1 -1
  620. package/dist/internal/planning/starbase-system.js +6 -3
  621. package/dist/internal/planning/starbase-system.js.map +1 -1
  622. package/dist/internal/planning/storage-action-readers.d.ts +10 -0
  623. package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
  624. package/dist/internal/planning/storage-action-readers.js +58 -0
  625. package/dist/internal/planning/storage-action-readers.js.map +1 -0
  626. package/dist/internal/planning/storage-actions.d.ts +89 -0
  627. package/dist/internal/planning/storage-actions.d.ts.map +1 -0
  628. package/dist/internal/planning/storage-actions.js +183 -0
  629. package/dist/internal/planning/storage-actions.js.map +1 -0
  630. package/dist/internal/planning/token-mint.d.ts.map +1 -1
  631. package/dist/internal/planning/token-mint.js +2 -1
  632. package/dist/internal/planning/token-mint.js.map +1 -1
  633. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  634. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  635. package/dist/internal/planning/wallet-starbase.js +39 -0
  636. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  637. package/dist/internal/planning/xp-runtime.d.ts.map +1 -1
  638. package/dist/internal/planning/xp-runtime.js +16 -20
  639. package/dist/internal/planning/xp-runtime.js.map +1 -1
  640. package/dist/internal/read-meta.d.ts +12 -0
  641. package/dist/internal/read-meta.d.ts.map +1 -1
  642. package/dist/internal/read-meta.js +10 -0
  643. package/dist/internal/read-meta.js.map +1 -1
  644. package/dist/loyalty/actions/index.d.ts +1 -1
  645. package/dist/loyalty/actions/index.d.ts.map +1 -1
  646. package/dist/loyalty/actions/index.js +12 -43
  647. package/dist/loyalty/actions/index.js.map +1 -1
  648. package/dist/loyalty/index.d.ts +4 -0
  649. package/dist/loyalty/index.d.ts.map +1 -1
  650. package/dist/loyalty/index.js +19 -27
  651. package/dist/loyalty/index.js.map +1 -1
  652. package/dist/markets/actions/index.d.ts +1 -1
  653. package/dist/markets/actions/index.d.ts.map +1 -1
  654. package/dist/markets/actions/index.js +138 -176
  655. package/dist/markets/actions/index.js.map +1 -1
  656. package/dist/markets/actions/trade-faction-market.d.ts +4 -2
  657. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -1
  658. package/dist/markets/actions/trade-faction-market.js +59 -39
  659. package/dist/markets/actions/trade-faction-market.js.map +1 -1
  660. package/dist/markets/index.d.ts.map +1 -1
  661. package/dist/markets/index.js +3 -11
  662. package/dist/markets/index.js.map +1 -1
  663. package/dist/mining/actions/index.d.ts +1 -1
  664. package/dist/mining/actions/index.d.ts.map +1 -1
  665. package/dist/mining/actions/index.js +81 -44
  666. package/dist/mining/actions/index.js.map +1 -1
  667. package/dist/mining/estimate-input.d.ts +103 -0
  668. package/dist/mining/estimate-input.d.ts.map +1 -0
  669. package/dist/mining/estimate-input.js +86 -0
  670. package/dist/mining/estimate-input.js.map +1 -0
  671. package/dist/mining/index.d.ts +1 -0
  672. package/dist/mining/index.d.ts.map +1 -1
  673. package/dist/mining/index.js +4 -11
  674. package/dist/mining/index.js.map +1 -1
  675. package/dist/planning/assembly.d.ts +1 -1
  676. package/dist/planning/assembly.d.ts.map +1 -1
  677. package/dist/planning/assembly.js +6 -30
  678. package/dist/planning/assembly.js.map +1 -1
  679. package/dist/planning/execution.d.ts +1 -0
  680. package/dist/planning/execution.d.ts.map +1 -1
  681. package/dist/planning/execution.js +149 -45
  682. package/dist/planning/execution.js.map +1 -1
  683. package/dist/planning/index.d.ts +70 -7
  684. package/dist/planning/index.d.ts.map +1 -1
  685. package/dist/planning/index.js +28 -1141
  686. package/dist/planning/index.js.map +1 -1
  687. package/dist/planning/plan-construction.d.ts +25 -0
  688. package/dist/planning/plan-construction.d.ts.map +1 -0
  689. package/dist/planning/plan-construction.js +143 -0
  690. package/dist/planning/plan-construction.js.map +1 -0
  691. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  692. package/dist/planning/plan-sequence-execution.js +1 -11
  693. package/dist/planning/plan-sequence-execution.js.map +1 -1
  694. package/dist/planning/plan-validation.d.ts +17 -0
  695. package/dist/planning/plan-validation.d.ts.map +1 -0
  696. package/dist/planning/plan-validation.js +147 -0
  697. package/dist/planning/plan-validation.js.map +1 -0
  698. package/dist/registry/cargo.d.ts +2 -2
  699. package/dist/registry/cargo.d.ts.map +1 -1
  700. package/dist/registry/cargo.js +3 -4
  701. package/dist/registry/cargo.js.map +1 -1
  702. package/dist/registry/definition-section-snapshot.d.ts +1 -1
  703. package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
  704. package/dist/registry/definition-section-snapshot.js +10 -3
  705. package/dist/registry/definition-section-snapshot.js.map +1 -1
  706. package/dist/registry/index.d.ts +31 -4
  707. package/dist/registry/index.d.ts.map +1 -1
  708. package/dist/registry/index.js +226 -227
  709. package/dist/registry/index.js.map +1 -1
  710. package/dist/registry/onboarding.d.ts.map +1 -1
  711. package/dist/registry/onboarding.js +4 -2
  712. package/dist/registry/onboarding.js.map +1 -1
  713. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
  714. package/dist/registry/ship-stats-snapshot.js +19 -5
  715. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  716. package/dist/registry/ships.js +1 -1
  717. package/dist/registry/ships.js.map +1 -1
  718. package/dist/rewards/index.d.ts +11 -5
  719. package/dist/rewards/index.d.ts.map +1 -1
  720. package/dist/rewards/index.js +10 -21
  721. package/dist/rewards/index.js.map +1 -1
  722. package/dist/scanning/actions/index.d.ts +1 -1
  723. package/dist/scanning/actions/index.d.ts.map +1 -1
  724. package/dist/scanning/actions/index.js +38 -8
  725. package/dist/scanning/actions/index.js.map +1 -1
  726. package/dist/scanning/index.d.ts +6 -11
  727. package/dist/scanning/index.d.ts.map +1 -1
  728. package/dist/scanning/index.js +7 -15
  729. package/dist/scanning/index.js.map +1 -1
  730. package/dist/scanning/odds.d.ts +5 -1
  731. package/dist/scanning/odds.d.ts.map +1 -1
  732. package/dist/scanning/odds.js.map +1 -1
  733. package/dist/scanning/signals.d.ts +6 -1
  734. package/dist/scanning/signals.d.ts.map +1 -1
  735. package/dist/scanning/signals.js +3 -1
  736. package/dist/scanning/signals.js.map +1 -1
  737. package/dist/starbases/actions/index.d.ts +49 -4
  738. package/dist/starbases/actions/index.d.ts.map +1 -1
  739. package/dist/starbases/actions/index.js +120 -69
  740. package/dist/starbases/actions/index.js.map +1 -1
  741. package/dist/starbases/index.d.ts +18 -0
  742. package/dist/starbases/index.d.ts.map +1 -1
  743. package/dist/starbases/index.js +24 -11
  744. package/dist/starbases/index.js.map +1 -1
  745. package/dist/world/index.d.ts +87 -13
  746. package/dist/world/index.d.ts.map +1 -1
  747. package/dist/world/index.js +88 -22
  748. package/dist/world/index.js.map +1 -1
  749. package/dist/world/planet-claim-stake-plots.d.ts +49 -40
  750. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -1
  751. package/dist/world/planet-claim-stake-plots.js +47 -40
  752. package/dist/world/planet-claim-stake-plots.js.map +1 -1
  753. package/dist/world/starbase-status.d.ts +54 -13
  754. package/dist/world/starbase-status.d.ts.map +1 -1
  755. package/dist/world/starbase-status.js +65 -0
  756. package/dist/world/starbase-status.js.map +1 -1
  757. package/package.json +2 -2
  758. package/dist/internal/c4/faction-adapter.d.ts +0 -12
  759. package/dist/internal/c4/faction-adapter.d.ts.map +0 -1
  760. package/dist/internal/c4/faction-adapter.js +0 -52
  761. package/dist/internal/c4/faction-adapter.js.map +0 -1
  762. package/dist/internal/planning/movement-character.d.ts +0 -7
  763. package/dist/internal/planning/movement-character.d.ts.map +0 -1
  764. package/dist/internal/planning/movement-character.js +0 -41
  765. package/dist/internal/planning/movement-character.js.map +0 -1
@@ -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 { validateTokenMint as validateWalletMint } from '../../internal/planning/token-mint.js';
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,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhG,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,50 +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 { validateTokenMint as validateWalletMint } from '../../internal/planning/token-mint.js';
34
- export function validateWalletToken(account, mint, owner) {
35
- const bytes = view(account, 165);
36
- option(bytes, 72, account);
37
- option(bytes, 109, account);
38
- option(bytes, 129, account);
39
- if (bytes.getUint8(108) !== 1) {
40
- failWalletCargo(`Token account ${account.address} must be initialized and unfrozen.`, account.address);
41
- }
42
- const decode = getAddressDecoder();
43
- if (decode.decode(account.data.subarray(0, 32)) !== mint ||
44
- decode.decode(account.data.subarray(32, 64)) !== owner) {
45
- failWalletCargo(`Token account ${account.address} must contain cargo mint ${mint} and be owned internally by ${owner}; delegated spending is unsupported.`, account.address);
46
- }
47
- // A recorded delegate does not prevent the actual owner from transferring.
48
- return bytes.getBigUint64(64, true);
49
- }
50
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":"AAGA,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;AAI7B;;;;;;;;;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,CAmWf"}
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 { RENT_ADDRESS, readRent } from '../../internal/planning/rent.js';
2
- import { SYSTEM_PROGRAM } from '../../internal/system-program.js';
3
- import { validateStarbaseSystem } from '../../internal/planning/starbase-system.js';
4
- import { AccountRole, getAddressEncoder, getProgramDerivedAddress, isOffCurveAddress, } from '@solana/kit';
1
+ import { isOffCurveAddress } from '@solana/kit';
5
2
  import { InvalidActionInputError } from '../../client/errors.js';
6
- import { readContextRawAccounts } from '../../client/reconciliation.js';
7
- import { SAGE_PROGRAM_ADDRESS } from '../../internal/c4/runtime-bindings.js';
8
- import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
9
- import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
10
- import { starSystemAccountDefinition, deriveStarSystemAddress, } from '../../internal/c4/world.js';
11
3
  import { requireGameAddress } from '../../internal/game-context.js';
12
4
  import { adaptWithdrawCargoFromGameInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
13
- import { createPlan, } from '../../planning/index.js';
14
- import { readFreshGameCargoBytesConfiguration } from '../../registry/cargo.js';
15
- import { deriveWalletTokenAddress, failWalletCargo, validateWalletMint, validateWalletToken, ORIGINAL_TOKEN_PROGRAM, } from './wallet-token.js';
16
- import { observeWalletAccount, validateWalletCargoCache, } from './wallet-context.js';
17
- const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
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,130 +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 readFreshGameCargoBytesConfiguration(ctx, options.cargoId);
63
- const [cache, bump] = await getProgramDerivedAddress({
64
- programAddress: 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 systemGuard = {
109
- kind: 'starbase-system',
110
- address: systemRaw.address,
111
- game,
112
- starbaseSequenceId: systemData.sequenceId,
113
- describes: 'The canonical Star System retains its active Starbase and generation; unrelated shared activity may change.',
114
- };
115
- await validateStarbaseSystem(systemRaw, systemGuard);
116
- const cacheData = validateWalletCargoCache(cacheRaw, game, bump);
117
- const decimals = validateWalletMint(mintRaw);
118
45
  if (decimals !== 0)
119
- 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);
120
- 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);
121
47
  if (destinationRaw)
122
- validateWalletToken(destinationRaw, config.cargo.mint, options.recipient);
123
- if (recipientRaw &&
124
- recipientRaw.data.length === 355 &&
125
- (recipientRaw.owner === ORIGINAL_TOKEN_PROGRAM ||
126
- recipientRaw.owner ===
127
- 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'))
48
+ readTokenAccount(destinationRaw, cargo.mint, options.recipient, failWalletCargo);
49
+ if (isTokenMultisig(recipientRaw))
128
50
  failWalletCargo('Token multisig recipients are outside the supported wallet cargo contract.', options.recipient);
129
51
  const entitlement = playerData.cargo.amounts.find((item) => item.cargoId === options.cargoId)
130
52
  ?.amount ?? 0n;
131
53
  if (entitlement < options.amount)
132
- 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);
133
55
  if (backing < options.amount)
134
56
  failWalletCargo(`Shared Game vault backing ${String(backing)} is below requested ${String(options.amount)}. Retry after backing is restored.`, source);
135
- if (config.cargo.withdrawEpochDuration === 0)
57
+ if (cargo.config.cargo.withdrawEpochDuration === 0)
136
58
  failWalletCargo('Withdrawal of this cargo is disabled by the Game configuration.', game);
137
- if (options.amount > config.cargo.circuitBreaker)
138
- 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);
139
61
  const preconditions = await Promise.all([
140
62
  [profileRaw, 'Profile authorization'],
141
63
  [characterRaw, 'Character identity'],
142
64
  [playerRaw, 'personal Starbase inventory'],
143
65
  ...(recipientRaw ? [[recipientRaw, 'wallet authority']] : []),
144
66
  ].map(([account, role]) => observeWalletAccount(account, role)));
145
- preconditions.push(systemGuard, {
146
- kind: 'token-mint',
147
- address: mintRaw.address,
148
- decimals,
149
- describes: `Mint ${mintRaw.address} remains a valid initialized original Token Mint with unchanged decimals; supply and authorities may change.`,
150
- }, {
151
- kind: 'game-cargo-bytes-config',
152
- address: game,
153
- cargoId: options.cargoId,
154
- configHash: config.configHash,
155
- describes: 'The selected cargo’s full encoded configuration, including its stored name, and cache identity remain unchanged; unrelated Game changes are allowed.',
156
- }, {
157
- kind: 'cargo-cache',
158
- address: cache,
159
- game,
160
- bump,
161
- describes: 'The canonical cargo cache retains valid Game identity and layout; counters may change.',
162
- }, {
67
+ preconditions.push(systemGuard, ...walletCargoGuards(cargo, options.cargoId, game, decimals), {
163
68
  kind: 'token-account',
164
69
  address: source,
165
- mint: config.cargo.mint,
166
- owner: cache,
70
+ mint: cargo.mint,
71
+ owner: cargo.cache,
167
72
  minimumBalance: options.amount,
168
73
  describes: 'The existing shared vault remains a valid original Token account with sufficient raw tokens.',
169
74
  }, ...(destinationRaw
@@ -171,7 +76,7 @@ export async function planWithdrawCargoFromGame(ctx, starbase, options) {
171
76
  {
172
77
  kind: 'token-account',
173
78
  address: destination,
174
- mint: config.cargo.mint,
79
+ mint: cargo.mint,
175
80
  owner: options.recipient,
176
81
  minimumBalance: 0n,
177
82
  describes: 'The existing destination remains a valid original Token account; incoming tokens are allowed.',
@@ -190,73 +95,42 @@ export async function planWithdrawCargoFromGame(ctx, starbase, options) {
190
95
  failWalletCargo('The destination token account is missing. Create custom accounts separately or explicitly opt into canonical ATA creation with a payer.', destination);
191
96
  if (isOffCurveAddress(creation.payer))
192
97
  failWalletCargo('ATA creation payer must be a directly signing address.', creation.payer);
193
- const extraAddresses = [
194
- RENT_ADDRESS,
195
- creation.payer,
196
- ATA_PROGRAM,
197
- SYSTEM_PROGRAM,
198
- ORIGINAL_TOKEN_PROGRAM,
199
- ];
200
- const extraCandidates = await readContextRawAccounts(ctx, extraAddresses);
201
- const extra = extraAddresses.map((address, index) => required(extraCandidates[index], address));
202
- const [rent, payer, ...programs] = extra;
203
- if (programs.some((program) => !program.executable))
204
- failWalletCargo('Associated-token creation requires executable associated-token, System and original Token programs in this deployment.', ATA_PROGRAM);
205
- // Original SPL Token accounts occupy 165 bytes; the shared Rent reader
206
- // includes the 128-byte account overhead and validates the full sysvar.
207
- const storageFunding = readRent(rent)(165);
208
- if (payer.owner !== SYSTEM_PROGRAM ||
209
- payer.executable ||
210
- payer.data.length !== 0 ||
211
- payer.lamports < storageFunding)
212
- failWalletCargo(`ATA payer must be a System wallet with at least ${String(storageFunding)} lamports for storage, in addition to transaction fees.`, creation.payer);
213
- preconditions.push(...(await Promise.all(extra.map((account, index) => observeWalletAccount(account, [
214
- 'Rent configuration',
215
- 'ATA payer identity',
216
- 'associated-token program',
217
- 'System program',
218
- 'Token program',
219
- ][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, {
220
105
  kind: 'token-account-or-absent',
221
106
  address: destination,
222
- mint: config.cargo.mint,
107
+ mint: cargo.mint,
223
108
  owner: options.recipient,
224
109
  describes: 'The canonical recipient ATA is absent or a valid initialized unfrozen original Token account for this exact mint and recipient.',
225
110
  });
226
111
  steps.push({
227
- 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.`,
228
113
  signers: [creation.payer],
229
- instruction: {
230
- programAddress: ATA_PROGRAM,
231
- accounts: [
232
- { address: creation.payer, role: AccountRole.WRITABLE_SIGNER },
233
- { address: destination, role: AccountRole.WRITABLE },
234
- { address: options.recipient, role: AccountRole.READONLY },
235
- { address: config.cargo.mint, role: AccountRole.READONLY },
236
- { address: SYSTEM_PROGRAM, role: AccountRole.READONLY },
237
- { address: ORIGINAL_TOKEN_PROGRAM, role: AccountRole.READONLY },
238
- ],
239
- data: new Uint8Array([1]),
240
- },
114
+ instruction: ata.instruction,
241
115
  });
242
116
  }
243
117
  const epoch = cacheData.cargoTypeCache.get(options.cargoId);
244
- 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. System identity and active Starbase generation are rechecked before signing; unrelated System combat, shield, health and hab activity is not equality-bound. Execution access checks remain chain-authoritative, not a client-side atomicity guarantee. Mint supply and authorities may change; initialized original Token mint layout and decimals are rechecked before signing.${recipientRaw ? '' : ' An absent recipient wallet may receive native funding as an empty, non-executable System account.'}`;
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.'}`;
245
119
  steps.push({
246
120
  describes,
247
121
  signers: [options.authorization.authority],
248
122
  instruction: adaptWithdrawCargoFromGameInstruction({
249
123
  authorization: options.authorization,
250
- systemAndStarbasePlayerSystem: starbase.system.address,
251
- systemAndStarbasePlayerStarbasePlayer: player,
124
+ systemAndStarbasePlayerSystem: cargo.system,
125
+ systemAndStarbasePlayerStarbasePlayer: cargo.player,
252
126
  game,
253
- cargoCache: cache,
127
+ cargoCache: cargo.cache,
254
128
  source,
255
129
  destination,
256
130
  amount: options.amount,
257
131
  }),
258
132
  });
259
- return createPlan({
133
+ return buildPlannerPlan({
260
134
  kind: 'cargo.wallet-withdrawal',
261
135
  summary: describes,
262
136
  preconditions,