@aephia/atlas-kit 0.6.0-next.9 → 0.6.0-next.90
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 +1 -1
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +25 -12
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +3 -2
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/wallet-token.d.ts +1 -1
- package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-token.js +1 -9
- package/dist/cargo/actions/wallet-token.js.map +1 -1
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
- package/dist/cargo/actions/withdrawal.js +28 -27
- package/dist/cargo/actions/withdrawal.js.map +1 -1
- 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 +95 -44
- 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 +98 -50
- 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 +63 -36
- 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 +1 -0
- package/dist/factions/actions/index.d.ts.map +1 -1
- package/dist/factions/actions/index.js +2 -1
- 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 +14 -8
- 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 +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 +34 -15
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +227 -118
- 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.map +1 -1
- package/dist/fleets/actions/ship-import.js +41 -13
- 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 +34 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +51 -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/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 +2 -0
- package/dist/identity/actions/create-profile.d.ts.map +1 -1
- package/dist/identity/actions/create-profile.js +14 -9
- package/dist/identity/actions/create-profile.js.map +1 -1
- package/dist/identity/actions/index.d.ts +3 -3
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +48 -27
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/identity/index.d.ts +15 -0
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +15 -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/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 +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/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 +12 -32
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +31 -44
- package/dist/internal/c4/crafting.js.map +1 -1
- 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-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 +19 -0
- package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
- package/dist/internal/c4/fleet-respawn.js +91 -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.d.ts +36 -9
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +147 -14
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +4 -8
- 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-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 +3 -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/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/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 +10 -7
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +87 -16
- 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/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 +0 -2
- package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
- package/dist/internal/planning/faction-enrollment.js +1 -22
- 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 +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 +153 -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 +165 -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/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 +636 -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 +0 -1
- package/dist/internal/planning/ship-token.d.ts.map +1 -1
- package/dist/internal/planning/ship-token.js +2 -5
- package/dist/internal/planning/ship-token.js.map +1 -1
- 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 +12 -0
- package/dist/internal/planning/starbase-system.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system.js +22 -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 +4 -3
- 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 +137 -25
- 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 +291 -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 +84 -0
- package/dist/mining/actions/index.d.ts.map +1 -0
- package/dist/mining/actions/index.js +328 -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 +8 -2
- package/dist/mining/index.d.ts.map +1 -1
- package/dist/mining/index.js +6 -2
- package/dist/mining/index.js.map +1 -1
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +24 -0
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +459 -17
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +181 -149
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +869 -121
- package/dist/planning/index.js.map +1 -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 +6 -11
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +19 -19
- package/dist/registry/cargo.js.map +1 -1
- package/dist/registry/docking.d.ts +13 -0
- package/dist/registry/docking.d.ts.map +1 -0
- package/dist/registry/docking.js +19 -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 +8 -1
- package/dist/registry/onboarding.d.ts.map +1 -1
- package/dist/registry/onboarding.js +18 -5
- 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 +28 -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/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 +10 -2
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { deriveTradeEpochMeterAddress } from '../../internal/c4/faction-epoch-meter.js';
|
|
2
|
+
import { readTradeTreasury, validateTradeEpochMeter, } from '../../internal/planning/faction-trade-state.js';
|
|
3
|
+
import { adaptTradeFactionMarketInstruction } from '../../internal/planning/trade-faction-market.js';
|
|
4
|
+
import { isAddress } from '@solana/kit';
|
|
5
|
+
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
6
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
7
|
+
import { deriveFleetAddress, fleetAccountDefinition, } from '../../internal/c4/fleet.js';
|
|
8
|
+
import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
|
|
9
|
+
import { deriveFactionMarketAddress, factionMarketAccountDefinition, } from '../../internal/c4/market.js';
|
|
10
|
+
import { deriveFactionStandingAddress, deriveFactionConfigAddress, deriveFactionTreasuryAddress, factionStandingAccountDefinition, factionConfigAccountDefinition, } from '../../internal/c4/factions.js';
|
|
11
|
+
import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
|
|
12
|
+
import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
|
|
13
|
+
import { requireGameAddress } from '../../internal/game-context.js';
|
|
14
|
+
import { hashAccountState } from '../../internal/planning/account-state.js';
|
|
15
|
+
import { validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
16
|
+
import { createPlan, } from '../../planning/index.js';
|
|
17
|
+
function invalid(field) {
|
|
18
|
+
throw new InvalidActionInputError(field, undefined, 'the exact documented address-only trade input', `Provide ${field} without extra fields, accessors, coercion or signer objects; use direction buy/sell, an existing u16 offerIndex and bigint quantityRaw from 1 through 18446744073709551615.`);
|
|
19
|
+
}
|
|
20
|
+
function record(value, required, optional, field) {
|
|
21
|
+
if (value === null ||
|
|
22
|
+
typeof value !== 'object' ||
|
|
23
|
+
(Object.getPrototypeOf(value) !== Object.prototype &&
|
|
24
|
+
Object.getPrototypeOf(value) !== null))
|
|
25
|
+
invalid(field);
|
|
26
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
27
|
+
if (required.some((key) => !Object.hasOwn(descriptors, key)) ||
|
|
28
|
+
Reflect.ownKeys(value).some((key) => typeof key !== 'string' ||
|
|
29
|
+
![...required, ...optional].includes(key) ||
|
|
30
|
+
!Object.hasOwn(descriptors[key], 'value')))
|
|
31
|
+
invalid(field);
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function optionsFrom(value) {
|
|
35
|
+
const o = record(value, ['authorization', 'direction', 'offerIndex', 'quantityRaw'], [], 'options');
|
|
36
|
+
const a = record(o.authorization, ['profile', 'authority', 'keyIndex'], ['certificate'], 'authorization');
|
|
37
|
+
for (const key of ['profile', 'authority', 'certificate']) {
|
|
38
|
+
if (key === 'certificate' && a[key] === undefined)
|
|
39
|
+
continue;
|
|
40
|
+
if (typeof a[key] !== 'string' || !isAddress(a[key]))
|
|
41
|
+
invalid(`authorization.${key}`);
|
|
42
|
+
}
|
|
43
|
+
const authorization = { ...a };
|
|
44
|
+
validatePlanAuthorization(authorization);
|
|
45
|
+
if (o.direction !== 'buy' && o.direction !== 'sell')
|
|
46
|
+
invalid('direction');
|
|
47
|
+
if (typeof o.offerIndex !== 'number' ||
|
|
48
|
+
!Number.isInteger(o.offerIndex) ||
|
|
49
|
+
o.offerIndex < 0 ||
|
|
50
|
+
o.offerIndex > 65535)
|
|
51
|
+
invalid('offerIndex');
|
|
52
|
+
if (typeof o.quantityRaw !== 'bigint' ||
|
|
53
|
+
o.quantityRaw < 1n ||
|
|
54
|
+
o.quantityRaw > (1n << 64n) - 1n)
|
|
55
|
+
invalid('quantityRaw');
|
|
56
|
+
return {
|
|
57
|
+
authorization,
|
|
58
|
+
direction: o.direction,
|
|
59
|
+
offerIndex: o.offerIndex,
|
|
60
|
+
quantityRaw: o.quantityRaw,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function fail(message) {
|
|
64
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the Fleet, Faction Market and required canonical accounts through this context, repair missing prerequisites, and retry.`);
|
|
65
|
+
}
|
|
66
|
+
function requireCrew(crewCount) {
|
|
67
|
+
if (!Number.isSafeInteger(crewCount) || crewCount <= 0)
|
|
68
|
+
fail('Fleet has no valid normalized crew. Crew the Fleet, refresh it, and retry.');
|
|
69
|
+
}
|
|
70
|
+
function required(raw, address) {
|
|
71
|
+
if (raw === undefined)
|
|
72
|
+
fail(`Required trade account ${address} is missing.`);
|
|
73
|
+
return raw;
|
|
74
|
+
}
|
|
75
|
+
/** Plans one explicit buy or sell using fresh canonical prerequisites, without simulation or writes.
|
|
76
|
+
* Buy moves cargo Treasury→Fleet and ATLAS Character→Treasury; sell reverses both.
|
|
77
|
+
* Partial fills, stock, floors, faucet caps/burn, fees, restock and final arithmetic
|
|
78
|
+
* remain chain-authoritative. Standing gates access and is credited on selling;
|
|
79
|
+
* it is not a local price adjustment. Offline construction is not live trade evidence.
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* declare const ctx: SageContext;
|
|
83
|
+
* declare const fleet: FleetSnapshot;
|
|
84
|
+
* declare const market: FactionMarketSnapshot;
|
|
85
|
+
* declare const authorization: PlanAuthorization;
|
|
86
|
+
* const plan = await planTradeFactionMarket(ctx, fleet, market, { authorization, direction: 'sell', offerIndex: 0, quantityRaw: 5n });
|
|
87
|
+
* console.log(plan.describe());
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export async function planTradeFactionMarket(ctx, fleet, market, input) {
|
|
91
|
+
const options = optionsFrom(input);
|
|
92
|
+
const game = requireGameAddress(ctx);
|
|
93
|
+
const { authorization, direction, offerIndex, quantityRaw } = options;
|
|
94
|
+
if (fleet.kind !== 'fleet' ||
|
|
95
|
+
market.kind !== 'factionMarket' ||
|
|
96
|
+
fleet.game !== game ||
|
|
97
|
+
market.game.address !== game ||
|
|
98
|
+
fleet.ownerProfile.address !== authorization.profile)
|
|
99
|
+
fail('Fleet/Market snapshots must belong to the configured Game and authorized Profile.');
|
|
100
|
+
requireCrew(fleet.crewCount);
|
|
101
|
+
const character = await findCharacterPda(authorization.profile, game);
|
|
102
|
+
const system = market.system.address;
|
|
103
|
+
const player = await deriveStarbasePlayerAddress(system, character);
|
|
104
|
+
const treasury = await deriveFactionTreasuryAddress(game, market.factionId);
|
|
105
|
+
const standing = await deriveFactionStandingAddress(game, authorization.profile, market.factionId);
|
|
106
|
+
const addresses = [
|
|
107
|
+
fleet.address,
|
|
108
|
+
character,
|
|
109
|
+
system,
|
|
110
|
+
player,
|
|
111
|
+
market.address,
|
|
112
|
+
treasury,
|
|
113
|
+
];
|
|
114
|
+
const reads = await readContextRawAccounts(ctx, [...addresses, standing]);
|
|
115
|
+
const accounts = addresses.map((address, index) => required(reads[index], address));
|
|
116
|
+
const [fleetRaw, characterRaw, systemRaw, playerRaw, marketRaw, treasuryRaw] = accounts;
|
|
117
|
+
const f = fleetAccountDefinition.decode(fleetRaw);
|
|
118
|
+
requireCrew(f.crewCount);
|
|
119
|
+
if (f.game !== game ||
|
|
120
|
+
f.ownerProfile !== authorization.profile ||
|
|
121
|
+
(await deriveFleetAddress(f)) !== fleet.address)
|
|
122
|
+
fail('Fresh Fleet does not match its canonical Game/Profile identity.');
|
|
123
|
+
if (fleet.state.kind !== 'docked' ||
|
|
124
|
+
f.state.kind !== 'docked' ||
|
|
125
|
+
fleet.state.system.address !== system ||
|
|
126
|
+
f.state.system !== system ||
|
|
127
|
+
fleet.state.systemSeqId !== f.state.systemSeqId)
|
|
128
|
+
fail('Fleet must retain its selected Docked System and sequence.');
|
|
129
|
+
const c = characterAccountDefinition.decode(characterRaw);
|
|
130
|
+
if (c.game !== game || c.playerProfile !== authorization.profile)
|
|
131
|
+
fail('Canonical Character must match the configured Game and Profile.');
|
|
132
|
+
const s = starSystemAccountDefinition.decode(systemRaw);
|
|
133
|
+
if (s.game !== game ||
|
|
134
|
+
(await deriveStarSystemAddress(game, s.systemId)) !== system)
|
|
135
|
+
fail('Star System must match its canonical Game identity.');
|
|
136
|
+
if (s.starbase === undefined ||
|
|
137
|
+
s.starbase.hp <= 0 ||
|
|
138
|
+
s.sequenceId !== market.starbaseSequenceId ||
|
|
139
|
+
s.sequenceId !== f.state.systemSeqId)
|
|
140
|
+
fail('Trading requires an undestroyed local Starbase and current Starbase sequence.');
|
|
141
|
+
const p = starbasePlayerAccountDefinition.decode(playerRaw);
|
|
142
|
+
if (p.playerProfile !== authorization.profile ||
|
|
143
|
+
p.character !== character ||
|
|
144
|
+
p.system !== system ||
|
|
145
|
+
p.sequenceId !== s.sequenceId)
|
|
146
|
+
fail('Starbase Player must match the Profile, Character, System and current undestroyed Starbase sequence.');
|
|
147
|
+
const m = factionMarketAccountDefinition.decode(marketRaw);
|
|
148
|
+
if (m.game !== game ||
|
|
149
|
+
m.system !== system ||
|
|
150
|
+
m.factionId !== market.factionId ||
|
|
151
|
+
m.starbaseSequenceId !== s.sequenceId ||
|
|
152
|
+
(await deriveFactionMarketAddress(game, system, m.starbaseSequenceId)) !==
|
|
153
|
+
market.address)
|
|
154
|
+
fail('Faction Market must match its canonical Game, faction, System and Starbase sequence.');
|
|
155
|
+
if (m.status !== 'active' || market.status !== 'active')
|
|
156
|
+
fail('Faction Market must be active.');
|
|
157
|
+
const offer = m.offers[offerIndex];
|
|
158
|
+
const selected = market.offers[offerIndex];
|
|
159
|
+
if (offer === undefined || selected === undefined)
|
|
160
|
+
fail('offerIndex must identify an existing ordered offer in both the selected and fresh Faction Market.');
|
|
161
|
+
if (offer.cargoId !== selected.id ||
|
|
162
|
+
offer.priceRaw !== selected.priceRaw ||
|
|
163
|
+
offer.remainingQuantityRaw !== selected.remainingQuantityRaw ||
|
|
164
|
+
offer.canBuyFromFaction !== selected.canBuyFromFaction ||
|
|
165
|
+
offer.canSellToFaction !== selected.canSellToFaction ||
|
|
166
|
+
m.minimumStandingToBuy !== market.minimumStandingToBuy ||
|
|
167
|
+
m.minimumStandingToSell !== market.minimumStandingToSell)
|
|
168
|
+
fail('Selected Faction Market trade intent changed; select the refreshed offer explicitly.');
|
|
169
|
+
if (!(direction === 'buy' ? offer.canBuyFromFaction : offer.canSellToFaction))
|
|
170
|
+
fail('Selected offer does not support this trade direction.');
|
|
171
|
+
const identity = { game, factionId: m.factionId };
|
|
172
|
+
const t = await readTradeTreasury(treasuryRaw, identity);
|
|
173
|
+
const finite = [
|
|
174
|
+
direction === 'buy'
|
|
175
|
+
? {
|
|
176
|
+
kind: 'faction-treasury-buy-versioned',
|
|
177
|
+
schemaVersion: t.version,
|
|
178
|
+
address: treasury,
|
|
179
|
+
...identity,
|
|
180
|
+
cargoId: offer.cargoId,
|
|
181
|
+
floorRaw: t.reserves.find((row) => row.cargoId === offer.cargoId)?.floorRaw ??
|
|
182
|
+
0n,
|
|
183
|
+
describes: `Faction Treasury ${treasury} retains its observed schema version and canonical identity and cargo ${offer.cargoId} reserve floor; live stock and balances may change.`,
|
|
184
|
+
}
|
|
185
|
+
: {
|
|
186
|
+
kind: 'faction-treasury-sell-versioned',
|
|
187
|
+
schemaVersion: t.version,
|
|
188
|
+
address: treasury,
|
|
189
|
+
...identity,
|
|
190
|
+
atlasOutCapPerEpochRaw: t.atlasOutCapPerEpochRaw,
|
|
191
|
+
epochLengthSeconds: t.epochLengthSeconds,
|
|
192
|
+
describes: `Faction Treasury ${treasury} retains its observed schema version and canonical identity, ATLAS payout cap and epoch length; live balances and epoch counters may change.`,
|
|
193
|
+
},
|
|
194
|
+
];
|
|
195
|
+
// The System is a freshly validated read-only anchor, not trade intent.
|
|
196
|
+
// Fleet/Market/StarbasePlayer bind the incarnation; the chain rechecks the System.
|
|
197
|
+
const bound = [
|
|
198
|
+
['Fleet cargo and trade state', fleetRaw],
|
|
199
|
+
['Character ATLAS and identity', characterRaw],
|
|
200
|
+
['Starbase Player dock incarnation', playerRaw],
|
|
201
|
+
['Faction Market ordered offers', marketRaw],
|
|
202
|
+
];
|
|
203
|
+
let cohort;
|
|
204
|
+
const absent = [];
|
|
205
|
+
if (reads[6] === undefined) {
|
|
206
|
+
if ((direction === 'buy' ? m.minimumStandingToBuy : m.minimumStandingToSell) >
|
|
207
|
+
-1000)
|
|
208
|
+
fail('Canonical Standing is absent and the selected direction is not open; initialize Faction Standing before trading.');
|
|
209
|
+
absent.push({
|
|
210
|
+
kind: 'account-absent',
|
|
211
|
+
address: standing,
|
|
212
|
+
describes: 'Canonical Faction Standing remains strictly absent for this open-direction trade.',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
const standingRaw = required(reads[6], standing);
|
|
217
|
+
const st = factionStandingAccountDefinition.decode(standingRaw);
|
|
218
|
+
if (st.game !== game ||
|
|
219
|
+
st.profile !== authorization.profile ||
|
|
220
|
+
st.factionId !== m.factionId)
|
|
221
|
+
fail('Faction Standing must match the Game, Profile and Market faction.');
|
|
222
|
+
const config = await deriveFactionConfigAddress(game);
|
|
223
|
+
const meter = await deriveTradeEpochMeterAddress(identity);
|
|
224
|
+
const extra = await readContextRawAccounts(ctx, [config, meter]);
|
|
225
|
+
const configRaw = required(extra[0], config);
|
|
226
|
+
const meterRaw = required(extra[1], meter);
|
|
227
|
+
factionConfigAccountDefinition.decode(configRaw);
|
|
228
|
+
const meterState = await validateTradeEpochMeter(meterRaw, identity);
|
|
229
|
+
finite.push({
|
|
230
|
+
kind: 'faction-epoch-meter-versioned',
|
|
231
|
+
schemaVersion: meterState.version,
|
|
232
|
+
address: meter,
|
|
233
|
+
...identity,
|
|
234
|
+
describes: `Faction Epoch Meter ${meter} retains its observed schema version and canonical identity and layout; epoch and accrual counters may change.`,
|
|
235
|
+
});
|
|
236
|
+
bound.push(['Faction Standing access and accrual', standingRaw], ['Faction Config reputation rules', configRaw]);
|
|
237
|
+
cohort = {
|
|
238
|
+
factionStanding: standing,
|
|
239
|
+
factionConfig: config,
|
|
240
|
+
factionEpochMeter: meter,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
const summary = `${direction === 'buy' ? 'Buy' : 'Sell'} up to ${String(quantityRaw)} raw units of ${selected.name} at Faction Market offer ${String(offerIndex)}. ${direction === 'buy' ? 'Cargo Treasury→Fleet; ATLAS Character→Treasury.' : 'Cargo Fleet→Treasury; ATLAS Treasury→Character.'} Partial fills, stock, treasury floors, faucet caps/burn, standing/epoch/decay, fees, restock and final arithmetic remain chain-authoritative. Standing gates access and is credited on selling, not a price adjustment.`;
|
|
244
|
+
return createPlan({
|
|
245
|
+
kind: 'markets.trade-faction-market',
|
|
246
|
+
summary,
|
|
247
|
+
preconditions: [
|
|
248
|
+
...(await Promise.all(bound.map(async ([role, account]) => ({
|
|
249
|
+
kind: 'account-state',
|
|
250
|
+
address: account.address,
|
|
251
|
+
dataHash: await hashAccountState(account.owner, account.data),
|
|
252
|
+
describes: `${role} at ${account.address} remains unchanged. Refresh the Fleet and Market and prepare a new trade if this state changes.`,
|
|
253
|
+
})))),
|
|
254
|
+
...finite,
|
|
255
|
+
...absent,
|
|
256
|
+
],
|
|
257
|
+
steps: [
|
|
258
|
+
{
|
|
259
|
+
describes: summary,
|
|
260
|
+
signers: [authorization.authority],
|
|
261
|
+
semantics: [
|
|
262
|
+
{
|
|
263
|
+
kind: 'requires',
|
|
264
|
+
resource: `faction-market:${market.address}`,
|
|
265
|
+
fact: 'ordered-offers',
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
kind: 'invalidates',
|
|
269
|
+
resource: `faction-market:${market.address}`,
|
|
270
|
+
fact: 'ordered-offers',
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
instruction: adaptTradeFactionMarketInstruction({
|
|
274
|
+
authorization,
|
|
275
|
+
character,
|
|
276
|
+
game,
|
|
277
|
+
system,
|
|
278
|
+
starbasePlayer: player,
|
|
279
|
+
fleet: fleet.address,
|
|
280
|
+
factionMarket: market.address,
|
|
281
|
+
treasury,
|
|
282
|
+
offerIndex,
|
|
283
|
+
quantity: quantityRaw,
|
|
284
|
+
playerBuys: direction === 'buy',
|
|
285
|
+
...cohort,
|
|
286
|
+
}),
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=trade-faction-market.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trade-faction-market.js","sourceRoot":"","sources":["../../../src/markets/actions/trade-faction-market.ts"],"names":[],"mappings":"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"}
|
package/dist/markets/index.d.ts
CHANGED
|
@@ -36,9 +36,9 @@ export interface MarketDiscoveryOptions extends ReadOptions {
|
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
38
|
export interface LocalMarketOrderSnapshot extends LocalMarketOrderData {
|
|
39
|
-
readonly makerRef: EntityRef<'
|
|
39
|
+
readonly makerRef: EntityRef<'profile'>;
|
|
40
40
|
}
|
|
41
|
-
/** One
|
|
41
|
+
/** One Profile's maker state on one order-book side.
|
|
42
42
|
*
|
|
43
43
|
* `escrowedOrReleasedAtlas` is escrowed ATLAS for bids and ATLAS released from
|
|
44
44
|
* completed sales for asks. It does not establish that either amount is
|
|
@@ -51,8 +51,39 @@ export interface LocalMarketOrderSnapshot extends LocalMarketOrderData {
|
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
53
|
export interface LocalMarketMakerStateSnapshot extends LocalMarketMakerData {
|
|
54
|
-
readonly
|
|
54
|
+
readonly profileRef: EntityRef<'profile'>;
|
|
55
55
|
}
|
|
56
|
+
/** Observed locked principal and released proceeds for one Local Market maker row.
|
|
57
|
+
*
|
|
58
|
+
* These values classify the row's stored amounts. Released amounts do not
|
|
59
|
+
* establish withdrawal availability or predict a future transfer.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* declare const assets: LocalMarketMakerAssets;
|
|
64
|
+
* console.log(assets.lockedAtlasRaw, assets.releasedCargoRaw);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export interface LocalMarketMakerAssets {
|
|
68
|
+
readonly lockedAtlasRaw: bigint;
|
|
69
|
+
readonly lockedCargoRaw: bigint;
|
|
70
|
+
readonly releasedAtlasRaw: bigint;
|
|
71
|
+
readonly releasedCargoRaw: bigint;
|
|
72
|
+
toJSON(): unknown;
|
|
73
|
+
}
|
|
74
|
+
/** Projects one observed maker row into side-aware locked principal and released proceeds.
|
|
75
|
+
*
|
|
76
|
+
* The helper performs no network or signing work and does not infer fill state,
|
|
77
|
+
* fees, refunds, freshness, or whether released assets can be withdrawn.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* declare const maker: LocalMarketMakerStateSnapshot;
|
|
82
|
+
* const assets = deriveLocalMarketMakerAssets('bid', maker);
|
|
83
|
+
* console.log(assets.lockedAtlasRaw, assets.releasedCargoRaw);
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function deriveLocalMarketMakerAssets(side: 'bid' | 'ask', maker: Pick<LocalMarketMakerStateSnapshot, 'cargoRaw' | 'escrowedOrReleasedAtlasRaw'>): LocalMarketMakerAssets;
|
|
56
87
|
/** One translated side of a Local Market order book.
|
|
57
88
|
* @example
|
|
58
89
|
* ```ts
|
|
@@ -149,7 +180,7 @@ export declare function getLocalMarketForCargo(context: SageContext, system: Add
|
|
|
149
180
|
* ```
|
|
150
181
|
*/
|
|
151
182
|
export declare function getLocalMarketsBySystem(context: SageContext, system: Address, options?: MarketDiscoveryOptions): Promise<readonly LocalMarketSnapshot[]>;
|
|
152
|
-
/** Returns one
|
|
183
|
+
/** Returns one Profile's open orders with that side's maker state.
|
|
153
184
|
*
|
|
154
185
|
* Bid-side ATLAS is escrowed for buy orders. Ask-side ATLAS was released from
|
|
155
186
|
* completed sell orders. Neither interpretation promises withdrawability.
|
|
@@ -158,11 +189,11 @@ export declare function getLocalMarketsBySystem(context: SageContext, system: Ad
|
|
|
158
189
|
* ```ts
|
|
159
190
|
* declare const ctx: SageContext;
|
|
160
191
|
* declare const market: Address;
|
|
161
|
-
* declare const
|
|
162
|
-
* const orders = await
|
|
192
|
+
* declare const profile: Address;
|
|
193
|
+
* const orders = await getLocalMarketOrdersByProfile(ctx, market, profile);
|
|
163
194
|
* ```
|
|
164
195
|
*/
|
|
165
|
-
export declare function
|
|
196
|
+
export declare function getLocalMarketOrdersByProfile(context: SageContext, market: Address, profile: Address, options?: ReadOptions): Promise<readonly (LocalMarketOrderSnapshot & {
|
|
166
197
|
readonly makerState: LocalMarketMakerStateSnapshot;
|
|
167
198
|
})[]>;
|
|
168
199
|
/** Reads one required Faction Market by address.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,WAAW,EACX,WAAW,EAEZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"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"}
|
package/dist/markets/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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';
|
|
@@ -27,6 +27,53 @@ export function deriveLocalMarketAddress(system, cargoId, starbaseSequenceId) {
|
|
|
27
27
|
export function deriveFactionMarketAddress(game, system, starbaseSequenceId) {
|
|
28
28
|
return deriveFactionMarketAddressInternal(game, system, starbaseSequenceId);
|
|
29
29
|
}
|
|
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
|
+
}));
|
|
76
|
+
}
|
|
30
77
|
function directMetadata(envelope) {
|
|
31
78
|
return {
|
|
32
79
|
commitment: envelope.commitment,
|
|
@@ -36,10 +83,10 @@ function directMetadata(envelope) {
|
|
|
36
83
|
};
|
|
37
84
|
}
|
|
38
85
|
function order(value) {
|
|
39
|
-
return { ...value, makerRef: entityRef('
|
|
86
|
+
return { ...value, makerRef: entityRef('profile', value.maker) };
|
|
40
87
|
}
|
|
41
88
|
function makerState(value) {
|
|
42
|
-
return { ...value,
|
|
89
|
+
return { ...value, profileRef: entityRef('profile', value.profile) };
|
|
43
90
|
}
|
|
44
91
|
function book(value) {
|
|
45
92
|
return {
|
|
@@ -160,7 +207,7 @@ export async function getLocalMarketsBySystem(context, system, options) {
|
|
|
160
207
|
const meta = readMeta(envelopes);
|
|
161
208
|
return Object.freeze(attachReadMeta(await Promise.all(envelopes.map((envelope) => toLocalSnapshot(context, envelope))), meta));
|
|
162
209
|
}
|
|
163
|
-
/** Returns one
|
|
210
|
+
/** Returns one Profile's open orders with that side's maker state.
|
|
164
211
|
*
|
|
165
212
|
* Bid-side ATLAS is escrowed for buy orders. Ask-side ATLAS was released from
|
|
166
213
|
* completed sell orders. Neither interpretation promises withdrawability.
|
|
@@ -169,19 +216,19 @@ export async function getLocalMarketsBySystem(context, system, options) {
|
|
|
169
216
|
* ```ts
|
|
170
217
|
* declare const ctx: SageContext;
|
|
171
218
|
* declare const market: Address;
|
|
172
|
-
* declare const
|
|
173
|
-
* const orders = await
|
|
219
|
+
* declare const profile: Address;
|
|
220
|
+
* const orders = await getLocalMarketOrdersByProfile(ctx, market, profile);
|
|
174
221
|
* ```
|
|
175
222
|
*/
|
|
176
|
-
export async function
|
|
223
|
+
export async function getLocalMarketOrdersByProfile(context, market, profile, options) {
|
|
177
224
|
const snapshot = await getLocalMarket(context, market, options);
|
|
178
225
|
const matches = (side) => {
|
|
179
|
-
const orders = side.orders.filter((value) => value.maker ===
|
|
226
|
+
const orders = side.orders.filter((value) => value.maker === profile);
|
|
180
227
|
if (orders.length === 0)
|
|
181
228
|
return [];
|
|
182
|
-
const maker = side.makers.find((value) => value.
|
|
229
|
+
const maker = side.makers.find((value) => value.profile === profile);
|
|
183
230
|
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
|
|
231
|
+
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
232
|
}
|
|
186
233
|
return orders.map((value) => ({ ...value, makerState: maker }));
|
|
187
234
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markets/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
* Direct mining needs Idle. Settle travel through a supported game route, then
|
|
33
|
+
* refresh an Idle Fleet before planning mining. planFleetSettleArrival supports
|
|
34
|
+
* completed current-runtime subwarp with direct Profile authorization; it does
|
|
35
|
+
* not support warp. Current-runtime settlement-plus-mining composition has not
|
|
36
|
+
* been qualified. Idle Fleets do not need the settlement step.
|
|
37
|
+
* Simulate the complete Plan before execution; arrival, permissions, range, fuel,
|
|
38
|
+
* and mining eligibility remain program-authoritative. This planner neither
|
|
39
|
+
* estimates mining output nor stops mining. No FleetCrewBinding account exists
|
|
40
|
+
* in the pinned ten-account instruction.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* declare const ctx: SageContext;
|
|
45
|
+
* declare const fleet: FleetSnapshot;
|
|
46
|
+
* declare const authorization: PlanAuthorization;
|
|
47
|
+
* declare const asteroid: ResourceDepositSnapshot;
|
|
48
|
+
* const plan = await planFleetStartMining(ctx, fleet, { authorization, asteroid, resourceIds: [8] });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function planFleetStartMining(ctx: SageContext, fleet: FleetSnapshot, options: PlanFleetStartMiningOptions): Promise<Plan>;
|
|
52
|
+
/** Address-only authorization to stop an owned Fleet's current mining operation.
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* declare const authorization: PlanAuthorization;
|
|
56
|
+
* const options: PlanFleetStopMiningOptions = { authorization };
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export interface PlanFleetStopMiningOptions {
|
|
60
|
+
readonly authorization: PlanAuthorization;
|
|
61
|
+
}
|
|
62
|
+
/** Plans one inert stop-mining instruction using the Asteroid in Fleet state.
|
|
63
|
+
*
|
|
64
|
+
* The snapshot and a fresh canonical Fleet must be mining the same Asteroid.
|
|
65
|
+
* A finite persisted guard rechecks this state before signing; old unguarded
|
|
66
|
+
* stop Plans must be recreated. Exit fuel was observed on PTR even for Idle,
|
|
67
|
+
* so Idle is not a free no-op. The read-to-chain race remains: simulate before
|
|
68
|
+
* execution; a later state change can still consume fuel or fail upkeep checks.
|
|
69
|
+
* No yield, cargo amount, or execution success is promised. DO_MINING
|
|
70
|
+
* permission remains chain-authoritative. Only validated canonical optional
|
|
71
|
+
* accounts are included, including the chain-created neutral CrewBinding at
|
|
72
|
+
* its canonical PDA; proven absence uses the generated omitted-account sentinel.
|
|
73
|
+
* Planning does not sign, simulate, or submit a transaction.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* declare const ctx: SageContext;
|
|
78
|
+
* declare const fleet: FleetSnapshot;
|
|
79
|
+
* declare const authorization: PlanAuthorization;
|
|
80
|
+
* const plan = await planFleetStopMining(ctx, fleet, { authorization });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function planFleetStopMining(ctx: SageContext, fleet: FleetSnapshot, options: PlanFleetStopMiningOptions): Promise<Plan>;
|
|
84
|
+
//# sourceMappingURL=index.d.ts.map
|