@aephia/atlas-kit 0.6.0-next.7 → 0.6.0-next.71
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 +22 -10
- 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 +87 -37
- package/dist/claim-stakes/actions/index.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 +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -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.map +1 -1
- package/dist/crafting/actions/index.js +49 -29
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/crafting/index.d.ts +24 -2
- package/dist/crafting/index.d.ts.map +1 -1
- package/dist/crafting/index.js +31 -2
- 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.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 +1 -1
- 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/index.d.ts +34 -15
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +168 -109
- package/dist/fleets/actions/index.js.map +1 -1
- package/dist/fleets/actions/respawn.d.ts +38 -0
- package/dist/fleets/actions/respawn.d.ts.map +1 -0
- package/dist/fleets/actions/respawn.js +122 -0
- package/dist/fleets/actions/respawn.js.map +1 -0
- package/dist/fleets/actions/ship-import.d.ts +48 -0
- package/dist/fleets/actions/ship-import.d.ts.map +1 -0
- package/dist/fleets/actions/ship-import.js +330 -0
- package/dist/fleets/actions/ship-import.js.map +1 -0
- package/dist/fleets/cooldown.d.ts +44 -0
- package/dist/fleets/cooldown.d.ts.map +1 -0
- package/dist/fleets/cooldown.js +43 -0
- package/dist/fleets/cooldown.js.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.js +46 -0
- package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
- package/dist/fleets/index.d.ts +5 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +5 -0
- 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-toll.d.ts +55 -0
- package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
- package/dist/fleets/warp-lane-toll.js +79 -0
- package/dist/fleets/warp-lane-toll.js.map +1 -0
- package/dist/identity/actions/create-profile.d.ts +56 -0
- package/dist/identity/actions/create-profile.d.ts.map +1 -0
- package/dist/identity/actions/create-profile.js +139 -0
- package/dist/identity/actions/create-profile.js.map +1 -0
- package/dist/identity/actions/index.d.ts +4 -3
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +49 -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 +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- 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 +0 -27
- package/dist/internal/c4/claim-stake.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake.js +0 -33
- 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 +11 -31
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +26 -43
- package/dist/internal/c4/crafting.js.map +1 -1
- 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 +43 -19
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +1 -0
- package/dist/internal/c4/fleet.js.map +1 -1
- package/dist/internal/c4/game.d.ts +31 -8
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +88 -12
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +2 -7
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +2 -23
- package/dist/internal/c4/identity.js.map +1 -1
- 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 +1 -37
- package/dist/internal/c4/market.d.ts.map +1 -1
- package/dist/internal/c4/market.js +11 -49
- package/dist/internal/c4/market.js.map +1 -1
- package/dist/internal/c4/mining-instructions.d.ts +2 -0
- package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
- package/dist/internal/c4/mining-instructions.js +3 -0
- package/dist/internal/c4/mining-instructions.js.map +1 -0
- package/dist/internal/c4/open-signal.d.ts +8 -0
- package/dist/internal/c4/open-signal.d.ts.map +1 -0
- package/dist/internal/c4/open-signal.js +37 -0
- package/dist/internal/c4/open-signal.js.map +1 -0
- package/dist/internal/c4/profile-creation.d.ts +17 -0
- package/dist/internal/c4/profile-creation.d.ts.map +1 -0
- package/dist/internal/c4/profile-creation.js +36 -0
- package/dist/internal/c4/profile-creation.js.map +1 -0
- package/dist/internal/c4/profile-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 +17 -2
- package/dist/internal/c4/world.d.ts.map +1 -1
- package/dist/internal/c4/world.js +32 -6
- 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 +19 -6
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +102 -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.js +2 -2
- 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 +106 -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 +107 -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-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 +136 -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/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 +84 -0
- package/dist/internal/planning/open-signal.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 +220 -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/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 +10 -0
- package/dist/internal/planning/ship-token.d.ts.map +1 -0
- package/dist/internal/planning/ship-token.js +47 -0
- package/dist/internal/planning/ship-token.js.map +1 -0
- package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
- package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system-guard.js +93 -0
- package/dist/internal/planning/starbase-system-guard.js.map +1 -0
- package/dist/internal/planning/starbase-system.d.ts +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/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 +1 -0
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +40 -16
- 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/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 +18 -0
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +378 -12
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +180 -132
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +845 -104
- package/dist/planning/index.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/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 +30 -0
- package/dist/registry/ships.d.ts.map +1 -0
- package/dist/registry/ships.js +59 -0
- package/dist/registry/ships.js.map +1 -0
- package/dist/registry/xp-runtime.d.ts +4 -0
- package/dist/registry/xp-runtime.d.ts.map +1 -0
- package/dist/registry/xp-runtime.js +14 -0
- package/dist/registry/xp-runtime.js.map +1 -0
- package/dist/scanning/actions/index.d.ts +116 -0
- package/dist/scanning/actions/index.d.ts.map +1 -0
- package/dist/scanning/actions/index.js +209 -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 +5 -2
- 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 +64 -5
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +53 -4
- package/dist/world/index.js.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-detect.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/scan-detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAQtD,OAAO,KAAK,EACV,WAAW,EAEX,UAAU,EACX,MAAM,2BAA2B,CAAC;AA6BnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5E,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;CAC3C;AAsBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,QA+BzE;AAMD,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,EACtB,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;GA2NxB;AACD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,UAAU,iBAwBvB"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { isAddress } from '@solana/kit';
|
|
2
|
+
import { getDetectSignalInstructionDataEncoder, getFleetDecoder, getScanPatternPolicyDecoder, getScanSignalDecoder, getRegionTrackerDecoder, } from '../c4/scan-detection-codecs.js';
|
|
3
|
+
import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
|
|
4
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
5
|
+
import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
|
|
6
|
+
import { characterAccountDefinition, profileAccountDefinition, findCharacterPda, } from '../c4/identity.js';
|
|
7
|
+
import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
|
|
8
|
+
import { scanPatternAccountDefinition, deriveScanPatternAddress, } from '../c4/scanning.js';
|
|
9
|
+
import { scanSignalAccountDefinition, scanPatternPolicyAccountDefinition, scanLootProfileAccountDefinition, deriveScanLifecycleAddress, } from '../c4/scan-lifecycle.js';
|
|
10
|
+
import { PROFILE_SCOPE, SAGE_SCOPE } from '../c4/profile-permissions.js';
|
|
11
|
+
import { requireGameAddress } from '../game-context.js';
|
|
12
|
+
import { readFreshGameScanningConfiguration } from '../../registry/scanning.js';
|
|
13
|
+
import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
|
|
14
|
+
import { hashAccountState } from './account-state.js';
|
|
15
|
+
import { regionContainsCoordinate } from '../c4/region-geometry.js';
|
|
16
|
+
import { detectInstruction, } from './scan-detect-guard.js';
|
|
17
|
+
const focuses = [
|
|
18
|
+
'any',
|
|
19
|
+
'industrial',
|
|
20
|
+
'technology',
|
|
21
|
+
'tactical',
|
|
22
|
+
'exotic',
|
|
23
|
+
];
|
|
24
|
+
function invalid(field, value) {
|
|
25
|
+
throw new InvalidActionInputError(field, value, 'the documented direct-owner detection inputs', 'Provide a Fleet address, explicit u16 pattern ID, supported focus and direct Profile authorization; no certificate or automatic setup.');
|
|
26
|
+
}
|
|
27
|
+
function fail(reason) {
|
|
28
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Signal detection ${reason}. Refresh the Fleet, signal and configuration; complete setup, cargo loading or movement separately before recreating the Plan.`);
|
|
29
|
+
}
|
|
30
|
+
export function validateDetectInput(fleet, options) {
|
|
31
|
+
if (!isAddress(fleet))
|
|
32
|
+
invalid('fleet', fleet);
|
|
33
|
+
if (!options ||
|
|
34
|
+
typeof options !== 'object' ||
|
|
35
|
+
Object.keys(options).some((k) => !['patternId', 'focus', 'authorization'].includes(k)))
|
|
36
|
+
invalid('options', options);
|
|
37
|
+
if (!Number.isInteger(options.patternId) ||
|
|
38
|
+
options.patternId < 0 ||
|
|
39
|
+
options.patternId > 65535)
|
|
40
|
+
invalid('patternId', options.patternId);
|
|
41
|
+
if (!focuses.includes(options.focus))
|
|
42
|
+
invalid('focus', options.focus);
|
|
43
|
+
const a = options.authorization;
|
|
44
|
+
if (!a ||
|
|
45
|
+
typeof a !== 'object' ||
|
|
46
|
+
Object.keys(a).some((k) => !['profile', 'authority', 'keyIndex'].includes(k)) ||
|
|
47
|
+
!isAddress(a.profile) ||
|
|
48
|
+
!isAddress(a.authority) ||
|
|
49
|
+
!Number.isInteger(a.keyIndex) ||
|
|
50
|
+
a.keyIndex < 0 ||
|
|
51
|
+
a.keyIndex > 65535)
|
|
52
|
+
invalid('authorization', a);
|
|
53
|
+
}
|
|
54
|
+
function required(raw, address) {
|
|
55
|
+
if (!raw || raw.address !== address || raw.executable)
|
|
56
|
+
fail(`requires existing non-executable account ${address}`);
|
|
57
|
+
return raw;
|
|
58
|
+
}
|
|
59
|
+
export async function resolveDetect(ctx, address, options, commitment) {
|
|
60
|
+
validateDetectInput(address, options);
|
|
61
|
+
const game = requireGameAddress(ctx);
|
|
62
|
+
const auth = options.authorization;
|
|
63
|
+
const read = (addresses) => readContextRawAccounts(ctx, addresses, commitment === undefined ? undefined : { commitment });
|
|
64
|
+
const [fleetRaw, clockRaw] = await read([address, CLOCK_ADDRESS]);
|
|
65
|
+
const raw = required(fleetRaw, address);
|
|
66
|
+
const fleet = fleetAccountDefinition.decode(raw);
|
|
67
|
+
if (fleet.game !== game ||
|
|
68
|
+
(await deriveFleetAddress(fleet)) !== address ||
|
|
69
|
+
fleet.ownerProfile !== auth.profile ||
|
|
70
|
+
fleet.subProfile !== '11111111111111111111111111111111')
|
|
71
|
+
fail('requires the canonical directly owned Fleet without delegation');
|
|
72
|
+
const exact = getFleetDecoder().decode(raw.data);
|
|
73
|
+
if (exact.state.__kind !== 'Idle')
|
|
74
|
+
fail('requires a currently Idle Fleet');
|
|
75
|
+
const now = readClock(required(clockRaw, CLOCK_ADDRESS));
|
|
76
|
+
if (exact.scanCooldownExpiresAt > now)
|
|
77
|
+
fail('requires the Fleet scan cooldown to have elapsed');
|
|
78
|
+
const character = await findCharacterPda(auth.profile, game);
|
|
79
|
+
const tracker = await deriveRegionTrackerAddress(game);
|
|
80
|
+
const [signal, signalBump] = await deriveScanLifecycleAddress('scanSignal', game, address);
|
|
81
|
+
const [policy, policyBump] = await deriveScanLifecycleAddress('scanPatternPolicy', game, options.patternId);
|
|
82
|
+
const pattern = await deriveScanPatternAddress(game, options.patternId);
|
|
83
|
+
const keys = [auth.profile, character, tracker, signal, policy, pattern];
|
|
84
|
+
const raws = await read(keys);
|
|
85
|
+
const accounts = raws.map((r, i) => required(r, keys[i]));
|
|
86
|
+
const profile = profileAccountDefinition.decode(accounts[0]);
|
|
87
|
+
const key = profile.keys[auth.keyIndex];
|
|
88
|
+
if (!key ||
|
|
89
|
+
key.address !== auth.authority ||
|
|
90
|
+
(key.expiresAtRaw >= 0n && key.expiresAtRaw < now) ||
|
|
91
|
+
![PROFILE_SCOPE, SAGE_SCOPE].includes(key.scope))
|
|
92
|
+
fail('requires a current unexpired direct key scoped to Player Profile or SAGE; instruction permission acceptance remains chain-authoritative');
|
|
93
|
+
const owner = characterAccountDefinition.decode(accounts[1]);
|
|
94
|
+
if (owner.game !== game || owner.playerProfile !== auth.profile)
|
|
95
|
+
fail('requires the canonical owning Character');
|
|
96
|
+
const regionData = regionTrackerAccountDefinition.decode(accounts[2]);
|
|
97
|
+
if (regionData.game !== game)
|
|
98
|
+
fail('requires this Game’s RegionTracker');
|
|
99
|
+
const location = { x: exact.location[0].raw, y: exact.location[1].raw };
|
|
100
|
+
const region = getRegionTrackerDecoder()
|
|
101
|
+
.decode(accounts[2].data)
|
|
102
|
+
.regions.unsizedList.find((r) => regionContainsCoordinate(r, location));
|
|
103
|
+
if (!region)
|
|
104
|
+
fail('cannot map the current position to a configured Region');
|
|
105
|
+
const signalData = scanSignalAccountDefinition.decode(accounts[3]);
|
|
106
|
+
const rawSignal = getScanSignalDecoder().decode(accounts[3].data);
|
|
107
|
+
if (signalData.game !== game ||
|
|
108
|
+
signalData.fleet !== address ||
|
|
109
|
+
signalData.bump !== signalBump ||
|
|
110
|
+
rawSignal.ownerProfile !== auth.profile ||
|
|
111
|
+
rawSignal.ownerCharacter !== character ||
|
|
112
|
+
rawSignal.controllerProfile !== auth.profile ||
|
|
113
|
+
rawSignal.controllerCharacter !== character)
|
|
114
|
+
fail('requires a canonical signal owned and controlled by this Profile and Character');
|
|
115
|
+
if (signalData.status !== 'empty')
|
|
116
|
+
fail('requires an existing Empty signal; finish and acknowledge the previous result separately');
|
|
117
|
+
if (signalData.cooldownEndsAtUnixSeconds > now)
|
|
118
|
+
fail('requires the signal cooldown to have elapsed');
|
|
119
|
+
const p = scanPatternPolicyAccountDefinition.decode(accounts[4]);
|
|
120
|
+
const policyExact = getScanPatternPolicyDecoder().decode(accounts[4].data);
|
|
121
|
+
const patternData = scanPatternAccountDefinition.decode(accounts[5]);
|
|
122
|
+
if (p.game !== game ||
|
|
123
|
+
p.patternId !== options.patternId ||
|
|
124
|
+
p.bump !== policyBump ||
|
|
125
|
+
p.status !== 'active' ||
|
|
126
|
+
patternData.game !== game ||
|
|
127
|
+
patternData.id !== options.patternId ||
|
|
128
|
+
patternData.status !== 'active')
|
|
129
|
+
fail('requires the active selected pattern and canonical policy');
|
|
130
|
+
const focus = focuses.indexOf(options.focus);
|
|
131
|
+
if (focus !== 0 &&
|
|
132
|
+
(policyExact.allowedFocusCategoryMask & (1 << focus)) === 0)
|
|
133
|
+
fail('does not support the selected focus under this policy');
|
|
134
|
+
const tags = [
|
|
135
|
+
...region.scanningResearchRequirements,
|
|
136
|
+
...p.requiredResearchTagIds,
|
|
137
|
+
];
|
|
138
|
+
if (tags.some((t) => !owner.modifiers.values.researchTags.includes(t)))
|
|
139
|
+
fail('requires the selected Region and policy research tags');
|
|
140
|
+
const [loot, lootBump] = await deriveScanLifecycleAddress('scanLootProfile', game, region.id);
|
|
141
|
+
const [lootRaw] = await read([loot]);
|
|
142
|
+
const l = scanLootProfileAccountDefinition.decode(required(lootRaw, loot));
|
|
143
|
+
if (l.game !== game ||
|
|
144
|
+
l.regionId !== region.id ||
|
|
145
|
+
l.bump !== lootBump ||
|
|
146
|
+
l.status !== 'active')
|
|
147
|
+
fail('requires the active canonical loot profile for the current Region');
|
|
148
|
+
const gameConfig = await readFreshGameScanningConfiguration(ctx, commitment === undefined ? undefined : { commitment });
|
|
149
|
+
if (fleet.shipDefinitionsSeqId !== gameConfig.shipSequenceId)
|
|
150
|
+
fail('supports current Fleet ship definitions only; synchronize the Fleet through a supported game client first');
|
|
151
|
+
const costs = new Map();
|
|
152
|
+
for (const row of patternData.costs) {
|
|
153
|
+
const amount = (BigInt(exact.stats.miscStats.scanCost) * row.multiplier.raw + 65535n) /
|
|
154
|
+
65536n;
|
|
155
|
+
costs.set(row.cargoId, (costs.get(row.cargoId) ?? 0n) + amount);
|
|
156
|
+
}
|
|
157
|
+
const descriptions = [];
|
|
158
|
+
for (const [id, amount] of costs) {
|
|
159
|
+
const definition = gameConfig.cargo.definitions.find((row) => row.id === id);
|
|
160
|
+
if (!definition)
|
|
161
|
+
fail(`cannot resolve required cargo ${id} from current Game definitions`);
|
|
162
|
+
const held = exact.cargoHold.amounts.get(id) ?? 0n;
|
|
163
|
+
if (held < amount)
|
|
164
|
+
fail(`needs ${amount} raw ${definition.name}; only ${held} aboard`);
|
|
165
|
+
descriptions.push(`${amount} raw ${definition.name}`);
|
|
166
|
+
}
|
|
167
|
+
const selected = {
|
|
168
|
+
authority: {
|
|
169
|
+
profileVersion: profile.version,
|
|
170
|
+
scope: key.scope,
|
|
171
|
+
permissions: key.permissionsRaw,
|
|
172
|
+
expires: key.expiresAtRaw,
|
|
173
|
+
},
|
|
174
|
+
shipSequence: gameConfig.shipSequenceId,
|
|
175
|
+
location,
|
|
176
|
+
region: region.id,
|
|
177
|
+
regionTags: region.scanningResearchRequirements,
|
|
178
|
+
pattern: {
|
|
179
|
+
version: patternData.version,
|
|
180
|
+
costs: patternData.costs.map((c) => [c.cargoId, c.multiplier.raw]),
|
|
181
|
+
cooldown: patternData.cooldownMultiplier.raw,
|
|
182
|
+
},
|
|
183
|
+
policy: {
|
|
184
|
+
version: p.version,
|
|
185
|
+
revision: p.revision,
|
|
186
|
+
focusMask: policyExact.allowedFocusCategoryMask,
|
|
187
|
+
tags: p.requiredResearchTagIds,
|
|
188
|
+
},
|
|
189
|
+
loot: { version: l.version, revision: l.revision },
|
|
190
|
+
scanCost: exact.stats.miscStats.scanCost,
|
|
191
|
+
};
|
|
192
|
+
const configHash = await hashAccountState(game, new TextEncoder().encode(JSON.stringify(selected, (_, v) => typeof v === 'bigint' ? String(v) : v)));
|
|
193
|
+
const guard = {
|
|
194
|
+
kind: 'scan-detect',
|
|
195
|
+
address,
|
|
196
|
+
game,
|
|
197
|
+
profile: auth.profile,
|
|
198
|
+
authority: auth.authority,
|
|
199
|
+
character,
|
|
200
|
+
signal,
|
|
201
|
+
pattern,
|
|
202
|
+
policy,
|
|
203
|
+
loot,
|
|
204
|
+
tracker,
|
|
205
|
+
keyIndex: auth.keyIndex,
|
|
206
|
+
patternId: options.patternId,
|
|
207
|
+
focus,
|
|
208
|
+
expectedSequence: signalData.sequence,
|
|
209
|
+
policyRevision: p.revision,
|
|
210
|
+
profileRevision: l.revision,
|
|
211
|
+
configHash,
|
|
212
|
+
describes: 'The direct owner, Idle Fleet, Empty signal, sequence, selected region/configuration, elapsed cooldown and required cargo remain valid. Refresh and recreate detection if any prerequisite changes.',
|
|
213
|
+
};
|
|
214
|
+
return {
|
|
215
|
+
guard,
|
|
216
|
+
instruction: {
|
|
217
|
+
...detectInstruction(guard),
|
|
218
|
+
data: getDetectSignalInstructionDataEncoder().encode({
|
|
219
|
+
keyIndex: auth.keyIndex,
|
|
220
|
+
expectedSequence: guard.expectedSequence,
|
|
221
|
+
scanPatternId: options.patternId,
|
|
222
|
+
expectedPolicyRevision: guard.policyRevision,
|
|
223
|
+
expectedProfileRevision: guard.profileRevision,
|
|
224
|
+
focus,
|
|
225
|
+
}),
|
|
226
|
+
},
|
|
227
|
+
costDescription: descriptions.join(', ') || 'no cargo',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export async function revalidateDetect(ctx, guard, commitment) {
|
|
231
|
+
const current = await resolveDetect(ctx, guard.address, {
|
|
232
|
+
authorization: {
|
|
233
|
+
profile: guard.profile,
|
|
234
|
+
authority: guard.authority,
|
|
235
|
+
keyIndex: guard.keyIndex,
|
|
236
|
+
},
|
|
237
|
+
patternId: guard.patternId,
|
|
238
|
+
focus: focuses[guard.focus],
|
|
239
|
+
}, commitment);
|
|
240
|
+
if (Object.entries(guard).some(([key, value]) => key !== 'describes' &&
|
|
241
|
+
current.guard[key] !== value))
|
|
242
|
+
fail('intent changed since planning');
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=scan-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-detect.js","sourceRoot":"","sources":["../../../src/internal/planning/scan-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Address, RawAccount } from '../../client/contracts.js';
|
|
2
|
+
export interface ShipImportFundingIntent {
|
|
3
|
+
readonly address: Address;
|
|
4
|
+
readonly game: Address;
|
|
5
|
+
readonly profile: Address;
|
|
6
|
+
readonly system: Address;
|
|
7
|
+
readonly shipId: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ShipImportFundingAccounts {
|
|
10
|
+
readonly profile: Address;
|
|
11
|
+
readonly character: Address;
|
|
12
|
+
readonly starbasePlayer: Address;
|
|
13
|
+
readonly rent: Address;
|
|
14
|
+
}
|
|
15
|
+
/** Resolves only the finite funding prerequisites; no implicit Game account read. */
|
|
16
|
+
export declare function resolveShipImportFunding(intent: ShipImportFundingIntent): Promise<ShipImportFundingAccounts>;
|
|
17
|
+
/** Shared preparation/execution funding calculation; existing action guards retain permissions and inventory intent. */
|
|
18
|
+
export declare function validateShipImportFunding(intent: ShipImportFundingIntent, resolved: ShipImportFundingAccounts, accounts: ReadonlyMap<Address, RawAccount | undefined>, maximumProfileDebit?: bigint): {
|
|
19
|
+
profileDebit: bigint;
|
|
20
|
+
profileReserve: bigint;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=ship-import-funding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-import-funding.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-import-funding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAcrE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAID,qFAAqF;AACrF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAiBpC;AACD,wHAAwH;AACxH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,mBAAmB,CAAC,EAAE,MAAM,GAC3B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAkDlD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { profileAccountDefinition, characterAccountDefinition, findCharacterPda, } from '../c4/identity.js';
|
|
3
|
+
import { starbasePlayerAccountDefinition, deriveStarbasePlayerAddress, } from '../c4/starbase.js';
|
|
4
|
+
import { shipImportStorageSize } from '../c4/ship-import.js';
|
|
5
|
+
import { RENT_ADDRESS, readRent } from './faction-enrollment.js';
|
|
6
|
+
function fail(address, message) {
|
|
7
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
8
|
+
}
|
|
9
|
+
/** Resolves only the finite funding prerequisites; no implicit Game account read. */
|
|
10
|
+
export async function resolveShipImportFunding(intent) {
|
|
11
|
+
const character = await findCharacterPda(intent.profile, intent.game);
|
|
12
|
+
const starbasePlayer = await deriveStarbasePlayerAddress(intent.system, character);
|
|
13
|
+
if (starbasePlayer !== intent.address)
|
|
14
|
+
fail(intent.address, 'Ship import funding requires the canonical StarbasePlayer for this Game, Profile and System. Refresh that registration and prepare a new import.');
|
|
15
|
+
return {
|
|
16
|
+
profile: intent.profile,
|
|
17
|
+
character,
|
|
18
|
+
starbasePlayer,
|
|
19
|
+
rent: RENT_ADDRESS,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Shared preparation/execution funding calculation; existing action guards retain permissions and inventory intent. */
|
|
23
|
+
export function validateShipImportFunding(intent, resolved, accounts, maximumProfileDebit) {
|
|
24
|
+
const required = (address, role) => {
|
|
25
|
+
const raw = accounts.get(address);
|
|
26
|
+
if (!raw || raw.address !== address || raw.executable)
|
|
27
|
+
fail(address, `${role} is missing or invalid for ship import funding. Refresh the canonical account and replan.`);
|
|
28
|
+
return raw;
|
|
29
|
+
};
|
|
30
|
+
const profile = required(resolved.profile, 'Profile');
|
|
31
|
+
profileAccountDefinition.decode(profile);
|
|
32
|
+
const character = characterAccountDefinition.decode(required(resolved.character, 'Character'));
|
|
33
|
+
if (character.game !== intent.game ||
|
|
34
|
+
character.playerProfile !== intent.profile)
|
|
35
|
+
fail(resolved.character, 'The Character has a different Game or Profile. Refresh the canonical Character and replan ship import.');
|
|
36
|
+
const target = required(resolved.starbasePlayer, 'StarbasePlayer');
|
|
37
|
+
const player = starbasePlayerAccountDefinition.decode(target);
|
|
38
|
+
if (player.playerProfile !== intent.profile ||
|
|
39
|
+
player.character !== resolved.character ||
|
|
40
|
+
player.system !== intent.system)
|
|
41
|
+
fail(target.address, 'The StarbasePlayer has a different Profile, Character or System. Refresh the canonical registration and replan ship import.');
|
|
42
|
+
const rent = readRent(required(resolved.rent, 'Rent sysvar'));
|
|
43
|
+
const storageRent = rent(shipImportStorageSize(target, intent.shipId));
|
|
44
|
+
const profileDebit = storageRent > target.lamports ? storageRent - target.lamports : 0n;
|
|
45
|
+
if (maximumProfileDebit !== undefined && profileDebit > maximumProfileDebit)
|
|
46
|
+
fail(intent.profile, 'Ship import now requires a larger Profile debit than this Plan approved. Refresh and replan the current StarbasePlayer storage shortfall before signing.');
|
|
47
|
+
const profileReserve = rent(profile.data.length);
|
|
48
|
+
if (profile.lamports < profileReserve + profileDebit)
|
|
49
|
+
fail(intent.profile, `Profile vault needs ${profileReserve + profileDebit - profile.lamports} more native lamports to fund StarbasePlayer storage while retaining its own reserve. Fund the Profile separately and replan ship import.`);
|
|
50
|
+
return { profileDebit, profileReserve };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=ship-import-funding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-import-funding.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-import-funding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAejE,SAAS,IAAI,CAAC,OAAgB,EAAE,OAAe;IAC7C,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AACD,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,MAAM,2BAA2B,CACtD,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IACF,IAAI,cAAc,KAAK,MAAM,CAAC,OAAO;QACnC,IAAI,CACF,MAAM,CAAC,OAAO,EACd,kJAAkJ,CACnJ,CAAC;IACJ,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS;QACT,cAAc;QACd,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC;AACD,wHAAwH;AACxH,MAAM,UAAU,yBAAyB,CACvC,MAA+B,EAC/B,QAAmC,EACnC,QAAsD,EACtD,mBAA4B;IAE5B,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAc,EAAE;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU;YACnD,IAAI,CACF,OAAO,EACP,GAAG,IAAI,2FAA2F,CACnG,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,CACjD,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAC1C,CAAC;IACF,IACE,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAC9B,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO;QAE1C,IAAI,CACF,QAAQ,CAAC,SAAS,EAClB,wGAAwG,CACzG,CAAC;IACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,IACE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO;QACvC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACvC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAE/B,IAAI,CACF,MAAM,CAAC,OAAO,EACd,6HAA6H,CAC9H,CAAC;IACJ,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAChB,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,IAAI,mBAAmB,KAAK,SAAS,IAAI,YAAY,GAAG,mBAAmB;QACzE,IAAI,CACF,MAAM,CAAC,OAAO,EACd,0JAA0J,CAC3J,CAAC;IACJ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,QAAQ,GAAG,cAAc,GAAG,YAAY;QAClD,IAAI,CACF,MAAM,CAAC,OAAO,EACd,uBAAuB,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,2IAA2I,CACnN,CAAC;IACJ,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Address } from '@solana/kit';
|
|
2
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
export declare const ORIGINAL_TOKEN_PROGRAM: Address;
|
|
4
|
+
export declare const ATA_PROGRAM: Address;
|
|
5
|
+
export declare const SYSTEM_PROGRAM: Address;
|
|
6
|
+
export declare function failShipImport(message: string, address: Address): never;
|
|
7
|
+
export declare function deriveShipTokenAddress(owner: Address, mint: Address): Promise<Address>;
|
|
8
|
+
export declare function validateShipMint(account: RawAccount): void;
|
|
9
|
+
export declare function validateShipToken(account: RawAccount, mint: Address, owner: Address): bigint;
|
|
10
|
+
//# sourceMappingURL=ship-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,sBAAsB,EACgB,OAAO,CAAC;AAC3D,eAAO,MAAM,WAAW,EAC4B,OAAO,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAyC,OAAO,CAAC;AAC5E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMvE;AACD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAYlB;AAwBD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAM1D;AACD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,GACb,MAAM,CAcR"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { validateTokenMint } from './token-mint.js';
|
|
2
|
+
import { getAddressDecoder, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
3
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
4
|
+
export const ORIGINAL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
5
|
+
export const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
|
|
6
|
+
export const SYSTEM_PROGRAM = '11111111111111111111111111111111';
|
|
7
|
+
export function failShipImport(message, address) {
|
|
8
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the relevant accounts and prepare a new ship import Plan.`, { address });
|
|
9
|
+
}
|
|
10
|
+
export async function deriveShipTokenAddress(owner, mint) {
|
|
11
|
+
const encoder = getAddressEncoder();
|
|
12
|
+
return (await getProgramDerivedAddress({
|
|
13
|
+
programAddress: ATA_PROGRAM,
|
|
14
|
+
seeds: [
|
|
15
|
+
encoder.encode(owner),
|
|
16
|
+
encoder.encode(ORIGINAL_TOKEN_PROGRAM),
|
|
17
|
+
encoder.encode(mint),
|
|
18
|
+
],
|
|
19
|
+
}))[0];
|
|
20
|
+
}
|
|
21
|
+
function bytes(account, length) {
|
|
22
|
+
if (account.executable ||
|
|
23
|
+
account.owner !== ORIGINAL_TOKEN_PROGRAM ||
|
|
24
|
+
account.data.length !== length)
|
|
25
|
+
failShipImport(`Account ${account.address} must be an original Token account with exactly ${length} bytes; Token-2022 is unsupported.`, account.address);
|
|
26
|
+
return new DataView(account.data.buffer, account.data.byteOffset, account.data.byteLength);
|
|
27
|
+
}
|
|
28
|
+
function option(view, offset, account) {
|
|
29
|
+
if (view.getUint32(offset, true) > 1)
|
|
30
|
+
failShipImport('The Token account has malformed optional fields.', account.address);
|
|
31
|
+
}
|
|
32
|
+
export function validateShipMint(account) {
|
|
33
|
+
if (validateTokenMint(account) !== 0)
|
|
34
|
+
failShipImport('Ship import requires an initialized zero-decimal mint so each token is one ship.', account.address);
|
|
35
|
+
}
|
|
36
|
+
export function validateShipToken(account, mint, owner) {
|
|
37
|
+
const view = bytes(account, 165);
|
|
38
|
+
for (const offset of [72, 109, 129])
|
|
39
|
+
option(view, offset, account);
|
|
40
|
+
const decoder = getAddressDecoder();
|
|
41
|
+
if (view.getUint8(108) !== 1 ||
|
|
42
|
+
decoder.decode(account.data.subarray(0, 32)) !== mint ||
|
|
43
|
+
decoder.decode(account.data.subarray(32, 64)) !== owner)
|
|
44
|
+
failShipImport(`The token account must be initialized, unfrozen and hold ship mint ${mint} under authority ${owner}. Delegated token spending is unsupported.`, account.address);
|
|
45
|
+
return view.getBigUint64(64, true);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ship-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-token.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
|
|
2
|
+
/** Binds required guards to actual instruction accounts without pulling byte decoders into every action entry. */
|
|
3
|
+
export declare function validateStarbaseSystemGuards(steps: readonly PlanStep[], preconditions: readonly PlanPrecondition[]): void;
|
|
4
|
+
/** Hydration and assembly additionally verify exact bytes with the pinned generated decoders. */
|
|
5
|
+
export declare function validateStarbaseSystemInstructions(steps: readonly PlanStep[], preconditions: readonly PlanPrecondition[]): void;
|
|
6
|
+
//# sourceMappingURL=starbase-system-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-system-guard.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-system-guard.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAuD1E,kHAAkH;AAClH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CAmBN;AAED,iGAAiG;AACjG,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,aAAa,EAAE,SAAS,gBAAgB,EAAE,GACzC,IAAI,CAoBN"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { AccountRole } from '@solana/kit';
|
|
2
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
3
|
+
import { DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, WITHDRAW_CARGO_FROM_GAME_DISCRIMINATOR, ADD_SHIP_ESCROW_DISCRIMINATOR, getDepositCargoToGameInstructionDataDecoder, getWithdrawCargoFromGameInstructionDataDecoder, getAddShipEscrowInstructionDataDecoder, CANCEL_CRAFTING_PROCESS_DISCRIMINATOR, getCancelCraftingProcessInstructionDataDecoder, SAGE_PROGRAM_ADDRESS, } from '../c4/runtime-bindings.js';
|
|
4
|
+
// Pure instruction metadata keeps the Plan factory independent of generated data decoders.
|
|
5
|
+
function routeFor(instruction) {
|
|
6
|
+
if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS)
|
|
7
|
+
return undefined;
|
|
8
|
+
const routes = [
|
|
9
|
+
{
|
|
10
|
+
discriminator: CANCEL_CRAFTING_PROCESS_DISCRIMINATOR,
|
|
11
|
+
decoder: 0,
|
|
12
|
+
count: 11,
|
|
13
|
+
game: 5,
|
|
14
|
+
system: 6,
|
|
15
|
+
css: false,
|
|
16
|
+
planner: 'planCancelCraftingProcess',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
discriminator: DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR,
|
|
20
|
+
decoder: 1,
|
|
21
|
+
count: 13,
|
|
22
|
+
game: 8,
|
|
23
|
+
system: 4,
|
|
24
|
+
css: true,
|
|
25
|
+
planner: 'planDepositCargoToGame',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
discriminator: WITHDRAW_CARGO_FROM_GAME_DISCRIMINATOR,
|
|
29
|
+
decoder: 2,
|
|
30
|
+
count: 11,
|
|
31
|
+
game: 6,
|
|
32
|
+
system: 4,
|
|
33
|
+
css: false,
|
|
34
|
+
planner: 'planWithdrawCargoFromGame',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
discriminator: ADD_SHIP_ESCROW_DISCRIMINATOR,
|
|
38
|
+
decoder: 3,
|
|
39
|
+
count: 14,
|
|
40
|
+
game: 11,
|
|
41
|
+
system: 7,
|
|
42
|
+
css: true,
|
|
43
|
+
planner: 'planDepositShipsToGame',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
return routes.find(({ discriminator }) => discriminator.every((byte, index) => instruction.data?.[index] === byte));
|
|
47
|
+
}
|
|
48
|
+
function fail(planner) {
|
|
49
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `This Starbase action has an unsupported instruction layout or lacks its matching finite Starbase System safeguard. Recreate it with ${planner}; an exact account hash does not replace this safeguard.`);
|
|
50
|
+
}
|
|
51
|
+
/** Binds required guards to actual instruction accounts without pulling byte decoders into every action entry. */
|
|
52
|
+
export function validateStarbaseSystemGuards(steps, preconditions) {
|
|
53
|
+
for (const { instruction } of steps) {
|
|
54
|
+
const route = routeFor(instruction);
|
|
55
|
+
if (!route)
|
|
56
|
+
continue;
|
|
57
|
+
const accounts = instruction.accounts;
|
|
58
|
+
if (accounts?.length !== route.count ||
|
|
59
|
+
accounts[route.game].role !== AccountRole.READONLY ||
|
|
60
|
+
accounts[route.system].role !== AccountRole.READONLY ||
|
|
61
|
+
!preconditions.some((guard) => guard.kind === 'starbase-system' &&
|
|
62
|
+
guard.address === accounts[route.system].address &&
|
|
63
|
+
guard.game === accounts[route.game].address &&
|
|
64
|
+
(!route.css || guard.requireCss === true)))
|
|
65
|
+
fail(route.planner);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Hydration and assembly additionally verify exact bytes with the pinned generated decoders. */
|
|
69
|
+
export function validateStarbaseSystemInstructions(steps, preconditions) {
|
|
70
|
+
validateStarbaseSystemGuards(steps, preconditions);
|
|
71
|
+
const decoders = [
|
|
72
|
+
getCancelCraftingProcessInstructionDataDecoder,
|
|
73
|
+
getDepositCargoToGameInstructionDataDecoder,
|
|
74
|
+
getWithdrawCargoFromGameInstructionDataDecoder,
|
|
75
|
+
getAddShipEscrowInstructionDataDecoder,
|
|
76
|
+
];
|
|
77
|
+
for (const { instruction } of steps) {
|
|
78
|
+
const route = routeFor(instruction);
|
|
79
|
+
if (!route)
|
|
80
|
+
continue;
|
|
81
|
+
let exactData = false;
|
|
82
|
+
try {
|
|
83
|
+
const [, size] = decoders[route.decoder]().read(instruction.data, 0);
|
|
84
|
+
exactData = size === instruction.data.length;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Truncated instruction arguments are not a supported route.
|
|
88
|
+
}
|
|
89
|
+
if (!exactData)
|
|
90
|
+
fail(route.planner);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=starbase-system-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-system-guard.js","sourceRoot":"","sources":["../../../src/internal/planning/starbase-system-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
type StarbaseSystemIntent = {
|
|
4
|
+
readonly address: Address;
|
|
5
|
+
readonly game: Address;
|
|
6
|
+
readonly starbaseSequenceId: bigint;
|
|
7
|
+
readonly requireCss?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/** Checks finite System/Starbase identity and the action's station policy. */
|
|
10
|
+
export declare function validateStarbaseSystem(account: RawAccount, intent: StarbaseSystemIntent): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=starbase-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-system.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAO5D,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAUF,8EAA8E;AAC9E,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../c4/world.js';
|
|
3
|
+
function fail(address, reason) {
|
|
4
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${reason} Refresh the Star System and recreate the action Plan for its current Starbase.`, { address });
|
|
5
|
+
}
|
|
6
|
+
/** Checks finite System/Starbase identity and the action's station policy. */
|
|
7
|
+
export async function validateStarbaseSystem(account, intent) {
|
|
8
|
+
if (account.address !== intent.address || account.executable)
|
|
9
|
+
fail(intent.address, 'The Star System has an unexpected address or is executable instead of account state.');
|
|
10
|
+
const system = starSystemAccountDefinition.decode(account);
|
|
11
|
+
if (system.game !== intent.game ||
|
|
12
|
+
(await deriveStarSystemAddress(intent.game, system.systemId)) !==
|
|
13
|
+
intent.address)
|
|
14
|
+
fail(intent.address, `Star System ${intent.address} does not match the configured Game or canonical system-id PDA.`);
|
|
15
|
+
if (system.sequenceId !== intent.starbaseSequenceId)
|
|
16
|
+
fail(intent.address, `The Starbase sequence is stale at ${intent.starbaseSequenceId}, while Star System ${intent.address} is at sequence ${system.sequenceId}. For a Crafting Process belonging to the destroyed Starbase, use destroyCraftingProcess; do not cancel the Process.`);
|
|
17
|
+
if (system.starbase === undefined)
|
|
18
|
+
fail(intent.address, `Star System ${intent.address} does not have an active Starbase.`);
|
|
19
|
+
if (intent.requireCss && system.starbase.maxLevel.kind !== 'css')
|
|
20
|
+
fail(intent.address, 'This wallet deposit requires a Central Space Station.');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=starbase-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-system.js","sourceRoot":"","sources":["../../../src/internal/planning/starbase-system.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AASxB,SAAS,IAAI,CAAC,OAAgB,EAAE,MAAc;IAC5C,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,GAAG,MAAM,iFAAiF,EAC1F,EAAE,OAAO,EAAE,CACZ,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAmB,EACnB,MAA4B;IAE5B,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU;QAC1D,IAAI,CACF,MAAM,CAAC,OAAO,EACd,sFAAsF,CACvF,CAAC;IACJ,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,IACE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAC3B,CAAC,MAAM,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO;QAEhB,IAAI,CACF,MAAM,CAAC,OAAO,EACd,eAAe,MAAM,CAAC,OAAO,iEAAiE,CAC/F,CAAC;IACJ,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,kBAAkB;QACjD,IAAI,CACF,MAAM,CAAC,OAAO,EACd,qCAAqC,MAAM,CAAC,kBAAkB,uBAAuB,MAAM,CAAC,OAAO,mBAAmB,MAAM,CAAC,UAAU,sHAAsH,CAC9P,CAAC;IACJ,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC/B,IAAI,CACF,MAAM,CAAC,OAAO,EACd,eAAe,MAAM,CAAC,OAAO,oCAAoC,CAClE,CAAC;IACJ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK;QAC9D,IAAI,CACF,MAAM,CAAC,OAAO,EACd,uDAAuD,CACxD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-mint.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/token-mint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CA2B7D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
/** Validate the finite original Token Mint facts used by wallet transfers. */
|
|
3
|
+
export function validateTokenMint(account) {
|
|
4
|
+
if (account.executable ||
|
|
5
|
+
account.owner !== 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' ||
|
|
6
|
+
account.data.length !== 82)
|
|
7
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Mint ${account.address} must be a non-executable original Token Mint with exactly 82 bytes. Refresh the mint or select a supported original Token mint; Token-2022 is unsupported.`, { address: account.address });
|
|
8
|
+
const view = new DataView(account.data.buffer, account.data.byteOffset, account.data.byteLength);
|
|
9
|
+
if (view.getUint32(0, true) > 1 ||
|
|
10
|
+
view.getUint32(46, true) > 1 ||
|
|
11
|
+
view.getUint8(45) !== 1)
|
|
12
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Mint ${account.address} must be initialized with valid optional authority fields. Refresh the mint and prepare a new Plan.`, { address: account.address });
|
|
13
|
+
return view.getUint8(44);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=token-mint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-mint.js","sourceRoot":"","sources":["../../../src/internal/planning/token-mint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,OAAmB;IACnD,IACE,OAAO,CAAC,UAAU;QAClB,OAAO,CAAC,KAAK,KAAK,6CAA6C;QAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;QAE1B,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,QAAQ,OAAO,CAAC,OAAO,6JAA6J,EACpL,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC7B,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EACnB,OAAO,CAAC,IAAI,CAAC,UAAU,EACvB,OAAO,CAAC,IAAI,CAAC,UAAU,CACxB,CAAC;IACF,IACE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;QAEvB,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,QAAQ,OAAO,CAAC,OAAO,qGAAqG,EAC5H,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC7B,CAAC;IACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|