@aephia/atlas-kit 0.6.0-next.144 → 0.6.0-next.146
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/claim-stakes/actions/index.d.ts +24 -0
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +108 -53
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/fleets/actions/index.d.ts +6 -2
- package/dist/fleets/actions/index.d.ts.map +1 -1
- package/dist/fleets/actions/index.js +20 -4
- package/dist/fleets/actions/index.js.map +1 -1
- package/dist/internal/c4/claim-stake-storage.d.ts +45 -0
- package/dist/internal/c4/claim-stake-storage.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake-storage.js +207 -0
- package/dist/internal/c4/claim-stake-storage.js.map +1 -0
- package/dist/internal/planning/claim-stake-storage-actions.d.ts +12 -0
- package/dist/internal/planning/claim-stake-storage-actions.d.ts.map +1 -0
- package/dist/internal/planning/claim-stake-storage-actions.js +63 -0
- package/dist/internal/planning/claim-stake-storage-actions.js.map +1 -0
- package/dist/internal/planning/currency-cache-guard.d.ts +3 -2
- package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -1
- package/dist/internal/planning/currency-cache-guard.js +28 -3
- package/dist/internal/planning/currency-cache-guard.js.map +1 -1
- package/dist/internal/planning/plan-guards.d.ts.map +1 -1
- package/dist/internal/planning/plan-guards.js +6 -0
- package/dist/internal/planning/plan-guards.js.map +1 -1
- package/dist/internal/planning/profile-storage-funding-guard.d.ts +3 -2
- package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -1
- package/dist/internal/planning/profile-storage-funding-guard.js +61 -23
- package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -1
- package/dist/internal/planning/region-access.d.ts +17 -0
- package/dist/internal/planning/region-access.d.ts.map +1 -1
- package/dist/internal/planning/region-access.js +69 -11
- package/dist/internal/planning/region-access.js.map +1 -1
- package/dist/internal/planning/storage-action-readers.d.ts.map +1 -1
- package/dist/internal/planning/storage-action-readers.js +13 -0
- package/dist/internal/planning/storage-action-readers.js.map +1 -1
- package/dist/internal/planning/storage-actions.d.ts +4 -0
- package/dist/internal/planning/storage-actions.d.ts.map +1 -1
- package/dist/internal/planning/storage-actions.js +2 -2
- package/dist/internal/planning/storage-actions.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +13 -2
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +16 -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/package.json +1 -1
|
@@ -1,40 +1,78 @@
|
|
|
1
1
|
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
-
import { APPLY_COMBAT_STIMULANT_DISCRIMINATOR, CANCEL_CRAFTING_PROCESS_DISCRIMINATOR, CANCEL_LOCAL_MARKET_ORDERS_DISCRIMINATOR, DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, RECOVER_SIGNAL_DISCRIMINATOR, RETRIEVE_LOOT_DISCRIMINATOR, START_CRAFTING_PROCESS_DISCRIMINATOR, START_MINING_ASTEROID_DISCRIMINATOR, START_SUBWARP_DISCRIMINATOR, STOP_MINING_ASTEROID_DISCRIMINATOR, STOP_SUBWARP_DISCRIMINATOR, TRADE_FACTION_MARKET_DISCRIMINATOR, TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR, WARP_LANE_DISCRIMINATOR, WARP_TO_COORDINATE_DISCRIMINATOR, } from '../c4/discriminators.js';
|
|
2
|
+
import { APPLY_COMBAT_STIMULANT_DISCRIMINATOR, CANCEL_CRAFTING_PROCESS_DISCRIMINATOR, CANCEL_LOCAL_MARKET_ORDERS_DISCRIMINATOR, DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, PLACE_CLAIM_STAKE_BUILDINGS_DISCRIMINATOR, PLACE_CLAIM_STAKE_INSTANCE_WITH_HUB_DISCRIMINATOR, RECOVER_SIGNAL_DISCRIMINATOR, RETRIEVE_LOOT_DISCRIMINATOR, START_CLAIM_STAKES_FLEET_TRANSFER_DISCRIMINATOR, START_CRAFTING_PROCESS_DISCRIMINATOR, START_MINING_ASTEROID_DISCRIMINATOR, START_SUBWARP_DISCRIMINATOR, STOP_MINING_ASTEROID_DISCRIMINATOR, STOP_SUBWARP_DISCRIMINATOR, TRADE_FACTION_MARKET_DISCRIMINATOR, TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR, WARP_LANE_DISCRIMINATOR, WARP_TO_COORDINATE_DISCRIMINATOR, } from '../c4/discriminators.js';
|
|
3
3
|
import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
|
|
4
4
|
import { MAX_U64, } from './plan-fields.js';
|
|
5
5
|
/** Bytes one new cargo line (u16 cargo id, u64 amount) adds to a cargo pod. */
|
|
6
6
|
export const CARGO_LINE_BYTES = 10;
|
|
7
7
|
/** Each kind's discriminator, the instruction account index of the first
|
|
8
|
-
* account it resizes, which names the guard,
|
|
9
|
-
*
|
|
8
|
+
* account it resizes, which names the guard, whether it carries one, and the
|
|
9
|
+
* index of its signing key, with the Profile at the next account. A subwarp
|
|
10
10
|
* stop only returns the Fleet to Idle, which releases storage and refunds the
|
|
11
11
|
* Profile, so it has no guard; it is evaluated so later actions see the
|
|
12
12
|
* settled Fleet. */
|
|
13
13
|
const STORAGE_INSTRUCTIONS = [
|
|
14
|
-
['deposit', DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, 5, true],
|
|
15
|
-
['starbase-transfer', TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, 4, true],
|
|
16
|
-
[
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
['
|
|
24
|
-
['
|
|
25
|
-
['
|
|
26
|
-
[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
['deposit', DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR, 5, true, 0],
|
|
15
|
+
['starbase-transfer', TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR, 4, true, 0],
|
|
16
|
+
[
|
|
17
|
+
'within-fleet-transfer',
|
|
18
|
+
TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR,
|
|
19
|
+
4,
|
|
20
|
+
true,
|
|
21
|
+
0,
|
|
22
|
+
],
|
|
23
|
+
['start-mining', START_MINING_ASTEROID_DISCRIMINATOR, 4, true, 0],
|
|
24
|
+
['stop-mining', STOP_MINING_ASTEROID_DISCRIMINATOR, 5, true, 0],
|
|
25
|
+
['stop-subwarp', STOP_SUBWARP_DISCRIMINATOR, 5, false, 0],
|
|
26
|
+
[
|
|
27
|
+
'cancel-market-orders',
|
|
28
|
+
CANCEL_LOCAL_MARKET_ORDERS_DISCRIMINATOR,
|
|
29
|
+
8,
|
|
30
|
+
true,
|
|
31
|
+
0,
|
|
32
|
+
],
|
|
33
|
+
['faction-trade', TRADE_FACTION_MARKET_DISCRIMINATOR, 8, true, 0],
|
|
34
|
+
['start-subwarp', START_SUBWARP_DISCRIMINATOR, 5, true, 0],
|
|
35
|
+
['warp-to-coordinate', WARP_TO_COORDINATE_DISCRIMINATOR, 5, true, 0],
|
|
36
|
+
['warp-lane', WARP_LANE_DISCRIMINATOR, 5, true, 0],
|
|
37
|
+
['start-crafting', START_CRAFTING_PROCESS_DISCRIMINATOR, 9, true, 0],
|
|
38
|
+
['cancel-crafting', CANCEL_CRAFTING_PROCESS_DISCRIMINATOR, 7, true, 0],
|
|
39
|
+
['apply-stimulant', APPLY_COMBAT_STIMULANT_DISCRIMINATOR, 4, true, 0],
|
|
40
|
+
['retrieve-loot', RETRIEVE_LOOT_DISCRIMINATOR, 4, true, 0],
|
|
41
|
+
['recover-signal', RECOVER_SIGNAL_DISCRIMINATOR, 5, true, 0],
|
|
42
|
+
[
|
|
43
|
+
'place-claim-stake',
|
|
44
|
+
PLACE_CLAIM_STAKE_INSTANCE_WITH_HUB_DISCRIMINATOR,
|
|
45
|
+
6,
|
|
46
|
+
true,
|
|
47
|
+
1,
|
|
48
|
+
],
|
|
49
|
+
[
|
|
50
|
+
'claim-stake-building-changes',
|
|
51
|
+
PLACE_CLAIM_STAKE_BUILDINGS_DISCRIMINATOR,
|
|
52
|
+
6,
|
|
53
|
+
true,
|
|
54
|
+
1,
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
'start-claim-stake-transfer',
|
|
58
|
+
START_CLAIM_STAKES_FLEET_TRANSFER_DISCRIMINATOR,
|
|
59
|
+
4,
|
|
60
|
+
true,
|
|
61
|
+
0,
|
|
62
|
+
],
|
|
30
63
|
];
|
|
31
64
|
/** Which Profile-funded instruction this is, if any, the index of the account
|
|
32
|
-
* its guard names,
|
|
65
|
+
* its guard names, whether it carries a guard, and its signing key's index. */
|
|
33
66
|
export function storageInstruction(instruction) {
|
|
34
67
|
if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS)
|
|
35
68
|
return undefined;
|
|
36
69
|
const entry = STORAGE_INSTRUCTIONS.find(([, discriminator]) => discriminator.every((byte, index) => instruction.data?.[index] === byte));
|
|
37
|
-
return entry && {
|
|
70
|
+
return (entry && {
|
|
71
|
+
kind: entry[0],
|
|
72
|
+
primary: entry[2],
|
|
73
|
+
guarded: entry[3],
|
|
74
|
+
signer: entry[4],
|
|
75
|
+
});
|
|
38
76
|
}
|
|
39
77
|
export const PROFILE_STORAGE_FUNDING_SCHEMA = {
|
|
40
78
|
fields: [
|
|
@@ -63,8 +101,8 @@ export function validateProfileStorageFundingGuards(steps, guards) {
|
|
|
63
101
|
if (!known?.guarded)
|
|
64
102
|
continue;
|
|
65
103
|
const metas = instruction.accounts;
|
|
66
|
-
const index = remaining.findIndex((guard) => guard.authority === metas?.[
|
|
67
|
-
guard.profile === metas[1]?.address &&
|
|
104
|
+
const index = remaining.findIndex((guard) => guard.authority === metas?.[known.signer]?.address &&
|
|
105
|
+
guard.profile === metas[known.signer + 1]?.address &&
|
|
68
106
|
guard.address === metas[known.primary]?.address);
|
|
69
107
|
if (index < 0)
|
|
70
108
|
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.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-storage-funding-guard.js","sourceRoot":"","sources":["../../../src/internal/planning/profile-storage-funding-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,oCAAoC,EACpC,qCAAqC,EACrC,wCAAwC,EACxC,mCAAmC,EACnC,4BAA4B,EAC5B,2BAA2B,EAC3B,oCAAoC,EACpC,mCAAmC,EACnC,2BAA2B,EAC3B,kCAAkC,EAClC,0BAA0B,EAC1B,kCAAkC,EAClC,qCAAqC,EACrC,yCAAyC,EACzC,uBAAuB,EACvB,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,OAAO,GAGR,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;
|
|
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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"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import type { Address } from '@solana/kit';
|
|
2
2
|
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
type ExactCoordinate = {
|
|
4
|
+
readonly x: bigint;
|
|
5
|
+
readonly y: bigint;
|
|
6
|
+
};
|
|
3
7
|
/** Digest of the access data of every Region containing a Star System's
|
|
4
8
|
* coordinate: id, owner, safety status and risk zone, in tracker order. An
|
|
5
9
|
* empty list is deep space. The tracker must be the canonical version 0
|
|
6
10
|
* account; other Regions and their systems may change.
|
|
7
11
|
*/
|
|
8
12
|
export declare function hashRegionAccess(tracker: RawAccount, system: RawAccount | undefined, game: Address): Promise<string>;
|
|
13
|
+
/** A Fleet's exact action coordinate in `game`: its Idle location, or the end
|
|
14
|
+
* of the warp or subwarp a movement start settles first; `undefined` for any
|
|
15
|
+
* other state, another Game or a missing Fleet.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fleetActionCoordinate(fleet: RawAccount | undefined, game: Address): ExactCoordinate | undefined;
|
|
18
|
+
/** Digest of the Regions a straight path can touch: the Region count, then the
|
|
19
|
+
* id, border, bounding box, owner, safety status and risk zone of every Region
|
|
20
|
+
* whose bounding box overlaps the path's, in tracker order. The tracker must
|
|
21
|
+
* be the canonical version 0 account; Regions away from the path, and every
|
|
22
|
+
* Region's systems, may change.
|
|
23
|
+
*/
|
|
24
|
+
export declare function hashRegionPath(tracker: RawAccount, game: Address, from: ExactCoordinate, to: ExactCoordinate): Promise<string>;
|
|
25
|
+
export {};
|
|
9
26
|
//# sourceMappingURL=region-access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"region-access.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/region-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"region-access.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/region-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAgB5D,KAAK,eAAe,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAgClE;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,IAAI,EAAE,OAAO,GACZ,eAAe,GAAG,SAAS,CAa7B;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,GAClB,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
|
|
@@ -1,33 +1,91 @@
|
|
|
1
1
|
import { SageSdkError } from '../../client/errors.js';
|
|
2
2
|
import { deriveRegionTrackerAddress, regionTrackerAccountDefinition, } from '../c4/factions.js';
|
|
3
|
+
import { fleetAccountDefinition } from '../c4/fleet.js';
|
|
3
4
|
import { regionContainsCoordinate } from '../c4/region-geometry.js';
|
|
4
|
-
import { getRegionTrackerDecoder, getStarSystemDecoder, } from '../c4/runtime-bindings.js';
|
|
5
|
+
import { getFleetDecoder, getRegionTrackerDecoder, getStarSystemDecoder, } from '../c4/runtime-bindings.js';
|
|
5
6
|
import { starSystemAccountDefinition } from '../c4/world.js';
|
|
6
7
|
import { hashAccountState } from './account-state.js';
|
|
8
|
+
/** Decodes the canonical version 0 RegionTracker, or refuses with `message`. */
|
|
9
|
+
async function decodeTracker(tracker, game, valid, message) {
|
|
10
|
+
const decoded = !tracker.executable &&
|
|
11
|
+
tracker.address === (await deriveRegionTrackerAddress(game))
|
|
12
|
+
? regionTrackerAccountDefinition.decode(tracker)
|
|
13
|
+
: undefined;
|
|
14
|
+
if (!valid || decoded?.game !== game || decoded.version !== 0)
|
|
15
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, {
|
|
16
|
+
address: tracker.address,
|
|
17
|
+
});
|
|
18
|
+
return getRegionTrackerDecoder().decode(tracker.data);
|
|
19
|
+
}
|
|
20
|
+
function hashRegions(tracker, value) {
|
|
21
|
+
return hashAccountState(tracker.owner, new TextEncoder().encode(JSON.stringify(value, (_key, item) => typeof item === 'bigint' ? String(item) : item)));
|
|
22
|
+
}
|
|
7
23
|
/** Digest of the access data of every Region containing a Star System's
|
|
8
24
|
* coordinate: id, owner, safety status and risk zone, in tracker order. An
|
|
9
25
|
* empty list is deep space. The tracker must be the canonical version 0
|
|
10
26
|
* account; other Regions and their systems may change.
|
|
11
27
|
*/
|
|
12
28
|
export async function hashRegionAccess(tracker, system, game) {
|
|
13
|
-
const
|
|
14
|
-
tracker.address === (await deriveRegionTrackerAddress(game))
|
|
15
|
-
? regionTrackerAccountDefinition.decode(tracker)
|
|
16
|
-
: undefined;
|
|
17
|
-
if (!system || decoded?.game !== game || decoded.version !== 0)
|
|
18
|
-
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'The destination Star System is missing, or the RegionTracker is not the canonical version 0 account for this Game. Refresh world region data and recreate the warp lane Plan.', { address: tracker.address });
|
|
29
|
+
const data = await decodeTracker(tracker, game, system !== undefined, 'The destination Star System is missing, or the RegionTracker is not the canonical version 0 account for this Game. Refresh world region data and recreate the warp lane Plan.');
|
|
19
30
|
starSystemAccountDefinition.validate(system);
|
|
20
31
|
const [x, y] = getStarSystemDecoder().decode(system.data).coordinates;
|
|
21
32
|
const coordinate = { x: x.raw, y: y.raw };
|
|
22
|
-
const regions =
|
|
23
|
-
.
|
|
24
|
-
.regions.unsizedList.filter((region) => regionContainsCoordinate(region, coordinate))
|
|
33
|
+
const regions = data.regions.unsizedList
|
|
34
|
+
.filter((region) => regionContainsCoordinate(region, coordinate))
|
|
25
35
|
.map(({ id, owner, safetyStatus, riskZone }) => [
|
|
26
36
|
id,
|
|
27
37
|
owner,
|
|
28
38
|
safetyStatus,
|
|
29
39
|
riskZone,
|
|
30
40
|
]);
|
|
31
|
-
return
|
|
41
|
+
return hashRegions(tracker, regions);
|
|
42
|
+
}
|
|
43
|
+
/** A Fleet's exact action coordinate in `game`: its Idle location, or the end
|
|
44
|
+
* of the warp or subwarp a movement start settles first; `undefined` for any
|
|
45
|
+
* other state, another Game or a missing Fleet.
|
|
46
|
+
*/
|
|
47
|
+
export function fleetActionCoordinate(fleet, game) {
|
|
48
|
+
if (!fleet)
|
|
49
|
+
return undefined;
|
|
50
|
+
fleetAccountDefinition.validate(fleet);
|
|
51
|
+
const { gameId, location, state } = getFleetDecoder().decode(fleet.data);
|
|
52
|
+
const at = state.__kind === 'Idle'
|
|
53
|
+
? location
|
|
54
|
+
: state.__kind === 'MoveWarp'
|
|
55
|
+
? state.fields[0].to
|
|
56
|
+
: state.__kind === 'MoveSubwarp'
|
|
57
|
+
? state.fields[0].journey.to
|
|
58
|
+
: undefined;
|
|
59
|
+
return gameId === game && at ? { x: at[0].raw, y: at[1].raw } : undefined;
|
|
60
|
+
}
|
|
61
|
+
/** Digest of the Regions a straight path can touch: the Region count, then the
|
|
62
|
+
* id, border, bounding box, owner, safety status and risk zone of every Region
|
|
63
|
+
* whose bounding box overlaps the path's, in tracker order. The tracker must
|
|
64
|
+
* be the canonical version 0 account; Regions away from the path, and every
|
|
65
|
+
* Region's systems, may change.
|
|
66
|
+
*/
|
|
67
|
+
export async function hashRegionPath(tracker, game, from, to) {
|
|
68
|
+
const data = await decodeTracker(tracker, game, true, 'The RegionTracker is not the canonical version 0 account for this Game. Refresh world region data and recreate the coordinate movement Plan.');
|
|
69
|
+
const [minX, maxX] = from.x < to.x ? [from.x, to.x] : [to.x, from.x];
|
|
70
|
+
const [minY, maxY] = from.y < to.y ? [from.y, to.y] : [to.y, from.y];
|
|
71
|
+
const regions = data.regions.unsizedList
|
|
72
|
+
.filter(({ boundingBox: box }) => box.minX.raw <= maxX &&
|
|
73
|
+
box.maxX.raw >= minX &&
|
|
74
|
+
box.minY.raw <= maxY &&
|
|
75
|
+
box.maxY.raw >= minY)
|
|
76
|
+
.map(({ id, border, boundingBox, owner, safetyStatus, riskZone }) => [
|
|
77
|
+
id,
|
|
78
|
+
border.map((point) => point.map(({ raw }) => raw)),
|
|
79
|
+
[
|
|
80
|
+
boundingBox.minX,
|
|
81
|
+
boundingBox.maxX,
|
|
82
|
+
boundingBox.minY,
|
|
83
|
+
boundingBox.maxY,
|
|
84
|
+
].map(({ raw }) => raw),
|
|
85
|
+
owner,
|
|
86
|
+
safetyStatus,
|
|
87
|
+
riskZone,
|
|
88
|
+
]);
|
|
89
|
+
return hashRegions(tracker, [data.regions.unsizedList.length, regions]);
|
|
32
90
|
}
|
|
33
91
|
//# sourceMappingURL=region-access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"region-access.js","sourceRoot":"","sources":["../../../src/internal/planning/region-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"region-access.js","sourceRoot":"","sources":["../../../src/internal/planning/region-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,gFAAgF;AAChF,KAAK,UAAU,aAAa,CAC1B,OAAmB,EACnB,IAAa,EACb,KAAc,EACd,OAAe;IAEf,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,UAAU;QACnB,OAAO,CAAC,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC;QAC3D,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,OAAO,EAAE;YAC5D,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,OAAO,uBAAuB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB,EAAE,KAAc;IACtD,OAAO,gBAAgB,CACrB,OAAO,CAAC,KAAK,EACb,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAa,EAAE,EAAE,CAC5C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/C,CACF,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAmB,EACnB,MAA8B,EAC9B,IAAa;IAEb,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,OAAO,EACP,IAAI,EACJ,MAAM,KAAK,SAAS,EACpB,+KAA+K,CAChL,CAAC;IACF,2BAA2B,CAAC,QAAQ,CAAC,MAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAC,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IACvE,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAE,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;SACrC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAChE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC9C,EAAE;QACF,KAAK;QACL,YAAY;QACZ,QAAQ;KACT,CAAC,CAAC;IACL,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA6B,EAC7B,IAAa;IAEb,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,GACN,KAAK,CAAC,MAAM,KAAK,MAAM;QACrB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;YAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACpB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa;gBAC9B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;gBAC5B,CAAC,CAAC,SAAS,CAAC;IACpB,OAAO,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAmB,EACnB,IAAa,EACb,IAAqB,EACrB,EAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,8IAA8I,CAC/I,CAAC;IACF,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;SACrC,MAAM,CACL,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,CACvB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CACvB;SACA,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnE,EAAE;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAClD;YACE,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,IAAI;SACjB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;QACvB,KAAK;QACL,YAAY;QACZ,QAAQ;KACT,CAAC,CAAC;IACL,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-action-readers.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/storage-action-readers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-action-readers.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/storage-action-readers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAS5D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAqD1D;sBACsB;AACtB,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,WAAW,GACvB,SAAS,OAAO,EAAE,CAIpB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,GACpD,aAAa,CAMf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readCargoStorageAction } from './cargo-storage-actions.js';
|
|
2
|
+
import { readClaimStakeStorageAction } from './claim-stake-storage-actions.js';
|
|
2
3
|
import { readCombatStorageAction } from './combat-storage-actions.js';
|
|
3
4
|
import { readCraftingStorageAction } from './crafting-storage-actions.js';
|
|
4
5
|
import { readMarketStorageAction } from './market-storage-actions.js';
|
|
@@ -30,6 +31,18 @@ const READERS = {
|
|
|
30
31
|
'apply-stimulant': { accounts: [4, 5], read: readCombat },
|
|
31
32
|
'retrieve-loot': { accounts: [4], read: readCombat },
|
|
32
33
|
'recover-signal': { accounts: [5, 9], read: readScanStorageAction },
|
|
34
|
+
'place-claim-stake': {
|
|
35
|
+
accounts: [0, 9, 7],
|
|
36
|
+
read: readClaimStakeStorageAction,
|
|
37
|
+
},
|
|
38
|
+
'claim-stake-building-changes': {
|
|
39
|
+
accounts: [6],
|
|
40
|
+
read: readClaimStakeStorageAction,
|
|
41
|
+
},
|
|
42
|
+
'start-claim-stake-transfer': {
|
|
43
|
+
accounts: [4, 5],
|
|
44
|
+
read: readClaimStakeStorageAction,
|
|
45
|
+
},
|
|
33
46
|
};
|
|
34
47
|
/** Fresh accounts an instruction's storage reads, besides the Profile, Rent
|
|
35
48
|
* sysvar and Game. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-action-readers.js","sourceRoot":"","sources":["../../../src/internal/planning/storage-action-readers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAS5C,wEAAwE;AACxE,MAAM,UAAU,GAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CACnD,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEjD;oCACoC;AACpC,MAAM,OAAO,GAKT;IACF,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC5D,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACvE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACxE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAChE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC/D,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IAClE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACnE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACxE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IAC/D,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC3E,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,uBAAuB;KAC9B;IACD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACvE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACxE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACpD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE;
|
|
1
|
+
{"version":3,"file":"storage-action-readers.js","sourceRoot":"","sources":["../../../src/internal/planning/storage-action-readers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EACL,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAS5C,wEAAwE;AACxE,MAAM,UAAU,GAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CACnD,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEjD;oCACoC;AACpC,MAAM,OAAO,GAKT;IACF,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC5D,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACvE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACxE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAChE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC/D,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IAClE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACnE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACxE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IAC/D,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC3E,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,uBAAuB;KAC9B;IACD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACvE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACxE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACpD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE;IACnE,mBAAmB,EAAE;QACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,EAAE,2BAA2B;KAClC;IACD,8BAA8B,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,CAAC;QACb,IAAI,EAAE,2BAA2B;KAClC;IACD,4BAA4B,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,EAAE,2BAA2B;KAClC;CACF,CAAC;AAEF;sBACsB;AACtB,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,WAAwB;IAExB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAS,CAAC,KAAK,CAAE,CAAC,OAAO,CACjD,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,WAAwB,EACxB,QAAsD,EACtD,cAAqD;IAErD,OAAO,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACxD,WAAW,EACX,QAAQ,EACR,cAAc,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -20,6 +20,9 @@ export type StorageAccount = {
|
|
|
20
20
|
/** The action creates the account, so it starts empty and unfunded. */
|
|
21
21
|
readonly created?: true;
|
|
22
22
|
readonly growthBytes?: number;
|
|
23
|
+
/** Bytes the program funds beyond the account's size, such as the growth a
|
|
24
|
+
* Claim Stake's rent floor reserves. */
|
|
25
|
+
readonly reservedBytes?: number;
|
|
23
26
|
readonly state?: StateChange;
|
|
24
27
|
} & ({
|
|
25
28
|
readonly held?: undefined;
|
|
@@ -55,6 +58,7 @@ export declare function evaluateStorage(actions: readonly StorageAction[], accou
|
|
|
55
58
|
/** The Profile-funded steps of a Plan, in order. */
|
|
56
59
|
export declare function storageSteps(steps: readonly PlanStep[]): readonly (PlanStep & {
|
|
57
60
|
readonly kind: StorageInstruction;
|
|
61
|
+
readonly signer: number;
|
|
58
62
|
})[];
|
|
59
63
|
/** One guard's rechecked funding, or the failure to report for it. */
|
|
60
64
|
export type StorageResult = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-actions.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/storage-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;0EAE0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;2DAG2D;AAC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAC9B,GAAG,CACA;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B,CACJ,CAAC;AAEF;kFACkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/C,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;CACnE;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,EAAE,UAAsB,CAAC;AAM1C,wBAAgB,MAAM,CACpB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,GAC1D,UAAU,CAMZ;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,OAAO,EAAE,OAAO,GACf,UAAU,CAQZ;AAED;;;;uDAIuD;AACvD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,GACrD,SAAS,iBAAiB,EAAE,CAkE9B;AAED,oDAAoD;AACpD,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"storage-actions.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/storage-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;0EAE0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;2DAG2D;AAC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;4CACwC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAC9B,GAAG,CACA;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B,CACJ,CAAC;AAEF;kFACkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/C,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;CACnE;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,EAAE,UAAsB,CAAC;AAM1C,wBAAgB,MAAM,CACpB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,GAC1D,UAAU,CAMZ;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,OAAO,EAAE,OAAO,GACf,UAAU,CAQZ;AAED;;;;uDAIuD;AACvD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,GACrD,SAAS,iBAAiB,EAAE,CAkE9B;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,GAAG;IAC7E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC,EAAE,CAKH;AAED,sEAAsE;AACtE,MAAM,MAAM,aAAa,GACvB;IAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5E;;;;;;mDAMmD;AACnD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,0BAA0B,EAAE,EAC7C,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EACtD,UAAU,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,aAAa,GACtD,WAAW,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAsExD;AAED;uDACuD;AACvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;;;EAmBA"}
|
|
@@ -74,7 +74,7 @@ export function evaluateStorage(actions, accounts) {
|
|
|
74
74
|
// creates it and funds its rent.
|
|
75
75
|
if (current.lamports === 0n && !account.created)
|
|
76
76
|
continue;
|
|
77
|
-
const minimum = rent(current.length);
|
|
77
|
+
const minimum = rent(current.length + (account.reservedBytes ?? 0));
|
|
78
78
|
if (current.lamports < minimum)
|
|
79
79
|
deficit += minimum - current.lamports;
|
|
80
80
|
else
|
|
@@ -93,7 +93,7 @@ export function evaluateStorage(actions, accounts) {
|
|
|
93
93
|
export function storageSteps(steps) {
|
|
94
94
|
return steps.flatMap((step) => {
|
|
95
95
|
const known = storageInstruction(step.instruction);
|
|
96
|
-
return known ? [{ ...step, kind: known.kind }] : [];
|
|
96
|
+
return known ? [{ ...step, kind: known.kind, signer: known.signer }] : [];
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
/** Rechecks every Profile-funded action's storage before signing. Each
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-actions.js","sourceRoot":"","sources":["../../../src/internal/planning/storage-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkC,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-actions.js","sourceRoot":"","sources":["../../../src/internal/planning/storage-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
|
@@ -13,7 +13,7 @@ import { getBase64Decoder, } from '@solana/kit';
|
|
|
13
13
|
import { hashMovementCharacter } from '../internal/planning/movement-character.js';
|
|
14
14
|
import { validateFleetDockingPolicy } from '../internal/planning/fleet-docking.js';
|
|
15
15
|
import { validateStarbaseSystem } from '../internal/planning/starbase-system.js';
|
|
16
|
-
import { hashRegionAccess } from '../internal/planning/region-access.js';
|
|
16
|
+
import { fleetActionCoordinate, hashRegionAccess, hashRegionPath, } from '../internal/planning/region-access.js';
|
|
17
17
|
import { revalidateCharacterRegistration, isEmptySystemAccount, } from '../internal/planning/character-registration.js';
|
|
18
18
|
import { validateFleetArrivalIntent } from '../internal/planning/fleet-arrival.js';
|
|
19
19
|
import { isRuntimeGuard, revalidateRuntimeGuards, } from '../internal/planning/runtime-guards.js';
|
|
@@ -452,6 +452,8 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
452
452
|
}
|
|
453
453
|
if (guard.kind === 'region-access')
|
|
454
454
|
requiredAddresses.add(guard.system);
|
|
455
|
+
if (guard.kind === 'region-path')
|
|
456
|
+
requiredAddresses.add(guard.fleet);
|
|
455
457
|
if (guard.kind === 'fleet-docking-policy')
|
|
456
458
|
for (const address of [
|
|
457
459
|
guard.ownership,
|
|
@@ -528,7 +530,7 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
528
530
|
const storageActionSteps = storageSteps(steps);
|
|
529
531
|
for (const step of storageActionSteps) {
|
|
530
532
|
for (const address of [
|
|
531
|
-
step.instruction.accounts[1].address,
|
|
533
|
+
step.instruction.accounts[step.signer + 1].address,
|
|
532
534
|
...storageActionAccounts(step.kind, step.instruction),
|
|
533
535
|
RENT_ADDRESS,
|
|
534
536
|
])
|
|
@@ -780,6 +782,7 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
780
782
|
account !== undefined && matchesTokenAccount(account, precondition);
|
|
781
783
|
if (precondition.kind === 'currency-cache' ||
|
|
782
784
|
precondition.kind === 'region-access' ||
|
|
785
|
+
precondition.kind === 'region-path' ||
|
|
783
786
|
precondition.kind === 'movement-character' ||
|
|
784
787
|
precondition.kind === 'starbase-system' ||
|
|
785
788
|
precondition.kind === 'fleet-mining' ||
|
|
@@ -803,6 +806,14 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
803
806
|
precondition.game === requireGameAddress(context) &&
|
|
804
807
|
(await hashRegionAccess(account, byAddress.get(precondition.system), precondition.game)) === precondition.accessHash;
|
|
805
808
|
}
|
|
809
|
+
else if (precondition.kind === 'region-path') {
|
|
810
|
+
const origin = fleetActionCoordinate(byAddress.get(precondition.fleet), precondition.game);
|
|
811
|
+
narrowed =
|
|
812
|
+
precondition.game === requireGameAddress(context) &&
|
|
813
|
+
origin?.x === precondition.fromX &&
|
|
814
|
+
origin.y === precondition.fromY &&
|
|
815
|
+
(await hashRegionPath(account, precondition.game, { x: precondition.fromX, y: precondition.fromY }, { x: precondition.toX, y: precondition.toY })) === precondition.pathHash;
|
|
816
|
+
}
|
|
806
817
|
else if (precondition.kind === 'movement-character') {
|
|
807
818
|
narrowed =
|
|
808
819
|
precondition.game === requireGameAddress(context) &&
|