@aephia/atlas-kit 0.6.0-next.133 → 0.6.0-next.135
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/dist/cargo/actions/deposit.d.ts +3 -0
- package/dist/cargo/actions/deposit.d.ts.map +1 -1
- package/dist/cargo/actions/deposit.js +39 -14
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/index.d.ts +11 -5
- package/dist/cargo/actions/index.d.ts.map +1 -1
- package/dist/cargo/actions/index.js +73 -14
- package/dist/cargo/actions/index.js.map +1 -1
- package/dist/fleets/actions/add-ship.d.ts +12 -4
- package/dist/fleets/actions/add-ship.d.ts.map +1 -1
- package/dist/fleets/actions/add-ship.js +15 -7
- package/dist/fleets/actions/add-ship.js.map +1 -1
- package/dist/internal/c4/cargo-instructions.d.ts +24 -0
- package/dist/internal/c4/cargo-instructions.d.ts.map +1 -0
- package/dist/internal/c4/cargo-instructions.js +30 -0
- package/dist/internal/c4/cargo-instructions.js.map +1 -0
- package/dist/internal/c4/discriminators.d.ts +3 -0
- package/dist/internal/c4/discriminators.d.ts.map +1 -1
- package/dist/internal/c4/discriminators.js +7 -1
- package/dist/internal/c4/discriminators.js.map +1 -1
- package/dist/internal/c4/fleet-ship-assembly.d.ts +19 -3
- package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -1
- package/dist/internal/c4/fleet-ship-assembly.js +57 -7
- package/dist/internal/c4/fleet-ship-assembly.js.map +1 -1
- package/dist/internal/c4/fleet-storage.d.ts +36 -0
- package/dist/internal/c4/fleet-storage.d.ts.map +1 -0
- package/dist/internal/c4/fleet-storage.js +72 -0
- package/dist/internal/c4/fleet-storage.js.map +1 -0
- package/dist/internal/planning/cargo-storage-actions.d.ts +8 -0
- package/dist/internal/planning/cargo-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/cargo-storage-actions.js +97 -0
- package/dist/internal/planning/cargo-storage-actions.js.map +1 -0
- package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -1
- package/dist/internal/planning/fleet-ship-assembly.js +58 -29
- package/dist/internal/planning/fleet-ship-assembly.js.map +1 -1
- package/dist/internal/planning/mining-storage-actions.d.ts +11 -0
- package/dist/internal/planning/mining-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/mining-storage-actions.js +66 -0
- package/dist/internal/planning/mining-storage-actions.js.map +1 -0
- package/dist/internal/planning/own-starbase-facts.d.ts +7 -3
- package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -1
- package/dist/internal/planning/own-starbase-facts.js +8 -5
- package/dist/internal/planning/own-starbase-facts.js.map +1 -1
- package/dist/internal/planning/plan-guards.d.ts.map +1 -1
- package/dist/internal/planning/plan-guards.js +2 -0
- package/dist/internal/planning/plan-guards.js.map +1 -1
- package/dist/internal/planning/profile-storage-funding-guard.d.ts +28 -0
- package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding-guard.js +66 -0
- package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
- package/dist/internal/planning/profile-storage-funding.d.ts +34 -0
- package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding.js +50 -0
- package/dist/internal/planning/profile-storage-funding.js.map +1 -0
- package/dist/internal/planning/storage-action-readers.d.ts +10 -0
- package/dist/internal/planning/storage-action-readers.d.ts.map +1 -0
- package/dist/internal/planning/storage-action-readers.js +25 -0
- package/dist/internal/planning/storage-action-readers.js.map +1 -0
- package/dist/internal/planning/storage-actions.d.ts +81 -0
- package/dist/internal/planning/storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/storage-actions.js +177 -0
- package/dist/internal/planning/storage-actions.js.map +1 -0
- package/dist/mining/actions/index.d.ts.map +1 -1
- package/dist/mining/actions/index.js +71 -25
- package/dist/mining/actions/index.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +59 -6
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +12 -1
- package/dist/planning/index.d.ts.map +1 -1
- package/dist/planning/index.js +2 -2
- package/dist/planning/index.js.map +1 -1
- package/dist/planning/plan-construction.js +1 -1
- package/dist/planning/plan-validation.d.ts.map +1 -1
- package/dist/planning/plan-validation.js +4 -0
- package/dist/planning/plan-validation.js.map +1 -1
- package/dist/registry/cargo.d.ts +2 -2
- package/dist/registry/cargo.d.ts.map +1 -1
- package/dist/registry/cargo.js +1 -2
- package/dist/registry/cargo.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SYSTEM_PROGRAM } from '../system-program.js';
|
|
2
2
|
import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
|
|
3
|
-
import { fleetShipAssemblySize,
|
|
3
|
+
import { MAX_COMMANDERS_AND_TITANS_PER_FLEET, MAX_TITANS_PER_FLEET, fleetCapacityPoints, fleetShipAssemblySize, prospectiveShipCounts, shipSizeName, shipSizeRank, starbasePlayerEscrowGrowth, } from '../c4/fleet-ship-assembly.js';
|
|
4
4
|
import { decodeGameShipAssemblyCatalog, hashShipAssemblyConfiguration, } from '../../registry/ships.js';
|
|
5
5
|
import { isOffCurveAddress } from '@solana/kit';
|
|
6
6
|
import { SageSdkError } from '../../client/errors.js';
|
|
@@ -46,12 +46,14 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
|
|
|
46
46
|
fail(address, `${name} ${address} is executable. Refresh valid account state before assembling ships.`);
|
|
47
47
|
return raw;
|
|
48
48
|
};
|
|
49
|
-
|
|
49
|
+
// The program assembles at any Starbase where the Character has a current
|
|
50
|
+
// StarbasePlayer of the Fleet's faction, whoever owns the Starbase.
|
|
51
|
+
const { profileRaw, profile, character, faction, system, player } = await readOwnStarbaseFacts(intent, resolved, required, {
|
|
50
52
|
replan: 'replan ship assembly',
|
|
51
53
|
before: 'before assembling ships',
|
|
52
|
-
});
|
|
53
|
-
if (
|
|
54
|
-
fail(resolved.
|
|
54
|
+
}, { anyStarbase: true });
|
|
55
|
+
if (player.sequenceId !== system.sequenceId)
|
|
56
|
+
fail(resolved.starbasePlayer, `The StarbasePlayer belongs to Starbase generation ${String(player.sequenceId)}, but the Starbase is at generation ${String(system.sequenceId)}; the program treats it as destroyed. Register a current StarbasePlayer at this Starbase and replan ship assembly.`);
|
|
55
57
|
const fleetRaw = required(resolved.fleet, 'Fleet');
|
|
56
58
|
const fleet = fleetAccountDefinition.decode(fleetRaw);
|
|
57
59
|
if ((await deriveFleetAddress(fleet)) !== intent.address ||
|
|
@@ -61,7 +63,7 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
|
|
|
61
63
|
fleet.npcFactionId !== 0)
|
|
62
64
|
fail(resolved.fleet, 'The Fleet has a noncanonical address or different Game, Profile, faction or NPC affiliation. Select a canonical owned player Fleet and replan ship assembly.');
|
|
63
65
|
if (fleet.state.kind !== 'docked' || fleet.state.system !== intent.system)
|
|
64
|
-
fail(resolved.fleet, 'Ship assembly requires the Fleet to remain Docked at the selected System. Dock at
|
|
66
|
+
fail(resolved.fleet, 'Ship assembly requires the Fleet to remain Docked at the selected System. Dock at a Starbase where the Character has a current StarbasePlayer and replan.');
|
|
65
67
|
// A Fleet with a sub-profile is rented (or a rental was invalidated), and
|
|
66
68
|
// the program never adds ships to it.
|
|
67
69
|
if (fleet.subProfile !== SYSTEM_PROGRAM)
|
|
@@ -75,39 +77,65 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
|
|
|
75
77
|
const gameRaw = required(resolved.game, 'Game');
|
|
76
78
|
const definitions = catalog ?? decodeGameShipAssemblyCatalog(gameRaw);
|
|
77
79
|
if (fleet.shipDefinitionsSeqId !== definitions.sequenceId)
|
|
78
|
-
fail(resolved.fleet, '
|
|
80
|
+
fail(resolved.fleet, 'The Fleet was built under older ship definitions. The program resynchronizes it inside the assembly, which can change its stats, and this SDK plans current Fleets only. Run any action that updates the Fleet, or the permissionless Fleet sync, then replan.');
|
|
79
81
|
const selected = definitions.rows.find((row) => row.id === intent.shipId);
|
|
80
|
-
if (!
|
|
81
|
-
fail(resolved.game,
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
if (!selected)
|
|
83
|
+
fail(resolved.game, `Ship configuration ${String(intent.shipId)} is not in the current Game ship definitions. Select a defined configuration and replan.`);
|
|
84
|
+
// Components move from the StarbasePlayer into the Fleet's components pod;
|
|
85
|
+
// that route and its storage are not planned yet.
|
|
86
|
+
if (selected.componentRequirements.size > 0)
|
|
87
|
+
fail(resolved.game, `Ship configuration ${String(intent.shipId)} needs ship components, which this SDK does not plan yet. Select a configuration without component requirements, or use the game client.`);
|
|
88
|
+
const size = shipSizeName(selected.sizeClass);
|
|
89
|
+
const maxSize = character.modifiers.values.maxShipSize;
|
|
90
|
+
if (selected.sizeClass > shipSizeRank(maxSize))
|
|
91
|
+
fail(resolved.character, `Ship configuration ${String(intent.shipId)} is ${size}, above the Character's maximum ship size ${maxSize}. Unlock research that raises the maximum ship size, then replan.`);
|
|
92
|
+
const tags = character.modifiers.values.researchTags;
|
|
93
|
+
const missing = selected.researchRequirements.filter((tag) => !tags.includes(tag));
|
|
94
|
+
if (missing.length > 0)
|
|
95
|
+
fail(resolved.character, `Ship configuration ${String(intent.shipId)} requires every research tag in [${selected.researchRequirements.join(', ')}]; the Character lacks [${missing.join(', ')}]. Unlock the research nodes that grant them, then replan.`);
|
|
91
96
|
const current = fleet.fleetShips.find((entry) => entry.shipId === intent.shipId)
|
|
92
97
|
?.quantity ?? 0n;
|
|
93
98
|
if (current + intent.amount > 18446744073709551615n)
|
|
94
99
|
fail(resolved.fleet, 'The resulting Fleet ship quantity exceeds the stored u64 limit. Select a smaller valid quantity and replan.');
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
// The program checks the Fleet's stored ship counts plus the added ships,
|
|
101
|
+
// never the requirements of ships already aboard.
|
|
102
|
+
const classes = prospectiveShipCounts(fleet.shipCounts, selected.sizeClass, Number(intent.amount));
|
|
103
|
+
const points = fleetCapacityPoints(classes);
|
|
104
|
+
if (points > character.modifiers.values.fleetSize)
|
|
105
|
+
fail(resolved.character, `The resulting Fleet uses ${String(points)} Fleet points, above the Character's Fleet size ${String(character.modifiers.values.fleetSize)}. Reduce the amount or unlock Fleet-size research, then replan.`);
|
|
106
|
+
if (points > definitions.maxFleetSize)
|
|
107
|
+
fail(resolved.game, `The resulting Fleet uses ${String(points)} Fleet points, above the Game's ${String(definitions.maxFleetSize)}-point Fleet limit. Reduce the resulting Fleet composition, then replan; a larger Character allowance does not override it.`);
|
|
108
|
+
const [commanders, titans] = [classes[6], classes[7]];
|
|
109
|
+
if (titans > MAX_TITANS_PER_FLEET)
|
|
110
|
+
fail(resolved.fleet, `The resulting Fleet would hold ${String(titans)} Titans; a Fleet holds at most ${String(MAX_TITANS_PER_FLEET)}. Add the Titan to another Fleet and replan.`);
|
|
111
|
+
if (commanders + titans > MAX_COMMANDERS_AND_TITANS_PER_FLEET)
|
|
112
|
+
fail(resolved.fleet, `The resulting Fleet would hold ${String(commanders + titans)} Commander and Titan ships; a Fleet holds at most ${String(MAX_COMMANDERS_AND_TITANS_PER_FLEET)} together. Add the ship to another Fleet and replan.`);
|
|
113
|
+
// Escrowed hulls of any configuration of the same ship count: the program
|
|
114
|
+
// re-tags them to the selected configuration.
|
|
115
|
+
const siblings = new Set(definitions.rows
|
|
116
|
+
.filter((row) => row.mint === selected.mint)
|
|
117
|
+
.map((row) => row.id));
|
|
118
|
+
const entitlement = player.shipsInEscrow
|
|
119
|
+
.filter((entry) => siblings.has(entry.shipId))
|
|
120
|
+
.reduce((total, entry) => total + entry.quantityRaw, 0n);
|
|
101
121
|
if (entitlement < intent.amount)
|
|
102
|
-
fail(resolved.starbasePlayer,
|
|
122
|
+
fail(resolved.starbasePlayer, `The StarbasePlayer holds ${String(entitlement)} escrowed hulls of this ship across its configurations, fewer than the ${String(intent.amount)} requested. Explicitly import more of this ship or reduce the amount, then replan.`);
|
|
103
123
|
const configHash = await hashShipAssemblyConfiguration(definitions, selected);
|
|
104
124
|
if (expected && expected.configHash !== configHash)
|
|
105
125
|
fail(resolved.game, 'The selected ship configuration has changed. Replan and inspect its current configuration before signing.');
|
|
106
126
|
const rent = readRent(required(resolved.rent, 'Rent sysvar'));
|
|
107
127
|
const now = readClock(required(resolved.clock, 'Clock sysvar'));
|
|
108
128
|
const fleetRent = rent(fleetShipAssemblySize(fleetRaw, intent.shipId, intent.amount));
|
|
109
|
-
const
|
|
110
|
-
|
|
129
|
+
const shortfall = (raw, minimum) => raw.lamports < minimum ? minimum - raw.lamports : 0n;
|
|
130
|
+
// The program funds the Fleet, StarbasePlayer and Character as one group.
|
|
131
|
+
// Re-tagging adds an escrow entry when the configuration has none, and its
|
|
132
|
+
// cost is counted in full. A StarbasePlayer already below its rent minimum
|
|
133
|
+
// is left out, as a combined ship import funds that shortfall first.
|
|
134
|
+
const playerRaw = required(resolved.starbasePlayer, 'StarbasePlayer');
|
|
135
|
+
const profileDebit = shortfall(fleetRaw, fleetRent) +
|
|
136
|
+
rent(playerRaw.data.length +
|
|
137
|
+
starbasePlayerEscrowGrowth(playerRaw, intent.shipId)) -
|
|
138
|
+
rent(playerRaw.data.length);
|
|
111
139
|
if (expected !== undefined && profileDebit > expected.maximumProfileDebit)
|
|
112
140
|
fail(resolved.profile, 'Ship assembly now requires a larger Profile debit than this Plan approved. Replan and inspect the updated rent shortfall before signing.');
|
|
113
141
|
const profileReserve = rent(profileRaw.data.length);
|
|
@@ -119,9 +147,10 @@ export async function validateFleetShipAssembly(input, resolved, accounts, expec
|
|
|
119
147
|
if (profileKeyExpired(key, now))
|
|
120
148
|
fail(resolved.profile, 'The selected Profile key has expired. Renew it or select a current direct key and replan ship assembly.');
|
|
121
149
|
const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
|
|
122
|
-
const manages = grantsPermission(key, SAGE_SCOPE, 18n)
|
|
150
|
+
const manages = grantsPermission(key, SAGE_SCOPE, 18n) ||
|
|
151
|
+
grantsPermission(key, intent.address, 18n);
|
|
123
152
|
if (!auth && !manages)
|
|
124
|
-
fail(resolved.profile, 'The selected key cannot manage Fleets. Use a direct Profile AUTH key or a
|
|
153
|
+
fail(resolved.profile, 'The selected key cannot manage Fleets. Use a direct Profile AUTH key or a manageFleet key scoped to SAGE or this Fleet, and replan.');
|
|
125
154
|
if (profileDebit > 0n && !auth && !hasPermissionBit(key, 63n))
|
|
126
155
|
fail(resolved.profile, 'The selected manageFleet key cannot fund the Fleet from the Profile vault. Explicitly prefund the target or choose an authorized vault-funding key, then replan; drainSolVault grants vault withdrawal authority.');
|
|
127
156
|
return { profileDebit, profileReserve, fleetRent, configHash };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-ship-assembly.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"fleet-ship-assembly.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-ship-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Address, Instruction } from '@solana/kit';
|
|
2
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
import { type StorageAction } from './storage-actions.js';
|
|
4
|
+
/** Reads a mining start's or stop's, or a subwarp stop's, storage effect from
|
|
5
|
+
* its bytes and the fresh Fleet. */
|
|
6
|
+
export declare function readMiningStorageAction(instruction: Instruction, accounts: ReadonlyMap<Address, RawAccount | undefined>): StorageAction;
|
|
7
|
+
/** The storage effect of settling a subwarp-arrived Fleet before it starts
|
|
8
|
+
* mining, as `combinePlans(settlement, mining)` runs: the Fleet first returns
|
|
9
|
+
* to Idle at its rent minimum, then grows by the mining state. */
|
|
10
|
+
export declare function subwarpSettlementAction(start: StorageAction, fleet: RawAccount): StorageAction;
|
|
11
|
+
//# sourceMappingURL=mining-storage-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mining-storage-actions.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/mining-storage-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E;oCACoC;AACpC,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,GACrD,aAAa,CAkDf;AAED;;kEAEkE;AAClE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,GAChB,aAAa,CAKf"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { decodeStartMiningData, decodeStopMiningData, decodeStopSubwarpData, fleetHoldLines, settleSubwarpState, startMiningState, stopMiningChange, } from '../c4/fleet-storage.js';
|
|
2
|
+
import { storageInstruction } from './profile-storage-funding-guard.js';
|
|
3
|
+
import { present, totals } from './storage-actions.js';
|
|
4
|
+
/** Reads a mining start's or stop's, or a subwarp stop's, storage effect from
|
|
5
|
+
* its bytes and the fresh Fleet. */
|
|
6
|
+
export function readMiningStorageAction(instruction, accounts) {
|
|
7
|
+
const { kind } = storageInstruction(instruction);
|
|
8
|
+
const metas = instruction.accounts;
|
|
9
|
+
const data = instruction.data;
|
|
10
|
+
const signer = {
|
|
11
|
+
profile: metas[1].address,
|
|
12
|
+
authority: metas[0].address,
|
|
13
|
+
};
|
|
14
|
+
if (kind === 'stop-subwarp') {
|
|
15
|
+
const fleet = present(accounts, metas[5].address);
|
|
16
|
+
return {
|
|
17
|
+
...signer,
|
|
18
|
+
keyIndex: decodeStopSubwarpData(data).keyIndex,
|
|
19
|
+
settlement: 'each',
|
|
20
|
+
accounts: [{ address: fleet.address, state: settleSubwarpState(fleet) }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (kind === 'start-mining') {
|
|
24
|
+
const { keyIndex, resources } = decodeStartMiningData(data);
|
|
25
|
+
const fleet = present(accounts, metas[4].address);
|
|
26
|
+
return {
|
|
27
|
+
...signer,
|
|
28
|
+
keyIndex,
|
|
29
|
+
settlement: 'each',
|
|
30
|
+
accounts: [
|
|
31
|
+
{
|
|
32
|
+
address: fleet.address,
|
|
33
|
+
state: startMiningState(fleet, resources),
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const { keyIndex } = decodeStopMiningData(data);
|
|
39
|
+
const fleet = present(accounts, metas[5].address);
|
|
40
|
+
const { state, resources } = stopMiningChange(fleet);
|
|
41
|
+
// Each mined resource may land a line in the hold. Consumption that empties
|
|
42
|
+
// a line is not credited, so this bounds the growth from above.
|
|
43
|
+
return {
|
|
44
|
+
...signer,
|
|
45
|
+
keyIndex,
|
|
46
|
+
settlement: 'each',
|
|
47
|
+
accounts: [
|
|
48
|
+
{
|
|
49
|
+
address: fleet.address,
|
|
50
|
+
state,
|
|
51
|
+
held: fleetHoldLines(fleet),
|
|
52
|
+
added: totals(resources.map((cargoId) => [cargoId, 1n])),
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** The storage effect of settling a subwarp-arrived Fleet before it starts
|
|
58
|
+
* mining, as `combinePlans(settlement, mining)` runs: the Fleet first returns
|
|
59
|
+
* to Idle at its rent minimum, then grows by the mining state. */
|
|
60
|
+
export function subwarpSettlementAction(start, fleet) {
|
|
61
|
+
return {
|
|
62
|
+
...start,
|
|
63
|
+
accounts: [{ address: fleet.address, state: settleSubwarpState(fleet) }],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=mining-storage-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mining-storage-actions.js","sourceRoot":"","sources":["../../../src/internal/planning/mining-storage-actions.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAsB,MAAM,sBAAsB,CAAC;AAE3E;oCACoC;AACpC,MAAM,UAAU,uBAAuB,CACrC,WAAwB,EACxB,QAAsD;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAE,CAAC;IAClD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAS,CAAC;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAK,CAAC;IAC/B,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO;QAC1B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO;KAC7B,CAAC;IACF,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ;YAC9C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO;YACL,GAAG,MAAM;YACT,QAAQ;YACR,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE;gBACR;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrD,4EAA4E;IAC5E,gEAAgE;IAChE,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;QACR,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK;gBACL,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC;AAED;;kEAEkE;AAClE,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,KAAiB;IAEjB,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC"}
|
|
@@ -10,8 +10,9 @@ export interface OwnStarbaseAction {
|
|
|
10
10
|
/** Decodes and relates the Profile, Character, faction membership, Star System
|
|
11
11
|
* and StarbasePlayer that Fleet creation and ship assembly both require: one
|
|
12
12
|
* canonical Character and membership for the Profile, a canonical Starbase
|
|
13
|
-
* System
|
|
14
|
-
*
|
|
13
|
+
* System, and the StarbasePlayer joining them. Unless `anyStarbase` is set, the
|
|
14
|
+
* Starbase must belong to the Profile's faction. `required` reads each account
|
|
15
|
+
* with the planner's own wording. */
|
|
15
16
|
export declare function readOwnStarbaseFacts(intent: {
|
|
16
17
|
readonly game: Address;
|
|
17
18
|
readonly profile: Address;
|
|
@@ -22,11 +23,14 @@ export declare function readOwnStarbaseFacts(intent: {
|
|
|
22
23
|
readonly profileFaction: Address;
|
|
23
24
|
readonly system: Address;
|
|
24
25
|
readonly starbasePlayer: Address;
|
|
25
|
-
}, required: (address: Address, name: string) => RawAccount, action: OwnStarbaseAction
|
|
26
|
+
}, required: (address: Address, name: string) => RawAccount, action: OwnStarbaseAction, options?: {
|
|
27
|
+
readonly anyStarbase?: true;
|
|
28
|
+
}): Promise<{
|
|
26
29
|
profileRaw: RawAccount;
|
|
27
30
|
profile: Readonly<import("../c4/identity.js").ProfileAccountData>;
|
|
28
31
|
character: Readonly<import("../c4/character.js").CharacterAccountData>;
|
|
29
32
|
faction: Readonly<import("../c4/profile-faction.js").ProfileFactionAccountData>;
|
|
33
|
+
system: Readonly<import("../c4/world.js").StarSystemAccountData>;
|
|
30
34
|
starbase: import("../c4/world.js").WorldStarbaseData;
|
|
31
35
|
player: Readonly<import("../c4/starbase.js").StarbasePlayerAccountData>;
|
|
32
36
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"own-starbase-facts.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/own-starbase-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD
|
|
1
|
+
{"version":3,"file":"own-starbase-facts.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/own-starbase-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;qCAKqC;AACrC,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,EACD,QAAQ,EAAE;IACR,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,EACD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,UAAU,EACxD,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAO;;;;;;;;GAmE9C"}
|
|
@@ -10,9 +10,10 @@ function fail(address, message) {
|
|
|
10
10
|
/** Decodes and relates the Profile, Character, faction membership, Star System
|
|
11
11
|
* and StarbasePlayer that Fleet creation and ship assembly both require: one
|
|
12
12
|
* canonical Character and membership for the Profile, a canonical Starbase
|
|
13
|
-
* System
|
|
14
|
-
*
|
|
15
|
-
|
|
13
|
+
* System, and the StarbasePlayer joining them. Unless `anyStarbase` is set, the
|
|
14
|
+
* Starbase must belong to the Profile's faction. `required` reads each account
|
|
15
|
+
* with the planner's own wording. */
|
|
16
|
+
export async function readOwnStarbaseFacts(intent, resolved, required, action, options = {}) {
|
|
16
17
|
const profileRaw = required(resolved.profile, 'Profile');
|
|
17
18
|
const profile = profileAccountDefinition.decode(profileRaw);
|
|
18
19
|
const character = characterAccountDefinition.decode(required(resolved.character, 'Character'));
|
|
@@ -34,14 +35,16 @@ export async function readOwnStarbaseFacts(intent, resolved, required, action) {
|
|
|
34
35
|
player.system !== intent.system ||
|
|
35
36
|
player.faction !== faction.faction)
|
|
36
37
|
fail(resolved.starbasePlayer, 'The StarbasePlayer has a different Profile, Character, System or faction relationship. Refresh the canonical StarbasePlayer and replan.');
|
|
37
|
-
if (
|
|
38
|
-
|
|
38
|
+
if (!options.anyStarbase &&
|
|
39
|
+
(faction.faction === 'unaligned' ||
|
|
40
|
+
system.starbase.owner !== faction.faction))
|
|
39
41
|
fail(resolved.system, 'This planner supports an existing own-faction StarbasePlayer only. Select an own-faction Starbase; other diplomacy or access routes require separate supported planning.');
|
|
40
42
|
return {
|
|
41
43
|
profileRaw,
|
|
42
44
|
profile,
|
|
43
45
|
character,
|
|
44
46
|
faction,
|
|
47
|
+
system,
|
|
45
48
|
starbase: system.starbase,
|
|
46
49
|
player,
|
|
47
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"own-starbase-facts.js","sourceRoot":"","sources":["../../../src/internal/planning/own-starbase-facts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAUxB,SAAS,IAAI,CAAC,OAAgB,EAAE,OAAe;IAC7C,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"own-starbase-facts.js","sourceRoot":"","sources":["../../../src/internal/planning/own-starbase-facts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAUxB,SAAS,IAAI,CAAC,OAAgB,EAAE,OAAe;IAC7C,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;qCAKqC;AACrC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAIC,EACD,QAMC,EACD,QAAwD,EACxD,MAAyB,EACzB,UAA2C,EAAE;IAE7C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,CACjD,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAC1C,CAAC;IACF,MAAM,OAAO,GAAG,+BAA+B,CAAC,MAAM,CACpD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACpD,CAAC;IACF,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAC/C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CACzC,CAAC;IACF,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,CACnD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACpD,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,6FAA6F,MAAM,CAAC,MAAM,GAAG,CAC9G,CAAC;IACJ,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QACpC,IAAI,CACF,QAAQ,CAAC,cAAc,EACvB,2FAA2F,MAAM,CAAC,MAAM,GAAG,CAC5G,CAAC;IACJ,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,MAAM;QACf,CAAC,MAAM,CAAC,QAAQ;QAEhB,IAAI,CACF,QAAQ,CAAC,MAAM,EACf,mHAAmH,CACpH,CAAC;IACJ,IACE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO;QACvC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACvC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAC/B,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAElC,IAAI,CACF,QAAQ,CAAC,cAAc,EACvB,yIAAyI,CAC1I,CAAC;IACJ,IACE,CAAC,OAAO,CAAC,WAAW;QACpB,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW;YAC9B,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC;QAE5C,IAAI,CACF,QAAQ,CAAC,MAAM,EACf,0KAA0K,CAC3K,CAAC;IACJ,OAAO;QACL,UAAU;QACV,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-guards.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/plan-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-guards.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/plan-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAqVhE,mEAAmE;AACnE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,UAAQ,GACX,gBAAgB,CAkBlB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { normalizeArrivalGuard } from './arrival-guards.js';
|
|
2
2
|
import { FLEET_DOCK_FUNDING_SCHEMA } from './fleet-dock-funding-guard.js';
|
|
3
3
|
import { LOCAL_MARKET_ORDER_SCHEMA } from './local-market-order.js';
|
|
4
|
+
import { PROFILE_STORAGE_FUNDING_SCHEMA } from './profile-storage-funding-guard.js';
|
|
4
5
|
import { MAX_U64, invalid, normalizeSchemaGuard, readRecord, } from './plan-fields.js';
|
|
5
6
|
import { isRuntimeGuard, normalizeRuntimeGuard } from './runtime-guards.js';
|
|
6
7
|
import { scanCompletionDiscriminators } from './scan-completion-guard.js';
|
|
@@ -159,6 +160,7 @@ const GUARD_SCHEMAS = {
|
|
|
159
160
|
'account-state': schema(address('address'), ['dataHash', 'hash'], DESCRIBES),
|
|
160
161
|
'fleet-dock-funding': FLEET_DOCK_FUNDING_SCHEMA,
|
|
161
162
|
'local-market-order': LOCAL_MARKET_ORDER_SCHEMA,
|
|
163
|
+
'profile-storage-funding': PROFILE_STORAGE_FUNDING_SCHEMA,
|
|
162
164
|
};
|
|
163
165
|
/** Validates one Plan guard; `wire` decodes its Plan JSON form. */
|
|
164
166
|
export function normalizePrecondition(value, field, wire = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-guards.js","sourceRoot":"","sources":["../../../src/internal/planning/plan-guards.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plan-guards.js","sourceRoot":"","sources":["../../../src/internal/planning/plan-guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Instruction } from '@solana/kit';
|
|
2
|
+
import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
|
|
3
|
+
import { type GuardSchema } from './plan-fields.js';
|
|
4
|
+
/** Bytes one new cargo line (u16 cargo id, u64 amount) adds to a cargo pod. */
|
|
5
|
+
export declare const CARGO_LINE_BYTES = 10;
|
|
6
|
+
/** Instructions whose account storage the Profile funds. Each is evaluated in
|
|
7
|
+
* Plan order; all but a subwarp stop also carry a funding guard. */
|
|
8
|
+
export type StorageInstruction = 'deposit' | 'starbase-transfer' | 'within-fleet-transfer' | 'start-mining' | 'stop-mining' | 'stop-subwarp';
|
|
9
|
+
/** Which Profile-funded instruction this is, if any, the index of the account
|
|
10
|
+
* its guard names, and whether it carries a guard. */
|
|
11
|
+
export declare function storageInstruction(instruction: Instruction): {
|
|
12
|
+
readonly kind: StorageInstruction;
|
|
13
|
+
readonly primary: number;
|
|
14
|
+
readonly guarded: boolean;
|
|
15
|
+
} | undefined;
|
|
16
|
+
/** Persisted Profile storage funding of one action: the Profile, signer and
|
|
17
|
+
* first resized account that bind it to its instruction, and the planned
|
|
18
|
+
* debit ceiling. Everything else is rederived from the instruction. */
|
|
19
|
+
export type ProfileStorageFundingGuard = Extract<PlanPrecondition, {
|
|
20
|
+
readonly kind: 'profile-storage-funding';
|
|
21
|
+
}>;
|
|
22
|
+
export declare const PROFILE_STORAGE_FUNDING_SCHEMA: GuardSchema;
|
|
23
|
+
/** Binds every guarded Profile-funded instruction to exactly one storage funding guard
|
|
24
|
+
* for its Profile, signer and first resized account, so a saved Plan cannot
|
|
25
|
+
* drop or retarget its funding check; a guard without its instruction is
|
|
26
|
+
* refused too. */
|
|
27
|
+
export declare function validateProfileStorageFundingGuards(steps: readonly PlanStep[], guards: readonly PlanPrecondition[]): void;
|
|
28
|
+
//# sourceMappingURL=profile-storage-funding-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-storage-funding-guard.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/profile-storage-funding-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAU1E,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;oEACoE;AACpE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,mBAAmB,GACnB,uBAAuB,GACvB,cAAc,GACd,aAAa,GACb,cAAc,CAAC;AAiBnB;sDACsD;AACtD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GACvD;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,GACD,SAAS,CAMZ;AAED;;uEAEuE;AACvE,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC9C,gBAAgB,EAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAC7C,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,WAe5C,CAAC;AAEF;;;kBAGkB;AAClB,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CA2BN"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, START_MINING_ASTEROID_DISCRIMINATOR, STOP_MINING_ASTEROID_DISCRIMINATOR, STOP_SUBWARP_DISCRIMINATOR, TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR, } from '../c4/discriminators.js';
|
|
3
|
+
import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
|
|
4
|
+
import { MAX_U64, } from './plan-fields.js';
|
|
5
|
+
/** Bytes one new cargo line (u16 cargo id, u64 amount) adds to a cargo pod. */
|
|
6
|
+
export const CARGO_LINE_BYTES = 10;
|
|
7
|
+
/** Each kind's discriminator, the instruction account index of the first
|
|
8
|
+
* account it resizes, which names the guard, and whether it carries one. Every
|
|
9
|
+
* one signs with account 0 and validates the Profile at account 1. A subwarp
|
|
10
|
+
* stop only returns the Fleet to Idle, which releases storage and refunds the
|
|
11
|
+
* Profile, so it has no guard; it is evaluated so later actions see the
|
|
12
|
+
* settled Fleet. */
|
|
13
|
+
const STORAGE_INSTRUCTIONS = [
|
|
14
|
+
['deposit', DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, 5, true],
|
|
15
|
+
['starbase-transfer', TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, 4, true],
|
|
16
|
+
['within-fleet-transfer', TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR, 4, true],
|
|
17
|
+
['start-mining', START_MINING_ASTEROID_DISCRIMINATOR, 4, true],
|
|
18
|
+
['stop-mining', STOP_MINING_ASTEROID_DISCRIMINATOR, 5, true],
|
|
19
|
+
['stop-subwarp', STOP_SUBWARP_DISCRIMINATOR, 5, false],
|
|
20
|
+
];
|
|
21
|
+
/** Which Profile-funded instruction this is, if any, the index of the account
|
|
22
|
+
* its guard names, and whether it carries a guard. */
|
|
23
|
+
export function storageInstruction(instruction) {
|
|
24
|
+
if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS)
|
|
25
|
+
return undefined;
|
|
26
|
+
const entry = STORAGE_INSTRUCTIONS.find(([, discriminator]) => discriminator.every((byte, index) => instruction.data?.[index] === byte));
|
|
27
|
+
return entry && { kind: entry[0], primary: entry[2], guarded: entry[3] };
|
|
28
|
+
}
|
|
29
|
+
export const PROFILE_STORAGE_FUNDING_SCHEMA = {
|
|
30
|
+
fields: [
|
|
31
|
+
['address', 'address'],
|
|
32
|
+
['profile', 'address'],
|
|
33
|
+
['authority', 'address'],
|
|
34
|
+
[
|
|
35
|
+
'maximumProfileDebit',
|
|
36
|
+
{
|
|
37
|
+
min: 0n,
|
|
38
|
+
max: MAX_U64,
|
|
39
|
+
accepted: 'a nonnegative u64 funding ceiling',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
['describes', 'string'],
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
/** Binds every guarded Profile-funded instruction to exactly one storage funding guard
|
|
46
|
+
* for its Profile, signer and first resized account, so a saved Plan cannot
|
|
47
|
+
* drop or retarget its funding check; a guard without its instruction is
|
|
48
|
+
* refused too. */
|
|
49
|
+
export function validateProfileStorageFundingGuards(steps, guards) {
|
|
50
|
+
const remaining = guards.filter((guard) => guard.kind === 'profile-storage-funding');
|
|
51
|
+
for (const { instruction } of steps) {
|
|
52
|
+
const known = storageInstruction(instruction);
|
|
53
|
+
if (!known?.guarded)
|
|
54
|
+
continue;
|
|
55
|
+
const metas = instruction.accounts;
|
|
56
|
+
const index = remaining.findIndex((guard) => guard.authority === metas?.[0]?.address &&
|
|
57
|
+
guard.profile === metas[1]?.address &&
|
|
58
|
+
guard.address === metas[known.primary]?.address);
|
|
59
|
+
if (index < 0)
|
|
60
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'An instruction that resizes Profile-funded storage has no matching Profile storage funding guard for its Profile, signer and account. Recreate the Plan with its planner.');
|
|
61
|
+
remaining.splice(index, 1);
|
|
62
|
+
}
|
|
63
|
+
if (remaining.length > 0)
|
|
64
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A Profile storage funding guard has no matching instruction. Recreate the Plan with its planner.');
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=profile-storage-funding-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-storage-funding-guard.js","sourceRoot":"","sources":["../../../src/internal/planning/profile-storage-funding-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
import type { ProfileStorageFundingGuard } from './profile-storage-funding-guard.js';
|
|
4
|
+
export interface ProfileStorageFunding {
|
|
5
|
+
readonly profileDebit: bigint;
|
|
6
|
+
readonly profileReserve: bigint;
|
|
7
|
+
}
|
|
8
|
+
/** Checks that the signing key and the Profile can fund one action's storage
|
|
9
|
+
* debit. A zero debit withdraws nothing, so it needs neither `drainSolVault`
|
|
10
|
+
* nor Profile excess lamports. */
|
|
11
|
+
export declare function checkProfileStorageFunding(input: {
|
|
12
|
+
readonly profileRaw: RawAccount;
|
|
13
|
+
readonly rentRaw: RawAccount;
|
|
14
|
+
readonly authority: Address;
|
|
15
|
+
readonly keyIndex: number;
|
|
16
|
+
readonly profileDebit: bigint;
|
|
17
|
+
readonly action: string;
|
|
18
|
+
readonly maximumProfileDebit?: bigint;
|
|
19
|
+
}): ProfileStorageFunding & {
|
|
20
|
+
readonly direct: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** Builds the guard and the summary sentence for one action's storage funding. */
|
|
23
|
+
export declare function profileStorageFundingGuard(input: {
|
|
24
|
+
readonly address: Address;
|
|
25
|
+
readonly profile: Address;
|
|
26
|
+
readonly authority: Address;
|
|
27
|
+
readonly funding: ProfileStorageFunding & {
|
|
28
|
+
readonly direct: boolean;
|
|
29
|
+
};
|
|
30
|
+
}): {
|
|
31
|
+
readonly guard: ProfileStorageFundingGuard;
|
|
32
|
+
readonly disclosure: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=profile-storage-funding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-storage-funding.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/profile-storage-funding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAS5D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAMrF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAMD;;kCAEkC;AAClC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC,GAAG,qBAAqB,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAkCvD;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CACxE,GAAG;IACF,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAiBA"}
|