@aephia/atlas-kit 0.6.0-next.12 → 0.6.0-next.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/cargo/actions/deposit.d.ts +2 -2
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +28 -117
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts +1 -1
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +28 -84
- 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 -53
- 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 -164
- 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 +14 -1
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +399 -592
- 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 +25 -12
- 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 +4 -4
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +207 -261
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/combat/index.d.ts +13 -3
- package/dist/combat/index.d.ts.map +1 -1
- package/dist/combat/index.js +9 -16
- package/dist/combat/index.js.map +1 -1
- package/dist/crafting/actions/index.d.ts +12 -1
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +181 -303
- 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 +49 -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 +1 -1
- package/dist/factions/index.d.ts.map +1 -1
- package/dist/factions/index.js +16 -18
- 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 +35 -0
- package/dist/fleets/actions/add-ship.d.ts.map +1 -0
- package/dist/fleets/actions/add-ship.js +120 -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 +41 -0
- package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
- package/dist/fleets/actions/crew-transfer.js +94 -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 +64 -24
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +385 -334
- 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 +67 -91
- package/dist/fleets/actions/ship-import.js.map +1 -1
- 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 +54 -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 +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 +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 +4 -4
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +51 -29
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/identity/index.d.ts +5 -2
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +6 -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 +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/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/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-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 +4 -4
- package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.js +2 -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 +38 -83
- package/dist/internal/c4/claim-stake.js.map +1 -1
- 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.d.ts +25 -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 +81 -0
- package/dist/internal/c4/discriminators.d.ts.map +1 -0
- package/dist/internal/c4/discriminators.js +166 -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 +13 -57
- package/dist/internal/c4/factions.d.ts.map +1 -1
- package/dist/internal/c4/factions.js +79 -222
- 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 +171 -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-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 +48 -19
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +50 -87
- 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 +76 -30
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +173 -124
- 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 +87 -0
- package/dist/internal/c4/loot.d.ts.map +1 -0
- package/dist/internal/c4/loot.js +108 -0
- package/dist/internal/c4/loot.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 +32 -160
- 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 +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 +31 -0
- package/dist/internal/c4/pda.d.ts.map +1 -1
- package/dist/internal/c4/pda.js +60 -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 +2 -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 +306 -0
- package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
- package/dist/internal/c4/scan-lifecycle.js +235 -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 +32 -103
- 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 +45 -43
- 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/wallet-cargo-cache.js +2 -1
- package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
- 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 +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.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 +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 +45 -37
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +169 -81
- 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 +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/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 +33 -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/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 +28 -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 +123 -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 +209 -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 +43 -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 +71 -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 +164 -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 +118 -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/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/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 +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 +85 -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 +33 -0
- package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
- package/dist/internal/planning/own-starbase-facts.js +49 -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 +168 -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/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 +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 +640 -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 +197 -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 +245 -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 +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 +2 -41
- 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-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/token-mint.d.ts +4 -0
- package/dist/internal/planning/token-mint.d.ts.map +1 -0
- package/dist/internal/planning/token-mint.js +16 -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/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 +117 -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 +15 -45
- package/dist/loyalty/actions/index.js.map +1 -1
- package/dist/loyalty/index.d.ts.map +1 -1
- package/dist/loyalty/index.js +6 -18
- 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 +230 -178
- 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 +277 -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 +87 -0
- package/dist/mining/actions/index.d.ts.map +1 -0
- package/dist/mining/actions/index.js +319 -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 +10 -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 +504 -72
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +196 -149
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +31 -355
- 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 +127 -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 +20 -20
- 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 +190 -224
- 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 +20 -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.js +19 -19
- 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 +191 -0
- package/dist/scanning/actions/index.js.map +1 -0
- package/dist/scanning/index.d.ts +5 -2
- package/dist/scanning/index.d.ts.map +1 -1
- package/dist/scanning/index.js +17 -21
- 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/starbases/actions/index.d.ts +1 -1
- package/dist/starbases/actions/index.d.ts.map +1 -1
- package/dist/starbases/actions/index.js +16 -58
- package/dist/starbases/actions/index.js.map +1 -1
- package/dist/starbases/index.d.ts.map +1 -1
- package/dist/starbases/index.js +3 -11
- package/dist/starbases/index.js.map +1 -1
- package/dist/world/index.d.ts +110 -5
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +112 -15
- 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 +10 -2
package/dist/markets/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AccountDecodeError } from '../client/errors.js';
|
|
1
|
+
import { AccountDecodeError, InvalidDerivationInputError, } from '../client/errors.js';
|
|
2
2
|
import { entityRef } from '../client/refs.js';
|
|
3
3
|
import { deriveFactionMarketAddress as deriveFactionMarketAddressInternal, deriveLocalMarketAddress as deriveLocalMarketAddressInternal, discoverLocalMarketsBySystem, factionMarketAccountDefinition, localMarketAccountDefinition, } from '../internal/c4/market.js';
|
|
4
4
|
import { requireGameAddress } from '../internal/game-context.js';
|
|
5
5
|
import { attachJsonSerialization } from '../internal/json.js';
|
|
6
|
-
import { attachReadMeta, readMeta } from '../internal/read-meta.js';
|
|
6
|
+
import { attachReadMeta, envelopeMeta, readMeta, } from '../internal/read-meta.js';
|
|
7
7
|
import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
|
|
8
8
|
import { resolveCargo, } from '../registry/index.js';
|
|
9
9
|
/** Derives a Local Market PDA from its verified generated seeds.
|
|
@@ -27,19 +27,58 @@ export function deriveLocalMarketAddress(system, cargoId, starbaseSequenceId) {
|
|
|
27
27
|
export function deriveFactionMarketAddress(game, system, starbaseSequenceId) {
|
|
28
28
|
return deriveFactionMarketAddressInternal(game, system, starbaseSequenceId);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
30
|
+
const MAX_U64 = 18446744073709551615n;
|
|
31
|
+
function invalidMakerAssetValue(value) {
|
|
32
|
+
if (typeof value === 'number' ||
|
|
33
|
+
typeof value === 'bigint' ||
|
|
34
|
+
typeof value === 'string') {
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
if (value === undefined)
|
|
38
|
+
return 'missing';
|
|
39
|
+
if (value === null)
|
|
40
|
+
return 'null';
|
|
41
|
+
return `a value of type ${typeof value}`;
|
|
42
|
+
}
|
|
43
|
+
function requireMakerAssetAmount(field, value) {
|
|
44
|
+
if (typeof value !== 'bigint' || value < 0n || value > MAX_U64) {
|
|
45
|
+
throw new InvalidDerivationInputError(field, invalidMakerAssetValue(value), `Use the observed maker-row bigint from 0 through ${String(MAX_U64)}.`);
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
/** Projects one observed maker row into side-aware locked principal and released proceeds.
|
|
50
|
+
*
|
|
51
|
+
* The helper performs no network or signing work and does not infer fill state,
|
|
52
|
+
* fees, refunds, freshness, or whether released assets can be withdrawn.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* declare const maker: LocalMarketMakerStateSnapshot;
|
|
57
|
+
* const assets = deriveLocalMarketMakerAssets('bid', maker);
|
|
58
|
+
* console.log(assets.lockedAtlasRaw, assets.releasedCargoRaw);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function deriveLocalMarketMakerAssets(side, maker) {
|
|
62
|
+
if (side !== 'bid' && side !== 'ask') {
|
|
63
|
+
throw new InvalidDerivationInputError('Local Market maker side', invalidMakerAssetValue(side), 'Use the observed order-book side "bid" or "ask".');
|
|
64
|
+
}
|
|
65
|
+
if (maker === null || typeof maker !== 'object') {
|
|
66
|
+
throw new InvalidDerivationInputError('Local Market maker row', invalidMakerAssetValue(maker), 'Supply an observed maker row containing cargoRaw and escrowedOrReleasedAtlasRaw.');
|
|
67
|
+
}
|
|
68
|
+
const atlasRaw = requireMakerAssetAmount('Local Market maker escrowedOrReleasedAtlasRaw', maker.escrowedOrReleasedAtlasRaw);
|
|
69
|
+
const cargoRaw = requireMakerAssetAmount('Local Market maker cargoRaw', maker.cargoRaw);
|
|
70
|
+
return Object.freeze(attachJsonSerialization({
|
|
71
|
+
lockedAtlasRaw: side === 'bid' ? atlasRaw : 0n,
|
|
72
|
+
lockedCargoRaw: side === 'ask' ? cargoRaw : 0n,
|
|
73
|
+
releasedAtlasRaw: side === 'ask' ? atlasRaw : 0n,
|
|
74
|
+
releasedCargoRaw: side === 'bid' ? cargoRaw : 0n,
|
|
75
|
+
}));
|
|
37
76
|
}
|
|
38
77
|
function order(value) {
|
|
39
|
-
return { ...value, makerRef: entityRef('
|
|
78
|
+
return { ...value, makerRef: entityRef('profile', value.maker) };
|
|
40
79
|
}
|
|
41
80
|
function makerState(value) {
|
|
42
|
-
return { ...value,
|
|
81
|
+
return { ...value, profileRef: entityRef('profile', value.profile) };
|
|
43
82
|
}
|
|
44
83
|
function book(value) {
|
|
45
84
|
return {
|
|
@@ -68,7 +107,7 @@ async function createLocalSnapshot(context, envelope) {
|
|
|
68
107
|
initializerProfile: entityRef('profile', initializerProfile),
|
|
69
108
|
kind: 'localMarket',
|
|
70
109
|
system: entityRef('starSystem', system),
|
|
71
|
-
}),
|
|
110
|
+
}), envelopeMeta(envelope, 'direct')));
|
|
72
111
|
}
|
|
73
112
|
function toLocalSnapshot(context, envelope) {
|
|
74
113
|
const existing = LOCAL_SNAPSHOTS.get(envelope);
|
|
@@ -100,7 +139,7 @@ async function createFactionSnapshot(context, envelope) {
|
|
|
100
139
|
kind: 'factionMarket',
|
|
101
140
|
offers: resolvedOffers,
|
|
102
141
|
system: entityRef('starSystem', system),
|
|
103
|
-
}),
|
|
142
|
+
}), envelopeMeta(envelope, 'direct')));
|
|
104
143
|
}
|
|
105
144
|
function toFactionSnapshot(context, envelope) {
|
|
106
145
|
const existing = FACTION_SNAPSHOTS.get(envelope);
|
|
@@ -160,7 +199,7 @@ export async function getLocalMarketsBySystem(context, system, options) {
|
|
|
160
199
|
const meta = readMeta(envelopes);
|
|
161
200
|
return Object.freeze(attachReadMeta(await Promise.all(envelopes.map((envelope) => toLocalSnapshot(context, envelope))), meta));
|
|
162
201
|
}
|
|
163
|
-
/** Returns one
|
|
202
|
+
/** Returns one Profile's open orders with that side's maker state.
|
|
164
203
|
*
|
|
165
204
|
* Bid-side ATLAS is escrowed for buy orders. Ask-side ATLAS was released from
|
|
166
205
|
* completed sell orders. Neither interpretation promises withdrawability.
|
|
@@ -169,19 +208,19 @@ export async function getLocalMarketsBySystem(context, system, options) {
|
|
|
169
208
|
* ```ts
|
|
170
209
|
* declare const ctx: SageContext;
|
|
171
210
|
* declare const market: Address;
|
|
172
|
-
* declare const
|
|
173
|
-
* const orders = await
|
|
211
|
+
* declare const profile: Address;
|
|
212
|
+
* const orders = await getLocalMarketOrdersByProfile(ctx, market, profile);
|
|
174
213
|
* ```
|
|
175
214
|
*/
|
|
176
|
-
export async function
|
|
215
|
+
export async function getLocalMarketOrdersByProfile(context, market, profile, options) {
|
|
177
216
|
const snapshot = await getLocalMarket(context, market, options);
|
|
178
217
|
const matches = (side) => {
|
|
179
|
-
const orders = side.orders.filter((value) => value.maker ===
|
|
218
|
+
const orders = side.orders.filter((value) => value.maker === profile);
|
|
180
219
|
if (orders.length === 0)
|
|
181
220
|
return [];
|
|
182
|
-
const maker = side.makers.find((value) => value.
|
|
221
|
+
const maker = side.makers.find((value) => value.profile === profile);
|
|
183
222
|
if (maker === undefined) {
|
|
184
|
-
throw new AccountDecodeError('market', market, new RangeError('The decoded Local Market contains matching orders without their MakerInfo state entry.'), `Local Market ${market} contains orders for
|
|
223
|
+
throw new AccountDecodeError('market', market, new RangeError('The decoded Local Market contains matching orders without their MakerInfo state entry.'), `Local Market ${market} contains orders for Profile ${profile} without that Profile's maker state entry. Refresh the Market account and verify the provider and installed binding version before retrying.`);
|
|
185
224
|
}
|
|
186
225
|
return orders.map((value) => ({ ...value, makerState: maker }));
|
|
187
226
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { Address, SageContext } from '../../client/contracts.js';
|
|
2
|
+
import type { EntityRef } from '../../client/refs.js';
|
|
3
|
+
import type { ResolvedFleetAccountData } from '../../internal/fleet.js';
|
|
4
|
+
import { type PlanAuthorization } from '../../internal/planning/authorization-adapter.js';
|
|
5
|
+
import type { Plan } from '../../planning/index.js';
|
|
6
|
+
import type { ResourceDepositSnapshot } from '../index.js';
|
|
7
|
+
export type { PlanAuthorization };
|
|
8
|
+
interface FleetSnapshot extends Omit<ResolvedFleetAccountData, 'ownerProfile'> {
|
|
9
|
+
readonly kind: 'fleet';
|
|
10
|
+
readonly address: Address;
|
|
11
|
+
readonly ownerProfile: EntityRef<'profile'>;
|
|
12
|
+
toJSON(): unknown;
|
|
13
|
+
}
|
|
14
|
+
/** Select resources from one Asteroid deposit for an owned Fleet.
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* declare const authorization: PlanAuthorization;
|
|
18
|
+
* declare const asteroid: ResourceDepositSnapshot;
|
|
19
|
+
* const options: PlanFleetStartMiningOptions = { authorization, asteroid, resourceIds: [8] };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface PlanFleetStartMiningOptions {
|
|
23
|
+
readonly authorization: PlanAuthorization;
|
|
24
|
+
readonly asteroid: ResourceDepositSnapshot;
|
|
25
|
+
/** Dense, non-empty, unique cargo ids in ascending order, selected from the deposit. */
|
|
26
|
+
readonly resourceIds: readonly number[];
|
|
27
|
+
}
|
|
28
|
+
/** Plans one inert Fleet mining start at an Asteroid, without signing or simulation.
|
|
29
|
+
*
|
|
30
|
+
* Idle Fleets use their current coordinate; warp/subwarp Fleets use their arrival
|
|
31
|
+
* coordinate, never a local clock. This planner emits only the mining instruction.
|
|
32
|
+
* Completed warp can refresh directly into mining; unfinished warp rejects.
|
|
33
|
+
* Completed subwarp needs explicit settlement first: use planFleetSettleArrival
|
|
34
|
+
* with Profile authorization, then combinePlans(settlement, mining), or settle
|
|
35
|
+
* and reload Idle. Unsigned PTR simulations on 2026-10-12 at SAGE deployment
|
|
36
|
+
* slot 58713616 qualified both routes for adequately fueled, canonical Fleets
|
|
37
|
+
* with supported XP accounts, not every future deployment. Settlement
|
|
38
|
+
* can stop short when Fuel is insufficient; confirm the destination and simulate
|
|
39
|
+
* the complete Plan. No settlement or authority is inserted automatically.
|
|
40
|
+
* Simulate the complete Plan before execution; arrival, permissions, range, fuel,
|
|
41
|
+
* and mining eligibility remain program-authoritative. This planner neither
|
|
42
|
+
* estimates mining output nor stops mining. No FleetCrewBinding account exists
|
|
43
|
+
* in the pinned ten-account instruction.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* declare const ctx: SageContext;
|
|
48
|
+
* declare const fleet: FleetSnapshot;
|
|
49
|
+
* declare const authorization: PlanAuthorization;
|
|
50
|
+
* declare const asteroid: ResourceDepositSnapshot;
|
|
51
|
+
* const plan = await planFleetStartMining(ctx, fleet, { authorization, asteroid, resourceIds: [8] });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function planFleetStartMining(ctx: SageContext, fleet: FleetSnapshot, options: PlanFleetStartMiningOptions): Promise<Plan>;
|
|
55
|
+
/** Address-only authorization to stop an owned Fleet's current mining operation.
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* declare const authorization: PlanAuthorization;
|
|
59
|
+
* const options: PlanFleetStopMiningOptions = { authorization };
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export interface PlanFleetStopMiningOptions {
|
|
63
|
+
readonly authorization: PlanAuthorization;
|
|
64
|
+
}
|
|
65
|
+
/** Plans one inert stop-mining instruction using the Asteroid in Fleet state.
|
|
66
|
+
*
|
|
67
|
+
* The snapshot and a fresh canonical Fleet must be mining the same Asteroid.
|
|
68
|
+
* A finite persisted guard rechecks this state before signing; old unguarded
|
|
69
|
+
* stop Plans must be recreated. Exit fuel was observed on PTR even for Idle,
|
|
70
|
+
* so Idle is not a free no-op. The read-to-chain race remains: simulate before
|
|
71
|
+
* execution; a later state change can still consume fuel or fail upkeep checks.
|
|
72
|
+
* No yield, cargo amount, or execution success is promised. DO_MINING
|
|
73
|
+
* permission remains chain-authoritative. Only validated canonical optional
|
|
74
|
+
* accounts are included, including the chain-created neutral CrewBinding at
|
|
75
|
+
* its canonical PDA; proven absence uses the generated omitted-account sentinel.
|
|
76
|
+
* Planning does not sign, simulate, or submit a transaction.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* declare const ctx: SageContext;
|
|
81
|
+
* declare const fleet: FleetSnapshot;
|
|
82
|
+
* declare const authorization: PlanAuthorization;
|
|
83
|
+
* const plan = await planFleetStopMining(ctx, fleet, { authorization });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function planFleetStopMining(ctx: SageContext, fleet: FleetSnapshot, options: PlanFleetStopMiningOptions): Promise<Plan>;
|
|
87
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mining/actions/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAEP,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAuBtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAOxE,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,UAAU,aAAc,SAAQ,IAAI,CAAC,wBAAwB,EAAE,cAAc,CAAC;IAC5E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAuLf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA2Hf"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { resolveXpRuntime } from '../../internal/planning/xp-runtime.js';
|
|
2
|
+
import { matchesFleetMiningState } from '../../internal/planning/mining-stop.js';
|
|
3
|
+
import { requireActionCoordinate } from '../../internal/planning/fleet-state.js';
|
|
4
|
+
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
5
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
6
|
+
import { getFleetDecoder, getStarSystemDecoder, } from '../../internal/c4/runtime-bindings.js';
|
|
7
|
+
import { deriveFleetAddress, fleetAccountDefinition, } from '../../internal/c4/fleet.js';
|
|
8
|
+
import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/character.js';
|
|
9
|
+
import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../../internal/c4/factions.js';
|
|
10
|
+
import { celestialBodyAccountDefinition, deriveCelestialBodyAddress, deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
|
|
11
|
+
import { deriveFleetCrewBindingAddress, fleetCrewBindingAccountDefinition, matchesFleetCrewBindingIdentity, } from '../../internal/c4/fleet-crew-binding.js';
|
|
12
|
+
import { requireGameAddress } from '../../internal/game-context.js';
|
|
13
|
+
import { adaptStartMiningAsteroidInstruction, adaptStopMiningAsteroidInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
14
|
+
import { buildPlannerPlan } from '../../planning/plan-construction.js';
|
|
15
|
+
function fail(address, message) {
|
|
16
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
17
|
+
}
|
|
18
|
+
function validateOptionsObject(value, field) {
|
|
19
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
20
|
+
throw new InvalidActionInputError(field, value, 'an object containing the mining action options or Profile authorization', `Supply ${field} with the documented mining action fields before retrying.`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function validateResources(ids, available) {
|
|
24
|
+
if (!Array.isArray(ids) || ids.length === 0) {
|
|
25
|
+
throw new InvalidActionInputError('resourceIds', ids, 'a dense non-empty ascending list of deposit cargo ids', 'Supply at least one resource cargo id from the Asteroid deposit before retrying.');
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < ids.length; i += 1) {
|
|
28
|
+
const id = ids[i];
|
|
29
|
+
if (!Object.hasOwn(ids, i) ||
|
|
30
|
+
!Number.isInteger(id) ||
|
|
31
|
+
id < 0 ||
|
|
32
|
+
id > 65535 ||
|
|
33
|
+
(i > 0 && ids[i - 1] >= id) ||
|
|
34
|
+
!available.includes(id)) {
|
|
35
|
+
throw new InvalidActionInputError('resourceIds', ids, 'unique ascending u16 cargo ids selected from the deposit', 'Select resource cargo ids present in the Asteroid deposit, remove holes and duplicates, and sort them in ascending order before retrying.');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function required(account, address, label) {
|
|
40
|
+
if (account === undefined) {
|
|
41
|
+
return fail(address, `${label} is missing or returned at a different address. Refresh the Fleet and Asteroid dependencies in the configured Game and retry.`);
|
|
42
|
+
}
|
|
43
|
+
return account;
|
|
44
|
+
}
|
|
45
|
+
/** Plans one inert Fleet mining start at an Asteroid, without signing or simulation.
|
|
46
|
+
*
|
|
47
|
+
* Idle Fleets use their current coordinate; warp/subwarp Fleets use their arrival
|
|
48
|
+
* coordinate, never a local clock. This planner emits only the mining instruction.
|
|
49
|
+
* Completed warp can refresh directly into mining; unfinished warp rejects.
|
|
50
|
+
* Completed subwarp needs explicit settlement first: use planFleetSettleArrival
|
|
51
|
+
* with Profile authorization, then combinePlans(settlement, mining), or settle
|
|
52
|
+
* and reload Idle. Unsigned PTR simulations on 2026-10-12 at SAGE deployment
|
|
53
|
+
* slot 58713616 qualified both routes for adequately fueled, canonical Fleets
|
|
54
|
+
* with supported XP accounts, not every future deployment. Settlement
|
|
55
|
+
* can stop short when Fuel is insufficient; confirm the destination and simulate
|
|
56
|
+
* the complete Plan. No settlement or authority is inserted automatically.
|
|
57
|
+
* Simulate the complete Plan before execution; arrival, permissions, range, fuel,
|
|
58
|
+
* and mining eligibility remain program-authoritative. This planner neither
|
|
59
|
+
* estimates mining output nor stops mining. No FleetCrewBinding account exists
|
|
60
|
+
* in the pinned ten-account instruction.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* declare const ctx: SageContext;
|
|
65
|
+
* declare const fleet: FleetSnapshot;
|
|
66
|
+
* declare const authorization: PlanAuthorization;
|
|
67
|
+
* declare const asteroid: ResourceDepositSnapshot;
|
|
68
|
+
* const plan = await planFleetStartMining(ctx, fleet, { authorization, asteroid, resourceIds: [8] });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export async function planFleetStartMining(ctx, fleet, options) {
|
|
72
|
+
const game = requireGameAddress(ctx);
|
|
73
|
+
validateOptionsObject(options, 'options');
|
|
74
|
+
validateOptionsObject(options.authorization, 'authorization');
|
|
75
|
+
const { asteroid } = options;
|
|
76
|
+
const authorization = {
|
|
77
|
+
profile: options.authorization.profile,
|
|
78
|
+
authority: options.authorization.authority,
|
|
79
|
+
keyIndex: options.authorization.keyIndex,
|
|
80
|
+
...(options.authorization.certificate === undefined
|
|
81
|
+
? {}
|
|
82
|
+
: { certificate: options.authorization.certificate }),
|
|
83
|
+
};
|
|
84
|
+
validatePlanAuthorization(authorization);
|
|
85
|
+
const coordinate = requireActionCoordinate(fleet, 'start mining', "it must be idle or arriving by warp or subwarp at the Asteroid's Star System");
|
|
86
|
+
if (fleet.game !== game ||
|
|
87
|
+
asteroid.game !== game ||
|
|
88
|
+
fleet.ownerProfile.address !== authorization.profile) {
|
|
89
|
+
fail(fleet.address, `Fleet ${fleet.name} and Asteroid ${asteroid.name} must belong to configured Game ${game}, and the Fleet must belong to authorized Profile ${authorization.profile}. Choose the owning Profile and matching Game, refresh both snapshots, and retry.`);
|
|
90
|
+
}
|
|
91
|
+
validateResources(options.resourceIds, asteroid.resources.map((r) => r.cargo.id));
|
|
92
|
+
// Copy before any asynchronous reads so caller mutation cannot change selection.
|
|
93
|
+
const resourceIds = [...options.resourceIds];
|
|
94
|
+
const character = await findCharacterPda(authorization.profile, game);
|
|
95
|
+
const regionTracker = await deriveRegionTrackerAddress(game);
|
|
96
|
+
const addresses = [
|
|
97
|
+
fleet.address,
|
|
98
|
+
asteroid.address,
|
|
99
|
+
asteroid.system.address,
|
|
100
|
+
character,
|
|
101
|
+
regionTracker,
|
|
102
|
+
];
|
|
103
|
+
const values = await readContextRawAccounts(ctx, addresses);
|
|
104
|
+
const labels = [
|
|
105
|
+
'Fleet',
|
|
106
|
+
'Asteroid',
|
|
107
|
+
'Star System',
|
|
108
|
+
'Character',
|
|
109
|
+
'RegionTracker',
|
|
110
|
+
];
|
|
111
|
+
const accounts = addresses.map((address, index) => required(values[index], address, labels[index]));
|
|
112
|
+
const [fleetAccount, asteroidAccount, systemAccount, characterAccount, trackerAccount,] = accounts;
|
|
113
|
+
const current = fleetAccountDefinition.decode(fleetAccount);
|
|
114
|
+
const currentCoordinate = current.state.kind === 'idle'
|
|
115
|
+
? current.location
|
|
116
|
+
: current.state.kind === 'warp' || current.state.kind === 'subwarp'
|
|
117
|
+
? current.state.to
|
|
118
|
+
: undefined;
|
|
119
|
+
if (current.game !== game ||
|
|
120
|
+
current.ownerProfile !== authorization.profile ||
|
|
121
|
+
(await deriveFleetAddress(current)) !== fleet.address ||
|
|
122
|
+
(current.state.kind !== fleet.state.kind &&
|
|
123
|
+
!(current.state.kind === 'idle' &&
|
|
124
|
+
(fleet.state.kind === 'warp' || fleet.state.kind === 'subwarp'))) ||
|
|
125
|
+
currentCoordinate?.x !== coordinate.x ||
|
|
126
|
+
currentCoordinate?.y !== coordinate.y) {
|
|
127
|
+
fail(fleet.address, `Fleet ${fleet.name} no longer matches its Game, Profile, canonical address, state, or mining coordinate. Refresh the Fleet and create a new mining Plan before retrying.`);
|
|
128
|
+
}
|
|
129
|
+
const deposit = celestialBodyAccountDefinition.decode(asteroidAccount);
|
|
130
|
+
if (deposit.kind !== 'asteroid' ||
|
|
131
|
+
deposit.game !== game ||
|
|
132
|
+
deposit.id !== asteroid.bodyId ||
|
|
133
|
+
(await deriveCelestialBodyAddress(game, deposit.id)) !== asteroid.address ||
|
|
134
|
+
deposit.system !== asteroid.system.address) {
|
|
135
|
+
fail(asteroid.address, `Asteroid ${asteroid.name} no longer matches its Game, canonical address, or Star System. Refresh the resource deposit and choose an Asteroid in the Fleet's current or arrival Star System before retrying.`);
|
|
136
|
+
}
|
|
137
|
+
validateResources(resourceIds, deposit.details.resources.map((r) => r.cargoId));
|
|
138
|
+
const system = starSystemAccountDefinition.decode(systemAccount);
|
|
139
|
+
if (system.game !== game ||
|
|
140
|
+
(await deriveStarSystemAddress(game, system.systemId)) !==
|
|
141
|
+
systemAccount.address) {
|
|
142
|
+
fail(systemAccount.address, 'Star System does not match its Game or canonical address. Refresh the Asteroid and Star System in the configured Game before retrying.');
|
|
143
|
+
}
|
|
144
|
+
// Compare stored fixed-point coordinates, not rounded display numbers.
|
|
145
|
+
const exactFleet = getFleetDecoder().decode(fleetAccount.data);
|
|
146
|
+
const exactCoordinate = exactFleet.state.__kind === 'MoveWarp'
|
|
147
|
+
? exactFleet.state.fields[0].to
|
|
148
|
+
: exactFleet.state.__kind === 'MoveSubwarp'
|
|
149
|
+
? exactFleet.state.fields[0].journey.to
|
|
150
|
+
: exactFleet.location;
|
|
151
|
+
const exactSystem = getStarSystemDecoder().decode(systemAccount.data);
|
|
152
|
+
if (exactCoordinate[0].raw !== exactSystem.coordinates[0].raw ||
|
|
153
|
+
exactCoordinate[1].raw !== exactSystem.coordinates[1].raw) {
|
|
154
|
+
fail(asteroid.address, `Asteroid ${asteroid.name} is not in Fleet ${fleet.name}'s current or arrival Star System. Choose a deposit at the Fleet's mining coordinate or move the Fleet there, refresh, and retry.`);
|
|
155
|
+
}
|
|
156
|
+
const characterData = characterAccountDefinition.decode(characterAccount);
|
|
157
|
+
if (characterData.game !== game ||
|
|
158
|
+
characterData.playerProfile !== authorization.profile) {
|
|
159
|
+
fail(character, 'Character does not match the owning Profile and configured Game. Refresh or repair the canonical Character registration before retrying.');
|
|
160
|
+
}
|
|
161
|
+
const tracker = regionTrackerAccountDefinition.decode(trackerAccount);
|
|
162
|
+
if (tracker.game !== game) {
|
|
163
|
+
fail(regionTracker, 'RegionTracker does not match the configured Game. Refresh world region data for this Game before retrying.');
|
|
164
|
+
}
|
|
165
|
+
const resources = resourceIds
|
|
166
|
+
.map((id) => {
|
|
167
|
+
const resource = asteroid.resources.find((r) => r.cargo.id === id);
|
|
168
|
+
return `${resource.cargo.name} (cargo ${id})`;
|
|
169
|
+
})
|
|
170
|
+
.join(', ');
|
|
171
|
+
const describes = `Start mining with Fleet ${fleet.name} at Asteroid ${asteroid.name}: ${resources}.`;
|
|
172
|
+
const settlementWarning = fleet.state.kind === 'subwarp'
|
|
173
|
+
? ' Completed subwarp needs explicit settlement before mining. Use planFleetSettleArrival with Profile authorization and combinePlans(settlement, mining), or settle and reload Idle. Ensure enough Fuel to reach the Asteroid System; settlement may stop short.'
|
|
174
|
+
: fleet.state.kind === 'warp'
|
|
175
|
+
? ' Completed warp can refresh directly into mining; an unfinished warp still rejects.'
|
|
176
|
+
: '';
|
|
177
|
+
return buildPlannerPlan({
|
|
178
|
+
kind: 'fleet.start-mining',
|
|
179
|
+
summary: describes,
|
|
180
|
+
steps: [
|
|
181
|
+
{
|
|
182
|
+
describes: `${describes}${settlementWarning} Simulate before execution; arrival, permissions, range, fuel, and mining eligibility remain chain-authoritative.`,
|
|
183
|
+
signers: [authorization.authority],
|
|
184
|
+
instruction: adaptStartMiningAsteroidInstruction({
|
|
185
|
+
authorization,
|
|
186
|
+
fleet: fleet.address,
|
|
187
|
+
character,
|
|
188
|
+
starSystem: systemAccount.address,
|
|
189
|
+
regionTracker,
|
|
190
|
+
asteroid: asteroid.address,
|
|
191
|
+
game,
|
|
192
|
+
resources: resourceIds,
|
|
193
|
+
}),
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
preconditions: [],
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/** Plans one inert stop-mining instruction using the Asteroid in Fleet state.
|
|
200
|
+
*
|
|
201
|
+
* The snapshot and a fresh canonical Fleet must be mining the same Asteroid.
|
|
202
|
+
* A finite persisted guard rechecks this state before signing; old unguarded
|
|
203
|
+
* stop Plans must be recreated. Exit fuel was observed on PTR even for Idle,
|
|
204
|
+
* so Idle is not a free no-op. The read-to-chain race remains: simulate before
|
|
205
|
+
* execution; a later state change can still consume fuel or fail upkeep checks.
|
|
206
|
+
* No yield, cargo amount, or execution success is promised. DO_MINING
|
|
207
|
+
* permission remains chain-authoritative. Only validated canonical optional
|
|
208
|
+
* accounts are included, including the chain-created neutral CrewBinding at
|
|
209
|
+
* its canonical PDA; proven absence uses the generated omitted-account sentinel.
|
|
210
|
+
* Planning does not sign, simulate, or submit a transaction.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* declare const ctx: SageContext;
|
|
215
|
+
* declare const fleet: FleetSnapshot;
|
|
216
|
+
* declare const authorization: PlanAuthorization;
|
|
217
|
+
* const plan = await planFleetStopMining(ctx, fleet, { authorization });
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
export async function planFleetStopMining(ctx, fleet, options) {
|
|
221
|
+
const game = requireGameAddress(ctx);
|
|
222
|
+
validateOptionsObject(options, 'options');
|
|
223
|
+
validateOptionsObject(options.authorization, 'authorization');
|
|
224
|
+
const authorization = {
|
|
225
|
+
profile: options.authorization.profile,
|
|
226
|
+
authority: options.authorization.authority,
|
|
227
|
+
keyIndex: options.authorization.keyIndex,
|
|
228
|
+
...(options.authorization.certificate === undefined
|
|
229
|
+
? {}
|
|
230
|
+
: { certificate: options.authorization.certificate }),
|
|
231
|
+
};
|
|
232
|
+
validatePlanAuthorization(authorization);
|
|
233
|
+
if (fleet.state.kind !== 'mining') {
|
|
234
|
+
fail(fleet.address, `Fleet ${fleet.name} is ${fleet.state.kind} and cannot stop mining. Refresh the Fleet and retry only with a mining snapshot; an idle Fleet has already stopped.`);
|
|
235
|
+
}
|
|
236
|
+
if (fleet.game !== game ||
|
|
237
|
+
fleet.ownerProfile.address !== authorization.profile) {
|
|
238
|
+
fail(fleet.address, `Fleet ${fleet.name} must belong to configured Game ${game} and authorized Profile ${authorization.profile}. Choose the owning Profile and matching Game, refresh the Fleet, and retry.`);
|
|
239
|
+
}
|
|
240
|
+
const asteroid = fleet.state.asteroid.address;
|
|
241
|
+
const intent = {
|
|
242
|
+
address: fleet.address,
|
|
243
|
+
game,
|
|
244
|
+
profile: authorization.profile,
|
|
245
|
+
asteroid,
|
|
246
|
+
};
|
|
247
|
+
const [character, crewBinding, regionTracker] = await Promise.all([
|
|
248
|
+
findCharacterPda(authorization.profile, game),
|
|
249
|
+
deriveFleetCrewBindingAddress(fleet.address),
|
|
250
|
+
deriveRegionTrackerAddress(game),
|
|
251
|
+
]);
|
|
252
|
+
const [currentFleet, crewAccount, regionAccount] = await readContextRawAccounts(ctx, [
|
|
253
|
+
intent.address,
|
|
254
|
+
crewBinding,
|
|
255
|
+
regionTracker,
|
|
256
|
+
]);
|
|
257
|
+
let matches = false;
|
|
258
|
+
try {
|
|
259
|
+
matches = await matchesFleetMiningState(currentFleet, intent);
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
// Adapter errors must not hide the action-level remedy for a saved snapshot.
|
|
263
|
+
}
|
|
264
|
+
if (!matches)
|
|
265
|
+
fail(intent.address, 'The fresh Fleet is unavailable, invalid, or no longer owned by this Profile and mining the selected Asteroid in this Game. Refresh the Fleet and recreate the stop Plan only while it is mining; an idle stop can still consume exit fuel.');
|
|
266
|
+
if (crewAccount !== undefined) {
|
|
267
|
+
const crew = fleetCrewBindingAccountDefinition.decode(crewAccount);
|
|
268
|
+
if (crewAccount.address !== crewBinding ||
|
|
269
|
+
!matchesFleetCrewBindingIdentity(crew, fleet.address, authorization.profile)) {
|
|
270
|
+
fail(crewBinding, 'FleetCrewBinding does not match its canonical address, Fleet, or owning Profile. Refresh the Fleet crew registration and retry.');
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (regionAccount !== undefined) {
|
|
274
|
+
const region = regionTrackerAccountDefinition.decode(regionAccount);
|
|
275
|
+
if (regionAccount.address !== regionTracker || region.game !== game) {
|
|
276
|
+
fail(regionTracker, 'RegionTracker does not match its canonical address or configured Game. Refresh world region data for this Game and retry.');
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const xp = await resolveXpRuntime(ctx, {
|
|
280
|
+
game,
|
|
281
|
+
character,
|
|
282
|
+
profile: options.authorization.profile,
|
|
283
|
+
});
|
|
284
|
+
return buildPlannerPlan({
|
|
285
|
+
kind: 'fleet.stop-mining',
|
|
286
|
+
summary: `Stop mining for Fleet ${fleet.name}.`,
|
|
287
|
+
steps: [
|
|
288
|
+
{
|
|
289
|
+
describes: `Stop mining for Fleet ${fleet.name} at Asteroid ${asteroid}, returning it to idle. Fresh mining state is checked before signing; exit fuel can still be consumed, including if the Fleet becomes idle in the read-to-chain race. Simulate before execution; permission and mining results remain chain-authoritative.`,
|
|
290
|
+
signers: [authorization.authority],
|
|
291
|
+
instruction: adaptStopMiningAsteroidInstruction({
|
|
292
|
+
...xp.accounts,
|
|
293
|
+
authorization,
|
|
294
|
+
character,
|
|
295
|
+
fleet: intent.address,
|
|
296
|
+
game,
|
|
297
|
+
asteroid,
|
|
298
|
+
...(crewAccount === undefined ? {} : { crewBinding }),
|
|
299
|
+
...(regionAccount === undefined ? {} : { regionTracker }),
|
|
300
|
+
}),
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
preconditions: [
|
|
304
|
+
{
|
|
305
|
+
kind: 'xp-runtime',
|
|
306
|
+
address: game,
|
|
307
|
+
intent: xp.intent,
|
|
308
|
+
accounts: xp.accounts,
|
|
309
|
+
describes: 'The configured Game and canonical Character XP accounts remain eligible for mining settlement.',
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
kind: 'fleet-mining',
|
|
313
|
+
...intent,
|
|
314
|
+
describes: 'The canonical Fleet remains owned by the authorized Profile and mining the planned Asteroid in the configured Game.',
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mining/actions/index.ts"],"names":[],"mappings":"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"}
|