@aephia/atlas-kit 0.6.0-next.17 → 0.6.0-next.171
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cargo/actions/deposit.d.ts +5 -2
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +60 -129
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts +14 -7
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +108 -95
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts +52 -3
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-context.js +118 -7
- package/dist/cargo/actions/wallet-context.js.map +1 -1
- package/dist/cargo/actions/wallet-token.d.ts +1 -6
- package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-token.js +0 -45
- package/dist/cargo/actions/wallet-token.js.map +1 -1
- package/dist/cargo/actions/withdrawal.d.ts +1 -1
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
- package/dist/cargo/actions/withdrawal.js +39 -168
- package/dist/cargo/actions/withdrawal.js.map +1 -1
- package/dist/cargo/index.d.ts.map +1 -1
- package/dist/cargo/index.js +2 -10
- package/dist/cargo/index.js.map +1 -1
- package/dist/claim-stakes/actions/index.d.ts +93 -14
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +739 -742
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/claim-stakes/index.d.ts +22 -6
- package/dist/claim-stakes/index.d.ts.map +1 -1
- package/dist/claim-stakes/index.js +34 -19
- package/dist/claim-stakes/index.js.map +1 -1
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/context.js +354 -38
- package/dist/client/context.js.map +1 -1
- package/dist/client/contracts.d.ts +69 -6
- package/dist/client/contracts.d.ts.map +1 -1
- package/dist/client/deployments.d.ts +17 -0
- package/dist/client/deployments.d.ts.map +1 -1
- package/dist/client/deployments.js +17 -0
- package/dist/client/deployments.js.map +1 -1
- package/dist/client/errors.d.ts +2 -2
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/index.d.ts +57 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +56 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/rpc-subscription-provider.d.ts +37 -0
- package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
- package/dist/client/rpc-subscription-provider.js +224 -0
- package/dist/client/rpc-subscription-provider.js.map +1 -0
- package/dist/combat/actions/index.d.ts +30 -12
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +360 -302
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/combat/index.d.ts +25 -8
- package/dist/combat/index.d.ts.map +1 -1
- package/dist/combat/index.js +21 -18
- package/dist/combat/index.js.map +1 -1
- package/dist/crafting/actions/fee-rate.d.ts +47 -0
- package/dist/crafting/actions/fee-rate.d.ts.map +1 -0
- package/dist/crafting/actions/fee-rate.js +58 -0
- package/dist/crafting/actions/fee-rate.js.map +1 -0
- package/dist/crafting/actions/index.d.ts +29 -18
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +298 -352
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/crafting/estimate.d.ts +101 -0
- package/dist/crafting/estimate.d.ts.map +1 -0
- package/dist/crafting/estimate.js +108 -0
- package/dist/crafting/estimate.js.map +1 -0
- package/dist/crafting/index.d.ts +34 -3
- package/dist/crafting/index.d.ts.map +1 -1
- package/dist/crafting/index.js +50 -28
- package/dist/crafting/index.js.map +1 -1
- package/dist/factions/actions/index.d.ts +2 -1
- package/dist/factions/actions/index.d.ts.map +1 -1
- package/dist/factions/actions/index.js +6 -4
- package/dist/factions/actions/index.js.map +1 -1
- package/dist/factions/index.d.ts +19 -2
- package/dist/factions/index.d.ts.map +1 -1
- package/dist/factions/index.js +38 -26
- package/dist/factions/index.js.map +1 -1
- package/dist/factions/profile-faction.d.ts +20 -8
- package/dist/factions/profile-faction.d.ts.map +1 -1
- package/dist/factions/profile-faction.js +20 -8
- package/dist/factions/profile-faction.js.map +1 -1
- package/dist/fleets/actions/add-ship.d.ts +48 -0
- package/dist/fleets/actions/add-ship.d.ts.map +1 -0
- package/dist/fleets/actions/add-ship.js +136 -0
- package/dist/fleets/actions/add-ship.js.map +1 -0
- package/dist/fleets/actions/create-fleet.d.ts +36 -0
- package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
- package/dist/fleets/actions/create-fleet.js +108 -0
- package/dist/fleets/actions/create-fleet.js.map +1 -0
- package/dist/fleets/actions/crew-transfer.d.ts +45 -0
- package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
- package/dist/fleets/actions/crew-transfer.js +99 -0
- package/dist/fleets/actions/crew-transfer.js.map +1 -0
- package/dist/fleets/actions/deployment-storage.d.ts +161 -0
- package/dist/fleets/actions/deployment-storage.d.ts.map +1 -0
- package/dist/fleets/actions/deployment-storage.js +297 -0
- package/dist/fleets/actions/deployment-storage.js.map +1 -0
- package/dist/fleets/actions/disband.d.ts +42 -0
- package/dist/fleets/actions/disband.d.ts.map +1 -0
- package/dist/fleets/actions/disband.js +107 -0
- package/dist/fleets/actions/disband.js.map +1 -0
- package/dist/fleets/actions/dock-bounds.d.ts +38 -0
- package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
- package/dist/fleets/actions/dock-bounds.js +46 -0
- package/dist/fleets/actions/dock-bounds.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +90 -25
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +492 -353
- package/dist/fleets/actions/index.js.map +1 -1
- package/dist/fleets/actions/respawn.d.ts +38 -0
- package/dist/fleets/actions/respawn.d.ts.map +1 -0
- package/dist/fleets/actions/respawn.js +93 -0
- package/dist/fleets/actions/respawn.js.map +1 -0
- package/dist/fleets/actions/ship-import.d.ts +1 -1
- package/dist/fleets/actions/ship-import.d.ts.map +1 -1
- package/dist/fleets/actions/ship-import.js +61 -90
- package/dist/fleets/actions/ship-import.js.map +1 -1
- package/dist/fleets/actions/sync.d.ts +24 -0
- package/dist/fleets/actions/sync.d.ts.map +1 -0
- package/dist/fleets/actions/sync.js +55 -0
- package/dist/fleets/actions/sync.js.map +1 -0
- package/dist/fleets/composition-stats.d.ts +101 -0
- package/dist/fleets/composition-stats.d.ts.map +1 -0
- package/dist/fleets/composition-stats.js +354 -0
- package/dist/fleets/composition-stats.js.map +1 -0
- package/dist/fleets/cooldown.d.ts +47 -0
- package/dist/fleets/cooldown.d.ts.map +1 -0
- package/dist/fleets/cooldown.js +48 -0
- package/dist/fleets/cooldown.js.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.js +46 -0
- package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
- package/dist/fleets/index.d.ts +36 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +55 -12
- package/dist/fleets/index.js.map +1 -1
- package/dist/fleets/movement-arithmetic.d.ts +21 -0
- package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
- package/dist/fleets/movement-arithmetic.js +45 -0
- package/dist/fleets/movement-arithmetic.js.map +1 -0
- package/dist/fleets/subwarp-estimate.d.ts +72 -0
- package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
- package/dist/fleets/subwarp-estimate.js +40 -0
- package/dist/fleets/subwarp-estimate.js.map +1 -0
- package/dist/fleets/travel-profile.d.ts +102 -0
- package/dist/fleets/travel-profile.d.ts.map +1 -0
- package/dist/fleets/travel-profile.js +120 -0
- package/dist/fleets/travel-profile.js.map +1 -0
- package/dist/fleets/warp-lane-estimate.d.ts +59 -0
- package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
- package/dist/fleets/warp-lane-estimate.js +36 -0
- package/dist/fleets/warp-lane-estimate.js.map +1 -0
- package/dist/fleets/warp-lane-policy.d.ts +74 -0
- package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
- package/dist/fleets/warp-lane-policy.js +103 -0
- package/dist/fleets/warp-lane-policy.js.map +1 -0
- package/dist/fleets/warp-lane-toll.d.ts +55 -0
- package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
- package/dist/fleets/warp-lane-toll.js +79 -0
- package/dist/fleets/warp-lane-toll.js.map +1 -0
- package/dist/identity/actions/create-profile.d.ts +1 -1
- package/dist/identity/actions/create-profile.d.ts.map +1 -1
- package/dist/identity/actions/create-profile.js +2 -2
- package/dist/identity/actions/create-profile.js.map +1 -1
- package/dist/identity/actions/index.d.ts +5 -4
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +52 -29
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/identity/actions/research-unlock.d.ts +61 -0
- package/dist/identity/actions/research-unlock.d.ts.map +1 -0
- package/dist/identity/actions/research-unlock.js +166 -0
- package/dist/identity/actions/research-unlock.js.map +1 -0
- package/dist/identity/index.d.ts +63 -2
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +64 -12
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/research-state.d.ts +60 -0
- package/dist/identity/research-state.d.ts.map +1 -0
- package/dist/identity/research-state.js +68 -0
- package/dist/identity/research-state.js.map +1 -0
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -7
- package/dist/index.js.map +1 -1
- package/dist/internal/c4/account-decoding.d.ts +49 -0
- package/dist/internal/c4/account-decoding.d.ts.map +1 -0
- package/dist/internal/c4/account-decoding.js +74 -0
- package/dist/internal/c4/account-decoding.js.map +1 -0
- package/dist/internal/c4/career-xp.d.ts +58 -0
- package/dist/internal/c4/career-xp.d.ts.map +1 -0
- package/dist/internal/c4/career-xp.js +80 -0
- package/dist/internal/c4/career-xp.js.map +1 -0
- package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
- package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
- package/dist/internal/c4/cargo-bytes-config.js +19 -0
- package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
- package/dist/internal/c4/cargo-instructions.d.ts +24 -0
- package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
- package/dist/internal/c4/cargo-instructions.js +30 -0
- package/dist/internal/c4/cargo-instructions.js.map +1 -0
- package/dist/internal/c4/cargo-pod.d.ts +15 -0
- package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
- package/dist/internal/c4/cargo-pod.js +13 -0
- package/dist/internal/c4/cargo-pod.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +1 -1
- package/dist/internal/c4/character-modifier.d.ts.map +1 -1
- package/dist/internal/c4/character-registration.d.ts +2 -0
- package/dist/internal/c4/character-registration.d.ts.map +1 -1
- package/dist/internal/c4/character-registration.js +2 -0
- package/dist/internal/c4/character-registration.js.map +1 -1
- package/dist/internal/c4/character.d.ts +157 -0
- package/dist/internal/c4/character.d.ts.map +1 -0
- package/dist/internal/c4/character.js +64 -0
- package/dist/internal/c4/character.js.map +1 -0
- package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
- package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
- package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-configuration.js +5 -36
- package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.d.ts +8 -4
- package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.js +6 -2
- package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
- package/dist/internal/c4/claim-stake-plots.d.ts +17 -0
- package/dist/internal/c4/claim-stake-plots.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake-plots.js +29 -0
- package/dist/internal/c4/claim-stake-plots.js.map +1 -0
- package/dist/internal/c4/claim-stake-standing.d.ts +80 -0
- package/dist/internal/c4/claim-stake-standing.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake-standing.js +61 -0
- package/dist/internal/c4/claim-stake-standing.js.map +1 -0
- package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
- package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake-storage.js +207 -0
- package/dist/internal/c4/claim-stake-storage.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +13 -33
- package/dist/internal/c4/claim-stake.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake.js +49 -94
- package/dist/internal/c4/claim-stake.js.map +1 -1
- package/dist/internal/c4/combat-storage.d.ts +20 -0
- package/dist/internal/c4/combat-storage.d.ts.map +1 -0
- package/dist/internal/c4/combat-storage.js +43 -0
- package/dist/internal/c4/combat-storage.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +1 -82
- package/dist/internal/c4/combat.d.ts.map +1 -1
- package/dist/internal/c4/combat.js +16 -213
- package/dist/internal/c4/combat.js.map +1 -1
- package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
- package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
- package/dist/internal/c4/crafting-process-codec.js +34 -0
- package/dist/internal/c4/crafting-process-codec.js.map +1 -0
- package/dist/internal/c4/crafting-storage.d.ts +20 -0
- package/dist/internal/c4/crafting-storage.d.ts.map +1 -0
- package/dist/internal/c4/crafting-storage.js +54 -0
- package/dist/internal/c4/crafting-storage.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +33 -33
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +76 -127
- package/dist/internal/c4/crafting.js.map +1 -1
- package/dist/internal/c4/currency-cache.d.ts +6 -0
- package/dist/internal/c4/currency-cache.d.ts.map +1 -0
- package/dist/internal/c4/currency-cache.js +27 -0
- package/dist/internal/c4/currency-cache.js.map +1 -0
- package/dist/internal/c4/discriminators.d.ts +93 -0
- package/dist/internal/c4/discriminators.d.ts.map +1 -0
- package/dist/internal/c4/discriminators.js +190 -0
- package/dist/internal/c4/discriminators.js.map +1 -0
- package/dist/internal/c4/docking-funding.d.ts +4 -0
- package/dist/internal/c4/docking-funding.d.ts.map +1 -0
- package/dist/internal/c4/docking-funding.js +11 -0
- package/dist/internal/c4/docking-funding.js.map +1 -0
- package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
- package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
- package/dist/internal/c4/faction-epoch-meter.js +26 -0
- package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
- package/dist/internal/c4/faction-treasury.d.ts +23 -0
- package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
- package/dist/internal/c4/faction-treasury.js +41 -0
- package/dist/internal/c4/faction-treasury.js.map +1 -0
- package/dist/internal/c4/faction.d.ts +21 -0
- package/dist/internal/c4/faction.d.ts.map +1 -0
- package/dist/internal/c4/faction.js +23 -0
- package/dist/internal/c4/faction.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +40 -60
- package/dist/internal/c4/factions.d.ts.map +1 -1
- package/dist/internal/c4/factions.js +106 -225
- package/dist/internal/c4/factions.js.map +1 -1
- package/dist/internal/c4/fleet-arrival.d.ts +28 -0
- package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
- package/dist/internal/c4/fleet-arrival.js +42 -0
- package/dist/internal/c4/fleet-arrival.js.map +1 -0
- package/dist/internal/c4/fleet-creation.d.ts +14 -0
- package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
- package/dist/internal/c4/fleet-creation.js +177 -0
- package/dist/internal/c4/fleet-creation.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
- package/dist/internal/c4/fleet-crew-binding.js +31 -44
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
- package/dist/internal/c4/fleet-disband-layout.d.ts +7 -0
- package/dist/internal/c4/fleet-disband-layout.d.ts.map +1 -0
- package/dist/internal/c4/fleet-disband-layout.js +7 -0
- package/dist/internal/c4/fleet-disband-layout.js.map +1 -0
- package/dist/internal/c4/fleet-disband.d.ts +41 -0
- package/dist/internal/c4/fleet-disband.d.ts.map +1 -0
- package/dist/internal/c4/fleet-disband.js +86 -0
- package/dist/internal/c4/fleet-disband.js.map +1 -0
- package/dist/internal/c4/fleet-points.d.ts +3 -0
- package/dist/internal/c4/fleet-points.d.ts.map +1 -0
- package/dist/internal/c4/fleet-points.js +8 -0
- package/dist/internal/c4/fleet-points.js.map +1 -0
- package/dist/internal/c4/fleet-respawn.d.ts +17 -0
- package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
- package/dist/internal/c4/fleet-respawn.js +62 -0
- package/dist/internal/c4/fleet-respawn.js.map +1 -0
- package/dist/internal/c4/fleet-ship-assembly.d.ts +26 -0
- package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
- package/dist/internal/c4/fleet-ship-assembly.js +96 -0
- package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
- package/dist/internal/c4/fleet-storage.d.ts +44 -0
- package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
- package/dist/internal/c4/fleet-storage.js +108 -0
- package/dist/internal/c4/fleet-storage.js.map +1 -0
- package/dist/internal/c4/fleet-sync.d.ts +5 -0
- package/dist/internal/c4/fleet-sync.d.ts.map +1 -0
- package/dist/internal/c4/fleet-sync.js +15 -0
- package/dist/internal/c4/fleet-sync.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +65 -24
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +50 -91
- package/dist/internal/c4/fleet.js.map +1 -1
- package/dist/internal/c4/game-definition-layout.d.ts +2 -0
- package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
- package/dist/internal/c4/game-definition-layout.js +4 -0
- package/dist/internal/c4/game-definition-layout.js.map +1 -1
- package/dist/internal/c4/game.d.ts +122 -32
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +229 -130
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +3 -152
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +19 -126
- package/dist/internal/c4/identity.js.map +1 -1
- package/dist/internal/c4/local-market-order.d.ts +29 -0
- package/dist/internal/c4/local-market-order.d.ts.map +1 -0
- package/dist/internal/c4/local-market-order.js +46 -0
- package/dist/internal/c4/local-market-order.js.map +1 -0
- package/dist/internal/c4/loot-layout.js +1 -1
- package/dist/internal/c4/loot-layout.js.map +1 -1
- package/dist/internal/c4/loot.d.ts +89 -0
- package/dist/internal/c4/loot.d.ts.map +1 -0
- package/dist/internal/c4/loot.js +109 -0
- package/dist/internal/c4/loot.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +7 -30
- package/dist/internal/c4/loyalty.d.ts.map +1 -1
- package/dist/internal/c4/loyalty.js +41 -163
- package/dist/internal/c4/loyalty.js.map +1 -1
- package/dist/internal/c4/market-storage.d.ts +25 -0
- package/dist/internal/c4/market-storage.d.ts.map +1 -0
- package/dist/internal/c4/market-storage.js +53 -0
- package/dist/internal/c4/market-storage.js.map +1 -0
- package/dist/internal/c4/market.d.ts +5 -38
- package/dist/internal/c4/market.d.ts.map +1 -1
- package/dist/internal/c4/market.js +26 -120
- package/dist/internal/c4/market.js.map +1 -1
- package/dist/internal/c4/mining-instructions.d.ts +2 -0
- package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
- package/dist/internal/c4/mining-instructions.js +3 -0
- package/dist/internal/c4/mining-instructions.js.map +1 -0
- package/dist/internal/c4/open-signal.d.ts +8 -0
- package/dist/internal/c4/open-signal.d.ts.map +1 -0
- package/dist/internal/c4/open-signal.js +37 -0
- package/dist/internal/c4/open-signal.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +49 -1
- package/dist/internal/c4/pda.d.ts.map +1 -1
- package/dist/internal/c4/pda.js +122 -17
- package/dist/internal/c4/pda.js.map +1 -1
- package/dist/internal/c4/profile-faction.d.ts +2 -1
- package/dist/internal/c4/profile-faction.d.ts.map +1 -1
- package/dist/internal/c4/profile-faction.js +36 -72
- package/dist/internal/c4/profile-faction.js.map +1 -1
- package/dist/internal/c4/profile-permissions.d.ts +1 -1
- package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
- package/dist/internal/c4/profile-permissions.js +17 -1
- package/dist/internal/c4/profile-permissions.js.map +1 -1
- package/dist/internal/c4/region-geometry.d.ts +8 -0
- package/dist/internal/c4/region-geometry.d.ts.map +1 -0
- package/dist/internal/c4/region-geometry.js +43 -0
- package/dist/internal/c4/region-geometry.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +1 -61
- package/dist/internal/c4/rewards.d.ts.map +1 -1
- package/dist/internal/c4/rewards.js +23 -203
- package/dist/internal/c4/rewards.js.map +1 -1
- package/dist/internal/c4/runtime-bindings.d.ts +4 -0
- package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
- package/dist/internal/c4/runtime-bindings.js +4 -0
- package/dist/internal/c4/runtime-bindings.js.map +1 -0
- package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
- package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
- package/dist/internal/c4/scan-detection-codecs.js +3 -0
- package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
- package/dist/internal/c4/scan-lifecycle.d.ts +324 -0
- package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
- package/dist/internal/c4/scan-lifecycle.js +249 -0
- package/dist/internal/c4/scan-lifecycle.js.map +1 -0
- package/dist/internal/c4/scan-storage.d.ts +7 -0
- package/dist/internal/c4/scan-storage.d.ts.map +1 -0
- package/dist/internal/c4/scan-storage.js +10 -0
- package/dist/internal/c4/scan-storage.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +4 -41
- package/dist/internal/c4/scanning.d.ts.map +1 -1
- package/dist/internal/c4/scanning.js +27 -108
- package/dist/internal/c4/scanning.js.map +1 -1
- package/dist/internal/c4/ship-import.d.ts +4 -0
- package/dist/internal/c4/ship-import.d.ts.map +1 -0
- package/dist/internal/c4/ship-import.js +13 -0
- package/dist/internal/c4/ship-import.js.map +1 -0
- package/dist/internal/c4/ship-stats.d.ts.map +1 -1
- package/dist/internal/c4/ship-stats.js +46 -44
- package/dist/internal/c4/ship-stats.js.map +1 -1
- package/dist/internal/c4/starbase.d.ts +0 -32
- package/dist/internal/c4/starbase.d.ts.map +1 -1
- package/dist/internal/c4/starbase.js +26 -136
- package/dist/internal/c4/starbase.js.map +1 -1
- package/dist/internal/c4/stimulant.d.ts +26 -0
- package/dist/internal/c4/stimulant.d.ts.map +1 -0
- package/dist/internal/c4/stimulant.js +36 -0
- package/dist/internal/c4/stimulant.js.map +1 -0
- package/dist/internal/c4/wallet-cargo-cache.js +2 -1
- package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
- package/dist/internal/c4/world.d.ts +40 -7
- package/dist/internal/c4/world.d.ts.map +1 -1
- package/dist/internal/c4/world.js +87 -129
- package/dist/internal/c4/world.js.map +1 -1
- package/dist/internal/cargo.d.ts +2 -0
- package/dist/internal/cargo.d.ts.map +1 -1
- package/dist/internal/cargo.js +8 -0
- package/dist/internal/cargo.js.map +1 -1
- package/dist/internal/fleet-route.d.ts +12 -0
- package/dist/internal/fleet-route.d.ts.map +1 -0
- package/dist/internal/fleet-route.js +11 -0
- package/dist/internal/fleet-route.js.map +1 -0
- package/dist/internal/fleet.d.ts +3 -2
- package/dist/internal/fleet.d.ts.map +1 -1
- package/dist/internal/fleet.js +3 -5
- package/dist/internal/fleet.js.map +1 -1
- package/dist/internal/loyalty-atlas-bank-state.d.ts +17 -0
- package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
- package/dist/internal/loyalty-atlas-bank-state.js +11 -0
- package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
- package/dist/internal/planning/account-state.d.ts +6 -0
- package/dist/internal/planning/account-state.d.ts.map +1 -1
- package/dist/internal/planning/account-state.js +13 -0
- package/dist/internal/planning/account-state.js.map +1 -1
- package/dist/internal/planning/action-runtime.d.ts +38 -0
- package/dist/internal/planning/action-runtime.d.ts.map +1 -0
- package/dist/internal/planning/action-runtime.js +63 -0
- package/dist/internal/planning/action-runtime.js.map +1 -0
- package/dist/internal/planning/arrival-guards.d.ts +19 -0
- package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
- package/dist/internal/planning/arrival-guards.js +172 -0
- package/dist/internal/planning/arrival-guards.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +61 -39
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +219 -83
- package/dist/internal/planning/authorization-adapter.js.map +1 -1
- package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
- package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/cargo-storage-actions.js +97 -0
- package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
- package/dist/internal/planning/character-access.d.ts +28 -0
- package/dist/internal/planning/character-access.d.ts.map +1 -0
- package/dist/internal/planning/character-access.js +41 -0
- package/dist/internal/planning/character-access.js.map +1 -0
- package/dist/internal/planning/character-registration-guard.d.ts +4 -0
- package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
- package/dist/internal/planning/character-registration-guard.js +59 -0
- package/dist/internal/planning/character-registration-guard.js.map +1 -0
- package/dist/internal/planning/character-registration.d.ts +23 -0
- package/dist/internal/planning/character-registration.d.ts.map +1 -0
- package/dist/internal/planning/character-registration.js +87 -0
- package/dist/internal/planning/character-registration.js.map +1 -0
- package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
- package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
- package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
- package/dist/internal/planning/combat-storage-actions.d.ts +9 -0
- package/dist/internal/planning/combat-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/combat-storage-actions.js +55 -0
- package/dist/internal/planning/combat-storage-actions.js.map +1 -0
- package/dist/internal/planning/crafting-storage-actions.d.ts +7 -0
- package/dist/internal/planning/crafting-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/crafting-storage-actions.js +64 -0
- package/dist/internal/planning/crafting-storage-actions.js.map +1 -0
- package/dist/internal/planning/currency-cache-guard.d.ts +6 -0
- package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
- package/dist/internal/planning/currency-cache-guard.js +77 -0
- package/dist/internal/planning/currency-cache-guard.js.map +1 -0
- package/dist/internal/planning/democracy-history.d.ts +50 -0
- package/dist/internal/planning/democracy-history.d.ts.map +1 -0
- package/dist/internal/planning/democracy-history.js +189 -0
- package/dist/internal/planning/democracy-history.js.map +1 -0
- package/dist/internal/planning/direct-options.d.ts +17 -0
- package/dist/internal/planning/direct-options.d.ts.map +1 -0
- package/dist/internal/planning/direct-options.js +43 -0
- package/dist/internal/planning/direct-options.js.map +1 -0
- package/dist/internal/planning/disband-storage-actions.d.ts +9 -0
- package/dist/internal/planning/disband-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/disband-storage-actions.js +24 -0
- package/dist/internal/planning/disband-storage-actions.js.map +1 -0
- package/dist/internal/planning/faction-enrollment.d.ts +0 -4
- package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
- package/dist/internal/planning/faction-enrollment.js +1 -31
- package/dist/internal/planning/faction-enrollment.js.map +1 -1
- package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
- package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
- package/dist/internal/planning/faction-trade-guards.js +15 -0
- package/dist/internal/planning/faction-trade-guards.js.map +1 -0
- package/dist/internal/planning/faction-trade-state.d.ts +16 -0
- package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
- package/dist/internal/planning/faction-trade-state.js +43 -0
- package/dist/internal/planning/faction-trade-state.js.map +1 -0
- package/dist/internal/planning/fleet-arrival.d.ts +40 -0
- package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
- package/dist/internal/planning/fleet-arrival.js +107 -0
- package/dist/internal/planning/fleet-arrival.js.map +1 -0
- package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
- package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
- package/dist/internal/planning/fleet-attack-xp.js +104 -0
- package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
- package/dist/internal/planning/fleet-creation.d.ts +30 -0
- package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
- package/dist/internal/planning/fleet-creation.js +89 -0
- package/dist/internal/planning/fleet-creation.js.map +1 -0
- package/dist/internal/planning/fleet-crew-guard.d.ts +29 -0
- package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-crew-guard.js +48 -0
- package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
- package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
- package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
- package/dist/internal/planning/fleet-crew-transfer.js +152 -0
- package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
- package/dist/internal/planning/fleet-disband-guard.d.ts +12 -0
- package/dist/internal/planning/fleet-disband-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-disband-guard.js +54 -0
- package/dist/internal/planning/fleet-disband-guard.js.map +1 -0
- package/dist/internal/planning/fleet-disband.d.ts +36 -0
- package/dist/internal/planning/fleet-disband.d.ts.map +1 -0
- package/dist/internal/planning/fleet-disband.js +82 -0
- package/dist/internal/planning/fleet-disband.js.map +1 -0
- package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
- package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-dock-funding-guard.js +216 -0
- package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
- package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
- package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
- package/dist/internal/planning/fleet-dock-funding.js +164 -0
- package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
- package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
- package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-docking-guard.js +44 -0
- package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
- package/dist/internal/planning/fleet-docking.d.ts +25 -0
- package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
- package/dist/internal/planning/fleet-docking.js +106 -0
- package/dist/internal/planning/fleet-docking.js.map +1 -0
- package/dist/internal/planning/fleet-rental.d.ts +5 -0
- package/dist/internal/planning/fleet-rental.d.ts.map +1 -0
- package/dist/internal/planning/fleet-rental.js +9 -0
- package/dist/internal/planning/fleet-rental.js.map +1 -0
- package/dist/internal/planning/fleet-respawn.d.ts +28 -0
- package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
- package/dist/internal/planning/fleet-respawn.js +164 -0
- package/dist/internal/planning/fleet-respawn.js.map +1 -0
- package/dist/internal/planning/fleet-ship-assembly.d.ts +38 -0
- package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
- package/dist/internal/planning/fleet-ship-assembly.js +167 -0
- package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
- package/dist/internal/planning/fleet-state.d.ts +25 -0
- package/dist/internal/planning/fleet-state.d.ts.map +1 -0
- package/dist/internal/planning/fleet-state.js +28 -0
- package/dist/internal/planning/fleet-state.js.map +1 -0
- package/dist/internal/planning/governance-fees.d.ts +64 -0
- package/dist/internal/planning/governance-fees.d.ts.map +1 -0
- package/dist/internal/planning/governance-fees.js +231 -0
- package/dist/internal/planning/governance-fees.js.map +1 -0
- package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
- package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
- package/dist/internal/planning/local-market-order-funding.js +128 -0
- package/dist/internal/planning/local-market-order-funding.js.map +1 -0
- package/dist/internal/planning/local-market-order.d.ts +40 -0
- package/dist/internal/planning/local-market-order.d.ts.map +1 -0
- package/dist/internal/planning/local-market-order.js +139 -0
- package/dist/internal/planning/local-market-order.js.map +1 -0
- package/dist/internal/planning/market-storage-actions.d.ts +7 -0
- package/dist/internal/planning/market-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/market-storage-actions.js +71 -0
- package/dist/internal/planning/market-storage-actions.js.map +1 -0
- package/dist/internal/planning/mining-stop.d.ts +14 -0
- package/dist/internal/planning/mining-stop.d.ts.map +1 -0
- package/dist/internal/planning/mining-stop.js +42 -0
- package/dist/internal/planning/mining-stop.js.map +1 -0
- package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
- package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/mining-storage-actions.js +57 -0
- package/dist/internal/planning/mining-storage-actions.js.map +1 -0
- package/dist/internal/planning/movement-storage-actions.d.ts +7 -0
- package/dist/internal/planning/movement-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/movement-storage-actions.js +38 -0
- package/dist/internal/planning/movement-storage-actions.js.map +1 -0
- package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
- package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
- package/dist/internal/planning/movement-xp-guard.js +104 -0
- package/dist/internal/planning/movement-xp-guard.js.map +1 -0
- package/dist/internal/planning/open-signal-guard.d.ts +3 -0
- package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
- package/dist/internal/planning/open-signal-guard.js +32 -0
- package/dist/internal/planning/open-signal-guard.js.map +1 -0
- package/dist/internal/planning/open-signal.d.ts +31 -0
- package/dist/internal/planning/open-signal.d.ts.map +1 -0
- package/dist/internal/planning/open-signal.js +94 -0
- package/dist/internal/planning/open-signal.js.map +1 -0
- package/dist/internal/planning/original-token.d.ts +40 -0
- package/dist/internal/planning/original-token.d.ts.map +1 -0
- package/dist/internal/planning/original-token.js +112 -0
- package/dist/internal/planning/original-token.js.map +1 -0
- package/dist/internal/planning/own-starbase-facts.d.ts +37 -0
- package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
- package/dist/internal/planning/own-starbase-facts.js +52 -0
- package/dist/internal/planning/own-starbase-facts.js.map +1 -0
- package/dist/internal/planning/plan-fields.d.ts +60 -0
- package/dist/internal/planning/plan-fields.d.ts.map +1 -0
- package/dist/internal/planning/plan-fields.js +159 -0
- package/dist/internal/planning/plan-fields.js.map +1 -0
- package/dist/internal/planning/plan-guards.d.ts +4 -0
- package/dist/internal/planning/plan-guards.d.ts.map +1 -0
- package/dist/internal/planning/plan-guards.js +184 -0
- package/dist/internal/planning/plan-guards.js.map +1 -0
- package/dist/internal/planning/profile-key.d.ts +13 -0
- package/dist/internal/planning/profile-key.d.ts.map +1 -0
- package/dist/internal/planning/profile-key.js +20 -0
- package/dist/internal/planning/profile-key.js.map +1 -0
- package/dist/internal/planning/profile-storage-funding-guard.d.ts +29 -0
- package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding-guard.js +115 -0
- package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
- package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
- package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding.js +58 -0
- package/dist/internal/planning/profile-storage-funding.js.map +1 -0
- package/dist/internal/planning/recipe-state.d.ts +9 -0
- package/dist/internal/planning/recipe-state.d.ts.map +1 -0
- package/dist/internal/planning/recipe-state.js +23 -0
- package/dist/internal/planning/recipe-state.js.map +1 -0
- package/dist/internal/planning/region-access.d.ts +30 -0
- package/dist/internal/planning/region-access.d.ts.map +1 -0
- package/dist/internal/planning/region-access.js +94 -0
- package/dist/internal/planning/region-access.js.map +1 -0
- package/dist/internal/planning/rent-catalog.d.ts +37 -0
- package/dist/internal/planning/rent-catalog.d.ts.map +1 -0
- package/dist/internal/planning/rent-catalog.js +165 -0
- package/dist/internal/planning/rent-catalog.js.map +1 -0
- package/dist/internal/planning/rent.d.ts +19 -0
- package/dist/internal/planning/rent.d.ts.map +1 -0
- package/dist/internal/planning/rent.js +35 -0
- package/dist/internal/planning/rent.js.map +1 -0
- package/dist/internal/planning/research-unlock.d.ts +69 -0
- package/dist/internal/planning/research-unlock.d.ts.map +1 -0
- package/dist/internal/planning/research-unlock.js +287 -0
- package/dist/internal/planning/research-unlock.js.map +1 -0
- package/dist/internal/planning/respawn-guards.d.ts +3 -0
- package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
- package/dist/internal/planning/respawn-guards.js +42 -0
- package/dist/internal/planning/respawn-guards.js.map +1 -0
- package/dist/internal/planning/runtime-guards.d.ts +41 -0
- package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
- package/dist/internal/planning/runtime-guards.js +658 -0
- package/dist/internal/planning/runtime-guards.js.map +1 -0
- package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
- package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
- package/dist/internal/planning/scan-completion-guard.js +95 -0
- package/dist/internal/planning/scan-completion-guard.js.map +1 -0
- package/dist/internal/planning/scan-completion.d.ts +20 -0
- package/dist/internal/planning/scan-completion.d.ts.map +1 -0
- package/dist/internal/planning/scan-completion.js +198 -0
- package/dist/internal/planning/scan-completion.js.map +1 -0
- package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
- package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
- package/dist/internal/planning/scan-detect-guard.js +77 -0
- package/dist/internal/planning/scan-detect-guard.js.map +1 -0
- package/dist/internal/planning/scan-detect.d.ts +24 -0
- package/dist/internal/planning/scan-detect.d.ts.map +1 -0
- package/dist/internal/planning/scan-detect.js +246 -0
- package/dist/internal/planning/scan-detect.js.map +1 -0
- package/dist/internal/planning/scan-idle-scope.d.ts +5 -0
- package/dist/internal/planning/scan-idle-scope.d.ts.map +1 -0
- package/dist/internal/planning/scan-idle-scope.js +5 -0
- package/dist/internal/planning/scan-idle-scope.js.map +1 -0
- package/dist/internal/planning/scan-input.d.ts +9 -0
- package/dist/internal/planning/scan-input.d.ts.map +1 -0
- package/dist/internal/planning/scan-input.js +58 -0
- package/dist/internal/planning/scan-input.js.map +1 -0
- package/dist/internal/planning/scan-storage-actions.d.ts +9 -0
- package/dist/internal/planning/scan-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/scan-storage-actions.js +27 -0
- package/dist/internal/planning/scan-storage-actions.js.map +1 -0
- package/dist/internal/planning/ship-import-funding.d.ts +22 -0
- package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
- package/dist/internal/planning/ship-import-funding.js +53 -0
- package/dist/internal/planning/ship-import-funding.js.map +1 -0
- package/dist/internal/planning/ship-token.d.ts +1 -6
- package/dist/internal/planning/ship-token.d.ts.map +1 -1
- package/dist/internal/planning/ship-token.js +0 -37
- package/dist/internal/planning/ship-token.js.map +1 -1
- package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
- package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
- package/dist/internal/planning/starbase-player-owner.js +17 -0
- package/dist/internal/planning/starbase-player-owner.js.map +1 -0
- package/dist/internal/planning/starbase-player-recovery-guard.d.ts +7 -0
- package/dist/internal/planning/starbase-player-recovery-guard.d.ts.map +1 -0
- package/dist/internal/planning/starbase-player-recovery-guard.js +39 -0
- package/dist/internal/planning/starbase-player-recovery-guard.js.map +1 -0
- package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
- package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system-guard.js +94 -0
- package/dist/internal/planning/starbase-system-guard.js.map +1 -0
- package/dist/internal/planning/starbase-system.d.ts +15 -0
- package/dist/internal/planning/starbase-system.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system.js +25 -0
- package/dist/internal/planning/starbase-system.js.map +1 -0
- package/dist/internal/planning/storage-action-readers.d.ts +10 -0
- package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
- package/dist/internal/planning/storage-action-readers.js +58 -0
- package/dist/internal/planning/storage-action-readers.js.map +1 -0
- package/dist/internal/planning/storage-actions.d.ts +89 -0
- package/dist/internal/planning/storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/storage-actions.js +183 -0
- package/dist/internal/planning/storage-actions.js.map +1 -0
- package/dist/internal/planning/token-mint.d.ts.map +1 -1
- package/dist/internal/planning/token-mint.js +2 -1
- package/dist/internal/planning/token-mint.js.map +1 -1
- package/dist/internal/planning/trade-faction-market.d.ts +20 -0
- package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
- package/dist/internal/planning/trade-faction-market.js +56 -0
- package/dist/internal/planning/trade-faction-market.js.map +1 -0
- package/dist/internal/planning/wallet-starbase.d.ts +34 -0
- package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
- package/dist/internal/planning/wallet-starbase.js +39 -0
- package/dist/internal/planning/wallet-starbase.js.map +1 -0
- package/dist/internal/planning/xp-runtime.d.ts +36 -0
- package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
- package/dist/internal/planning/xp-runtime.js +122 -0
- package/dist/internal/planning/xp-runtime.js.map +1 -0
- package/dist/internal/read-meta.d.ts +12 -0
- package/dist/internal/read-meta.d.ts.map +1 -1
- package/dist/internal/read-meta.js +10 -0
- package/dist/internal/read-meta.js.map +1 -1
- package/dist/internal/system-program.d.ts +4 -0
- package/dist/internal/system-program.d.ts.map +1 -0
- package/dist/internal/system-program.js +3 -0
- package/dist/internal/system-program.js.map +1 -0
- package/dist/loyalty/actions/index.d.ts +1 -1
- package/dist/loyalty/actions/index.d.ts.map +1 -1
- package/dist/loyalty/actions/index.js +16 -46
- package/dist/loyalty/actions/index.js.map +1 -1
- package/dist/loyalty/index.d.ts +4 -0
- package/dist/loyalty/index.d.ts.map +1 -1
- package/dist/loyalty/index.js +21 -33
- package/dist/loyalty/index.js.map +1 -1
- package/dist/markets/actions/index.d.ts +62 -4
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +261 -187
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts +45 -0
- package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
- package/dist/markets/actions/trade-faction-market.js +311 -0
- package/dist/markets/actions/trade-faction-market.js.map +1 -0
- package/dist/markets/index.d.ts +38 -7
- package/dist/markets/index.d.ts.map +1 -1
- package/dist/markets/index.js +59 -20
- package/dist/markets/index.js.map +1 -1
- package/dist/mining/actions/index.d.ts +18 -15
- package/dist/mining/actions/index.d.ts.map +1 -1
- package/dist/mining/actions/index.js +146 -69
- package/dist/mining/actions/index.js.map +1 -1
- package/dist/mining/estimate-input.d.ts +103 -0
- package/dist/mining/estimate-input.d.ts.map +1 -0
- package/dist/mining/estimate-input.js +86 -0
- package/dist/mining/estimate-input.js.map +1 -0
- package/dist/mining/estimate.d.ts +114 -0
- package/dist/mining/estimate.d.ts.map +1 -0
- package/dist/mining/estimate.js +127 -0
- package/dist/mining/estimate.js.map +1 -0
- package/dist/mining/index.d.ts +10 -2
- package/dist/mining/index.d.ts.map +1 -1
- package/dist/mining/index.js +11 -13
- package/dist/mining/index.js.map +1 -1
- package/dist/mining/profile.d.ts +82 -0
- package/dist/mining/profile.d.ts.map +1 -0
- package/dist/mining/profile.js +109 -0
- package/dist/mining/profile.js.map +1 -0
- package/dist/planning/assembly.d.ts +6 -1
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +12 -8
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts +19 -3
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +623 -72
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +252 -165
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +31 -388
- package/dist/planning/index.js.map +1 -1
- package/dist/planning/plan-construction.d.ts +25 -0
- package/dist/planning/plan-construction.d.ts.map +1 -0
- package/dist/planning/plan-construction.js +143 -0
- package/dist/planning/plan-construction.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
- package/dist/planning/plan-sequence-checkpoint.js +16 -7
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
- package/dist/planning/plan-sequence-execution.d.ts +5 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
- package/dist/planning/plan-sequence-execution.js +74 -40
- package/dist/planning/plan-sequence-execution.js.map +1 -1
- package/dist/planning/plan-sequence.d.ts +2 -1
- package/dist/planning/plan-sequence.d.ts.map +1 -1
- package/dist/planning/plan-sequence.js +8 -1
- package/dist/planning/plan-sequence.js.map +1 -1
- package/dist/planning/plan-validation.d.ts +17 -0
- package/dist/planning/plan-validation.d.ts.map +1 -0
- package/dist/planning/plan-validation.js +147 -0
- package/dist/planning/plan-validation.js.map +1 -0
- package/dist/planning/simulation.d.ts +25 -1
- package/dist/planning/simulation.d.ts.map +1 -1
- package/dist/planning/simulation.js +111 -11
- package/dist/planning/simulation.js.map +1 -1
- package/dist/registry/cargo.d.ts +7 -12
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +19 -20
- package/dist/registry/cargo.js.map +1 -1
- package/dist/registry/definition-section-snapshot.d.ts +1 -1
- package/dist/registry/definition-section-snapshot.d.ts.map +1 -1
- package/dist/registry/definition-section-snapshot.js +10 -3
- package/dist/registry/definition-section-snapshot.js.map +1 -1
- package/dist/registry/docking.d.ts +10 -0
- package/dist/registry/docking.d.ts.map +1 -0
- package/dist/registry/docking.js +12 -0
- package/dist/registry/docking.js.map +1 -0
- package/dist/registry/index.d.ts +35 -4
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +226 -227
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/onboarding.d.ts +10 -2
- package/dist/registry/onboarding.d.ts.map +1 -1
- package/dist/registry/onboarding.js +22 -7
- package/dist/registry/onboarding.js.map +1 -1
- package/dist/registry/scanning.d.ts +7 -0
- package/dist/registry/scanning.d.ts.map +1 -0
- package/dist/registry/scanning.js +13 -0
- package/dist/registry/scanning.js.map +1 -0
- package/dist/registry/ship-stats-snapshot.d.ts.map +1 -1
- package/dist/registry/ship-stats-snapshot.js +38 -24
- package/dist/registry/ship-stats-snapshot.js.map +1 -1
- package/dist/registry/ships.d.ts +22 -2
- package/dist/registry/ships.d.ts.map +1 -1
- package/dist/registry/ships.js +31 -4
- package/dist/registry/ships.js.map +1 -1
- package/dist/registry/xp-runtime.d.ts +4 -0
- package/dist/registry/xp-runtime.d.ts.map +1 -0
- package/dist/registry/xp-runtime.js +14 -0
- package/dist/registry/xp-runtime.js.map +1 -0
- package/dist/rewards/index.d.ts +11 -5
- package/dist/rewards/index.d.ts.map +1 -1
- package/dist/rewards/index.js +10 -21
- package/dist/rewards/index.js.map +1 -1
- package/dist/scanning/actions/index.d.ts +116 -0
- package/dist/scanning/actions/index.d.ts.map +1 -0
- package/dist/scanning/actions/index.js +215 -0
- package/dist/scanning/actions/index.js.map +1 -0
- package/dist/scanning/index.d.ts +10 -12
- package/dist/scanning/index.d.ts.map +1 -1
- package/dist/scanning/index.js +19 -23
- package/dist/scanning/index.js.map +1 -1
- package/dist/scanning/lifecycle.d.ts +77 -0
- package/dist/scanning/lifecycle.d.ts.map +1 -0
- package/dist/scanning/lifecycle.js +93 -0
- package/dist/scanning/lifecycle.js.map +1 -0
- package/dist/scanning/odds.d.ts +115 -0
- package/dist/scanning/odds.d.ts.map +1 -0
- package/dist/scanning/odds.js +294 -0
- package/dist/scanning/odds.js.map +1 -0
- package/dist/scanning/signals.d.ts +126 -0
- package/dist/scanning/signals.d.ts.map +1 -0
- package/dist/scanning/signals.js +173 -0
- package/dist/scanning/signals.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +49 -4
- package/dist/starbases/actions/index.d.ts.map +1 -1
- package/dist/starbases/actions/index.js +120 -69
- package/dist/starbases/actions/index.js.map +1 -1
- package/dist/starbases/index.d.ts +18 -0
- package/dist/starbases/index.d.ts.map +1 -1
- package/dist/starbases/index.js +24 -11
- package/dist/starbases/index.js.map +1 -1
- package/dist/world/index.d.ts +185 -6
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +186 -15
- package/dist/world/index.js.map +1 -1
- package/dist/world/planet-claim-stake-plots.d.ts +139 -0
- package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
- package/dist/world/planet-claim-stake-plots.js +117 -0
- package/dist/world/planet-claim-stake-plots.js.map +1 -0
- package/dist/world/starbase-status.d.ts +217 -0
- package/dist/world/starbase-status.d.ts.map +1 -0
- package/dist/world/starbase-status.js +218 -0
- package/dist/world/starbase-status.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { getAddressEncoder } from '@solana/kit';
|
|
2
|
+
import { SAGE_PROGRAM_ADDRESS, getFactionOwnershipDecoder, getFactionRelationTrackerDecoder, } from '../c4/runtime-bindings.js';
|
|
3
|
+
import { defineAccount } from '../c4/account-decoding.js';
|
|
4
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
5
|
+
import { FACTION_OWNERSHIP_DISCRIMINATOR, FACTION_RELATION_TRACKER_DISCRIMINATOR, } from '../c4/discriminators.js';
|
|
6
|
+
import { deriveFactionRelationTrackerPda, deriveStarbaseOwnershipPda, } from '../c4/factions.js';
|
|
7
|
+
import { factionValue } from '../c4/faction.js';
|
|
8
|
+
import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../c4/starbase.js';
|
|
9
|
+
import { starSystemAccountDefinition } from '../c4/world.js';
|
|
10
|
+
// Reuse the exact generated codecs and shared raw-account validation without
|
|
11
|
+
// bringing unrelated faction gameplay projections into the Plan execution bundle.
|
|
12
|
+
const trackerDefinition = /* @__PURE__ */ defineAccount({
|
|
13
|
+
type: 'factionRelationTracker',
|
|
14
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
15
|
+
discriminator: FACTION_RELATION_TRACKER_DISCRIMINATOR,
|
|
16
|
+
length: 78,
|
|
17
|
+
}, getFactionRelationTrackerDecoder, (value) => value);
|
|
18
|
+
const ownershipDefinition = /* @__PURE__ */ defineAccount({
|
|
19
|
+
type: 'factionOwnership',
|
|
20
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
21
|
+
discriminator: FACTION_OWNERSHIP_DISCRIMINATOR,
|
|
22
|
+
length: 145,
|
|
23
|
+
exact: true,
|
|
24
|
+
}, getFactionOwnershipDecoder, (value) => value);
|
|
25
|
+
// Callers pass decoded faction ids 0–3 only.
|
|
26
|
+
const FACTION_NAMES = ['Unaligned', 'MUD', 'ONI', 'Ustur'];
|
|
27
|
+
const factionName = (id) => FACTION_NAMES[id];
|
|
28
|
+
/** Validates the docking admission the program applies, for the cases the SDK
|
|
29
|
+
* can decide exactly. The legacy Starbase owner, Starbase generation and
|
|
30
|
+
* Starbase Player faction are decoded from the fresh System and Starbase
|
|
31
|
+
* Player the instruction docks against, never taken from the saved Plan. A Starbase Player of the controlling faction always
|
|
32
|
+
* docks, whatever the territory and economics flags. A foreign Starbase
|
|
33
|
+
* Player is refused while territory access is disabled. Foreign docking under
|
|
34
|
+
* territory access (relationship and standing) and dynamic-faction operators
|
|
35
|
+
* stay unsupported. The controller is the legacy Starbase owner unless dynamic
|
|
36
|
+
* capture is enabled and a current ownership sidecar records another faction;
|
|
37
|
+
* an uninitialized sidecar means the legacy owner. */
|
|
38
|
+
export async function validateFleetDockingPolicy(accounts, scope) {
|
|
39
|
+
const invalid = (address, cause) => {
|
|
40
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}. Refresh the indicated faction account for the configured Game and System, verify its current binding version, and recreate the docking Plan.`, { address });
|
|
41
|
+
};
|
|
42
|
+
// Every account must be present, non-executable and at its expected address.
|
|
43
|
+
const read = (raw, address, label) => {
|
|
44
|
+
if (!raw)
|
|
45
|
+
invalid(address, `missing ${label} ${address}`);
|
|
46
|
+
if (raw.executable)
|
|
47
|
+
invalid(address, `${label} ${address} is executable`);
|
|
48
|
+
if (raw.address !== address)
|
|
49
|
+
invalid(address, `${label} ${address} returned account ${raw.address}`);
|
|
50
|
+
return raw;
|
|
51
|
+
};
|
|
52
|
+
const tracker = read(accounts.tracker, scope.address, 'Game faction relation tracker');
|
|
53
|
+
const [trackerPda, ownershipPda] = await Promise.all([
|
|
54
|
+
deriveFactionRelationTrackerPda(scope.game),
|
|
55
|
+
deriveStarbaseOwnershipPda(scope.game, scope.system),
|
|
56
|
+
]);
|
|
57
|
+
const relation = trackerDefinition.decode(tracker);
|
|
58
|
+
if (relation.version !== 0)
|
|
59
|
+
invalid(scope.address, `Game faction relation tracker ${scope.address} has unsupported account version ${String(relation.version)}`);
|
|
60
|
+
if (trackerPda[0] !== scope.address ||
|
|
61
|
+
relation.bump !== trackerPda[1] ||
|
|
62
|
+
relation.gameId !== scope.game)
|
|
63
|
+
invalid(scope.address, `Game faction relation tracker ${scope.address} does not match its canonical Game identity or PDA`);
|
|
64
|
+
if (ownershipPda[0] !== scope.ownership)
|
|
65
|
+
invalid(scope.ownership, `System ownership ${scope.ownership} is not the canonical ownership PDA for this System`);
|
|
66
|
+
const system = starSystemAccountDefinition.decode(read(accounts.system, scope.system, 'Star System'));
|
|
67
|
+
if (system.game !== scope.game || system.starbase === undefined)
|
|
68
|
+
invalid(scope.system, `Star System ${scope.system} is not an active Starbase System of this Game`);
|
|
69
|
+
const player = starbasePlayerAccountDefinition.decode(read(accounts.starbasePlayer, scope.starbasePlayer, 'Starbase Player'));
|
|
70
|
+
if (player.system !== scope.system ||
|
|
71
|
+
(await deriveStarbasePlayerAddress(scope.system, player.character)) !==
|
|
72
|
+
scope.starbasePlayer)
|
|
73
|
+
invalid(scope.starbasePlayer, `Starbase Player ${scope.starbasePlayer} is not its Character's canonical Starbase Player at this System`);
|
|
74
|
+
const playerFaction = factionValue(player.faction);
|
|
75
|
+
// An uninitialized ownership sidecar means the legacy Starbase owner.
|
|
76
|
+
let controller = factionValue(system.starbase.owner);
|
|
77
|
+
if (accounts.ownership !== undefined) {
|
|
78
|
+
const owner = ownershipDefinition.decode(read(accounts.ownership, scope.ownership, 'System ownership'));
|
|
79
|
+
if (owner.version !== 0)
|
|
80
|
+
invalid(scope.ownership, `System ownership ${scope.ownership} has unsupported account version ${String(owner.version)}`);
|
|
81
|
+
if (owner.bump !== ownershipPda[1] ||
|
|
82
|
+
owner.gameId !== scope.game ||
|
|
83
|
+
owner.assetKind !== 0 ||
|
|
84
|
+
!getAddressEncoder()
|
|
85
|
+
.encode(scope.system)
|
|
86
|
+
.every((byte, index) => owner.assetKey[index] === byte))
|
|
87
|
+
invalid(scope.ownership, `System ownership ${scope.ownership} does not match its canonical Game/System identity or PDA`);
|
|
88
|
+
if (relation.dynamicCaptureEnabled !== 0) {
|
|
89
|
+
if (owner.capturedSeqId !== system.sequenceId)
|
|
90
|
+
invalid(scope.ownership, `System ownership ${scope.ownership} records Starbase generation ${String(owner.capturedSeqId)}, not the current ${String(system.sequenceId)}, and the chain refuses docking against a stale ownership record`);
|
|
91
|
+
if (owner.controllingFaction !== 0)
|
|
92
|
+
controller = owner.controllingFaction;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (controller === playerFaction)
|
|
96
|
+
return;
|
|
97
|
+
const unsupported = (cause) => {
|
|
98
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: ${cause}; the SDK does not model this admission. Dock at a Starbase your faction controls, or simulate and qualify this case separately. Refresh the faction accounts and recreate the Plan after the policy changes.`, { address: scope.address });
|
|
99
|
+
};
|
|
100
|
+
if (controller > 3)
|
|
101
|
+
unsupported(`dynamic faction ${String(controller)} controls this Starbase, and only its configured operator Profile docks without standing`);
|
|
102
|
+
if (relation.territoryAccessEnabled === 0)
|
|
103
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Docking at Star System ${scope.system}: the Starbase is controlled by ${factionName(controller)} and your Starbase Player belongs to ${factionName(playerFaction)}. With territory access disabled only the controlling faction can dock. Dock at a Starbase your faction controls instead.`, { address: scope.address });
|
|
104
|
+
unsupported(`the Starbase is controlled by ${factionName(controller)}, and foreign docking under territory access depends on diplomacy and standing`);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=fleet-docking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-docking.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-docking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
/** How a Fleet with a sub-profile is held: the SAGE program address marks a
|
|
3
|
+
* Fleet listed for rent with no renter; any other address is the renter. */
|
|
4
|
+
export declare function describeFleetRental(subProfile: Address): string;
|
|
5
|
+
//# sourceMappingURL=fleet-rental.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-rental.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-rental.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;4EAC4E;AAC5E,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAI/D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
|
|
2
|
+
/** How a Fleet with a sub-profile is held: the SAGE program address marks a
|
|
3
|
+
* Fleet listed for rent with no renter; any other address is the renter. */
|
|
4
|
+
export function describeFleetRental(subProfile) {
|
|
5
|
+
return subProfile === SAGE_PROGRAM_ADDRESS
|
|
6
|
+
? 'listed for rent'
|
|
7
|
+
: `rented to Profile ${subProfile}`;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=fleet-rental.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-rental.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-rental.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;4EAC4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACrD,OAAO,UAAU,KAAK,oBAAoB;QACxC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,qBAAqB,UAAU,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Address, type Commitment } from '@solana/kit';
|
|
2
|
+
import type { SageContext } from '../../client/contracts.js';
|
|
3
|
+
export interface FleetRespawnIntent {
|
|
4
|
+
readonly phase: 'start' | 'complete';
|
|
5
|
+
readonly fleet: Address;
|
|
6
|
+
readonly game: Address;
|
|
7
|
+
readonly profile: Address;
|
|
8
|
+
readonly authority: Address;
|
|
9
|
+
readonly keyIndex: number;
|
|
10
|
+
readonly system: Address;
|
|
11
|
+
}
|
|
12
|
+
/** Fresh bounded eligibility and debit checks shared by planning and pre-sign validation. */
|
|
13
|
+
export declare function resolveFleetRespawn(ctx: SageContext, input: FleetRespawnIntent, expected?: {
|
|
14
|
+
readonly fleetHash: string;
|
|
15
|
+
readonly maximumRecoveryFee: bigint;
|
|
16
|
+
readonly maximumProfileDebit: bigint;
|
|
17
|
+
}, commitment?: Commitment): Promise<{
|
|
18
|
+
instruction: import("@solana/kit").Instruction<string, readonly (import("@solana/kit").AccountMeta<string> | import("@solana/kit").AccountLookupMeta<string, string>)[]>;
|
|
19
|
+
recoveryFee: bigint;
|
|
20
|
+
profileDebit: bigint;
|
|
21
|
+
fleetHash: string;
|
|
22
|
+
inventory: {
|
|
23
|
+
cargo: readonly import("../c4/fleet.js").FleetCargoAmountData[];
|
|
24
|
+
ammunition: import("../c4/fleet.js").FleetCargoAmountData;
|
|
25
|
+
fuel: import("../c4/fleet.js").FleetCargoAmountData;
|
|
26
|
+
};
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=fleet-respawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-respawn.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA2CzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAOD,6FAA6F;AAC7F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,kBAAkB,EACzB,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,UAAU,GAAE,UAAwB;;;;;;;;;;GAuNrC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { deriveCurrencyCache, validateCurrencyCache, } from '../c4/currency-cache.js';
|
|
2
|
+
import { isOffCurveAddress } from '@solana/kit';
|
|
3
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
4
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
5
|
+
import { requireGameAddress } from '../game-context.js';
|
|
6
|
+
import { readFreshGameShipAssemblyCatalog } from '../../registry/ships.js';
|
|
7
|
+
import { readFreshGameRuntimeVersion } from '../../registry/xp-runtime.js';
|
|
8
|
+
import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
|
|
9
|
+
import { profileAccountDefinition } from '../c4/identity.js';
|
|
10
|
+
import { characterAccountDefinition, findCharacterPda, } from '../c4/character.js';
|
|
11
|
+
import { starSystemAccountDefinition, deriveStarSystemAddress, } from '../c4/world.js';
|
|
12
|
+
import { starbasePlayerAccountDefinition, deriveStarbasePlayerAddress, } from '../c4/starbase.js';
|
|
13
|
+
import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
|
|
14
|
+
import { deriveFleetCrewBindingAddress, fleetCrewBindingAccountDefinition, matchesFleetCrewBindingIdentity, } from '../c4/fleet-crew-binding.js';
|
|
15
|
+
import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
|
|
16
|
+
import { fleetRespawnSize, fleetRespawnInstruction, } from '../c4/fleet-respawn.js';
|
|
17
|
+
import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
|
|
18
|
+
import { RENT_ADDRESS, readRent } from './rent.js';
|
|
19
|
+
import { hashAccountState } from './account-state.js';
|
|
20
|
+
import { directProfileKey, grantsPermission, hasPermissionBit, profileKeyExpired, } from './profile-key.js';
|
|
21
|
+
function fail(message) {
|
|
22
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the Fleet and required recovery accounts, then recreate and inspect the recovery Plan before signing.`);
|
|
23
|
+
}
|
|
24
|
+
/** Fresh bounded eligibility and debit checks shared by planning and pre-sign validation. */
|
|
25
|
+
export async function resolveFleetRespawn(ctx, input, expected, commitment = 'confirmed') {
|
|
26
|
+
const intent = { ...input };
|
|
27
|
+
if (requireGameAddress(ctx) !== intent.game ||
|
|
28
|
+
!['start', 'complete'].includes(intent.phase) ||
|
|
29
|
+
!Number.isInteger(intent.keyIndex) ||
|
|
30
|
+
intent.keyIndex < 0 ||
|
|
31
|
+
intent.keyIndex > 65535 ||
|
|
32
|
+
isOffCurveAddress(intent.authority))
|
|
33
|
+
fail('Recovery requires this deployment’s Game and an on-curve direct Profile key with a valid key index.');
|
|
34
|
+
const [character, regionTracker, crewBinding, [currencyCache]] = await Promise.all([
|
|
35
|
+
findCharacterPda(intent.profile, intent.game),
|
|
36
|
+
deriveRegionTrackerAddress(intent.game),
|
|
37
|
+
deriveFleetCrewBindingAddress(intent.fleet),
|
|
38
|
+
deriveCurrencyCache(intent.game),
|
|
39
|
+
]);
|
|
40
|
+
const starbasePlayer = await deriveStarbasePlayerAddress(intent.system, character);
|
|
41
|
+
const addresses = [
|
|
42
|
+
intent.fleet,
|
|
43
|
+
intent.profile,
|
|
44
|
+
intent.system,
|
|
45
|
+
CLOCK_ADDRESS,
|
|
46
|
+
RENT_ADDRESS,
|
|
47
|
+
...(intent.phase === 'start'
|
|
48
|
+
? [character, regionTracker, crewBinding, currencyCache]
|
|
49
|
+
: [starbasePlayer]),
|
|
50
|
+
];
|
|
51
|
+
const rows = await readContextRawAccounts(ctx, addresses, {
|
|
52
|
+
commitment,
|
|
53
|
+
});
|
|
54
|
+
if (rows.some((raw) => raw?.executable))
|
|
55
|
+
fail('Recovery account reads contain an executable account.');
|
|
56
|
+
const accounts = new Map(addresses.map((address, i) => [address, rows[i]]));
|
|
57
|
+
const required = (address) => accounts.get(address) ?? fail(`Recovery account ${address} is missing.`);
|
|
58
|
+
const fleetRaw = required(intent.fleet), profileRaw = required(intent.profile);
|
|
59
|
+
const fleet = fleetAccountDefinition.decode(fleetRaw), profile = profileAccountDefinition.decode(profileRaw), system = starSystemAccountDefinition.decode(required(intent.system));
|
|
60
|
+
if (fleet.game !== intent.game ||
|
|
61
|
+
fleet.ownerProfile !== intent.profile ||
|
|
62
|
+
fleet.npcFactionId !== 0 ||
|
|
63
|
+
fleet.faction === 'unaligned' ||
|
|
64
|
+
(await deriveFleetAddress(fleet)) !== intent.fleet ||
|
|
65
|
+
fleet.subProfile !== '11111111111111111111111111111111')
|
|
66
|
+
fail('Recovery requires a canonical owned player Fleet without a SubProfile route.');
|
|
67
|
+
if (system.game !== intent.game ||
|
|
68
|
+
(await deriveStarSystemAddress(intent.game, system.systemId)) !==
|
|
69
|
+
intent.system ||
|
|
70
|
+
system.starbase?.level !== 'css' ||
|
|
71
|
+
system.starbase.owner !== fleet.faction)
|
|
72
|
+
fail('Recovery destination must be the canonical same-Game CSS matching the Fleet faction.');
|
|
73
|
+
const now = readClock(required(CLOCK_ADDRESS)), rent = readRent(required(RENT_ADDRESS));
|
|
74
|
+
if (fleet.hp <= 0)
|
|
75
|
+
fail('This recovery route requires a Fleet with positive hull health; use a separately supported destroyed-Fleet recovery route.');
|
|
76
|
+
if (intent.phase === 'start'
|
|
77
|
+
? fleet.state.kind !== 'idle'
|
|
78
|
+
: fleet.state.kind !== 'respawn' ||
|
|
79
|
+
now < fleet.state.recoversAtUnixSeconds)
|
|
80
|
+
fail(intent.phase === 'start'
|
|
81
|
+
? 'Recovery start requires a non-destroyed Idle Fleet.'
|
|
82
|
+
: 'Timed recovery completion requires a Respawn Fleet whose timer has elapsed according to chain time.');
|
|
83
|
+
const fleetHash = await hashAccountState(fleetRaw.owner, fleetRaw.data);
|
|
84
|
+
if (expected && fleetHash !== expected.fleetHash)
|
|
85
|
+
fail('The Fleet changed after this recovery Plan was prepared; its assets or recovery state may differ.');
|
|
86
|
+
let recoveryFee = 0n;
|
|
87
|
+
let selectedCrew;
|
|
88
|
+
if (intent.phase === 'start') {
|
|
89
|
+
const owner = characterAccountDefinition.decode(required(character));
|
|
90
|
+
if (owner.playerProfile !== intent.profile || owner.game !== intent.game)
|
|
91
|
+
fail('Recovery Character does not belong to the selected Profile and Game.');
|
|
92
|
+
const tracker = regionTrackerAccountDefinition.decode(required(regionTracker));
|
|
93
|
+
if (tracker.game !== intent.game)
|
|
94
|
+
fail('Recovery RegionTracker belongs to a different Game.');
|
|
95
|
+
await validateCurrencyCache(required(currencyCache), intent.game, 'Fleet recovery');
|
|
96
|
+
const binding = accounts.get(crewBinding);
|
|
97
|
+
if (binding) {
|
|
98
|
+
if (!matchesFleetCrewBindingIdentity(fleetCrewBindingAccountDefinition.decode(binding), intent.fleet, intent.profile))
|
|
99
|
+
fail('Recovery CrewBinding belongs to a different Fleet or Profile.');
|
|
100
|
+
selectedCrew = crewBinding;
|
|
101
|
+
}
|
|
102
|
+
const { catalog, rawAccount } = await readFreshGameShipAssemblyCatalog(ctx, { commitment });
|
|
103
|
+
if (rawAccount.address !== intent.game ||
|
|
104
|
+
rawAccount.executable ||
|
|
105
|
+
rawAccount.slot < fleetRaw.slot)
|
|
106
|
+
fail('Recovery ship definitions are older than the selected Fleet or belong to a different Game.');
|
|
107
|
+
if (rawAccount.data[8] !== 2)
|
|
108
|
+
fail('Recovery start requires the supported current Game runtime.');
|
|
109
|
+
for (const held of fleet.fleetShips) {
|
|
110
|
+
const ship = catalog.rows.find((row) => row.id === held.shipId);
|
|
111
|
+
if (!ship)
|
|
112
|
+
fail(`Recovery hull definition ${held.shipId} is missing from the current Game.`);
|
|
113
|
+
recoveryFee += ship.stats.miscStats.recoveryFee * held.quantity;
|
|
114
|
+
}
|
|
115
|
+
if (owner.atlasRaw < recoveryFee)
|
|
116
|
+
fail(`The Character ATLAS vault cannot cover the ${recoveryFee} Floyd recovery fee. Deposit sufficient ATLAS explicitly before preparing recovery.`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
if ((await readFreshGameRuntimeVersion(ctx, intent.game, {
|
|
120
|
+
commitment,
|
|
121
|
+
})) !== 2)
|
|
122
|
+
fail('Recovery completion requires the supported current Game runtime.');
|
|
123
|
+
const player = starbasePlayerAccountDefinition.decode(required(starbasePlayer));
|
|
124
|
+
if (player.character !== character ||
|
|
125
|
+
player.playerProfile !== intent.profile ||
|
|
126
|
+
player.system !== intent.system ||
|
|
127
|
+
player.faction !== fleet.faction)
|
|
128
|
+
fail('Recovery CSS StarbasePlayer has a different Profile, Character, System or faction.');
|
|
129
|
+
}
|
|
130
|
+
const targetRent = rent(fleetRespawnSize(fleetRaw, intent.phase, intent.system));
|
|
131
|
+
const profileDebit = targetRent > fleetRaw.lamports ? targetRent - fleetRaw.lamports : 0n;
|
|
132
|
+
if (expected &&
|
|
133
|
+
(profileDebit > expected.maximumProfileDebit ||
|
|
134
|
+
recoveryFee > expected.maximumRecoveryFee))
|
|
135
|
+
fail('Recovery fees or Profile rent debit now exceed the amounts approved by this Plan.');
|
|
136
|
+
if (profileRaw.lamports < rent(profileRaw.data.length) + profileDebit)
|
|
137
|
+
fail('The Profile cannot fund Fleet storage growth while preserving its own rent reserve. Fund the Profile or Fleet explicitly.');
|
|
138
|
+
const key = directProfileKey(profile.keys, intent.keyIndex, intent.authority);
|
|
139
|
+
if (!key || profileKeyExpired(key, now))
|
|
140
|
+
fail('Recovery authority is not the selected current unexpired direct Profile key.');
|
|
141
|
+
const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
|
|
142
|
+
if (!auth && !grantsPermission(key, SAGE_SCOPE, 21n))
|
|
143
|
+
fail('Recovery requires a direct Profile AUTH key or SAGE respawn permission.');
|
|
144
|
+
if (profileDebit > 0n && !auth && !hasPermissionBit(key, 63n))
|
|
145
|
+
fail('Recovery storage growth requires Profile vault funding authority. Explicitly prefund the Fleet or choose an authorized drainSolVault key.');
|
|
146
|
+
return {
|
|
147
|
+
instruction: fleetRespawnInstruction(intent, {
|
|
148
|
+
character,
|
|
149
|
+
regionTracker,
|
|
150
|
+
currencyCache,
|
|
151
|
+
starbasePlayer,
|
|
152
|
+
...(selectedCrew ? { crewBinding: selectedCrew } : {}),
|
|
153
|
+
}),
|
|
154
|
+
recoveryFee,
|
|
155
|
+
profileDebit,
|
|
156
|
+
fleetHash,
|
|
157
|
+
inventory: {
|
|
158
|
+
cargo: fleet.cargoHold.amounts,
|
|
159
|
+
ammunition: fleet.ammoBank,
|
|
160
|
+
fuel: fleet.fuelTank,
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=fleet-respawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-respawn.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-respawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ShipAssemblyCatalog } from '../../registry/ships.js';
|
|
2
|
+
import { type Address } from '@solana/kit';
|
|
3
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
4
|
+
export interface FleetShipAssemblyIntent {
|
|
5
|
+
readonly address: Address;
|
|
6
|
+
readonly game: Address;
|
|
7
|
+
readonly profile: Address;
|
|
8
|
+
readonly authority: Address;
|
|
9
|
+
readonly system: Address;
|
|
10
|
+
readonly keyIndex: number;
|
|
11
|
+
readonly shipId: number;
|
|
12
|
+
readonly amount: bigint;
|
|
13
|
+
}
|
|
14
|
+
export interface FleetShipAssemblyAccounts {
|
|
15
|
+
readonly game: Address;
|
|
16
|
+
readonly profile: Address;
|
|
17
|
+
readonly authority: Address;
|
|
18
|
+
readonly system: Address;
|
|
19
|
+
readonly character: Address;
|
|
20
|
+
readonly profileFaction: Address;
|
|
21
|
+
readonly starbasePlayer: Address;
|
|
22
|
+
readonly fleet: Address;
|
|
23
|
+
readonly rent: Address;
|
|
24
|
+
readonly clock: Address;
|
|
25
|
+
}
|
|
26
|
+
export declare function resolveFleetShipAssembly(input: FleetShipAssemblyIntent): Promise<FleetShipAssemblyAccounts>;
|
|
27
|
+
export declare function validateFleetShipAssembly(input: FleetShipAssemblyIntent, resolved: FleetShipAssemblyAccounts, accounts: ReadonlyMap<Address, RawAccount | undefined>, expected?: {
|
|
28
|
+
readonly configHash: string;
|
|
29
|
+
readonly maximumProfileDebit: bigint;
|
|
30
|
+
}, catalog?: ShipAssemblyCatalog): Promise<{
|
|
31
|
+
profileDebit: bigint;
|
|
32
|
+
profileReserve: bigint;
|
|
33
|
+
fleetRent: bigint;
|
|
34
|
+
configHash: string;
|
|
35
|
+
/** Components moved from the StarbasePlayer into the Fleet, by cargo id. */
|
|
36
|
+
components: ReadonlyMap<number, bigint>;
|
|
37
|
+
}>;
|
|
38
|
+
//# sourceMappingURL=fleet-ship-assembly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-ship-assembly.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAgB5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AACD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAkBpC;AAID,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,QAAQ,CAAC,EAAE;IACT,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,EACD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAAC,CA2OD"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { SYSTEM_PROGRAM } from '../system-program.js';
|
|
2
|
+
import { describeFleetRental } from './fleet-rental.js';
|
|
3
|
+
import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
|
|
4
|
+
import { MAX_COMMANDERS_AND_TITANS_PER_FLEET, MAX_TITANS_PER_FLEET, fleetCapacityPoints, fleetShipAssemblySize, prospectiveShipCounts, shipSizeName, shipSizeRank, starbasePlayerEscrowGrowth, } from '../c4/fleet-ship-assembly.js';
|
|
5
|
+
import { decodeGameShipAssemblyCatalog, hashShipAssemblyConfiguration, } from '../../registry/ships.js';
|
|
6
|
+
import { isOffCurveAddress } from '@solana/kit';
|
|
7
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
8
|
+
import { findCharacterPda } from '../c4/character.js';
|
|
9
|
+
import { deriveProfileFactionAddress } from '../c4/profile-faction.js';
|
|
10
|
+
import { deriveStarbasePlayerAddress } from '../c4/starbase.js';
|
|
11
|
+
import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
|
|
12
|
+
import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
|
|
13
|
+
import { RENT_ADDRESS, readRent } from './rent.js';
|
|
14
|
+
import { directProfileKey, grantsPermission, hasPermissionBit, profileKeyExpired, } from './profile-key.js';
|
|
15
|
+
import { readOwnStarbaseFacts } from './own-starbase-facts.js';
|
|
16
|
+
export async function resolveFleetShipAssembly(input) {
|
|
17
|
+
const intent = { ...input };
|
|
18
|
+
const [character, profileFaction] = await Promise.all([
|
|
19
|
+
findCharacterPda(intent.profile, intent.game),
|
|
20
|
+
deriveProfileFactionAddress(intent.profile),
|
|
21
|
+
]);
|
|
22
|
+
return {
|
|
23
|
+
game: intent.game,
|
|
24
|
+
profile: intent.profile,
|
|
25
|
+
authority: intent.authority,
|
|
26
|
+
system: intent.system,
|
|
27
|
+
character,
|
|
28
|
+
profileFaction,
|
|
29
|
+
fleet: intent.address,
|
|
30
|
+
starbasePlayer: await deriveStarbasePlayerAddress(intent.system, character),
|
|
31
|
+
rent: RENT_ADDRESS,
|
|
32
|
+
clock: CLOCK_ADDRESS,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function fail(address, message) {
|
|
36
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
37
|
+
}
|
|
38
|
+
export async function validateFleetShipAssembly(input, resolved, accounts, expected, catalog) {
|
|
39
|
+
const intent = { ...input };
|
|
40
|
+
if (isOffCurveAddress(intent.authority))
|
|
41
|
+
fail(intent.profile, 'Ship assembly requires an on-curve direct Profile authority. Select a current direct key and replan.');
|
|
42
|
+
const required = (address, name) => {
|
|
43
|
+
const raw = accounts.get(address);
|
|
44
|
+
if (!raw)
|
|
45
|
+
fail(address, `${name} ${address} is missing. Create or select the required account, then replan ship assembly.`);
|
|
46
|
+
if (raw.executable)
|
|
47
|
+
fail(address, `${name} ${address} is executable. Refresh valid account state before assembling ships.`);
|
|
48
|
+
return raw;
|
|
49
|
+
};
|
|
50
|
+
// The program assembles at any Starbase where the Character has a current
|
|
51
|
+
// StarbasePlayer of the Fleet's faction, whoever owns the Starbase.
|
|
52
|
+
const { profileRaw, profile, character, faction, system, player } = await readOwnStarbaseFacts(intent, resolved, required, {
|
|
53
|
+
replan: 'replan ship assembly',
|
|
54
|
+
before: 'before assembling ships',
|
|
55
|
+
}, { anyStarbase: true });
|
|
56
|
+
if (player.sequenceId !== system.sequenceId)
|
|
57
|
+
fail(resolved.starbasePlayer, `The StarbasePlayer belongs to Starbase generation ${String(player.sequenceId)}, but the Starbase is at generation ${String(system.sequenceId)}; the program treats it as destroyed. Register a current StarbasePlayer at this Starbase and replan ship assembly.`);
|
|
58
|
+
const fleetRaw = required(resolved.fleet, 'Fleet');
|
|
59
|
+
const fleet = fleetAccountDefinition.decode(fleetRaw);
|
|
60
|
+
if ((await deriveFleetAddress(fleet)) !== intent.address ||
|
|
61
|
+
fleet.game !== intent.game ||
|
|
62
|
+
fleet.ownerProfile !== intent.profile ||
|
|
63
|
+
fleet.faction !== faction.faction ||
|
|
64
|
+
fleet.npcFactionId !== 0)
|
|
65
|
+
fail(resolved.fleet, 'The Fleet has a noncanonical address or different Game, Profile, faction or NPC affiliation. Select a canonical owned player Fleet and replan ship assembly.');
|
|
66
|
+
if (fleet.state.kind !== 'docked' || fleet.state.system !== intent.system)
|
|
67
|
+
fail(resolved.fleet, 'Ship assembly requires the Fleet to remain Docked at the selected System. Dock at a Starbase where the Character has a current StarbasePlayer and replan.');
|
|
68
|
+
// A Fleet listed for rent (SAGE address) or rented to a sub-profile is
|
|
69
|
+
// never given ships by the program.
|
|
70
|
+
if (fleet.subProfile !== SYSTEM_PROGRAM)
|
|
71
|
+
fail(resolved.fleet, `The Fleet is ${describeFleetRental(fleet.subProfile)}, and ships cannot be added to it. End the rental, refresh the Fleet, and replan ship assembly.`);
|
|
72
|
+
// The program needs full AP, SP and HP. HP can only recover from the
|
|
73
|
+
// pending repair reservoir, so a Fleet whose HP plus reservoir is below its
|
|
74
|
+
// maximum can never qualify; AP and SP recover on timers and stay
|
|
75
|
+
// chain-authoritative.
|
|
76
|
+
if (fleet.hp + fleet.pendingHp < fleet.stats.combat.hp)
|
|
77
|
+
fail(resolved.fleet, `The Fleet has ${String(fleet.hp)} HP and ${String(fleet.pendingHp)} pending repair, below its ${String(fleet.stats.combat.hp)} maximum, and ships can only be added to a fully repaired Fleet. Repair the Fleet, refresh it, and replan ship assembly.`);
|
|
78
|
+
const gameRaw = required(resolved.game, 'Game');
|
|
79
|
+
const definitions = catalog ?? decodeGameShipAssemblyCatalog(gameRaw);
|
|
80
|
+
if (fleet.shipDefinitionsSeqId !== definitions.sequenceId)
|
|
81
|
+
fail(resolved.fleet, 'The Fleet was built under older ship definitions. The program resynchronizes it inside the assembly, which can change its stats, and this SDK plans current Fleets only. Plan planSyncFleetWithGame, confirm it, then replan.');
|
|
82
|
+
const selected = definitions.rows.find((row) => row.id === intent.shipId);
|
|
83
|
+
if (!selected)
|
|
84
|
+
fail(resolved.game, `Ship configuration ${String(intent.shipId)} is not in the current Game ship definitions. Select a defined configuration and replan.`);
|
|
85
|
+
// The program moves each required component, times the ship amount, from
|
|
86
|
+
// the StarbasePlayer's cargo into the Fleet's components pod; they are
|
|
87
|
+
// stored, not consumed. A missing or short line makes it refuse.
|
|
88
|
+
const components = new Map();
|
|
89
|
+
for (const [cargoId, required] of selected.componentRequirements)
|
|
90
|
+
components.set(cargoId, BigInt(required) * intent.amount);
|
|
91
|
+
const held = new Map(player.cargo.amounts.map(({ cargoId, amount }) => [cargoId, amount]));
|
|
92
|
+
const short = [...components].filter(([cargoId, moved]) => (held.get(cargoId) ?? 0n) < moved);
|
|
93
|
+
if (short.length > 0)
|
|
94
|
+
fail(resolved.starbasePlayer, `Ship configuration ${String(intent.shipId)} needs components the StarbasePlayer does not hold: ${short.map(([cargoId, moved]) => `${String(moved)} of cargo ${String(cargoId)} (holds ${String(held.get(cargoId) ?? 0n)})`).join(', ')}. Buy, craft or move them to this StarbasePlayer, or reduce the amount, then replan.`);
|
|
95
|
+
const size = shipSizeName(selected.sizeClass);
|
|
96
|
+
const maxSize = character.modifiers.values.maxShipSize;
|
|
97
|
+
if (selected.sizeClass > shipSizeRank(maxSize))
|
|
98
|
+
fail(resolved.character, `Ship configuration ${String(intent.shipId)} is ${size}, above the Character's maximum ship size ${maxSize}. Unlock research that raises the maximum ship size, then replan.`);
|
|
99
|
+
const tags = character.modifiers.values.researchTags;
|
|
100
|
+
const missing = selected.researchRequirements.filter((tag) => !tags.includes(tag));
|
|
101
|
+
if (missing.length > 0)
|
|
102
|
+
fail(resolved.character, `Ship configuration ${String(intent.shipId)} requires every research tag in [${selected.researchRequirements.join(', ')}]; the Character lacks [${missing.join(', ')}]. Unlock the research nodes that grant them, then replan.`);
|
|
103
|
+
const current = fleet.fleetShips.find((entry) => entry.shipId === intent.shipId)
|
|
104
|
+
?.quantity ?? 0n;
|
|
105
|
+
if (current + intent.amount > 18446744073709551615n)
|
|
106
|
+
fail(resolved.fleet, 'The resulting Fleet ship quantity exceeds the stored u64 limit. Select a smaller valid quantity and replan.');
|
|
107
|
+
// The program checks the Fleet's stored ship counts plus the added ships,
|
|
108
|
+
// never the requirements of ships already aboard.
|
|
109
|
+
const classes = prospectiveShipCounts(fleet.shipCounts, selected.sizeClass, Number(intent.amount));
|
|
110
|
+
const points = fleetCapacityPoints(classes);
|
|
111
|
+
if (points > character.modifiers.values.fleetSize)
|
|
112
|
+
fail(resolved.character, `The resulting Fleet uses ${String(points)} Fleet points, above the Character's Fleet size ${String(character.modifiers.values.fleetSize)}. Reduce the amount or unlock Fleet-size research, then replan.`);
|
|
113
|
+
if (points > definitions.maxFleetSize)
|
|
114
|
+
fail(resolved.game, `The resulting Fleet uses ${String(points)} Fleet points, above the Game's ${String(definitions.maxFleetSize)}-point Fleet limit. Reduce the resulting Fleet composition, then replan; a larger Character allowance does not override it.`);
|
|
115
|
+
const [commanders, titans] = [classes[6], classes[7]];
|
|
116
|
+
if (titans > MAX_TITANS_PER_FLEET)
|
|
117
|
+
fail(resolved.fleet, `The resulting Fleet would hold ${String(titans)} Titans; a Fleet holds at most ${String(MAX_TITANS_PER_FLEET)}. Add the Titan to another Fleet and replan.`);
|
|
118
|
+
if (commanders + titans > MAX_COMMANDERS_AND_TITANS_PER_FLEET)
|
|
119
|
+
fail(resolved.fleet, `The resulting Fleet would hold ${String(commanders + titans)} Commander and Titan ships; a Fleet holds at most ${String(MAX_COMMANDERS_AND_TITANS_PER_FLEET)} together. Add the ship to another Fleet and replan.`);
|
|
120
|
+
// Escrowed hulls of any configuration of the same ship count: the program
|
|
121
|
+
// re-tags them to the selected configuration.
|
|
122
|
+
const siblings = new Set(definitions.rows
|
|
123
|
+
.filter((row) => row.mint === selected.mint)
|
|
124
|
+
.map((row) => row.id));
|
|
125
|
+
const entitlement = player.shipsInEscrow
|
|
126
|
+
.filter((entry) => siblings.has(entry.shipId))
|
|
127
|
+
.reduce((total, entry) => total + entry.quantityRaw, 0n);
|
|
128
|
+
if (entitlement < intent.amount)
|
|
129
|
+
fail(resolved.starbasePlayer, `The StarbasePlayer holds ${String(entitlement)} escrowed hulls of this ship across its configurations, fewer than the ${String(intent.amount)} requested. Explicitly import more of this ship or reduce the amount, then replan.`);
|
|
130
|
+
const configHash = await hashShipAssemblyConfiguration(definitions, selected);
|
|
131
|
+
if (expected && expected.configHash !== configHash)
|
|
132
|
+
fail(resolved.game, 'The selected ship configuration has changed. Replan and inspect its current configuration before signing.');
|
|
133
|
+
const rent = readRent(required(resolved.rent, 'Rent sysvar'));
|
|
134
|
+
const now = readClock(required(resolved.clock, 'Clock sysvar'));
|
|
135
|
+
const fleetRent = rent(fleetShipAssemblySize(fleetRaw, intent.shipId, intent.amount, components));
|
|
136
|
+
const shortfall = (raw, minimum) => raw.lamports < minimum ? minimum - raw.lamports : 0n;
|
|
137
|
+
// The program funds the Fleet, StarbasePlayer and Character as one group.
|
|
138
|
+
// Re-tagging adds an escrow entry when the configuration has none, and its
|
|
139
|
+
// cost is counted in full. A component line the move empties shrinks the
|
|
140
|
+
// StarbasePlayer, but that refund is not credited, so the debit stays an
|
|
141
|
+
// upper bound. A StarbasePlayer already below its rent minimum is left out,
|
|
142
|
+
// as a combined ship import funds that shortfall first.
|
|
143
|
+
const playerRaw = required(resolved.starbasePlayer, 'StarbasePlayer');
|
|
144
|
+
const profileDebit = shortfall(fleetRaw, fleetRent) +
|
|
145
|
+
rent(playerRaw.data.length +
|
|
146
|
+
starbasePlayerEscrowGrowth(playerRaw, intent.shipId)) -
|
|
147
|
+
rent(playerRaw.data.length);
|
|
148
|
+
if (expected !== undefined && profileDebit > expected.maximumProfileDebit)
|
|
149
|
+
fail(resolved.profile, 'Ship assembly now requires a larger Profile debit than this Plan approved. Replan and inspect the updated rent shortfall before signing.');
|
|
150
|
+
const profileReserve = rent(profileRaw.data.length);
|
|
151
|
+
if (profileRaw.lamports < profileReserve + profileDebit)
|
|
152
|
+
fail(resolved.profile, 'The Profile lacks the Fleet rent shortfall while preserving its own rent reserve. Fund the Profile or Fleet target explicitly, then replan.');
|
|
153
|
+
const key = directProfileKey(profile.keys, intent.keyIndex, intent.authority);
|
|
154
|
+
if (!key)
|
|
155
|
+
fail(resolved.profile, 'The selected direct Profile key is absent or belongs to another authority. Select the current key index for this authority and replan.');
|
|
156
|
+
if (profileKeyExpired(key, now))
|
|
157
|
+
fail(resolved.profile, 'The selected Profile key has expired. Renew it or select a current direct key and replan ship assembly.');
|
|
158
|
+
const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
|
|
159
|
+
const manages = grantsPermission(key, SAGE_SCOPE, 18n) ||
|
|
160
|
+
grantsPermission(key, intent.address, 18n);
|
|
161
|
+
if (!auth && !manages)
|
|
162
|
+
fail(resolved.profile, 'The selected key cannot manage Fleets. Use a direct Profile AUTH key or a manageFleet key scoped to SAGE or this Fleet, and replan.');
|
|
163
|
+
if (profileDebit > 0n && !auth && !hasPermissionBit(key, 63n))
|
|
164
|
+
fail(resolved.profile, 'The selected manageFleet key cannot fund the Fleet from the Profile vault. Explicitly prefund the target or choose an authorized vault-funding key, then replan; drainSolVault grants vault withdrawal authority.');
|
|
165
|
+
return { profileDebit, profileReserve, fleetRent, configHash, components };
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=fleet-ship-assembly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-ship-assembly.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
import type { FleetStateData } from '../c4/fleet.js';
|
|
3
|
+
import type { WorldCoordinates } from '../c4/world.js';
|
|
4
|
+
type LeavableFleetState = Exclude<FleetStateData['kind'], 'idle'>;
|
|
5
|
+
interface NamedFleet {
|
|
6
|
+
readonly address: Address;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
}
|
|
9
|
+
/** Rejects a Fleet whose `state` cannot start `action`, stating the
|
|
10
|
+
* `requirement` and the first step out of that state. */
|
|
11
|
+
export declare function failFleetState(fleet: NamedFleet, state: LeavableFleetState, action: string, requirement: string): never;
|
|
12
|
+
/** The coordinate an idle or moving Fleet acts from: its location when idle,
|
|
13
|
+
* else its warp or subwarp destination. Other states fail with `action` and
|
|
14
|
+
* `requirement`. */
|
|
15
|
+
export declare function requireActionCoordinate(fleet: NamedFleet & {
|
|
16
|
+
readonly location: WorldCoordinates;
|
|
17
|
+
readonly state: {
|
|
18
|
+
readonly kind: 'warp' | 'subwarp';
|
|
19
|
+
readonly to: WorldCoordinates;
|
|
20
|
+
} | {
|
|
21
|
+
readonly kind: Exclude<FleetStateData['kind'], 'warp' | 'subwarp'>;
|
|
22
|
+
};
|
|
23
|
+
}, action: string, requirement: string): WorldCoordinates;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=fleet-state.d.ts.map
|