@aephia/atlas-kit 0.6.0-next.11 → 0.6.0-next.110
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 +26 -115
- 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 +15 -37
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts +51 -2
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-context.js +125 -2
- package/dist/cargo/actions/wallet-context.js.map +1 -1
- package/dist/cargo/actions/wallet-token.d.ts +1 -6
- package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-token.js +0 -53
- package/dist/cargo/actions/wallet-token.js.map +1 -1
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
- package/dist/cargo/actions/withdrawal.js +37 -162
- 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 +373 -544
- 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 +2 -2
- package/dist/combat/actions/index.d.ts.map +1 -1
- package/dist/combat/actions/index.js +192 -224
- package/dist/combat/actions/index.js.map +1 -1
- package/dist/combat/index.d.ts +4 -3
- package/dist/combat/index.d.ts.map +1 -1
- package/dist/combat/index.js +3 -2
- package/dist/combat/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 +175 -283
- 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 +45 -16
- 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 +37 -16
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +303 -284
- 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 +59 -76
- package/dist/fleets/actions/ship-import.js.map +1 -1
- package/dist/fleets/cooldown.d.ts +44 -0
- package/dist/fleets/cooldown.d.ts.map +1 -0
- package/dist/fleets/cooldown.js +43 -0
- package/dist/fleets/cooldown.js.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
- package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
- package/dist/fleets/coordinate-warp-estimate.js +46 -0
- package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
- package/dist/fleets/index.d.ts +35 -0
- package/dist/fleets/index.d.ts.map +1 -1
- package/dist/fleets/index.js +52 -2
- package/dist/fleets/index.js.map +1 -1
- package/dist/fleets/movement-arithmetic.d.ts +21 -0
- package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
- package/dist/fleets/movement-arithmetic.js +41 -0
- package/dist/fleets/movement-arithmetic.js.map +1 -0
- package/dist/fleets/subwarp-estimate.d.ts +70 -0
- package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
- package/dist/fleets/subwarp-estimate.js +38 -0
- package/dist/fleets/subwarp-estimate.js.map +1 -0
- package/dist/fleets/travel-profile.d.ts +102 -0
- package/dist/fleets/travel-profile.d.ts.map +1 -0
- package/dist/fleets/travel-profile.js +120 -0
- package/dist/fleets/travel-profile.js.map +1 -0
- package/dist/fleets/warp-lane-estimate.d.ts +59 -0
- package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
- package/dist/fleets/warp-lane-estimate.js +36 -0
- package/dist/fleets/warp-lane-estimate.js.map +1 -0
- package/dist/fleets/warp-lane-policy.d.ts +68 -0
- package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
- package/dist/fleets/warp-lane-policy.js +91 -0
- package/dist/fleets/warp-lane-policy.js.map +1 -0
- package/dist/fleets/warp-lane-toll.d.ts +55 -0
- package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
- package/dist/fleets/warp-lane-toll.js +79 -0
- package/dist/fleets/warp-lane-toll.js.map +1 -0
- package/dist/identity/actions/index.d.ts +3 -3
- package/dist/identity/actions/index.d.ts.map +1 -1
- package/dist/identity/actions/index.js +50 -28
- package/dist/identity/actions/index.js.map +1 -1
- package/dist/identity/index.d.ts +12 -2
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +10 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/permissions.d.ts +11 -2
- package/dist/identity/permissions.d.ts.map +1 -1
- package/dist/identity/permissions.js +13 -4
- package/dist/identity/permissions.js.map +1 -1
- package/dist/identity/research-state.d.ts +60 -0
- package/dist/identity/research-state.d.ts.map +1 -0
- package/dist/identity/research-state.js +68 -0
- package/dist/identity/research-state.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/c4/account-decoding.d.ts +12 -0
- package/dist/internal/c4/account-decoding.d.ts.map +1 -0
- package/dist/internal/c4/account-decoding.js +36 -0
- package/dist/internal/c4/account-decoding.js.map +1 -0
- package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
- package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
- package/dist/internal/c4/cargo-bytes-config.js +19 -0
- package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +1 -1
- package/dist/internal/c4/character-modifier.d.ts.map +1 -1
- package/dist/internal/c4/character-registration.d.ts +2 -0
- package/dist/internal/c4/character-registration.d.ts.map +1 -1
- package/dist/internal/c4/character-registration.js +2 -0
- package/dist/internal/c4/character-registration.js.map +1 -1
- package/dist/internal/c4/character.d.ts +155 -0
- package/dist/internal/c4/character.d.ts.map +1 -0
- package/dist/internal/c4/character.js +79 -0
- package/dist/internal/c4/character.js.map +1 -0
- package/dist/internal/c4/claim-stake-configuration.js +4 -2
- package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
- package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
- package/dist/internal/c4/claim-stake-definitions.js.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 +30 -41
- package/dist/internal/c4/claim-stake.js.map +1 -1
- package/dist/internal/c4/combat.d.ts +1 -82
- package/dist/internal/c4/combat.d.ts.map +1 -1
- package/dist/internal/c4/combat.js +10 -171
- package/dist/internal/c4/combat.js.map +1 -1
- package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
- package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
- package/dist/internal/c4/crafting-process-codec.js +34 -0
- package/dist/internal/c4/crafting-process-codec.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +25 -33
- package/dist/internal/c4/crafting.d.ts.map +1 -1
- package/dist/internal/c4/crafting.js +61 -49
- package/dist/internal/c4/crafting.js.map +1 -1
- package/dist/internal/c4/currency-cache.d.ts +6 -0
- package/dist/internal/c4/currency-cache.d.ts.map +1 -0
- package/dist/internal/c4/currency-cache.js +30 -0
- package/dist/internal/c4/currency-cache.js.map +1 -0
- package/dist/internal/c4/docking-funding.d.ts +4 -0
- package/dist/internal/c4/docking-funding.d.ts.map +1 -0
- package/dist/internal/c4/docking-funding.js +11 -0
- package/dist/internal/c4/docking-funding.js.map +1 -0
- package/dist/internal/c4/faction-adapter.d.ts +12 -0
- package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
- package/dist/internal/c4/faction-adapter.js +52 -0
- package/dist/internal/c4/faction-adapter.js.map +1 -0
- package/dist/internal/c4/faction-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/faction.d.ts +21 -0
- package/dist/internal/c4/faction.d.ts.map +1 -0
- package/dist/internal/c4/faction.js +23 -0
- package/dist/internal/c4/faction.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +9 -57
- package/dist/internal/c4/factions.d.ts.map +1 -1
- package/dist/internal/c4/factions.js +29 -156
- 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 +20 -3
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
- package/dist/internal/c4/fleet-respawn.d.ts +17 -0
- package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
- package/dist/internal/c4/fleet-respawn.js +62 -0
- package/dist/internal/c4/fleet-respawn.js.map +1 -0
- package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
- package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
- package/dist/internal/c4/fleet-ship-assembly.js +44 -0
- package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +45 -19
- package/dist/internal/c4/fleet.d.ts.map +1 -1
- package/dist/internal/c4/fleet.js +37 -29
- package/dist/internal/c4/fleet.js.map +1 -1
- package/dist/internal/c4/game-definition-layout.d.ts +2 -0
- package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
- package/dist/internal/c4/game-definition-layout.js +4 -0
- package/dist/internal/c4/game-definition-layout.js.map +1 -1
- package/dist/internal/c4/game.d.ts +47 -12
- package/dist/internal/c4/game.d.ts.map +1 -1
- package/dist/internal/c4/game.js +110 -21
- package/dist/internal/c4/game.js.map +1 -1
- package/dist/internal/c4/identity.d.ts +2 -152
- package/dist/internal/c4/identity.d.ts.map +1 -1
- package/dist/internal/c4/identity.js +6 -110
- 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/loot-layout.js +1 -1
- package/dist/internal/c4/loot-layout.js.map +1 -1
- package/dist/internal/c4/loot.d.ts +58 -0
- package/dist/internal/c4/loot.d.ts.map +1 -0
- package/dist/internal/c4/loot.js +130 -0
- package/dist/internal/c4/loot.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +0 -27
- package/dist/internal/c4/loyalty.d.ts.map +1 -1
- package/dist/internal/c4/loyalty.js +14 -43
- 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/pda.js +1 -1
- package/dist/internal/c4/pda.js.map +1 -1
- package/dist/internal/c4/profile-faction.d.ts.map +1 -1
- package/dist/internal/c4/profile-faction.js +11 -21
- package/dist/internal/c4/profile-faction.js.map +1 -1
- package/dist/internal/c4/profile-permissions.d.ts +5 -3
- package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
- package/dist/internal/c4/profile-permissions.js +61 -8
- package/dist/internal/c4/profile-permissions.js.map +1 -1
- package/dist/internal/c4/region-geometry.d.ts +8 -0
- package/dist/internal/c4/region-geometry.d.ts.map +1 -0
- package/dist/internal/c4/region-geometry.js +43 -0
- package/dist/internal/c4/region-geometry.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +1 -61
- package/dist/internal/c4/rewards.d.ts.map +1 -1
- package/dist/internal/c4/rewards.js +14 -115
- package/dist/internal/c4/rewards.js.map +1 -1
- package/dist/internal/c4/runtime-bindings.d.ts +4 -0
- package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
- package/dist/internal/c4/runtime-bindings.js +4 -0
- package/dist/internal/c4/runtime-bindings.js.map +1 -0
- package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
- package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
- package/dist/internal/c4/scan-detection-codecs.js +3 -0
- package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
- package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
- package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
- package/dist/internal/c4/scan-lifecycle.js +261 -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 +7 -36
- 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 +12 -62
- 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 +67 -48
- 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 +19 -0
- package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
- package/dist/internal/planning/arrival-guards.js +171 -0
- package/dist/internal/planning/arrival-guards.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +45 -37
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
- package/dist/internal/planning/authorization-adapter.js +165 -76
- 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 +87 -0
- package/dist/internal/planning/character-registration.js.map +1 -0
- package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
- package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
- package/dist/internal/planning/currency-cache-guard.js +32 -0
- package/dist/internal/planning/currency-cache-guard.js.map +1 -0
- package/dist/internal/planning/democracy-history.d.ts +50 -0
- package/dist/internal/planning/democracy-history.d.ts.map +1 -0
- package/dist/internal/planning/democracy-history.js +198 -0
- package/dist/internal/planning/democracy-history.js.map +1 -0
- package/dist/internal/planning/faction-enrollment.d.ts +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 +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 +109 -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 +132 -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 +208 -0
- package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
- package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
- package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
- package/dist/internal/planning/fleet-dock-funding.js +154 -0
- package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
- package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
- package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
- package/dist/internal/planning/fleet-docking-guard.js +42 -0
- package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
- package/dist/internal/planning/fleet-docking.d.ts +10 -0
- package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
- package/dist/internal/planning/fleet-docking.js +85 -0
- package/dist/internal/planning/fleet-docking.js.map +1 -0
- package/dist/internal/planning/fleet-respawn.d.ts +28 -0
- package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
- package/dist/internal/planning/fleet-respawn.js +167 -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 +138 -0
- package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
- package/dist/internal/planning/fleet-state.d.ts +25 -0
- package/dist/internal/planning/fleet-state.d.ts.map +1 -0
- package/dist/internal/planning/fleet-state.js +28 -0
- package/dist/internal/planning/fleet-state.js.map +1 -0
- package/dist/internal/planning/governance-fees.d.ts +64 -0
- package/dist/internal/planning/governance-fees.d.ts.map +1 -0
- package/dist/internal/planning/governance-fees.js +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 +127 -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 +138 -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 +86 -0
- package/dist/internal/planning/open-signal.js.map +1 -0
- package/dist/internal/planning/original-token.d.ts +34 -0
- package/dist/internal/planning/original-token.d.ts.map +1 -0
- package/dist/internal/planning/original-token.js +98 -0
- package/dist/internal/planning/original-token.js.map +1 -0
- package/dist/internal/planning/plan-fields.d.ts +59 -0
- package/dist/internal/planning/plan-fields.d.ts.map +1 -0
- package/dist/internal/planning/plan-fields.js +153 -0
- package/dist/internal/planning/plan-fields.js.map +1 -0
- package/dist/internal/planning/plan-guards.d.ts +4 -0
- package/dist/internal/planning/plan-guards.d.ts.map +1 -0
- package/dist/internal/planning/plan-guards.js +168 -0
- package/dist/internal/planning/plan-guards.js.map +1 -0
- package/dist/internal/planning/recipe-state.d.ts +6 -0
- package/dist/internal/planning/recipe-state.d.ts.map +1 -0
- package/dist/internal/planning/recipe-state.js +20 -0
- package/dist/internal/planning/recipe-state.js.map +1 -0
- package/dist/internal/planning/rent.d.ts +19 -0
- package/dist/internal/planning/rent.d.ts.map +1 -0
- package/dist/internal/planning/rent.js +35 -0
- package/dist/internal/planning/rent.js.map +1 -0
- package/dist/internal/planning/respawn-guards.d.ts +3 -0
- package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
- package/dist/internal/planning/respawn-guards.js +41 -0
- package/dist/internal/planning/respawn-guards.js.map +1 -0
- package/dist/internal/planning/runtime-guards.d.ts +41 -0
- package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
- package/dist/internal/planning/runtime-guards.js +635 -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 +197 -0
- package/dist/internal/planning/scan-completion.js.map +1 -0
- package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
- package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
- package/dist/internal/planning/scan-detect-guard.js +77 -0
- package/dist/internal/planning/scan-detect-guard.js.map +1 -0
- package/dist/internal/planning/scan-detect.d.ts +24 -0
- package/dist/internal/planning/scan-detect.d.ts.map +1 -0
- package/dist/internal/planning/scan-detect.js +245 -0
- package/dist/internal/planning/scan-detect.js.map +1 -0
- package/dist/internal/planning/scan-input.d.ts +9 -0
- package/dist/internal/planning/scan-input.d.ts.map +1 -0
- package/dist/internal/planning/scan-input.js +58 -0
- package/dist/internal/planning/scan-input.js.map +1 -0
- package/dist/internal/planning/ship-import-funding.d.ts +22 -0
- package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
- package/dist/internal/planning/ship-import-funding.js +53 -0
- package/dist/internal/planning/ship-import-funding.js.map +1 -0
- package/dist/internal/planning/ship-token.d.ts +1 -6
- package/dist/internal/planning/ship-token.d.ts.map +1 -1
- package/dist/internal/planning/ship-token.js +2 -41
- package/dist/internal/planning/ship-token.js.map +1 -1
- package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
- package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
- package/dist/internal/planning/starbase-player-owner.js +17 -0
- package/dist/internal/planning/starbase-player-owner.js.map +1 -0
- package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
- package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system-guard.js +93 -0
- package/dist/internal/planning/starbase-system-guard.js.map +1 -0
- package/dist/internal/planning/starbase-system.d.ts +15 -0
- package/dist/internal/planning/starbase-system.d.ts.map +1 -0
- package/dist/internal/planning/starbase-system.js +25 -0
- package/dist/internal/planning/starbase-system.js.map +1 -0
- package/dist/internal/planning/token-mint.d.ts +4 -0
- package/dist/internal/planning/token-mint.d.ts.map +1 -0
- package/dist/internal/planning/token-mint.js +15 -0
- package/dist/internal/planning/token-mint.js.map +1 -0
- package/dist/internal/planning/trade-faction-market.d.ts +20 -0
- package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
- package/dist/internal/planning/trade-faction-market.js +56 -0
- package/dist/internal/planning/trade-faction-market.js.map +1 -0
- package/dist/internal/planning/wallet-starbase.d.ts +34 -0
- package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
- package/dist/internal/planning/wallet-starbase.js +39 -0
- package/dist/internal/planning/wallet-starbase.js.map +1 -0
- package/dist/internal/planning/xp-runtime.d.ts +36 -0
- package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
- package/dist/internal/planning/xp-runtime.js +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 +8 -21
- 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 +227 -160
- package/dist/markets/actions/index.js.map +1 -1
- package/dist/markets/actions/trade-faction-market.d.ts +43 -0
- package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
- package/dist/markets/actions/trade-faction-market.js +282 -0
- package/dist/markets/actions/trade-faction-market.js.map +1 -0
- package/dist/markets/index.d.ts +38 -7
- package/dist/markets/index.d.ts.map +1 -1
- package/dist/markets/index.js +57 -10
- package/dist/markets/index.js.map +1 -1
- package/dist/mining/actions/index.d.ts +87 -0
- package/dist/mining/actions/index.d.ts.map +1 -0
- package/dist/mining/actions/index.js +319 -0
- package/dist/mining/actions/index.js.map +1 -0
- package/dist/mining/estimate.d.ts +114 -0
- package/dist/mining/estimate.d.ts.map +1 -0
- package/dist/mining/estimate.js +127 -0
- package/dist/mining/estimate.js.map +1 -0
- package/dist/mining/index.d.ts +9 -2
- package/dist/mining/index.d.ts.map +1 -1
- package/dist/mining/index.js +7 -2
- package/dist/mining/index.js.map +1 -1
- package/dist/mining/profile.d.ts +82 -0
- package/dist/mining/profile.d.ts.map +1 -0
- package/dist/mining/profile.js +109 -0
- package/dist/mining/profile.js.map +1 -0
- package/dist/planning/assembly.d.ts +5 -0
- package/dist/planning/assembly.d.ts.map +1 -1
- package/dist/planning/assembly.js +8 -4
- package/dist/planning/assembly.js.map +1 -1
- package/dist/planning/execution.d.ts +18 -3
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +492 -40
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +196 -149
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +44 -292
- package/dist/planning/index.js.map +1 -1
- package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
- package/dist/planning/plan-sequence-checkpoint.js +16 -7
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
- package/dist/planning/plan-sequence-execution.d.ts +5 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
- package/dist/planning/plan-sequence-execution.js +74 -30
- package/dist/planning/plan-sequence-execution.js.map +1 -1
- package/dist/planning/plan-sequence.d.ts +2 -1
- package/dist/planning/plan-sequence.d.ts.map +1 -1
- package/dist/planning/plan-sequence.js +8 -1
- package/dist/planning/plan-sequence.js.map +1 -1
- package/dist/planning/plan-validation.d.ts +14 -0
- package/dist/planning/plan-validation.d.ts.map +1 -0
- package/dist/planning/plan-validation.js +124 -0
- package/dist/planning/plan-validation.js.map +1 -0
- package/dist/planning/simulation.d.ts +25 -1
- package/dist/planning/simulation.d.ts.map +1 -1
- package/dist/planning/simulation.js +111 -11
- package/dist/planning/simulation.js.map +1 -1
- package/dist/registry/cargo.d.ts +7 -12
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +19 -19
- package/dist/registry/cargo.js.map +1 -1
- package/dist/registry/docking.d.ts +10 -0
- package/dist/registry/docking.d.ts.map +1 -0
- package/dist/registry/docking.js +12 -0
- package/dist/registry/docking.js.map +1 -0
- package/dist/registry/index.d.ts +4 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/onboarding.d.ts +10 -2
- package/dist/registry/onboarding.d.ts.map +1 -1
- package/dist/registry/onboarding.js +20 -7
- package/dist/registry/onboarding.js.map +1 -1
- package/dist/registry/scanning.d.ts +7 -0
- package/dist/registry/scanning.d.ts.map +1 -0
- package/dist/registry/scanning.js +13 -0
- package/dist/registry/scanning.js.map +1 -0
- package/dist/registry/ship-stats-snapshot.js +19 -19
- package/dist/registry/ship-stats-snapshot.js.map +1 -1
- package/dist/registry/ships.d.ts +22 -2
- package/dist/registry/ships.d.ts.map +1 -1
- package/dist/registry/ships.js +31 -4
- package/dist/registry/ships.js.map +1 -1
- package/dist/registry/xp-runtime.d.ts +4 -0
- package/dist/registry/xp-runtime.d.ts.map +1 -0
- package/dist/registry/xp-runtime.js +14 -0
- package/dist/registry/xp-runtime.js.map +1 -0
- package/dist/rewards/index.d.ts.map +1 -1
- package/dist/rewards/index.js +5 -4
- package/dist/rewards/index.js.map +1 -1
- package/dist/scanning/actions/index.d.ts +116 -0
- package/dist/scanning/actions/index.d.ts.map +1 -0
- package/dist/scanning/actions/index.js +185 -0
- package/dist/scanning/actions/index.js.map +1 -0
- package/dist/scanning/index.d.ts +5 -2
- package/dist/scanning/index.d.ts.map +1 -1
- package/dist/scanning/index.js +13 -9
- package/dist/scanning/index.js.map +1 -1
- package/dist/scanning/lifecycle.d.ts +77 -0
- package/dist/scanning/lifecycle.d.ts.map +1 -0
- package/dist/scanning/lifecycle.js +93 -0
- package/dist/scanning/lifecycle.js.map +1 -0
- package/dist/scanning/odds.d.ts +111 -0
- package/dist/scanning/odds.d.ts.map +1 -0
- package/dist/scanning/odds.js +294 -0
- package/dist/scanning/odds.js.map +1 -0
- package/dist/scanning/signals.d.ts +121 -0
- package/dist/scanning/signals.d.ts.map +1 -0
- package/dist/scanning/signals.js +171 -0
- package/dist/scanning/signals.js.map +1 -0
- package/dist/starbases/actions/index.d.ts.map +1 -1
- package/dist/starbases/actions/index.js +3 -14
- package/dist/starbases/actions/index.js.map +1 -1
- package/dist/world/index.d.ts +110 -5
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +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,127 @@
|
|
|
1
|
+
import { InvalidDerivationInputError } from '../client/errors.js';
|
|
2
|
+
import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
|
|
3
|
+
function checked(field, value) {
|
|
4
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
5
|
+
throw new InvalidDerivationInputError(field, value, 'Supply finite, nonnegative mining inputs whose calculated rates, quantities and time limits remain finite.');
|
|
6
|
+
}
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
function invalid(field, value, remedy) {
|
|
10
|
+
throw new InvalidDerivationInputError(field, value, remedy);
|
|
11
|
+
}
|
|
12
|
+
/** Estimates constant-rate Asteroid output, clipping duration to Food, Ammo and
|
|
13
|
+
* cargo capacity. Each rate is Fleet rate / selected count × richness × explicit
|
|
14
|
+
* effective runtime multiplier. Food consumption offsets volume growth while
|
|
15
|
+
* mining; Ammo does not. Hardness is absent from the official current C4 model.
|
|
16
|
+
* This is pure: it neither reads accounts nor validates resource eligibility.
|
|
17
|
+
* @throws InvalidDerivationInputError for invalid selections, inconsistent cargo
|
|
18
|
+
* occupancy, negative/nonfinite values or arithmetic overflow.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const estimate = deriveMiningEstimate({
|
|
22
|
+
* fleetUnitsPerSecond: 2, durationSeconds: 60,
|
|
23
|
+
* resources: [{ cargoId: 300, richness: 1, storageCost: 1, runtimeMultiplier: 1 }],
|
|
24
|
+
* cargo: { occupiedSpace: 10, capacity: 100 },
|
|
25
|
+
* food: { availableUnits: 10, burnUnitsPerSecond: 0.1, storageCost: 1 },
|
|
26
|
+
* ammo: { availableUnits: 10, burnUnitsPerSecond: 0.1 },
|
|
27
|
+
* });
|
|
28
|
+
* console.log(estimate.outputs, estimate.limitingFactors);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function deriveMiningEstimate(input) {
|
|
32
|
+
const base = checked('Fleet mining units per second', input.fleetUnitsPerSecond);
|
|
33
|
+
const requested = checked('Mining duration seconds', input.durationSeconds);
|
|
34
|
+
const count = input.resources.length;
|
|
35
|
+
if (count < 1 || count > 8)
|
|
36
|
+
invalid('Selected resource count', count, 'Select between one and eight distinct Asteroid resources.');
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const rates = Array.from(input.resources, (resource, index) => {
|
|
39
|
+
if (resource === null || typeof resource !== 'object') {
|
|
40
|
+
invalid('Selected resource index', index, 'Supply a dense list of resource objects with explicit numeric inputs.');
|
|
41
|
+
}
|
|
42
|
+
const id = resource.cargoId;
|
|
43
|
+
if (!Number.isInteger(id) || id < 0 || id > 65535 || seen.has(id)) {
|
|
44
|
+
invalid('Selected cargo id', id, 'Supply distinct integer cargo ids between 0 and 65535 from the Asteroid deposit.');
|
|
45
|
+
}
|
|
46
|
+
seen.add(id);
|
|
47
|
+
const richness = checked('Resource richness', resource.richness);
|
|
48
|
+
const multiplier = checked('Resource runtime multiplier', resource.runtimeMultiplier);
|
|
49
|
+
const storageCost = checked('Resource storage cost', resource.storageCost);
|
|
50
|
+
const unitsPerSecond = checked('Resource output rate', checked('Richness-adjusted output rate', (base / count) * richness) *
|
|
51
|
+
multiplier);
|
|
52
|
+
return {
|
|
53
|
+
cargoId: id,
|
|
54
|
+
unitsPerSecond,
|
|
55
|
+
volume: checked('Resource volume inflow', unitsPerSecond * storageCost),
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
const capacity = checked('Cargo capacity', input.cargo.capacity);
|
|
59
|
+
const occupied = checked('Occupied cargo space', input.cargo.occupiedSpace);
|
|
60
|
+
if (occupied > capacity)
|
|
61
|
+
invalid('Occupied cargo space', occupied, 'Supply occupancy no greater than cargo capacity.');
|
|
62
|
+
const foodAvailable = checked('Available Food units', input.food.availableUnits);
|
|
63
|
+
const foodBurn = checked('Food burn units per second', input.food.burnUnitsPerSecond);
|
|
64
|
+
const foodStorage = checked('Food storage cost', input.food.storageCost);
|
|
65
|
+
if (checked('Available Food volume', foodAvailable * foodStorage) > occupied) {
|
|
66
|
+
invalid('Occupied cargo space', occupied, 'Include the volume of all available Food in occupied cargo space.');
|
|
67
|
+
}
|
|
68
|
+
const ammoAvailable = checked('Available Ammo units', input.ammo.availableUnits);
|
|
69
|
+
const ammoBurn = checked('Ammo burn units per second', input.ammo.burnUnitsPerSecond);
|
|
70
|
+
const resourceVolumeInflowPerSecond = rates.reduce((sum, row) => checked('Total resource volume inflow', sum + row.volume), 0);
|
|
71
|
+
const foodVolumeOutflowPerSecond = checked('Food volume outflow', foodBurn * foodStorage);
|
|
72
|
+
const netCargoGrowthPerSecond = resourceVolumeInflowPerSecond - foodVolumeOutflowPerSecond;
|
|
73
|
+
const limitsSeconds = {
|
|
74
|
+
food: foodBurn === 0
|
|
75
|
+
? null
|
|
76
|
+
: checked('Food time limit', foodAvailable / foodBurn),
|
|
77
|
+
ammo: ammoBurn === 0
|
|
78
|
+
? null
|
|
79
|
+
: checked('Ammo time limit', ammoAvailable / ammoBurn),
|
|
80
|
+
cargo: occupied === capacity
|
|
81
|
+
? 0
|
|
82
|
+
: netCargoGrowthPerSecond > 0
|
|
83
|
+
? checked('Cargo time limit', (capacity - occupied) / netCargoGrowthPerSecond)
|
|
84
|
+
: null,
|
|
85
|
+
};
|
|
86
|
+
const constraints = [
|
|
87
|
+
['duration', requested],
|
|
88
|
+
['food', limitsSeconds.food],
|
|
89
|
+
['ammo', limitsSeconds.ammo],
|
|
90
|
+
['cargo', limitsSeconds.cargo],
|
|
91
|
+
];
|
|
92
|
+
const noOutput = rates.every((row) => row.unitsPerSecond === 0);
|
|
93
|
+
const durationSeconds = noOutput
|
|
94
|
+
? 0
|
|
95
|
+
: Math.min(...constraints.flatMap(([, seconds]) => seconds === null ? [] : [seconds]));
|
|
96
|
+
const tolerance = Math.max(1e-9, durationSeconds * 1e-9);
|
|
97
|
+
const limitingFactors = noOutput
|
|
98
|
+
? ['no-output']
|
|
99
|
+
: constraints
|
|
100
|
+
.filter(([, seconds]) => seconds !== null &&
|
|
101
|
+
Math.abs(seconds - durationSeconds) <= tolerance)
|
|
102
|
+
.map(([reason]) => reason);
|
|
103
|
+
const consumedFoodUnits = checked('Consumed Food units', foodBurn * durationSeconds);
|
|
104
|
+
const consumedAmmoUnits = checked('Consumed Ammo units', ammoBurn * durationSeconds);
|
|
105
|
+
const inflow = checked('Projected cargo inflow', resourceVolumeInflowPerSecond * durationSeconds);
|
|
106
|
+
const outflow = checked('Projected Food outflow', foodVolumeOutflowPerSecond * durationSeconds);
|
|
107
|
+
// Subtract Food first to avoid overflowing a temporary sum near Number.MAX_VALUE.
|
|
108
|
+
const finalOccupiedSpace = Math.min(capacity, checked('Projected occupied cargo space', Math.max(0, occupied - outflow) + inflow));
|
|
109
|
+
return freezeResolvedSnapshot({
|
|
110
|
+
basis: 'official-model-estimate',
|
|
111
|
+
durationSeconds,
|
|
112
|
+
outputs: rates.map(({ cargoId, unitsPerSecond }) => ({
|
|
113
|
+
cargoId,
|
|
114
|
+
unitsPerSecond,
|
|
115
|
+
projectedUnits: checked('Projected resource units', unitsPerSecond * durationSeconds),
|
|
116
|
+
})),
|
|
117
|
+
resourceVolumeInflowPerSecond,
|
|
118
|
+
foodVolumeOutflowPerSecond,
|
|
119
|
+
netCargoGrowthPerSecond,
|
|
120
|
+
limitsSeconds,
|
|
121
|
+
limitingFactors,
|
|
122
|
+
consumedFoodUnits,
|
|
123
|
+
consumedAmmoUnits,
|
|
124
|
+
finalOccupiedSpace,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=estimate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/mining/estimate.ts"],"names":[],"mappings":"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"}
|
package/dist/mining/index.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export interface MiningOutputRateInput {
|
|
|
43
43
|
readonly cargoId: number;
|
|
44
44
|
readonly richness: number;
|
|
45
45
|
}
|
|
46
|
-
/** One
|
|
46
|
+
/** One nominal resource output after sharing Fleet capacity and applying richness.
|
|
47
47
|
* @example
|
|
48
48
|
* ```ts
|
|
49
49
|
* const rate: MiningOutputRate = { cargoId: 8, unitsPerSecond: 4.5 };
|
|
@@ -61,6 +61,7 @@ export interface MiningOutputRate {
|
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
63
|
export interface FleetMiningOutput extends ResourceDepositItem {
|
|
64
|
+
/** Nominal cargo units per second, with Fleet capacity shared among selected resources. */
|
|
64
65
|
readonly unitsPerSecond: number;
|
|
65
66
|
}
|
|
66
67
|
/** Immutable current extraction relationship for one active mining Fleet.
|
|
@@ -77,6 +78,7 @@ export interface FleetMiningSnapshot {
|
|
|
77
78
|
readonly asteroid: EntityRef<'celestialBody'>;
|
|
78
79
|
readonly lastUpdatedAtUnixSeconds: bigint;
|
|
79
80
|
readonly regionXpModifier: WorldFixedValue;
|
|
81
|
+
/** Fleet base rate before sharing among selected resources and applying richness. */
|
|
80
82
|
readonly miningRate: {
|
|
81
83
|
readonly raw: bigint;
|
|
82
84
|
readonly unitsPerSecond: number;
|
|
@@ -121,7 +123,10 @@ export declare function maybeGetResourceDeposit(context: SageContext, asteroid:
|
|
|
121
123
|
* ```
|
|
122
124
|
*/
|
|
123
125
|
export declare function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds: bigint, atUnixSeconds: bigint): number;
|
|
124
|
-
/**
|
|
126
|
+
/** Shares Fleet units/second equally among selected resources, then applies richness.
|
|
127
|
+
* Supply the complete selected resource list, including zero-richness selections.
|
|
128
|
+
* An empty selection returns no rates. Results are nominal estimates; cargo
|
|
129
|
+
* limits, upkeep and whole-unit settlement remain chain-authoritative.
|
|
125
130
|
* @example
|
|
126
131
|
* ```ts
|
|
127
132
|
* const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
|
|
@@ -153,4 +158,6 @@ export declare function getFleetMiningState(context: SageContext, fleet: Address
|
|
|
153
158
|
* ```
|
|
154
159
|
*/
|
|
155
160
|
export declare function getFleetMiningStatesByOwner(context: SageContext, owner: Address, options?: MiningDiscoveryOptions): Promise<readonly FleetMiningSnapshot[]>;
|
|
161
|
+
export { deriveMiningEstimate, type MiningEstimate, type MiningEstimateInput, type MiningEstimateLimit, type MiningEstimateResourceInput, } from './estimate.js';
|
|
162
|
+
export { deriveMiningProfile, type MiningProfile, type MiningProfileInput, } from './profile.js';
|
|
156
163
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mining/index.js
CHANGED
|
@@ -102,7 +102,10 @@ export function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds, atUnixSeco
|
|
|
102
102
|
return elapsed > 0n ? Number(elapsed) : 0;
|
|
103
103
|
}
|
|
104
104
|
const MINING_DERIVATION_REMEDY = 'Mining derivations require a finite, nonnegative value. Supply a finite value greater than or equal to zero before deriving mining output.';
|
|
105
|
-
/**
|
|
105
|
+
/** Shares Fleet units/second equally among selected resources, then applies richness.
|
|
106
|
+
* Supply the complete selected resource list, including zero-richness selections.
|
|
107
|
+
* An empty selection returns no rates. Results are nominal estimates; cargo
|
|
108
|
+
* limits, upkeep and whole-unit settlement remain chain-authoritative.
|
|
106
109
|
* @example
|
|
107
110
|
* ```ts
|
|
108
111
|
* const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
|
|
@@ -118,7 +121,7 @@ export function deriveMiningOutputRates(fleetUnitsPerSecond, outputs) {
|
|
|
118
121
|
}
|
|
119
122
|
return Object.freeze({
|
|
120
123
|
cargoId,
|
|
121
|
-
unitsPerSecond: fleetUnitsPerSecond * richness,
|
|
124
|
+
unitsPerSecond: (fleetUnitsPerSecond / outputs.length) * richness,
|
|
122
125
|
});
|
|
123
126
|
}));
|
|
124
127
|
}
|
|
@@ -233,4 +236,6 @@ export async function getFleetMiningStatesByOwner(context, owner, options) {
|
|
|
233
236
|
const states = (await Promise.all(envelopes.map((envelope) => toFleetMiningSnapshot(context, envelope, options)))).filter((state) => state !== undefined);
|
|
234
237
|
return Object.freeze(attachReadMeta(states, metadata));
|
|
235
238
|
}
|
|
239
|
+
export { deriveMiningEstimate, } from './estimate.js';
|
|
240
|
+
export { deriveMiningProfile, } from './profile.js';
|
|
236
241
|
//# sourceMappingURL=index.js.map
|
package/dist/mining/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,GAQV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAG3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,YAAY,GAEb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,GAQV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAG3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAkH9B,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAGlC,CAAC;AACJ,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAGjC,CAAC;AAEJ,SAAS,cAAc,CACrB,QAA6B;IAE7B,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAoB,EACpB,WAAsC,EACtC,QAAsD;IAEtD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO;IACxC,MAAM,IAAI,kBAAkB,CAC1B,WAAW,EACX,QAAQ,CAAC,OAAO,EAChB,IAAI,UAAU,CAAC,eAAe,WAAW,+BAA+B,CAAC,EACzE,OAAO,WAAW,OAAO,QAAQ,CAAC,OAAO,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,yBAAyB,IAAI,4EAA4E,CACzL,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,OAAoB,EACpB,QAAoD;IAEpD,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,kBAAkB,CAC1B,eAAe,EACf,QAAQ,CAAC,OAAO,EAChB,IAAI,UAAU,CAAC,+CAA+C,CAAC,EAC/D,iBAAiB,QAAQ,CAAC,OAAO,2GAA2G,CAC7I,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAwB,QAAQ,CAAC,IAAI,CAAC;IACpD,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CACvD,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,EAAE,CACZ,CAAC;IACF,IAAI,QAAQ,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAC1B,eAAe,EACf,QAAQ,CAAC,OAAO,EAChB,IAAI,UAAU,CACZ,yEAAyE,CAC1E,EACD,iBAAiB,QAAQ,CAAC,OAAO,eAAe,QAAQ,CAAC,EAAE,8CAA8C,gBAAgB,8GAA8G,CACxO,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,mBAAmB,EAAE,QAAQ,CAAC,MAAM;QACpC,mBAAmB,EAAE,QAAQ,CAAC,WAAW;QACzC,KAAK,EAAE,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QACpD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC,CACJ,CAAC;IACF,OAAO,sBAAsB,CAC3B,cAAc,CACZ,uBAAuB,CAAC;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,EAAE;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,iBAA0B;QAChC,uBAAuB,EAAE,QAAQ,CAAC,qBAAqB;QACvD,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS;QACT,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;QAChD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;KAC5C,CAAC,EACF,cAAc,CAAC,QAAQ,CAAC,CACzB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAoB,EACpB,QAAoD;IAEpD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAoB,EACpB,QAAiB,EACjB,OAAqB;IAErB,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,yBAAyB,CAC9B,OAAO,EACP,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAoB,EACpB,QAAiB,EACjB,OAAqB;IAErB,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAC5C,8BAA8B,EAC9B,CAAC,QAAQ,CAAC,EACV,OAAO,CACR,CAAC;IACF,OAAO,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,wBAAgC,EAChC,aAAqB;IAErB,MAAM,OAAO,GAAG,aAAa,GAAG,wBAAwB,CAAC;IACzD,OAAO,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,wBAAwB,GAC5B,4IAA4I,CAAC;AAE/I;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,mBAA2B,EAC3B,OAAyC;IAEzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,2BAA2B,CACnC,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAClB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,2BAA2B,CACnC,2CAA2C,MAAM,CAAC,OAAO,CAAC,EAAE,EAC5D,QAAQ,EACR,wBAAwB,CACzB,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO;YACP,cAAc,EAAE,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ;SAClE,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,cAAsB,EACtB,cAAsB;IAEtB,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChC,cAAc,GAAG,CAAC;QAClB,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChC,cAAc,GAAG,CAAC,EAClB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAClB,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC,yBAAyB,EAAE,cAAc,CAAC;YAC7C,CAAC,CAAC,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;QACjD,MAAM,IAAI,2BAA2B,CACnC,KAAK,EACL,KAAK,EACL,wBAAwB,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,GAAG,cAAc,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAuB;IAEvB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,wBAAwB,CAC/B,YAAqB,EACrB,WAA8B;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,CAAE,GAAG,WAAW,CAAC,KAAK,CAAE;YAAE,SAAS;QAC5D,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACP,YAAY,EACZ,IAAI,UAAU,CAAC,8CAA8C,CAAC,EAC9D,SAAS,YAAY,0HAA0H,CAChJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,OAAoB,EACpB,QAA4C,EAC5C,OAAqB;IAErB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,wBAAwB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CACnE,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACP,QAAQ,CAAC,OAAO,EAChB,IAAI,UAAU,CACZ,qBAAqB,OAAO,+BAA+B,CAC5D,EACD,SAAS,QAAQ,CAAC,OAAO,sBAAsB,OAAO,6BAA6B,OAAO,CAAC,OAAO,8GAA8G,CACjN,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,uBAAuB,CACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;KAClC,CAAC,CAAC,CACJ,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,GAAG,QAAQ;QACX,cAAc,EAAE,KAAK,CAAC,KAAK,CAAE,CAAC,cAAc;KAC7C,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,sBAAsB,CAC3B,cAAc,CACZ,uBAAuB,CAAC;QACtB,QAAQ,EAAE,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC;QACpD,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC3C,IAAI,EAAE,aAAsB;QAC5B,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;QACpD,UAAU,EAAE;YACV,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;YAC7C,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;SAC3D;QACD,OAAO;QACP,YAAY,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9D,gBAAgB,EAAE;YAChB,GAAG,EAAE,KAAK,CAAC,mBAAmB;YAC9B,KAAK,EAAE,KAAK,CAAC,gBAAgB;SAC9B;KACF,CAAC,EACF;QACE,GAAG,QAAQ;QACX,IAAI,EACF,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;KACtE,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAoB,EACpB,QAA4C,EAC5C,OAAqB;IAErB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAoB,EACpB,KAAc,EACd,OAAqB;IAErB,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CACtC,sBAAsB,EACtB,KAAK,EACL,OAAO,CACR,CAAC;IACF,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAoB,EACpB,KAAc,EACd,OAAgC;IAEhC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CACb,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAClD,CACF,CACF,CAAC,MAAM,CAAC,CAAC,KAAK,EAAgC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,OAAO,EACL,oBAAoB,GAKrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,GAGpB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { FleetCargoStatsData } from '../internal/c4/fleet.js';
|
|
2
|
+
/** Fleet or ship configuration cargo stats plus one reference Asteroid resource.
|
|
3
|
+
* Richness and storage costs are explicit assumptions: storage costs are
|
|
4
|
+
* translated storage units per unit (an encoded 256 is 1), not raw values.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* declare const ship: { readonly stats: MiningProfileInput['stats'] };
|
|
8
|
+
* const input: MiningProfileInput = {
|
|
9
|
+
* stats: ship.stats, richness: 1, resourceStorageCost: 1, foodStorageCost: 1,
|
|
10
|
+
* };
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export interface MiningProfileInput {
|
|
14
|
+
readonly stats: {
|
|
15
|
+
readonly cargo: Pick<FleetCargoStatsData, 'miningRate' | 'foodConsumptionRate' | 'ammoConsumptionRate' | 'cargoCapacity' | 'ammoCapacity'>;
|
|
16
|
+
};
|
|
17
|
+
readonly richness: number;
|
|
18
|
+
readonly resourceStorageCost: number;
|
|
19
|
+
readonly foodStorageCost: number;
|
|
20
|
+
}
|
|
21
|
+
/** Reference mining values for one selected resource at the given richness,
|
|
22
|
+
* with no crew, research or rare-mineral multiplier. `fullHold` starts from an
|
|
23
|
+
* empty hold carrying exactly the Food it burns and a full Ammo bank; it is
|
|
24
|
+
* null when nothing is mined, the hold has no capacity, or Food outflow would
|
|
25
|
+
* keep pace with output. Ratios are null when that consumable is not burned.
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* declare const profile: MiningProfile;
|
|
29
|
+
* console.log(profile.unitsPerHour, profile.fullHold?.durationSeconds);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export interface MiningProfile {
|
|
33
|
+
readonly basis: 'official-model-estimate';
|
|
34
|
+
readonly unitsPerSecond: number;
|
|
35
|
+
readonly unitsPerHour: number;
|
|
36
|
+
/** Resource units mined per Food burned. */
|
|
37
|
+
readonly unitsPerFood: number | null;
|
|
38
|
+
/** Resource units mined per Ammo burned. */
|
|
39
|
+
readonly unitsPerAmmo: number | null;
|
|
40
|
+
readonly fullHold: {
|
|
41
|
+
readonly durationSeconds: number;
|
|
42
|
+
readonly minedUnits: number;
|
|
43
|
+
/** Food burned, which is also the Food to carry in the hold at the start. */
|
|
44
|
+
readonly foodUnits: number;
|
|
45
|
+
readonly ammoUnits: number;
|
|
46
|
+
readonly limitedBy: 'cargo' | 'ammo';
|
|
47
|
+
} | null;
|
|
48
|
+
}
|
|
49
|
+
/** Derives reference mining values from Fleet or ship configuration stats with
|
|
50
|
+
* the official constant-rate model behind `deriveMiningEstimate`. The Fleet
|
|
51
|
+
* rate times richness gives output; `foodConsumptionRate` and
|
|
52
|
+
* `ammoConsumptionRate` are burned per second while mining, as the official
|
|
53
|
+
* SAGE Editor Suite scenario applies them.
|
|
54
|
+
*
|
|
55
|
+
* The full-hold scenario carries Food equal to rate × fill time, so the Food
|
|
56
|
+
* burned frees exactly the space it occupied and the hold fills in capacity ÷
|
|
57
|
+
* (output × storage cost) seconds, unless the Ammo bank runs out first. This is
|
|
58
|
+
* an estimate, not a settlement: fixed-point rounding, eligibility, regional
|
|
59
|
+
* research, planet-exit Fuel and changing state are excluded.
|
|
60
|
+
* @throws InvalidDerivationInputError for negative or non-finite stats or
|
|
61
|
+
* assumptions, or derived values that overflow to Infinity.
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const profile = deriveMiningProfile({
|
|
65
|
+
* stats: {
|
|
66
|
+
* cargo: {
|
|
67
|
+
* miningRate: { raw: 16384n, value: 1 },
|
|
68
|
+
* foodConsumptionRate: { raw: 2048n, value: 0.125 },
|
|
69
|
+
* ammoConsumptionRate: { raw: 1024n, value: 0.0625 },
|
|
70
|
+
* cargoCapacity: 100n,
|
|
71
|
+
* ammoCapacity: 1000n,
|
|
72
|
+
* },
|
|
73
|
+
* },
|
|
74
|
+
* richness: 2, resourceStorageCost: 1, foodStorageCost: 1,
|
|
75
|
+
* });
|
|
76
|
+
* console.log(profile.unitsPerHour); // 7200
|
|
77
|
+
* console.log(profile.fullHold?.durationSeconds); // 50: 100 capacity / 2 per second
|
|
78
|
+
* console.log(profile.fullHold?.foodUnits); // 6.25 Food carried and burned
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function deriveMiningProfile(input: MiningProfileInput): MiningProfile;
|
|
82
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/mining/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,IAAI,CAClB,mBAAmB,EACjB,YAAY,GACZ,qBAAqB,GACrB,qBAAqB,GACrB,eAAe,GACf,cAAc,CACjB,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,6EAA6E;QAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;KACtC,GAAG,IAAI,CAAC;CACV;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAqF5E"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { InvalidDerivationInputError } from '../client/errors.js';
|
|
2
|
+
import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
|
|
3
|
+
import { deriveMiningEstimate } from './estimate.js';
|
|
4
|
+
// Every consumed stat and every returned value is checked, including when no
|
|
5
|
+
// full hold is estimated: JSON turns NaN and Infinity into null, which would be
|
|
6
|
+
// indistinguishable from the documented not-burned and no-hold nulls.
|
|
7
|
+
function checked(field, value) {
|
|
8
|
+
if (!Number.isFinite(value) || value < 0)
|
|
9
|
+
throw new InvalidDerivationInputError(field, value, 'Supply finite, nonnegative stats, richness and translated storage costs (1 for an encoded storage cost of 256) whose derived values remain finite.');
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
/** Derives reference mining values from Fleet or ship configuration stats with
|
|
13
|
+
* the official constant-rate model behind `deriveMiningEstimate`. The Fleet
|
|
14
|
+
* rate times richness gives output; `foodConsumptionRate` and
|
|
15
|
+
* `ammoConsumptionRate` are burned per second while mining, as the official
|
|
16
|
+
* SAGE Editor Suite scenario applies them.
|
|
17
|
+
*
|
|
18
|
+
* The full-hold scenario carries Food equal to rate × fill time, so the Food
|
|
19
|
+
* burned frees exactly the space it occupied and the hold fills in capacity ÷
|
|
20
|
+
* (output × storage cost) seconds, unless the Ammo bank runs out first. This is
|
|
21
|
+
* an estimate, not a settlement: fixed-point rounding, eligibility, regional
|
|
22
|
+
* research, planet-exit Fuel and changing state are excluded.
|
|
23
|
+
* @throws InvalidDerivationInputError for negative or non-finite stats or
|
|
24
|
+
* assumptions, or derived values that overflow to Infinity.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const profile = deriveMiningProfile({
|
|
28
|
+
* stats: {
|
|
29
|
+
* cargo: {
|
|
30
|
+
* miningRate: { raw: 16384n, value: 1 },
|
|
31
|
+
* foodConsumptionRate: { raw: 2048n, value: 0.125 },
|
|
32
|
+
* ammoConsumptionRate: { raw: 1024n, value: 0.0625 },
|
|
33
|
+
* cargoCapacity: 100n,
|
|
34
|
+
* ammoCapacity: 1000n,
|
|
35
|
+
* },
|
|
36
|
+
* },
|
|
37
|
+
* richness: 2, resourceStorageCost: 1, foodStorageCost: 1,
|
|
38
|
+
* });
|
|
39
|
+
* console.log(profile.unitsPerHour); // 7200
|
|
40
|
+
* console.log(profile.fullHold?.durationSeconds); // 50: 100 capacity / 2 per second
|
|
41
|
+
* console.log(profile.fullHold?.foodUnits); // 6.25 Food carried and burned
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function deriveMiningProfile(input) {
|
|
45
|
+
const { cargo } = input.stats;
|
|
46
|
+
const richness = checked('Resource richness', input.richness);
|
|
47
|
+
const resourceStorageCost = checked('Resource storage cost', input.resourceStorageCost);
|
|
48
|
+
const foodStorageCost = checked('Food storage cost', input.foodStorageCost);
|
|
49
|
+
const rate = checked('Fleet mining units per second', cargo.miningRate.value);
|
|
50
|
+
const foodBurn = checked('Food burn units per second', cargo.foodConsumptionRate.value);
|
|
51
|
+
const ammoBurn = checked('Ammo burn units per second', cargo.ammoConsumptionRate.value);
|
|
52
|
+
const capacity = checked('Cargo capacity', Number(cargo.cargoCapacity));
|
|
53
|
+
const ammoCapacity = checked('Ammo capacity', Number(cargo.ammoCapacity));
|
|
54
|
+
const unitsPerSecond = checked('Resource output rate', rate * richness);
|
|
55
|
+
const inflow = checked('Resource volume inflow', unitsPerSecond * resourceStorageCost);
|
|
56
|
+
const foodUnits = inflow === 0
|
|
57
|
+
? 0
|
|
58
|
+
: checked('Food units per hold', (foodBurn * capacity) / inflow);
|
|
59
|
+
const foodVolume = checked('Food volume per hold', foodUnits * foodStorageCost);
|
|
60
|
+
let fullHold = null;
|
|
61
|
+
if (inflow > 0 && capacity > 0 && foodVolume < capacity) {
|
|
62
|
+
const target = capacity / inflow;
|
|
63
|
+
const estimate = deriveMiningEstimate({
|
|
64
|
+
fleetUnitsPerSecond: rate,
|
|
65
|
+
durationSeconds: target,
|
|
66
|
+
resources: [
|
|
67
|
+
{
|
|
68
|
+
cargoId: 0,
|
|
69
|
+
richness,
|
|
70
|
+
storageCost: resourceStorageCost,
|
|
71
|
+
runtimeMultiplier: 1,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
cargo: { occupiedSpace: foodVolume, capacity },
|
|
75
|
+
food: {
|
|
76
|
+
availableUnits: foodUnits,
|
|
77
|
+
burnUnitsPerSecond: foodBurn,
|
|
78
|
+
storageCost: foodStorageCost,
|
|
79
|
+
},
|
|
80
|
+
ammo: {
|
|
81
|
+
availableUnits: ammoCapacity,
|
|
82
|
+
burnUnitsPerSecond: ammoBurn,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
const ammoLimit = estimate.limitsSeconds.ammo;
|
|
86
|
+
fullHold = {
|
|
87
|
+
durationSeconds: estimate.durationSeconds,
|
|
88
|
+
minedUnits: estimate.outputs[0].projectedUnits,
|
|
89
|
+
foodUnits: estimate.consumedFoodUnits,
|
|
90
|
+
ammoUnits: estimate.consumedAmmoUnits,
|
|
91
|
+
limitedBy: ammoLimit !== null && ammoLimit < target * (1 - 1e-9)
|
|
92
|
+
? 'ammo'
|
|
93
|
+
: 'cargo',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return freezeResolvedSnapshot({
|
|
97
|
+
basis: 'official-model-estimate',
|
|
98
|
+
unitsPerSecond,
|
|
99
|
+
unitsPerHour: checked('Resource units per hour', unitsPerSecond * 3600),
|
|
100
|
+
unitsPerFood: foodBurn === 0
|
|
101
|
+
? null
|
|
102
|
+
: checked('Resource units per Food', unitsPerSecond / foodBurn),
|
|
103
|
+
unitsPerAmmo: ammoBurn === 0
|
|
104
|
+
? null
|
|
105
|
+
: checked('Resource units per Ammo', unitsPerSecond / ammoBurn),
|
|
106
|
+
fullHold,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/mining/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,4 +43,9 @@ export declare function validatePlanAssemblyPolicy(plan: Plan, policy: Pick<Vali
|
|
|
43
43
|
*/
|
|
44
44
|
export declare function assemblePlan(context: SageContext, plan: Plan, policy: AssemblyPolicy): Promise<Transaction & TransactionWithBlockhashLifetime>;
|
|
45
45
|
export declare function assembleValidatedPlan(writeRpc: SageWriteRpc, plan: Plan, validatedPolicy: ValidatedAssemblyPolicy): Promise<Transaction & TransactionWithBlockhashLifetime>;
|
|
46
|
+
/** @internal Keeps the RPC observation needed by durable execution recovery. */
|
|
47
|
+
export declare function assembleValidatedPlanWithContext(writeRpc: SageWriteRpc, plan: Plan, validatedPolicy: ValidatedAssemblyPolicy): Promise<{
|
|
48
|
+
transaction: Transaction & TransactionWithBlockhashLifetime;
|
|
49
|
+
contextSlot: bigint;
|
|
50
|
+
}>;
|
|
46
51
|
//# sourceMappingURL=assembly.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgBvC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAgCD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAIlE;AAaD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAA4B,GAChE,uBAAuB,CAmFzB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAwBhE;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,CACV,uBAAuB,EACvB,kBAAkB,GAAG,0BAA0B,CAChD,GACA,IAAI,CAqBN;AASD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAKzD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,uBAAuB,GACvC,OAAO,CAAC,WAAW,GAAG,gCAAgC,CAAC,CAIzD;AAED,gFAAgF;AAChF,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,uBAAuB,GACvC,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,GAAG,gCAAgC,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAqCD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendTransactionMessageInstructions, compileTransaction, createTransactionMessage, getTransactionSize, getTransactionSizeLimit, isAddress, isSolanaError, setTransactionMessageComputeUnitLimit, setTransactionMessageComputeUnitPrice, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash, SOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNT_ADDRESSES, SOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNTS_IN_INSTRUCTION, SOLANA_ERROR__TRANSACTION__TOO_MANY_INSTRUCTIONS, SOLANA_ERROR__TRANSACTION__TOO_MANY_SIGNER_ADDRESSES, } from '@solana/kit';
|
|
2
2
|
import { InvalidActionInputError, SageSdkError } from '../client/errors.js';
|
|
3
|
-
import { validatePlanComposition } from './composition.js';
|
|
4
3
|
import { isPlanInstance } from './plan-instances.js';
|
|
4
|
+
import { validatePlanBindings } from './plan-validation.js';
|
|
5
5
|
const MAX_COMPUTE_UNIT_LIMIT = 1_400_000;
|
|
6
6
|
const MAX_PRIORITY_FEE_MICRO_LAMPORTS = 18446744073709551615n;
|
|
7
7
|
const DEFAULT_COMMITMENT = 'confirmed';
|
|
@@ -85,7 +85,7 @@ export function validatePlan(plan) {
|
|
|
85
85
|
invalid('plan', plan, 'a Plan created by createPlan, planFromJSON, or combinePlans', 'Recreate or hydrate the Plan through an approved planning factory before retrying.');
|
|
86
86
|
}
|
|
87
87
|
const validatedPlan = plan;
|
|
88
|
-
|
|
88
|
+
validatePlanBindings(validatedPlan.steps, validatedPlan.preconditions);
|
|
89
89
|
for (let index = 0; index < validatedPlan.steps.length; index += 1) {
|
|
90
90
|
if (validatedPlan.steps[index]?.instruction.programAddress ===
|
|
91
91
|
COMPUTE_BUDGET_PROGRAM_ADDRESS) {
|
|
@@ -128,8 +128,12 @@ export async function assemblePlan(context, plan, policy) {
|
|
|
128
128
|
return assembleValidatedPlan(requireWriteRpc(context), plan, validatedPolicy);
|
|
129
129
|
}
|
|
130
130
|
export async function assembleValidatedPlan(writeRpc, plan, validatedPolicy) {
|
|
131
|
+
return (await assembleValidatedPlanWithContext(writeRpc, plan, validatedPolicy)).transaction;
|
|
132
|
+
}
|
|
133
|
+
/** @internal Keeps the RPC observation needed by durable execution recovery. */
|
|
134
|
+
export async function assembleValidatedPlanWithContext(writeRpc, plan, validatedPolicy) {
|
|
131
135
|
validatePlanAssemblyPolicy(plan, validatedPolicy);
|
|
132
|
-
const { value: lifetime } = await writeRpc
|
|
136
|
+
const { value: lifetime, context } = await writeRpc
|
|
133
137
|
.getLatestBlockhash({ commitment: validatedPolicy.commitment })
|
|
134
138
|
.send();
|
|
135
139
|
const policyMessage = setTransactionMessageComputeUnitPrice(validatedPolicy.priorityFeeMicroLamports, setTransactionMessageComputeUnitLimit(validatedPolicy.computeUnitLimit, createTransactionMessage({ version: 0 })));
|
|
@@ -149,6 +153,6 @@ export async function assembleValidatedPlan(writeRpc, plan, validatedPolicy) {
|
|
|
149
153
|
if (actualSize > limit) {
|
|
150
154
|
throw new TransactionTooLargeError({ actualSize, limit });
|
|
151
155
|
}
|
|
152
|
-
return transaction;
|
|
156
|
+
return { transaction, contextSlot: context.slot };
|
|
153
157
|
}
|
|
154
158
|
//# sourceMappingURL=assembly.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,EACT,aAAa,EACb,qCAAqC,EACrC,qCAAqC,EACrC,6BAA6B,EAC7B,2CAA2C,EAC3C,qDAAqD,EACrD,2DAA2D,EAC3D,gDAAgD,EAChD,oDAAoD,GAKrD,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/planning/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,EACT,aAAa,EACb,qCAAqC,EACrC,qCAAqC,EACrC,6BAA6B,EAC7B,2CAA2C,EAC3C,qDAAqD,EACrD,2DAA2D,EAC3D,gDAAgD,EAChD,oDAAoD,GAKrD,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,sBAAsB,GAAG,SAAS,CAAC;AACzC,MAAM,+BAA+B,GAAG,qBAA2B,CAAC;AACpE,MAAM,kBAAkB,GAAe,WAAW,CAAC;AACnD,MAAM,8BAA8B,GAClC,6CAAwD,CAAC;AAC3D,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAS;IAC5D,qDAAqD;IACrD,2DAA2D;IAC3D,gDAAgD;IAChD,oDAAoD;CACrD,CAAC,CAAC;AA2BH,MAAM,0BAA2B,SAAQ,YAAY;IACnD;QACE,KAAK,CACH,yBAAyB,EACzB,wJAAwJ,CACzJ,CAAC;IACJ,CAAC;CACF;AAED,MAAM,wBAAyB,SAAQ,YAAY;IACxC,UAAU,CAAU;IACpB,KAAK,CAAU;IAExB,YAAY,OAGX;QACC,KAAK,CACH,uBAAuB,EACvB,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,mNAAmN;YACrN,CAAC,CAAC,gCAAgC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,wHAAwH,CACrO,CAAC;QACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,OAAoB;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;IACnE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CACd,KAAa,EACb,KAAc,EACd,aAAqB,EACrB,MAAc;IAEd,MAAM,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,CAAC;AAE9D,MAAM,UAAU,sBAAsB,CACpC,MAAsB,EACtB,kBAA+C,kBAAkB;IAEjE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,CACL,QAAQ,EACR,eAAe,CAAC,MAAM,CAAC,EACvB,0BAA0B,EAC1B,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,CACL,UAAU,EACV,eAAe,CAAC,QAAQ,CAAC,EACzB,qCAAqC,EACrC,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAC3D,IACE,UAAU,KAAK,WAAW;QAC1B,UAAU,KAAK,WAAW;QAC1B,UAAU,KAAK,WAAW,EAC1B,CAAC;QACD,OAAO,CACL,YAAY,EACZ,eAAe,CAAC,UAAU,CAAC,EAC3B,oCAAoC,EACpC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACjD,IACE,gBAAgB,KAAK,SAAS;QAC9B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClC,gBAAgB,GAAG,CAAC;YACpB,gBAAgB,GAAG,sBAAsB,CAAC,EAC5C,CAAC;QACD,OAAO,CACL,kBAAkB,EAClB,eAAe,CAAC,gBAAgB,CAAC,EACjC,iDAAiD,EACjD,wFAAwF,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;IACjE,IACE,wBAAwB,KAAK,SAAS;QACtC,CAAC,OAAO,wBAAwB,KAAK,QAAQ;YAC3C,wBAAwB,GAAG,EAAE;YAC7B,wBAAwB,GAAG,+BAA+B,CAAC,EAC7D,CAAC;QACD,OAAO,CACL,0BAA0B,EAC1B,eAAe,CAAC,wBAAwB,CAAC,EACzC,gFAAgF,EAChF,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,IACE,wBAAwB,KAAK,SAAS;QACtC,wBAAwB,GAAG,EAAE;QAC7B,gBAAgB,KAAK,SAAS,EAC9B,CAAC;QACD,OAAO,CACL,0BAA0B,EAC1B,eAAe,CAAC,wBAAwB,CAAC,EACzC,gFAAgF,EAChF,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU;QACV,gBAAgB;QAChB,QAAQ;QACR,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,MAAM,EACN,IAAI,EACJ,6DAA6D,EAC7D,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,IAAY,CAAC;IACnC,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnE,IACE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,cAAc;YACtD,8BAA8B,EAC9B,CAAC;YACD,OAAO,CACL,cAAc,MAAM,CAAC,KAAK,CAAC,8BAA8B,EACzD,8BAA8B,EAC9B,sCAAsC,EACtC,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAU,EACV,MAGC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAClE,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CACL,kBAAkB,EAClB,MAAM,CAAC,gBAAgB,EACvB,wDAAwD,EACxD,gHAAgH,CACjH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,CACL,0BAA0B,EAC1B,MAAM,CAAC,wBAAwB,EAC/B,8DAA8D,EAC9D,wHAAwH,CACzH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAc;IACpD,OAAO,CACL,aAAa,CAAC,KAAK,CAAC;QACpB,qCAAqC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAChE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAoB,EACpB,IAAU,EACV,MAAsB;IAEtB,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvD,0BAA0B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClD,OAAO,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAsB,EACtB,IAAU,EACV,eAAwC;IAExC,OAAO,CACL,MAAM,gCAAgC,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CACxE,CAAC,WAAW,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,QAAsB,EACtB,IAAU,EACV,eAAwC;IAKxC,0BAA0B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ;SAChD,kBAAkB,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,UAAU,EAAE,CAAC;SAC9D,IAAI,EAAE,CAAC;IACV,MAAM,aAAa,GAAG,qCAAqC,CACzD,eAAe,CAAC,wBAAwB,EACxC,qCAAqC,CACnC,eAAe,CAAC,gBAAgB,EAChC,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACzC,CACF,CAAC;IACF,MAAM,OAAO,GAAG,2CAA2C,CACzD,QAAQ,EACR,6BAA6B,CAC3B,eAAe,CAAC,QAAQ,EACxB,oCAAoC,CAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAC1C,aAAa,CACd,CACF,CACF,CAAC;IACF,IAAI,WAA2D,CAAC;IAChE,IAAI,CAAC;QACH,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAwB,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,wBAAwB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { type Commitment, type Signature, type TransactionSigner } from '@solana/kit';
|
|
1
|
+
import { type Address, type Commitment, type Signature, type TransactionSigner } from '@solana/kit';
|
|
2
2
|
import type { SageContext } from '../client/contracts.js';
|
|
3
|
-
import
|
|
3
|
+
import { SageSdkError } from '../client/errors.js';
|
|
4
|
+
import type { Plan, PlanPrecondition } from './index.js';
|
|
4
5
|
/** Options for signing, submitting, confirming, and reconciling one Plan.
|
|
5
6
|
*
|
|
6
7
|
* @example
|
|
@@ -47,6 +48,9 @@ export type UnknownPlanExecution = Readonly<{
|
|
|
47
48
|
signature: Signature;
|
|
48
49
|
reason: 'timeout';
|
|
49
50
|
lastCheckedBlockHeight: bigint;
|
|
51
|
+
/** RPC-assembled expiry height when the signer keeps the assembled blockhash.
|
|
52
|
+
* Null for a replaced blockhash, nonce, or opaque sending signer; signer-supplied heights are ignored.
|
|
53
|
+
*/
|
|
50
54
|
lastValidBlockHeight: bigint | null;
|
|
51
55
|
}> | Readonly<{
|
|
52
56
|
status: 'unknown';
|
|
@@ -54,6 +58,9 @@ export type UnknownPlanExecution = Readonly<{
|
|
|
54
58
|
reason: 'transport-error';
|
|
55
59
|
operation: 'submission' | 'signature-status' | 'block-height';
|
|
56
60
|
lastCheckedBlockHeight: bigint | null;
|
|
61
|
+
/** RPC-assembled expiry height when the signer keeps the assembled blockhash.
|
|
62
|
+
* Null for a replaced blockhash, nonce, or opaque sending signer; signer-supplied heights are ignored.
|
|
63
|
+
*/
|
|
57
64
|
lastValidBlockHeight: bigint | null;
|
|
58
65
|
}>;
|
|
59
66
|
/** Every non-throwing terminal outcome from `executePlan`.
|
|
@@ -70,9 +77,17 @@ export interface PlanExecutionLifecycle {
|
|
|
70
77
|
onPrepared(signerMode: 'observable' | 'opaque'): Promise<void>;
|
|
71
78
|
onBeforeSign(): Promise<void>;
|
|
72
79
|
onBeforeOpaqueInvoke(): Promise<void>;
|
|
73
|
-
onSigned(signature: Signature
|
|
80
|
+
onSigned(signature: Signature, lifetime: Readonly<{
|
|
81
|
+
lastValidBlockHeight: bigint;
|
|
82
|
+
contextSlot: bigint;
|
|
83
|
+
}> | null): Promise<void>;
|
|
74
84
|
onBeforeSubmit(): Promise<void>;
|
|
75
85
|
}
|
|
86
|
+
export declare class ActionPreconditionFailedError extends SageSdkError {
|
|
87
|
+
readonly describes: string;
|
|
88
|
+
readonly observedSlot: bigint | undefined;
|
|
89
|
+
constructor(precondition: PlanPrecondition, observedSlot: bigint | undefined, cause?: string, address?: Address);
|
|
90
|
+
}
|
|
76
91
|
/** Executes one Plan through local signer matching, freshness re-check, one
|
|
77
92
|
* submission, terminal confirmation, and confirmed-only cache invalidation.
|
|
78
93
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"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"}
|