@aephia/atlas-kit 0.6.0-next.1 → 0.6.0-next.100
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 +7 -3
- package/dist/cargo/actions/deposit.d.ts +44 -0
- package/dist/cargo/actions/deposit.d.ts.map +1 -0
- package/dist/cargo/actions/deposit.js +212 -0
- package/dist/cargo/actions/deposit.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +2 -0
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +12 -15
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts +14 -0
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -0
- package/dist/cargo/actions/wallet-context.js +12 -0
- package/dist/cargo/actions/wallet-context.js.map +1 -0
- package/dist/cargo/actions/wallet-token.d.ts +8 -0
- package/dist/cargo/actions/wallet-token.d.ts.map +1 -0
- package/dist/cargo/actions/wallet-token.js +50 -0
- package/dist/cargo/actions/wallet-token.js.map +1 -0
- package/dist/cargo/actions/withdrawal.d.ts +46 -0
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -0
- package/dist/cargo/actions/withdrawal.js +266 -0
- package/dist/cargo/actions/withdrawal.js.map +1 -0
- package/dist/claim-stakes/actions/index.d.ts +13 -0
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +137 -111
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/claim-stakes/index.d.ts +14 -0
- package/dist/claim-stakes/index.d.ts.map +1 -1
- package/dist/claim-stakes/index.js +23 -2
- package/dist/claim-stakes/index.js.map +1 -1
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/context.js +1 -1
- package/dist/client/context.js.map +1 -1
- package/dist/client/contracts.d.ts +16 -6
- package/dist/client/contracts.d.ts.map +1 -1
- package/dist/client/errors.d.ts +6 -2
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +31 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/index.d.ts +35 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +35 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/rpc-subscription-provider.d.ts +35 -0
- package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
- package/dist/client/rpc-subscription-provider.js +190 -0
- package/dist/client/rpc-subscription-provider.js.map +1 -0
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +104 -67
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/crafting/actions/index.d.ts +11 -0
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +101 -108
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/crafting/index.d.ts +33 -3
- package/dist/crafting/index.d.ts.map +1 -1
- package/dist/crafting/index.js +44 -15
- package/dist/crafting/index.js.map +1 -1
- package/dist/factions/actions/index.d.ts +36 -0
- package/dist/factions/actions/index.d.ts.map +1 -0
- package/dist/factions/actions/index.js +137 -0
- package/dist/factions/actions/index.js.map +1 -0
- package/dist/factions/index.d.ts +1 -0
- package/dist/factions/index.d.ts.map +1 -1
- package/dist/factions/index.js +14 -7
- package/dist/factions/index.js.map +1 -1
- package/dist/factions/profile-faction.d.ts +58 -0
- package/dist/factions/profile-faction.d.ts.map +1 -0
- package/dist/factions/profile-faction.js +63 -0
- package/dist/factions/profile-faction.js.map +1 -0
- package/dist/fleets/actions/add-ship.d.ts +35 -0
- package/dist/fleets/actions/add-ship.d.ts.map +1 -0
- package/dist/fleets/actions/add-ship.js +149 -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 +138 -0
- package/dist/fleets/actions/create-fleet.js.map +1 -0
- package/dist/fleets/actions/crew-transfer.d.ts +41 -0
- package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
- package/dist/fleets/actions/crew-transfer.js +114 -0
- package/dist/fleets/actions/crew-transfer.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 +38 -16
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +246 -153
- 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 +122 -0
- package/dist/fleets/actions/respawn.js.map +1 -0
- package/dist/fleets/actions/ship-import.d.ts +48 -0
- package/dist/fleets/actions/ship-import.d.ts.map +1 -0
- package/dist/fleets/actions/ship-import.js +332 -0
- package/dist/fleets/actions/ship-import.js.map +1 -0
- package/dist/fleets/cooldown.d.ts +44 -0
- package/dist/fleets/cooldown.d.ts.map +1 -0
- package/dist/fleets/cooldown.js +43 -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 +35 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +52 -2
- 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 +41 -0
- package/dist/fleets/movement-arithmetic.js.map +1 -0
- package/dist/fleets/subwarp-estimate.d.ts +70 -0
- package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
- package/dist/fleets/subwarp-estimate.js +38 -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 +68 -0
- package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
- package/dist/fleets/warp-lane-policy.js +91 -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 +56 -0
- package/dist/identity/actions/create-profile.d.ts.map +1 -0
- package/dist/identity/actions/create-profile.js +139 -0
- package/dist/identity/actions/create-profile.js.map +1 -0
- package/dist/identity/actions/index.d.ts +38 -0
- package/dist/identity/actions/index.d.ts.map +1 -0
- package/dist/identity/actions/index.js +130 -0
- package/dist/identity/actions/index.js.map +1 -0
- package/dist/identity/index.d.ts +16 -0
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +16 -0
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/permissions.d.ts +124 -0
- package/dist/identity/permissions.d.ts.map +1 -0
- package/dist/identity/permissions.js +171 -0
- package/dist/identity/permissions.js.map +1 -0
- 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 +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- 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/character-registration.d.ts +11 -0
- package/dist/internal/c4/character-registration.d.ts.map +1 -0
- package/dist/internal/c4/character-registration.js +23 -0
- package/dist/internal/c4/character-registration.js.map +1 -0
- package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
- package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
- package/dist/internal/c4/claim-stake.d.ts +4 -27
- package/dist/internal/c4/claim-stake.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake.js +25 -38
- package/dist/internal/c4/claim-stake.js.map +1 -1
- package/dist/internal/c4/combat.d.ts +0 -27
- package/dist/internal/c4/combat.d.ts.map +1 -1
- package/dist/internal/c4/combat.js +0 -33
- 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.d.ts +25 -33
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +53 -44
- 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 +30 -0
- package/dist/internal/c4/currency-cache.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-adapter.d.ts +12 -0
- package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
- package/dist/internal/c4/faction-adapter.js +52 -0
- package/dist/internal/c4/faction-adapter.js.map +1 -0
- package/dist/internal/c4/faction-enrollment.d.ts +6 -0
- package/dist/internal/c4/faction-enrollment.d.ts.map +1 -0
- package/dist/internal/c4/faction-enrollment.js +8 -0
- package/dist/internal/c4/faction-enrollment.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 +31 -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 +48 -0
- package/dist/internal/c4/faction-treasury.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +9 -57
- package/dist/internal/c4/factions.d.ts.map +1 -1
- package/dist/internal/c4/factions.js +21 -139
- 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 +7 -0
- package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
- package/dist/internal/c4/fleet-creation.js +180 -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 +15 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
- 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 +11 -0
- package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
- package/dist/internal/c4/fleet-ship-assembly.js +44 -0
- package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +45 -19
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +26 -7
- 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 +53 -0
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +130 -5
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +6 -9
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +3 -24
- package/dist/internal/c4/identity.js.map +1 -1
- package/dist/internal/c4/local-market-order.d.ts +31 -0
- package/dist/internal/c4/local-market-order.d.ts.map +1 -0
- package/dist/internal/c4/local-market-order.js +47 -0
- package/dist/internal/c4/local-market-order.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +0 -27
- package/dist/internal/c4/loyalty.d.ts.map +1 -1
- package/dist/internal/c4/loyalty.js +0 -33
- package/dist/internal/c4/loyalty.js.map +1 -1
- package/dist/internal/c4/market.d.ts +2 -38
- package/dist/internal/c4/market.d.ts.map +1 -1
- package/dist/internal/c4/market.js +13 -51
- 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/profile-creation.d.ts +17 -0
- package/dist/internal/c4/profile-creation.d.ts.map +1 -0
- package/dist/internal/c4/profile-creation.js +36 -0
- package/dist/internal/c4/profile-creation.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -1
- package/dist/internal/c4/profile-faction.js +2 -0
- package/dist/internal/c4/profile-faction.js.map +1 -1
- package/dist/internal/c4/profile-permissions.d.ts +14 -0
- package/dist/internal/c4/profile-permissions.d.ts.map +1 -0
- package/dist/internal/c4/profile-permissions.js +81 -0
- package/dist/internal/c4/profile-permissions.js.map +1 -0
- 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 +0 -27
- package/dist/internal/c4/rewards.d.ts.map +1 -1
- package/dist/internal/c4/rewards.js +0 -33
- 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 +306 -0
- package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
- package/dist/internal/c4/scan-lifecycle.js +258 -0
- package/dist/internal/c4/scan-lifecycle.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +1 -28
- package/dist/internal/c4/scanning.d.ts.map +1 -1
- package/dist/internal/c4/scanning.js +2 -33
- 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 +25 -21
- 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 +3 -41
- package/dist/internal/c4/starbase.js.map +1 -1
- package/dist/internal/c4/wallet-cargo-cache.d.ts +3 -0
- package/dist/internal/c4/wallet-cargo-cache.d.ts.map +1 -0
- package/dist/internal/c4/wallet-cargo-cache.js +24 -0
- package/dist/internal/c4/wallet-cargo-cache.js.map +1 -0
- package/dist/internal/c4/world.d.ts +36 -7
- package/dist/internal/c4/world.d.ts.map +1 -1
- package/dist/internal/c4/world.js +58 -25
- 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.d.ts +1 -0
- package/dist/internal/fleet.d.ts.map +1 -1
- package/dist/internal/fleet.js +3 -1
- package/dist/internal/fleet.js.map +1 -1
- package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
- package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
- package/dist/internal/loyalty-atlas-bank-state.js +10 -0
- package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
- package/dist/internal/planning/account-state.d.ts +4 -0
- package/dist/internal/planning/account-state.d.ts.map +1 -0
- package/dist/internal/planning/account-state.js +11 -0
- package/dist/internal/planning/account-state.js.map +1 -0
- 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 +20 -0
- package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
- package/dist/internal/planning/arrival-guards.js +187 -0
- package/dist/internal/planning/arrival-guards.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +65 -35
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +217 -70
- package/dist/internal/planning/authorization-adapter.js.map +1 -1
- 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 +58 -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 +86 -0
- package/dist/internal/planning/character-registration.js.map +1 -0
- package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
- package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
- package/dist/internal/planning/currency-cache-guard.js +32 -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 +198 -0
- package/dist/internal/planning/democracy-history.js.map +1 -0
- package/dist/internal/planning/faction-enrollment.d.ts +10 -0
- package/dist/internal/planning/faction-enrollment.d.ts.map +1 -0
- package/dist/internal/planning/faction-enrollment.js +46 -0
- package/dist/internal/planning/faction-enrollment.js.map +1 -0
- 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 +105 -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 +110 -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 +108 -0
- package/dist/internal/planning/fleet-creation.js.map +1 -0
- package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
- package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-crew-guard.js +47 -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 +131 -0
- package/dist/internal/planning/fleet-crew-transfer.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 +225 -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 +154 -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 +42 -0
- package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
- package/dist/internal/planning/fleet-docking.d.ts +10 -0
- package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
- package/dist/internal/planning/fleet-docking.js +85 -0
- package/dist/internal/planning/fleet-docking.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 +166 -0
- package/dist/internal/planning/fleet-respawn.js.map +1 -0
- package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
- package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
- package/dist/internal/planning/fleet-ship-assembly.js +137 -0
- package/dist/internal/planning/fleet-ship-assembly.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 +239 -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 +126 -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 +166 -0
- package/dist/internal/planning/local-market-order.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 +41 -0
- package/dist/internal/planning/mining-stop.js.map +1 -0
- package/dist/internal/planning/movement-character.d.ts +7 -0
- package/dist/internal/planning/movement-character.d.ts.map +1 -0
- package/dist/internal/planning/movement-character.js +41 -0
- package/dist/internal/planning/movement-character.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 +103 -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 +31 -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 +85 -0
- package/dist/internal/planning/open-signal.js.map +1 -0
- package/dist/internal/planning/recipe-state.d.ts +6 -0
- package/dist/internal/planning/recipe-state.d.ts.map +1 -0
- package/dist/internal/planning/recipe-state.js +20 -0
- package/dist/internal/planning/recipe-state.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/respawn-guards.d.ts +3 -0
- package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
- package/dist/internal/planning/respawn-guards.js +41 -0
- package/dist/internal/planning/respawn-guards.js.map +1 -0
- package/dist/internal/planning/runtime-guards.d.ts +43 -0
- package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
- package/dist/internal/planning/runtime-guards.js +638 -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 +94 -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 +196 -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 +244 -0
- package/dist/internal/planning/scan-detect.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/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 +52 -0
- package/dist/internal/planning/ship-import-funding.js.map +1 -0
- package/dist/internal/planning/ship-token.d.ts +9 -0
- package/dist/internal/planning/ship-token.d.ts.map +1 -0
- package/dist/internal/planning/ship-token.js +46 -0
- package/dist/internal/planning/ship-token.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 +93 -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/token-mint.d.ts +4 -0
- package/dist/internal/planning/token-mint.d.ts.map +1 -0
- package/dist/internal/planning/token-mint.js +15 -0
- package/dist/internal/planning/token-mint.js.map +1 -0
- 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/xp-runtime.d.ts +36 -0
- package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
- package/dist/internal/planning/xp-runtime.js +126 -0
- package/dist/internal/planning/xp-runtime.js.map +1 -0
- 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.map +1 -1
- package/dist/loyalty/actions/index.js +7 -20
- package/dist/loyalty/actions/index.js.map +1 -1
- package/dist/loyalty/index.d.ts.map +1 -1
- package/dist/loyalty/index.js +2 -6
- package/dist/loyalty/index.js.map +1 -1
- package/dist/markets/actions/index.d.ts +61 -3
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +142 -36
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts +43 -0
- package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
- package/dist/markets/actions/trade-faction-market.js +282 -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 +57 -10
- package/dist/markets/index.js.map +1 -1
- package/dist/mining/actions/index.d.ts +87 -0
- package/dist/mining/actions/index.d.ts.map +1 -0
- package/dist/mining/actions/index.js +332 -0
- package/dist/mining/actions/index.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 +9 -2
- package/dist/mining/index.d.ts.map +1 -1
- package/dist/mining/index.js +7 -2
- 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 +5 -0
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +30 -2
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts +18 -3
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +580 -38
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +243 -64
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +1012 -57
- package/dist/planning/index.js.map +1 -1
- 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 -30
- 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/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 +11 -1
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +42 -1
- package/dist/registry/cargo.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 +4 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/onboarding.d.ts +14 -0
- package/dist/registry/onboarding.d.ts.map +1 -0
- package/dist/registry/onboarding.js +37 -0
- package/dist/registry/onboarding.js.map +1 -0
- 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.js +19 -19
- package/dist/registry/ship-stats-snapshot.js.map +1 -1
- package/dist/registry/ships.d.ts +30 -0
- package/dist/registry/ships.d.ts.map +1 -0
- package/dist/registry/ships.js +62 -0
- package/dist/registry/ships.js.map +1 -0
- 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/scanning/actions/index.d.ts +116 -0
- package/dist/scanning/actions/index.d.ts.map +1 -0
- package/dist/scanning/actions/index.js +185 -0
- package/dist/scanning/actions/index.js.map +1 -0
- package/dist/scanning/index.d.ts +4 -1
- package/dist/scanning/index.d.ts.map +1 -1
- package/dist/scanning/index.js +12 -8
- 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 +111 -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 +121 -0
- package/dist/scanning/signals.d.ts.map +1 -0
- package/dist/scanning/signals.js +171 -0
- package/dist/scanning/signals.js.map +1 -0
- package/dist/world/index.d.ts +110 -5
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +109 -4
- package/dist/world/index.js.map +1 -1
- package/dist/world/planet-claim-stake-plots.d.ts +130 -0
- package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
- package/dist/world/planet-claim-stake-plots.js +110 -0
- package/dist/world/planet-claim-stake-plots.js.map +1 -0
- package/dist/world/starbase-status.d.ts +176 -0
- package/dist/world/starbase-status.d.ts.map +1 -0
- package/dist/world/starbase-status.js +153 -0
- package/dist/world/starbase-status.js.map +1 -0
- package/package.json +18 -2
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deriveCurrencyCache, validateCurrencyCache, } from '../../internal/c4/currency-cache.js';
|
|
2
|
+
import { resolveDockFunding } from '../../internal/planning/fleet-dock-funding.js';
|
|
3
|
+
import { validateFleetDockingPolicy } from '../../internal/planning/fleet-docking.js';
|
|
4
|
+
import { deriveFactionOwnershipAddress } from '../../internal/c4/factions.js';
|
|
5
|
+
import { regionContainsCoordinate } from '../../internal/c4/region-geometry.js';
|
|
6
|
+
import { hashMovementCharacter } from '../../internal/planning/movement-character.js';
|
|
7
|
+
import { resolveXpRuntime } from '../../internal/planning/xp-runtime.js';
|
|
8
|
+
import { getAddressEncoder, isAddress } from '@solana/kit';
|
|
2
9
|
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
3
10
|
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
4
11
|
import { deriveFleetAddress, fleetAccountDefinition, } from '../../internal/c4/fleet.js';
|
|
5
|
-
import { deriveFleetCrewBindingAddress, fleetCrewBindingAccountDefinition, } from '../../internal/c4/fleet-crew-binding.js';
|
|
12
|
+
import { deriveFleetCrewBindingAddress, fleetCrewBindingAccountDefinition, matchesFleetCrewBindingIdentity, } from '../../internal/c4/fleet-crew-binding.js';
|
|
6
13
|
import { deriveFactionRelationTrackerAddress, deriveRegionTrackerAddress, factionRelationTrackerAccountDefinition, regionTrackerAccountDefinition, } from '../../internal/c4/factions.js';
|
|
7
|
-
import {
|
|
14
|
+
import { FixedPoint, getFleetDecoder, getRegionTrackerDecoder, getStarSystemDecoder, } from '../../internal/c4/runtime-bindings.js';
|
|
8
15
|
import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
|
|
9
16
|
import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
|
|
10
17
|
import { buildStarSystemDiscoveryFilters, deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
|
|
11
18
|
import { requireGameAddress } from '../../internal/game-context.js';
|
|
12
|
-
import { adaptDockedToIdleInstruction,
|
|
19
|
+
import { adaptDockedToIdleInstruction, adaptIdleToDockedInstruction, adaptStartSubwarpInstruction, adaptStopSubwarpInstruction, adaptWarpLaneInstruction, adaptWarpToCoordinateInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
13
20
|
import { createPlan, } from '../../planning/index.js';
|
|
21
|
+
import { resolveFleetArrival } from '../../internal/planning/fleet-arrival.js';
|
|
14
22
|
const FLEET_STATE_IDLE = 'fleet.state.idle';
|
|
15
23
|
const FLEET_STATE_MOVEMENT_STARTED = 'fleet.state.movement-started';
|
|
16
24
|
function movementStartSemantics(fleet) {
|
|
@@ -32,36 +40,35 @@ function fail(message, address) {
|
|
|
32
40
|
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
33
41
|
}
|
|
34
42
|
function validateSettleArrivalOptions(value) {
|
|
43
|
+
const remedy = 'Pass only { authorization: { profile, authority, keyIndex } } for Career XP subwarp. Certificates and delegated sub-Profiles are not supported.';
|
|
35
44
|
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
36
|
-
throw new InvalidActionInputError('options', value, '
|
|
45
|
+
throw new InvalidActionInputError('options', value, 'one explicit arrival authorization route', remedy);
|
|
37
46
|
}
|
|
38
47
|
const record = value;
|
|
39
|
-
if (Object.keys(record).length
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
!
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return fail(`Fleet ${fleet.name} is destroyed and cannot have a movement arrival settled. Respawn the Fleet through an appropriate game client, refresh it, and retry only after starting warp or subwarp movement.`, fleet.address);
|
|
62
|
-
case 'claimStakeTransfer':
|
|
63
|
-
return fail(`Fleet ${fleet.name} is in a claimStakeTransfer state, not movement. Finish the Claim Stake transfer, refresh the Fleet, and retry only after starting warp or subwarp movement.`, fleet.address);
|
|
48
|
+
if (Object.keys(record).length === 1 &&
|
|
49
|
+
Object.hasOwn(record, 'authorization')) {
|
|
50
|
+
const auth = record.authorization;
|
|
51
|
+
if (auth !== null && typeof auth === 'object' && !Array.isArray(auth)) {
|
|
52
|
+
const fields = auth;
|
|
53
|
+
if (Object.keys(fields).length === 3 &&
|
|
54
|
+
Object.hasOwn(fields, 'keyIndex') &&
|
|
55
|
+
Object.hasOwn(fields, 'profile') &&
|
|
56
|
+
Object.hasOwn(fields, 'authority') &&
|
|
57
|
+
typeof fields.profile === 'string' &&
|
|
58
|
+
isAddress(fields.profile) &&
|
|
59
|
+
typeof fields.authority === 'string' &&
|
|
60
|
+
isAddress(fields.authority)) {
|
|
61
|
+
const authorization = {
|
|
62
|
+
profile: fields.profile,
|
|
63
|
+
authority: fields.authority,
|
|
64
|
+
keyIndex: fields.keyIndex,
|
|
65
|
+
};
|
|
66
|
+
validatePlanAuthorization(authorization);
|
|
67
|
+
return { authorization };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
64
70
|
}
|
|
71
|
+
throw new InvalidActionInputError('options', value, 'direct Profile authorization', remedy);
|
|
65
72
|
}
|
|
66
73
|
const STOP_SUBWARP_REMEDIES = {
|
|
67
74
|
claimStakeTransfer: 'Finish the Claim Stake transfer',
|
|
@@ -228,7 +235,7 @@ async function validateIdleFleetRead(account, fleet, game, actionLocation, planN
|
|
|
228
235
|
stateLocation?.y !== actionLocation.y) {
|
|
229
236
|
fail(`Fleet ${fleet.name} changed or no longer matches its configured Game, owner, address, PDA, or idle coordinate, movement state, and action coordinate. Refresh the Fleet and create a new ${planName} Plan before retrying.`, fleet.address);
|
|
230
237
|
}
|
|
231
|
-
const exact =
|
|
238
|
+
const exact = getFleetDecoder().decode(account.data);
|
|
232
239
|
let exactLocation = exact.location;
|
|
233
240
|
if (exact.state.__kind === 'MoveWarp') {
|
|
234
241
|
exactLocation = exact.state.fields[0].to;
|
|
@@ -248,59 +255,16 @@ function validateRegionTrackerRead(account, fleet, game, canonicalAddress, actio
|
|
|
248
255
|
if (account.address !== canonicalAddress || data.game !== game) {
|
|
249
256
|
fail(`Fleet ${fleet.name} cannot ${action} because RegionTracker does not match the configured Game or canonical PDA: ${account.address}; refresh the world region data for the configured Game and retry.`, account.address);
|
|
250
257
|
}
|
|
251
|
-
return
|
|
258
|
+
return getRegionTrackerDecoder().decode(account.data);
|
|
252
259
|
}
|
|
253
260
|
function validateCrewBindingRead(account, fleet, canonicalAddress) {
|
|
254
261
|
const data = fleetCrewBindingAccountDefinition.decode(account);
|
|
255
262
|
if (account.address !== canonicalAddress ||
|
|
256
|
-
data.
|
|
257
|
-
data.ownerProfile !== fleet.ownerProfile.address) {
|
|
263
|
+
!matchesFleetCrewBindingIdentity(data, fleet.address, fleet.ownerProfile.address)) {
|
|
258
264
|
fail(`FleetCrewBinding does not match Fleet ${fleet.address}, its owner Profile, or its canonical PDA: ${account.address}. Refresh the Fleet crew registration or remove the invalid binding before retrying.`, account.address);
|
|
259
265
|
}
|
|
260
266
|
return data;
|
|
261
267
|
}
|
|
262
|
-
function pointIsOnSegment(point, start, end) {
|
|
263
|
-
const cross = (point.y - start.y) * (end.x - start.x) -
|
|
264
|
-
(point.x - start.x) * (end.y - start.y);
|
|
265
|
-
return (cross === 0n &&
|
|
266
|
-
point.x >= (start.x < end.x ? start.x : end.x) &&
|
|
267
|
-
point.x <= (start.x > end.x ? start.x : end.x) &&
|
|
268
|
-
point.y >= (start.y < end.y ? start.y : end.y) &&
|
|
269
|
-
point.y <= (start.y > end.y ? start.y : end.y));
|
|
270
|
-
}
|
|
271
|
-
function regionContainsCoordinate(region, coordinate) {
|
|
272
|
-
const boundingBox = {
|
|
273
|
-
maxX: region.boundingBox.maxX.raw,
|
|
274
|
-
maxY: region.boundingBox.maxY.raw,
|
|
275
|
-
minX: region.boundingBox.minX.raw,
|
|
276
|
-
minY: region.boundingBox.minY.raw,
|
|
277
|
-
};
|
|
278
|
-
const border = region.border.map(([x, y]) => ({ x: x.raw, y: y.raw }));
|
|
279
|
-
if (border.length < 3 ||
|
|
280
|
-
coordinate.x < boundingBox.minX ||
|
|
281
|
-
coordinate.x > boundingBox.maxX ||
|
|
282
|
-
coordinate.y < boundingBox.minY ||
|
|
283
|
-
coordinate.y > boundingBox.maxY) {
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
let inside = false;
|
|
287
|
-
for (let index = 0; index < border.length; index += 1) {
|
|
288
|
-
const start = border[index];
|
|
289
|
-
const end = border[(index + 1) % border.length];
|
|
290
|
-
if (pointIsOnSegment(coordinate, start, end))
|
|
291
|
-
return true;
|
|
292
|
-
if (start.y > coordinate.y !== end.y > coordinate.y) {
|
|
293
|
-
const deltaY = end.y - start.y;
|
|
294
|
-
const pointSide = (coordinate.x - start.x) * deltaY;
|
|
295
|
-
const edgeSide = (coordinate.y - start.y) * (end.x - start.x);
|
|
296
|
-
if ((deltaY > 0n && pointSide < edgeSide) ||
|
|
297
|
-
(deltaY < 0n && pointSide > edgeSide)) {
|
|
298
|
-
inside = !inside;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
return inside;
|
|
303
|
-
}
|
|
304
268
|
function resolveRegionId(tracker, coordinate, displayCoordinate, label, fleet, trackerAddress) {
|
|
305
269
|
const region = tracker.regions.unsizedList.find((candidate) => regionContainsCoordinate(candidate, coordinate));
|
|
306
270
|
if (region === undefined) {
|
|
@@ -311,8 +275,8 @@ function resolveRegionId(tracker, coordinate, displayCoordinate, label, fleet, t
|
|
|
311
275
|
function exactCoordinate(coordinate) {
|
|
312
276
|
const spec = { fractionalBits: 56, signed: true, totalBits: 64 };
|
|
313
277
|
return {
|
|
314
|
-
x:
|
|
315
|
-
y:
|
|
278
|
+
x: FixedPoint.fromNumber(coordinate.x, spec).raw,
|
|
279
|
+
y: FixedPoint.fromNumber(coordinate.y, spec).raw,
|
|
316
280
|
};
|
|
317
281
|
}
|
|
318
282
|
async function resolveCoordinateMovement(ctx, fleet, authorization, actionLocation, destination) {
|
|
@@ -362,7 +326,13 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
362
326
|
validateDestination(fleet, actionLocation, options.destination);
|
|
363
327
|
const game = requireGameAddress(ctx);
|
|
364
328
|
const resolved = await resolveCoordinateMovement(ctx, fleet, options.authorization, actionLocation, options.destination);
|
|
329
|
+
const xp = await resolveXpRuntime(ctx, {
|
|
330
|
+
game,
|
|
331
|
+
character: resolved.character,
|
|
332
|
+
profile: options.authorization.profile,
|
|
333
|
+
});
|
|
365
334
|
const common = {
|
|
335
|
+
...xp.accounts,
|
|
366
336
|
authorization: options.authorization,
|
|
367
337
|
character: resolved.character,
|
|
368
338
|
...(resolved.crewBinding === undefined
|
|
@@ -386,10 +356,27 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
386
356
|
const verb = mode === 'subwarp' ? 'Subwarp' : 'Warp';
|
|
387
357
|
const description = `${verb} fleet ${fleet.name} to coordinate (${String(options.destination.x)}, ${String(options.destination.y)}).`;
|
|
388
358
|
const accounts = [
|
|
359
|
+
{
|
|
360
|
+
kind: 'xp-runtime',
|
|
361
|
+
address: game,
|
|
362
|
+
intent: xp.intent,
|
|
363
|
+
accounts: xp.accounts,
|
|
364
|
+
describes: 'The configured Game and canonical Character XP accounts remain eligible for movement.',
|
|
365
|
+
},
|
|
389
366
|
await precondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
390
367
|
? `Fleet ${fleet.name} remains idle at coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
391
368
|
: `Fleet ${fleet.name} remains ${fleet.state.kind} with action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
392
|
-
|
|
369
|
+
{
|
|
370
|
+
kind: 'movement-character',
|
|
371
|
+
address: resolved.character,
|
|
372
|
+
game,
|
|
373
|
+
profile: options.authorization.profile,
|
|
374
|
+
stateHash: await hashMovementCharacter(resolved.characterAccount, {
|
|
375
|
+
game,
|
|
376
|
+
profile: options.authorization.profile,
|
|
377
|
+
}),
|
|
378
|
+
describes: 'The canonical Character retains its movement modifiers and non-accrual state.',
|
|
379
|
+
},
|
|
393
380
|
await precondition(resolved.regionTrackerAccount, `The configured RegionTracker continues to map Fleet ${fleet.name}'s current and destination coordinates.`),
|
|
394
381
|
...(resolved.crewBindingAccount === undefined
|
|
395
382
|
? []
|
|
@@ -411,31 +398,6 @@ async function planCoordinateMovement(mode, ctx, fleet, options) {
|
|
|
411
398
|
summary: description,
|
|
412
399
|
});
|
|
413
400
|
}
|
|
414
|
-
async function deriveCurrencyCacheAddress(game) {
|
|
415
|
-
const [address] = await getProgramDerivedAddress({
|
|
416
|
-
programAddress: sage.SAGE_PROGRAM_ADDRESS,
|
|
417
|
-
seeds: [
|
|
418
|
-
getBytesEncoder().encode(new TextEncoder().encode('CurrencyConfig')),
|
|
419
|
-
getAddressEncoder().encode(game),
|
|
420
|
-
],
|
|
421
|
-
});
|
|
422
|
-
return address;
|
|
423
|
-
}
|
|
424
|
-
function validateCurrencyCacheRead(account, fleet, game, canonicalAddress) {
|
|
425
|
-
const decoder = sage.getCurrencyConfigCacheDecoder();
|
|
426
|
-
const discriminator = sage.CURRENCY_CONFIG_CACHE_DISCRIMINATOR;
|
|
427
|
-
const validDiscriminator = discriminator.every((byte, index) => account.data[index] === byte);
|
|
428
|
-
if (account.address !== canonicalAddress ||
|
|
429
|
-
account.owner !== sage.SAGE_PROGRAM_ADDRESS ||
|
|
430
|
-
account.data.length !== decoder.fixedSize ||
|
|
431
|
-
!validDiscriminator) {
|
|
432
|
-
fail(`Fleet ${fleet.name} cannot use a warp lane because CurrencyCache ${account.address} does not match the configured Game, canonical PDA, owner, or pinned account layout. Refresh the Game currency configuration and retry.`, account.address);
|
|
433
|
-
}
|
|
434
|
-
const decoded = decoder.decode(account.data);
|
|
435
|
-
if (decoded.gameId !== game) {
|
|
436
|
-
fail(`Fleet ${fleet.name} cannot use a warp lane because CurrencyCache ${account.address} does not match the configured Game or canonical PDA. Refresh the Game currency configuration and retry.`, account.address);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
401
|
async function validateLaneSystemRead(account, fleet, game, label) {
|
|
440
402
|
const data = starSystemAccountDefinition.decode(account);
|
|
441
403
|
const canonicalAddress = await deriveStarSystemAddress(game, data.systemId);
|
|
@@ -446,7 +408,7 @@ async function validateLaneSystemRead(account, fleet, game, label) {
|
|
|
446
408
|
}
|
|
447
409
|
function hasExactSystemLocation(account, location) {
|
|
448
410
|
starSystemAccountDefinition.decode(account);
|
|
449
|
-
const exact =
|
|
411
|
+
const exact = getStarSystemDecoder().decode(account.data);
|
|
450
412
|
return (exact.coordinates[0].raw === location.x &&
|
|
451
413
|
exact.coordinates[1].raw === location.y);
|
|
452
414
|
}
|
|
@@ -469,7 +431,7 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
469
431
|
}
|
|
470
432
|
const [character, currencyCache, factionRelationTracker, regionTracker] = await Promise.all([
|
|
471
433
|
findCharacterPda(options.authorization.profile, game),
|
|
472
|
-
|
|
434
|
+
deriveCurrencyCache(game).then(([address]) => address),
|
|
473
435
|
deriveFactionRelationTrackerAddress(game),
|
|
474
436
|
deriveRegionTrackerAddress(game),
|
|
475
437
|
]);
|
|
@@ -491,7 +453,7 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
491
453
|
const factionCandidate = reads[destinationOffset + 2];
|
|
492
454
|
const regionCandidate = reads[destinationOffset + 3];
|
|
493
455
|
const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available at ${fleet.address}. Refresh the Fleet and retry planning the warp lane.`, fleet.address);
|
|
494
|
-
const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation);
|
|
456
|
+
const validatedFleet = await validateIdleFleetRead(fleetAccount, fleet, game, actionLocation, 'warp lane');
|
|
495
457
|
const exactSourceCandidates = sourceCandidates.flatMap((candidate, index) => {
|
|
496
458
|
const account = reads[sourceOffset + index];
|
|
497
459
|
return account !== undefined &&
|
|
@@ -517,7 +479,7 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
517
479
|
validateCharacterForCoordinateMovement(characterAccount, fleet, options.authorization.profile, game, character);
|
|
518
480
|
const source = await validateLaneSystemRead(sourceAccount, fleet, game, 'source');
|
|
519
481
|
const destination = await validateLaneSystemRead(destinationAccount, fleet, game, 'destination');
|
|
520
|
-
|
|
482
|
+
await validateCurrencyCache(currencyCacheAccount, game, 'warp lane');
|
|
521
483
|
validateFactionRelationTrackerRead(factionRelationTrackerAccount, fleet, game, factionRelationTracker);
|
|
522
484
|
validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker);
|
|
523
485
|
if (sourceSystem === options.destinationSystem) {
|
|
@@ -547,7 +509,15 @@ async function resolveWarpLane(ctx, fleet, actionLocation, options) {
|
|
|
547
509
|
*
|
|
548
510
|
* The planner resolves the source Star System from the Fleet's action coordinate,
|
|
549
511
|
* proves connectivity from that System's decoded connections, and resolves all
|
|
550
|
-
* generated instruction accounts internally.
|
|
512
|
+
* generated instruction accounts internally. CurrencyCache shared accounting may
|
|
513
|
+
* change; canonical identity/layout and the existing toll-input guards remain
|
|
514
|
+
* checked before signing. Refresh and recreate older Plans to use this guard.
|
|
515
|
+
*
|
|
516
|
+
* Connectivity does not guarantee eligibility. The program remains authoritative
|
|
517
|
+
* for faction-relationship and destination-risk checks and any ATLAS toll.
|
|
518
|
+
* Tested current PTR routes succeed with empty Fuel tanks. This planner does
|
|
519
|
+
* not estimate lane costs or treat enabled cross-faction economics as blanket
|
|
520
|
+
* permission.
|
|
551
521
|
*
|
|
552
522
|
* @example
|
|
553
523
|
* ```ts
|
|
@@ -567,24 +537,54 @@ export async function planFleetWarpLane(ctx, fleet, options) {
|
|
|
567
537
|
const actionLocation = requireRefreshableIdleState(fleet, 'warp through a lane');
|
|
568
538
|
const game = requireGameAddress(ctx);
|
|
569
539
|
const resolved = await resolveWarpLane(ctx, fleet, actionLocation, options);
|
|
540
|
+
const xp = await resolveXpRuntime(ctx, {
|
|
541
|
+
game,
|
|
542
|
+
character: resolved.character,
|
|
543
|
+
profile: options.authorization.profile,
|
|
544
|
+
});
|
|
570
545
|
const description = `Warp fleet ${fleet.name} from Star System ${resolved.source.name} to Star System ${resolved.destination.name} via warp lane.`;
|
|
571
546
|
return createPlan({
|
|
572
547
|
kind: 'fleet.warp-lane',
|
|
573
|
-
preconditions:
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
:
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
548
|
+
preconditions: [
|
|
549
|
+
{
|
|
550
|
+
kind: 'xp-runtime',
|
|
551
|
+
address: game,
|
|
552
|
+
intent: xp.intent,
|
|
553
|
+
accounts: xp.accounts,
|
|
554
|
+
describes: 'The configured Game and canonical Character XP accounts remain eligible for movement.',
|
|
555
|
+
},
|
|
556
|
+
...(await Promise.all([
|
|
557
|
+
precondition(resolved.fleetAccount, fleet.state.kind === 'idle'
|
|
558
|
+
? `Fleet ${fleet.name} remains idle at Star System ${resolved.source.name}.`
|
|
559
|
+
: `Fleet ${fleet.name} remains ${fleet.state.kind} at action source Star System ${resolved.source.name}.`),
|
|
560
|
+
hashMovementCharacter(resolved.characterAccount, {
|
|
561
|
+
game,
|
|
562
|
+
profile: options.authorization.profile,
|
|
563
|
+
}).then((stateHash) => ({
|
|
564
|
+
kind: 'movement-character',
|
|
565
|
+
address: resolved.character,
|
|
566
|
+
game,
|
|
567
|
+
profile: options.authorization.profile,
|
|
568
|
+
stateHash,
|
|
569
|
+
describes: 'The canonical Character retains its movement modifiers and non-accrual state.',
|
|
570
|
+
})),
|
|
571
|
+
precondition(resolved.sourceAccount, `Source Star System ${resolved.source.name} remains at Fleet ${fleet.name}'s action coordinate with a connection to system id ${String(resolved.destination.systemId)}.`),
|
|
572
|
+
precondition(resolved.destinationAccount, `Destination Star System ${resolved.destination.name} remains system id ${String(resolved.destination.systemId)} in the configured Game.`),
|
|
573
|
+
Promise.resolve({
|
|
574
|
+
kind: 'currency-cache',
|
|
575
|
+
address: resolved.currencyCacheAccount.address,
|
|
576
|
+
game,
|
|
577
|
+
describes: 'The canonical CurrencyCache retains its supported Game identity and layout; shared accounting may change.',
|
|
578
|
+
}),
|
|
579
|
+
precondition(resolved.factionRelationTrackerAccount, 'The canonical FactionRelationTracker remains assigned to the configured Game.'),
|
|
580
|
+
precondition(resolved.regionTrackerAccount, 'The canonical RegionTracker remains assigned to the configured Game.'),
|
|
581
|
+
])),
|
|
582
|
+
],
|
|
584
583
|
steps: [
|
|
585
584
|
{
|
|
586
585
|
describes: description,
|
|
587
586
|
instruction: adaptWarpLaneInstruction({
|
|
587
|
+
...xp.accounts,
|
|
588
588
|
authorization: options.authorization,
|
|
589
589
|
character: resolved.character,
|
|
590
590
|
currencyCache: resolved.currencyCache,
|
|
@@ -634,47 +634,73 @@ export function planFleetSubwarp(ctx, fleet, options) {
|
|
|
634
634
|
export function planFleetWarpToCoordinate(ctx, fleet, options) {
|
|
635
635
|
return planCoordinateMovement('warp', ctx, fleet, options);
|
|
636
636
|
}
|
|
637
|
-
/** Plans settlement
|
|
637
|
+
/** Plans settlement after chain time confirms the scheduled Fleet journey duration has elapsed.
|
|
638
638
|
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
*
|
|
643
|
-
*
|
|
639
|
+
* Game version 2 subwarp requires explicit direct Profile authorization and
|
|
640
|
+
* existing reconciled Career XP accounts. Warp settlement is unsupported.
|
|
641
|
+
* Journeys whose scheduled duration has not elapsed and Idle Fleets fail locally.
|
|
642
|
+
* Planning and execution read fresh accounts; no host clock is used.
|
|
643
|
+
*
|
|
644
|
+
* Settlement does not guarantee reaching the destination: insufficient Fuel can
|
|
645
|
+
* leave the Fleet Idle short of it. Low Fuel produces a planning-time warning,
|
|
646
|
+
* not a rejection. Inspect refreshed state and location after confirmation.
|
|
647
|
+
* Subwarp settles fuel and XP and may refund released storage rent to the
|
|
648
|
+
* Profile. Warp cooldown remains independent. Fresh checks cannot prevent a
|
|
649
|
+
* concurrent transaction from starting another journey before execution; the
|
|
650
|
+
* authorized instruction could stop that new journey. Intentional early
|
|
651
|
+
* stopping remains the separate {@link planFleetStopSubwarp} operation.
|
|
644
652
|
*
|
|
645
653
|
* @example
|
|
646
654
|
* ```ts
|
|
647
655
|
* declare const ctx: SageContext;
|
|
648
656
|
* declare const fleet: FleetSnapshot;
|
|
649
|
-
* declare const
|
|
650
|
-
* const plan = await planFleetSettleArrival(ctx, fleet, {
|
|
657
|
+
* declare const authorization: PlanAuthorization;
|
|
658
|
+
* const plan = await planFleetSettleArrival(ctx, fleet, { authorization });
|
|
651
659
|
* console.log(plan.describe());
|
|
652
660
|
* ```
|
|
653
661
|
*/
|
|
654
662
|
export async function planFleetSettleArrival(ctx, fleet, input) {
|
|
655
|
-
const
|
|
656
|
-
const
|
|
657
|
-
const
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
663
|
+
const options = validateSettleArrivalOptions(input);
|
|
664
|
+
const { intent, character, regionTracker, xp, lowFuel } = await resolveFleetArrival(ctx, fleet.address, options);
|
|
665
|
+
const fuelWarning = lowFuel
|
|
666
|
+
? ' Fuel is below the recorded journey budget (at planning); may stop short with no Fuel.'
|
|
667
|
+
: '';
|
|
668
|
+
const description = `Settle subwarp: fuel and Career XP; possible rent refund to Profile ${intent.profile}. Settlement does not guarantee reaching the destination.${fuelWarning} Read confirmed state/location. A race could stop a new journey.`;
|
|
669
|
+
const instruction = adaptStopSubwarpInstruction({
|
|
670
|
+
authorization: intent.authorization,
|
|
671
|
+
character,
|
|
672
|
+
fleet: intent.fleet,
|
|
673
|
+
game: intent.game,
|
|
674
|
+
regionTracker,
|
|
675
|
+
...xp.accounts,
|
|
676
|
+
});
|
|
662
677
|
return createPlan({
|
|
663
678
|
kind: 'fleet.settle-arrival',
|
|
664
|
-
preconditions: [
|
|
679
|
+
preconditions: [
|
|
680
|
+
{
|
|
681
|
+
kind: 'fleet-arrival',
|
|
682
|
+
address: intent.fleet,
|
|
683
|
+
intent,
|
|
684
|
+
character,
|
|
685
|
+
regionTracker,
|
|
686
|
+
describes: 'The owned journey must still have elapsed on chain; direct Profile authority must remain valid.',
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
kind: 'xp-runtime',
|
|
690
|
+
address: intent.game,
|
|
691
|
+
intent: xp.intent,
|
|
692
|
+
accounts: xp.accounts,
|
|
693
|
+
describes: 'The current Game runtime and required Career XP accounts must remain supported; XP balances may change.',
|
|
694
|
+
},
|
|
695
|
+
],
|
|
665
696
|
steps: [
|
|
666
697
|
{
|
|
667
698
|
describes: description,
|
|
668
|
-
instruction
|
|
669
|
-
|
|
670
|
-
fleet: fleet.address,
|
|
671
|
-
funder,
|
|
672
|
-
game,
|
|
673
|
-
}),
|
|
674
|
-
signers: [funder],
|
|
699
|
+
instruction,
|
|
700
|
+
signers: [intent.authorization.authority],
|
|
675
701
|
},
|
|
676
702
|
],
|
|
677
|
-
summary: `Settle
|
|
703
|
+
summary: `Settle elapsed subwarp for fleet ${fleet.name}.`,
|
|
678
704
|
});
|
|
679
705
|
}
|
|
680
706
|
/** Plans an early Fleet subwarp stop without signing, simulation, or write RPC.
|
|
@@ -704,14 +730,28 @@ export async function planFleetStopSubwarp(ctx, fleet, options) {
|
|
|
704
730
|
const [regionCandidate] = await readContextRawAccounts(ctx, [regionTracker]);
|
|
705
731
|
const regionTrackerAccount = requireRawAccount(regionCandidate, `Canonical RegionTracker ${regionTracker} is missing. Verify the configured Game and cluster, refresh world region data, and retry stopping Fleet ${fleet.name}.`, regionTracker);
|
|
706
732
|
validateRegionTrackerRead(regionTrackerAccount, fleet, game, regionTracker, 'stop subwarp');
|
|
733
|
+
const xp = await resolveXpRuntime(ctx, {
|
|
734
|
+
game,
|
|
735
|
+
character,
|
|
736
|
+
profile: options.authorization.profile,
|
|
737
|
+
});
|
|
707
738
|
const description = `Stop subwarp early for fleet ${fleet.name}; leave it idle if the trip already completed.`;
|
|
708
739
|
return createPlan({
|
|
709
740
|
kind: 'fleet.stop-subwarp',
|
|
710
|
-
preconditions: [
|
|
741
|
+
preconditions: [
|
|
742
|
+
{
|
|
743
|
+
kind: 'xp-runtime',
|
|
744
|
+
address: game,
|
|
745
|
+
intent: xp.intent,
|
|
746
|
+
accounts: xp.accounts,
|
|
747
|
+
describes: 'The configured Game and canonical Character XP accounts remain eligible for movement.',
|
|
748
|
+
},
|
|
749
|
+
],
|
|
711
750
|
steps: [
|
|
712
751
|
{
|
|
713
752
|
describes: description,
|
|
714
753
|
instruction: adaptStopSubwarpInstruction({
|
|
754
|
+
...xp.accounts,
|
|
715
755
|
authorization: options.authorization,
|
|
716
756
|
character,
|
|
717
757
|
fleet: fleet.address,
|
|
@@ -850,24 +890,71 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
850
890
|
]);
|
|
851
891
|
const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot dock because Character ${characterAddress} is not registered at Starbase ${system.name} in Star System ${systemAddress}. Register the Character at this Starbase before docking, refresh the Fleet, and retry.`, starbasePlayerAddress);
|
|
852
892
|
validateStarbasePlayerRead(playerAccount, fleet, options.authorization.profile, characterAddress, systemAddress, starbasePlayerAddress, 'dock');
|
|
893
|
+
const [tracker, ownership] = await Promise.all([
|
|
894
|
+
deriveFactionRelationTrackerAddress(game),
|
|
895
|
+
deriveFactionOwnershipAddress(game, 'starbase', systemAddress),
|
|
896
|
+
]);
|
|
897
|
+
const policy = {
|
|
898
|
+
kind: 'fleet-docking-policy',
|
|
899
|
+
address: tracker,
|
|
900
|
+
game,
|
|
901
|
+
system: systemAddress,
|
|
902
|
+
ownership,
|
|
903
|
+
describes: 'Docking retains qualified default faction gating and legacy System control.',
|
|
904
|
+
};
|
|
905
|
+
const [trackerAccount, ownershipAccount] = await readContextRawAccounts(ctx, [
|
|
906
|
+
tracker,
|
|
907
|
+
ownership,
|
|
908
|
+
]);
|
|
909
|
+
await validateFleetDockingPolicy(trackerAccount, ownershipAccount, policy);
|
|
853
910
|
const instruction = adaptIdleToDockedInstruction({
|
|
911
|
+
factionRelationTracker: tracker,
|
|
912
|
+
factionOwnership: ownership,
|
|
854
913
|
authorization: options.authorization,
|
|
855
914
|
fleet: fleet.address,
|
|
856
915
|
game,
|
|
857
916
|
systemAndStarbasePlayerStarbasePlayer: starbasePlayerAddress,
|
|
858
917
|
systemAndStarbasePlayerSystem: systemAddress,
|
|
859
918
|
});
|
|
919
|
+
const fundingIntent = {
|
|
920
|
+
address: fleet.address,
|
|
921
|
+
game,
|
|
922
|
+
profile: options.authorization.profile,
|
|
923
|
+
authority: options.authorization.authority,
|
|
924
|
+
certificate: instruction.accounts[2].address,
|
|
925
|
+
keyIndex: options.authorization.keyIndex,
|
|
926
|
+
character: characterAddress,
|
|
927
|
+
system: systemAddress,
|
|
928
|
+
starbasePlayer: starbasePlayerAddress,
|
|
929
|
+
};
|
|
930
|
+
const amounts = await resolveDockFunding(ctx, fundingIntent, [
|
|
931
|
+
fleetAccount,
|
|
932
|
+
playerAccount,
|
|
933
|
+
systemAccount,
|
|
934
|
+
]);
|
|
935
|
+
const funding = {
|
|
936
|
+
kind: 'fleet-dock-funding',
|
|
937
|
+
...fundingIntent,
|
|
938
|
+
...amounts,
|
|
939
|
+
describes: amounts.status === 'available'
|
|
940
|
+
? `Maximum gross Profile storage debit: ${String(amounts.maximumProfileDebit)} lamports. No refunds or surplus are credited; transaction fees are separate. Rechecked before signing, not enforced atomically on chain.`
|
|
941
|
+
: `Docking storage debit bounds are unavailable (${amounts.reason}); this does not imply zero Profile debit. Inspect simulation and fund the Profile explicitly if needed; transaction fees are separate.`,
|
|
942
|
+
};
|
|
860
943
|
const description = `Dock fleet ${fleet.name} at the Starbase in Star System ${system.name}.`;
|
|
861
944
|
return createPlan({
|
|
862
945
|
kind: 'fleet.dock',
|
|
863
|
-
preconditions:
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
946
|
+
preconditions: [
|
|
947
|
+
policy,
|
|
948
|
+
...(await Promise.all([
|
|
949
|
+
precondition(fleetAccount, fleet.state.kind === 'idle'
|
|
950
|
+
? `Fleet ${fleet.name} remains idle at Starbase System ${system.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`
|
|
951
|
+
: `Fleet ${fleet.name} remains ${fleet.state.kind} at Starbase System ${system.name} action coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
952
|
+
precondition(characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
|
|
953
|
+
precondition(systemAccount, `Star System ${system.name} remains the Starbase System at Fleet ${fleet.name} coordinate (${String(actionLocation.x)}, ${String(actionLocation.y)}).`),
|
|
954
|
+
precondition(playerAccount, `The Starbase Player remains registered for Fleet ${fleet.name} at Starbase ${system.name}.`),
|
|
955
|
+
])),
|
|
956
|
+
funding,
|
|
957
|
+
],
|
|
871
958
|
steps: [
|
|
872
959
|
{
|
|
873
960
|
describes: description,
|
|
@@ -878,4 +965,10 @@ export async function planFleetDock(ctx, fleet, options) {
|
|
|
878
965
|
summary: `Dock fleet ${fleet.name} at Starbase ${system.name}.`,
|
|
879
966
|
});
|
|
880
967
|
}
|
|
968
|
+
export { planDepositShipsToGame, } from './ship-import.js';
|
|
969
|
+
export { planCreateFleet, } from './create-fleet.js';
|
|
970
|
+
export { planAddShipToFleet, } from './add-ship.js';
|
|
971
|
+
export { planFleetStartRespawn, planFleetCompleteRespawn, } from './respawn.js';
|
|
972
|
+
export { planLoadFleetCrew, planUnloadFleetCrew, } from './crew-transfer.js';
|
|
973
|
+
export { getFleetDockDebitBounds, } from './dock-bounds.js';
|
|
881
974
|
//# sourceMappingURL=index.js.map
|