@aephia/atlas-kit 0.6.0-next.132 → 0.6.0-next.134
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 +68 -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/identity/actions/research-unlock.d.ts +11 -7
- package/dist/identity/actions/research-unlock.d.ts.map +1 -1
- package/dist/identity/actions/research-unlock.js +11 -7
- package/dist/identity/actions/research-unlock.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 +2 -0
- package/dist/internal/c4/discriminators.d.ts.map +1 -1
- package/dist/internal/c4/discriminators.js +5 -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/planning/cargo-storage.d.ts +71 -0
- package/dist/internal/planning/cargo-storage.d.ts.map +1 -0
- package/dist/internal/planning/cargo-storage.js +274 -0
- package/dist/internal/planning/cargo-storage.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/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 +21 -0
- package/dist/internal/planning/profile-storage-funding-guard.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding-guard.js +98 -0
- package/dist/internal/planning/profile-storage-funding-guard.js.map +1 -0
- package/dist/internal/planning/profile-storage-funding.d.ts +46 -0
- package/dist/internal/planning/profile-storage-funding.d.ts.map +1 -0
- package/dist/internal/planning/profile-storage-funding.js +62 -0
- package/dist/internal/planning/profile-storage-funding.js.map +1 -0
- package/dist/internal/planning/research-unlock.d.ts.map +1 -1
- package/dist/internal/planning/research-unlock.js +40 -16
- package/dist/internal/planning/research-unlock.js.map +1 -1
- package/dist/planning/execution.d.ts.map +1 -1
- package/dist/planning/execution.js +58 -6
- package/dist/planning/execution.js.map +1 -1
- package/dist/planning/index.d.ts +22 -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 +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,21 @@
|
|
|
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
|
+
/** Cargo instructions whose storage the Profile funds. */
|
|
7
|
+
export type CargoStorageInstruction = 'deposit' | 'starbase-transfer' | 'within-fleet-transfer';
|
|
8
|
+
/** Which Profile-funded cargo instruction this is, if any. */
|
|
9
|
+
export declare function cargoStorageInstruction(instruction: Instruction): CargoStorageInstruction | undefined;
|
|
10
|
+
/** Persisted Profile storage funding of one action that resizes up to two
|
|
11
|
+
* accounts the program normalizes to their rent minimum from the Profile. */
|
|
12
|
+
export type ProfileStorageFundingGuard = Extract<PlanPrecondition, {
|
|
13
|
+
readonly kind: 'profile-storage-funding';
|
|
14
|
+
}>;
|
|
15
|
+
export declare const PROFILE_STORAGE_FUNDING_SCHEMA: GuardSchema;
|
|
16
|
+
/** Binds every Profile-funded cargo instruction to exactly one storage
|
|
17
|
+
* funding guard for its Profile, signing key and resized accounts, so a saved
|
|
18
|
+
* Plan cannot drop or retarget its funding check. Each guard must also name a
|
|
19
|
+
* complete account pair. */
|
|
20
|
+
export declare function validateProfileStorageFundingGuards(steps: readonly PlanStep[], guards: readonly PlanPrecondition[]): void;
|
|
21
|
+
//# 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;AAO1E,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GACjC,SAAS,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AAQ5D,8DAA8D;AAC9D,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,GACvB,uBAAuB,GAAG,SAAS,CAKrC;AAED;6EAC6E;AAC7E,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC9C,gBAAgB,EAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAC7C,CAAC;AAaF,eAAO,MAAM,8BAA8B,EAAE,WAyB5C,CAAC;AAEF;;;4BAG4B;AAC5B,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAyDN"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { DEPOSIT_CARGO_TO_GAME_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
|
+
const CARGO_INSTRUCTIONS = [
|
|
8
|
+
['deposit', DEPOSIT_CARGO_TO_GAME_DISCRIMINATOR],
|
|
9
|
+
['starbase-transfer', TRANSFER_CARGO_TO_FLEET_DISCRIMINATOR],
|
|
10
|
+
['within-fleet-transfer', TRANSFER_CARGO_WITHIN_FLEET_DISCRIMINATOR],
|
|
11
|
+
];
|
|
12
|
+
/** Which Profile-funded cargo instruction this is, if any. */
|
|
13
|
+
export function cargoStorageInstruction(instruction) {
|
|
14
|
+
if (instruction.programAddress !== SAGE_PROGRAM_ADDRESS)
|
|
15
|
+
return undefined;
|
|
16
|
+
return CARGO_INSTRUCTIONS.find(([, discriminator]) => discriminator.every((byte, index) => instruction.data?.[index] === byte))?.[0];
|
|
17
|
+
}
|
|
18
|
+
const LENGTH = {
|
|
19
|
+
min: 0,
|
|
20
|
+
max: Number.MAX_SAFE_INTEGER,
|
|
21
|
+
accepted: 'an observed account data length in bytes',
|
|
22
|
+
};
|
|
23
|
+
const GROWTH = {
|
|
24
|
+
min: -65_535,
|
|
25
|
+
max: 65_535,
|
|
26
|
+
accepted: 'a signed account growth in bytes',
|
|
27
|
+
};
|
|
28
|
+
export const PROFILE_STORAGE_FUNDING_SCHEMA = {
|
|
29
|
+
fields: [
|
|
30
|
+
['address', 'address'],
|
|
31
|
+
['profile', 'address'],
|
|
32
|
+
['authority', 'address'],
|
|
33
|
+
['keyIndex', { min: 0, max: 65535, accepted: 'a u16 Profile key index' }],
|
|
34
|
+
[
|
|
35
|
+
'settlement',
|
|
36
|
+
{ values: ['each', 'pair'], accepted: 'each or pair settlement' },
|
|
37
|
+
],
|
|
38
|
+
['length', LENGTH],
|
|
39
|
+
['growth', GROWTH],
|
|
40
|
+
['paired', 'address', true],
|
|
41
|
+
['pairedLength', LENGTH, true],
|
|
42
|
+
['pairedGrowth', GROWTH, true],
|
|
43
|
+
[
|
|
44
|
+
'maximumProfileDebit',
|
|
45
|
+
{
|
|
46
|
+
min: 0n,
|
|
47
|
+
max: MAX_U64,
|
|
48
|
+
accepted: 'a nonnegative u64 funding ceiling',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
['describes', 'string'],
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
/** Binds every Profile-funded cargo instruction to exactly one storage
|
|
55
|
+
* funding guard for its Profile, signing key and resized accounts, so a saved
|
|
56
|
+
* Plan cannot drop or retarget its funding check. Each guard must also name a
|
|
57
|
+
* complete account pair. */
|
|
58
|
+
export function validateProfileStorageFundingGuards(steps, guards) {
|
|
59
|
+
const funding = guards.filter((guard) => guard.kind === 'profile-storage-funding');
|
|
60
|
+
for (const guard of funding) {
|
|
61
|
+
const fields = [guard.paired, guard.pairedLength, guard.pairedGrowth];
|
|
62
|
+
const paired = fields.every((field) => field !== undefined);
|
|
63
|
+
if ((!paired && fields.some((field) => field !== undefined)) ||
|
|
64
|
+
(guard.settlement === 'pair' && !paired) ||
|
|
65
|
+
guard.paired === guard.address)
|
|
66
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A Profile storage funding guard names an incomplete or inconsistent account pair. Recreate the Plan with its capability planner.', { address: guard.address });
|
|
67
|
+
}
|
|
68
|
+
const remaining = [...funding];
|
|
69
|
+
let instructions = 0;
|
|
70
|
+
for (const { instruction } of steps) {
|
|
71
|
+
const kind = cargoStorageInstruction(instruction);
|
|
72
|
+
if (!kind)
|
|
73
|
+
continue;
|
|
74
|
+
instructions += 1;
|
|
75
|
+
const metas = instruction.accounts ?? [];
|
|
76
|
+
// A recognized cargo instruction has at least its 8-byte discriminator and
|
|
77
|
+
// encodes its u16 key index last.
|
|
78
|
+
const data = instruction.data;
|
|
79
|
+
const keyIndex = data[data.length - 2] | (data[data.length - 1] << 8);
|
|
80
|
+
const [address, paired, settlement] = kind === 'deposit'
|
|
81
|
+
? [metas[5]?.address, undefined, 'each']
|
|
82
|
+
: kind === 'starbase-transfer'
|
|
83
|
+
? [metas[4]?.address, metas[8]?.address, 'pair']
|
|
84
|
+
: [metas[4]?.address, undefined, 'each'];
|
|
85
|
+
const index = remaining.findIndex((guard) => guard.authority === metas[0]?.address &&
|
|
86
|
+
guard.profile === metas[1]?.address &&
|
|
87
|
+
guard.keyIndex === keyIndex &&
|
|
88
|
+
guard.address === address &&
|
|
89
|
+
guard.paired === paired &&
|
|
90
|
+
guard.settlement === settlement);
|
|
91
|
+
if (index < 0)
|
|
92
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A cargo instruction has no matching Profile storage funding guard for its Profile, key and resized accounts. Recreate the Plan with its cargo planner.');
|
|
93
|
+
remaining.splice(index, 1);
|
|
94
|
+
}
|
|
95
|
+
if (remaining.length > 0 || instructions !== funding.length)
|
|
96
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', 'A Profile storage funding guard has no matching cargo instruction. Recreate the Plan with its cargo planner.');
|
|
97
|
+
}
|
|
98
|
+
//# 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,46 @@
|
|
|
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
|
+
/** One resized account: its observed data length and the action's byte change. */
|
|
5
|
+
export interface StorageResize {
|
|
6
|
+
readonly raw: RawAccount;
|
|
7
|
+
readonly growthBytes: number;
|
|
8
|
+
}
|
|
9
|
+
/** The one or two accounts an action resizes. */
|
|
10
|
+
export type StorageResizes = readonly [StorageResize] | readonly [StorageResize, StorageResize];
|
|
11
|
+
/** How the program settles the accounts: each normalized on its own, or one
|
|
12
|
+
* net shortfall for the pair, where one account's surplus funds the other. */
|
|
13
|
+
export type StorageSettlement = 'each' | 'pair';
|
|
14
|
+
export interface ProfileStorageFunding {
|
|
15
|
+
readonly profileDebit: bigint;
|
|
16
|
+
readonly profileReserve: bigint;
|
|
17
|
+
}
|
|
18
|
+
/** Checks that the signing key and the Profile can fund one action's storage
|
|
19
|
+
* debit. A zero debit withdraws nothing, so it needs neither `drainSolVault`
|
|
20
|
+
* nor Profile excess lamports. */
|
|
21
|
+
export declare function checkProfileStorageFunding(input: {
|
|
22
|
+
readonly profileRaw: RawAccount;
|
|
23
|
+
readonly rentRaw: RawAccount;
|
|
24
|
+
readonly authority: Address;
|
|
25
|
+
readonly keyIndex: number;
|
|
26
|
+
readonly profileDebit: bigint;
|
|
27
|
+
readonly action: string;
|
|
28
|
+
readonly maximumProfileDebit?: bigint;
|
|
29
|
+
}): ProfileStorageFunding & {
|
|
30
|
+
readonly direct: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** Builds the guard and the summary sentence for one action's storage funding. */
|
|
33
|
+
export declare function profileStorageFundingGuard(input: {
|
|
34
|
+
readonly profile: Address;
|
|
35
|
+
readonly authority: Address;
|
|
36
|
+
readonly keyIndex: number;
|
|
37
|
+
readonly resizes: StorageResizes;
|
|
38
|
+
readonly settlement: StorageSettlement;
|
|
39
|
+
readonly funding: ProfileStorageFunding & {
|
|
40
|
+
readonly direct: boolean;
|
|
41
|
+
};
|
|
42
|
+
}): {
|
|
43
|
+
readonly guard: ProfileStorageFundingGuard;
|
|
44
|
+
readonly disclosure: string;
|
|
45
|
+
};
|
|
46
|
+
//# 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,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GACxB,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAErE;8EAC8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,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,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,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,CA6BA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { profileAccountDefinition } from '../c4/identity.js';
|
|
3
|
+
import { PROFILE_SCOPE } from '../c4/profile-permissions.js';
|
|
4
|
+
import { directProfileKey, grantsPermission, hasPermissionBit, } from './profile-key.js';
|
|
5
|
+
import { readRent } from './rent.js';
|
|
6
|
+
// Profile drainSolVault permission bit, any scope.
|
|
7
|
+
const DRAIN_SOL_VAULT = 63n;
|
|
8
|
+
function fail(address, message) {
|
|
9
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
|
|
10
|
+
}
|
|
11
|
+
/** Checks that the signing key and the Profile can fund one action's storage
|
|
12
|
+
* debit. A zero debit withdraws nothing, so it needs neither `drainSolVault`
|
|
13
|
+
* nor Profile excess lamports. */
|
|
14
|
+
export function checkProfileStorageFunding(input) {
|
|
15
|
+
const { profileRaw, action, profileDebit } = input;
|
|
16
|
+
const rent = readRent(input.rentRaw);
|
|
17
|
+
if (input.maximumProfileDebit !== undefined &&
|
|
18
|
+
profileDebit > input.maximumProfileDebit)
|
|
19
|
+
fail(profileRaw.address, `The ${action} now needs ${profileDebit} Profile lamports for account storage, above the ${input.maximumProfileDebit} this Plan approved. An earlier action in the same Plan may use storage it was planned against: execute the actions as separate Plans, or refresh the accounts and replan, then review the storage funding before signing.`);
|
|
20
|
+
const profileReserve = rent(profileRaw.data.length);
|
|
21
|
+
const key = directProfileKey(profileAccountDefinition.decode(profileRaw).keys, input.keyIndex, input.authority);
|
|
22
|
+
if (profileDebit > 0n) {
|
|
23
|
+
if (key &&
|
|
24
|
+
!grantsPermission(key, PROFILE_SCOPE, 0n) &&
|
|
25
|
+
!hasPermissionBit(key, DRAIN_SOL_VAULT))
|
|
26
|
+
fail(profileRaw.address, `The ${action} needs ${profileDebit} Profile lamports for account storage, which the program withdraws from the Profile vault with the signing key; this key lacks drainSolVault. Use a direct Profile AUTH key or a key that also holds drainSolVault, then replan.`);
|
|
27
|
+
if (profileRaw.lamports < profileReserve + profileDebit)
|
|
28
|
+
fail(profileRaw.address, `The ${action} needs ${profileDebit} Profile lamports for account storage above the Profile's own ${profileReserve}-lamport rent reserve; the Profile holds ${profileRaw.lamports}. Add ${profileReserve + profileDebit - profileRaw.lamports} lamports to the Profile, then replan.`);
|
|
29
|
+
}
|
|
30
|
+
return { profileDebit, profileReserve, direct: key !== undefined };
|
|
31
|
+
}
|
|
32
|
+
/** Builds the guard and the summary sentence for one action's storage funding. */
|
|
33
|
+
export function profileStorageFundingGuard(input) {
|
|
34
|
+
const [first, second] = input.resizes;
|
|
35
|
+
const { profileDebit } = input.funding;
|
|
36
|
+
const disclosure = profileDebit > 0n
|
|
37
|
+
? `The program funds ${profileDebit} lamports of account storage from Profile ${input.profile}'s vault with the signing key (a locked rent deposit, separate from transaction fees).${input.funding.direct ? '' : ' The selected key is not a direct Profile key, so its drainSolVault permission is checked by the program, not locally.'}`
|
|
38
|
+
: `This action needs no Profile storage funding at the observed account sizes and balances.`;
|
|
39
|
+
return {
|
|
40
|
+
disclosure,
|
|
41
|
+
guard: {
|
|
42
|
+
kind: 'profile-storage-funding',
|
|
43
|
+
address: first.raw.address,
|
|
44
|
+
profile: input.profile,
|
|
45
|
+
authority: input.authority,
|
|
46
|
+
keyIndex: input.keyIndex,
|
|
47
|
+
settlement: input.settlement,
|
|
48
|
+
length: first.raw.data.length,
|
|
49
|
+
growth: first.growthBytes,
|
|
50
|
+
...(second
|
|
51
|
+
? {
|
|
52
|
+
paired: second.raw.address,
|
|
53
|
+
pairedLength: second.raw.data.length,
|
|
54
|
+
pairedGrowth: second.growthBytes,
|
|
55
|
+
}
|
|
56
|
+
: {}),
|
|
57
|
+
maximumProfileDebit: profileDebit,
|
|
58
|
+
describes: `Account storage funding from the Profile vault stays at most ${profileDebit} lamports, and the signing key and Profile balance can fund it.`,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=profile-storage-funding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-storage-funding.js","sourceRoot":"","sources":["../../../src/internal/planning/profile-storage-funding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-unlock.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAW1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwB5E,yEAAyE;AACzE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,gBAAgB,EAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CACrC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,EAAE,CAAC;IACJ,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,8CAA8C;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC;mEAC+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"research-unlock.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,9 @@ const NODE_LEVEL_BYTES = 6;
|
|
|
23
23
|
const TAG_BYTES = 2;
|
|
24
24
|
const CARGO_CATEGORY_BYTES = 2;
|
|
25
25
|
const RARE_MINERAL_BYTES = 10;
|
|
26
|
+
// Pending node levels the program resynchronizes inside an ordinary action.
|
|
27
|
+
const MAX_INLINE_SYNC_NODE_LEVELS = 8;
|
|
28
|
+
const U64_MAX = (1n << 64n) - 1n;
|
|
26
29
|
const CAREERS = {
|
|
27
30
|
'council-rank': 'councilRank',
|
|
28
31
|
pilot: 'pilot',
|
|
@@ -99,17 +102,30 @@ export async function validateResearchUnlock(intent, resolved, accounts, rules)
|
|
|
99
102
|
(intent.xpSequenceId !== undefined &&
|
|
100
103
|
rules.xpSequenceId !== intent.xpSequenceId))
|
|
101
104
|
fail(intent.game, 'The Game research or XP definitions changed after planning. Replan to review the current requirements and costs before signing.');
|
|
102
|
-
if (character.modifiers.seqId !== rules.sequenceId
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
if (character.modifiers.seqId !== rules.sequenceId) {
|
|
106
|
+
// The program replays every pending unlocked node, each at its stored
|
|
107
|
+
// level and at least once; with nothing staged, every unlocked node.
|
|
108
|
+
const { unlockedNodes, nodeLevels, unupdatedCount } = character.modifiers;
|
|
109
|
+
const pending = unlockedNodes
|
|
110
|
+
.slice(unupdatedCount === 0
|
|
111
|
+
? 0
|
|
112
|
+
: Math.max(0, unlockedNodes.length - unupdatedCount))
|
|
113
|
+
.reduce((sum, id) => sum +
|
|
114
|
+
Math.max(nodeLevels.find(({ nodeId }) => nodeId === id)?.level ?? 1, 1), 0);
|
|
115
|
+
const state = `The Character's research modifiers predate the current research definitions (sequence ${character.modifiers.seqId} of ${rules.sequenceId}, ${pending} pending node levels)`;
|
|
116
|
+
fail(resolved.character, pending > MAX_INLINE_SYNC_NODE_LEVELS
|
|
117
|
+
? `${state}, more than the ${MAX_INLINE_SYNC_NODE_LEVELS} the program resynchronizes inside an action, so the unlock would fail with characterSyncRequired. Run the permissionless syncCharacter instruction until it reports no remaining nodes, then replan.`
|
|
118
|
+
: `${state}. The program resynchronizes them at the start of the unlock, but the resulting tags and modifiers decide eligibility, which this SDK does not project. Run any SAGE action that validates the Character, or the permissionless syncCharacter instruction, then replan.`);
|
|
119
|
+
}
|
|
120
|
+
if (character.xp.seqId !== rules.xpSequenceId)
|
|
121
|
+
fail(resolved.character, `The Character's XP levels predate the current XP definitions (sequence ${character.xp.seqId} of ${rules.xpSequenceId}). The program recomputes them from earned XP at the start of the unlock, but the resulting levels decide eligibility, which this SDK does not project. Run any SAGE action that validates the Character, or the permissionless syncCharacter instruction, then replan.`);
|
|
106
122
|
const rule = rules.rules.find(({ id }) => id === intent.nodeId);
|
|
107
123
|
if (!rule)
|
|
108
124
|
fail(intent.game, `${node} is not in the current Game research catalog. Choose a node from getResearchCatalog and replan.`);
|
|
109
125
|
const unlocked = character.modifiers.unlockedNodes.includes(intent.nodeId);
|
|
110
126
|
const stored = character.modifiers.nodeLevels.find(({ nodeId }) => nodeId === intent.nodeId)?.level;
|
|
111
127
|
if (unlocked ? stored === 0 : stored !== undefined)
|
|
112
|
-
fail(resolved.character, `${node} has an inconsistent stored level on this Character
|
|
128
|
+
fail(resolved.character, `${node} has an inconsistent stored level on this Character, so its next level is undefined and this SDK does not plan it. Choose another node.`);
|
|
113
129
|
const current = unlocked ? (stored ?? 1) : 0;
|
|
114
130
|
if (rule.maxLevel !== 0 && current >= rule.maxLevel)
|
|
115
131
|
fail(resolved.character, `${node} "${rule.name}" is already at its maximum level ${rule.maxLevel}. Choose another node.`);
|
|
@@ -137,20 +153,26 @@ export async function validateResearchUnlock(intent, resolved, accounts, rules)
|
|
|
137
153
|
if (available < cost.costRaw)
|
|
138
154
|
fail(resolved.character, `${node} "${rule.name}" costs ${cost.costRaw} ${unit}; the Character has ${available} available. Earn ${earn}, then replan.`);
|
|
139
155
|
}
|
|
156
|
+
// The program grows ATLAS and cargo costs linearly with the current level
|
|
157
|
+
// and rounds down; research point costs do not grow.
|
|
140
158
|
const growth = BASIS_POINTS + BigInt(rule.costGrowthBasisPoints) * BigInt(current);
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const atlasDebit = (rule.atlasCostRaw
|
|
159
|
+
const grown = (cost, what) => {
|
|
160
|
+
const scaled = (cost * growth) / BASIS_POINTS;
|
|
161
|
+
if (scaled > U64_MAX)
|
|
162
|
+
fail(intent.game, `${node} "${rule.name}" at level ${current} grows its ${what} cost beyond a u64, which the program refuses as numericOverflow. Choose another node.`);
|
|
163
|
+
return scaled;
|
|
164
|
+
};
|
|
165
|
+
const atlasDebit = grown(rule.atlasCostRaw, 'ATLAS');
|
|
166
|
+
const cargo = rule.cargoCosts.map(({ cargoId, quantityRaw }) => ({
|
|
167
|
+
cargoId,
|
|
168
|
+
quantityRaw: grown(quantityRaw, `cargo ${cargoId}`),
|
|
169
|
+
}));
|
|
148
170
|
if (intent.maximumAtlasDebit !== undefined &&
|
|
149
171
|
atlasDebit > intent.maximumAtlasDebit)
|
|
150
172
|
fail(intent.game, `${node} "${rule.name}" now costs ${atlasDebit} ATLAS Floyds, above the ${intent.maximumAtlasDebit} this Plan approved. Replan and review the cost before signing.`);
|
|
151
173
|
if (character.atlasRaw < atlasDebit)
|
|
152
174
|
fail(resolved.character, `${node} "${rule.name}" costs ${atlasDebit} ATLAS Floyds; the Character holds ${character.atlasRaw}. Add ATLAS to the Character, then replan.`);
|
|
153
|
-
for (const { cargoId, quantityRaw } of
|
|
175
|
+
for (const { cargoId, quantityRaw } of cargo) {
|
|
154
176
|
const held = player.cargo.amounts.find((amount) => amount.cargoId === cargoId)
|
|
155
177
|
?.amount ?? 0n;
|
|
156
178
|
if (held < quantityRaw)
|
|
@@ -171,8 +193,10 @@ export async function validateResearchUnlock(intent, resolved, accounts, rules)
|
|
|
171
193
|
if (profileKeyExpired(key, now))
|
|
172
194
|
fail(intent.profile, 'The selected Profile key has expired. Renew it or select a current direct key and replan the research unlock.');
|
|
173
195
|
const auth = grantsPermission(key, PROFILE_SCOPE, 0n);
|
|
174
|
-
if (!auth &&
|
|
175
|
-
|
|
196
|
+
if (!auth &&
|
|
197
|
+
!grantsPermission(key, SAGE_SCOPE, DO_RESEARCH) &&
|
|
198
|
+
!grantsPermission(key, intent.game, DO_RESEARCH))
|
|
199
|
+
fail(intent.profile, 'The selected key cannot do research. Use a direct Profile AUTH key or a doResearch key scoped to SAGE or this Game, and replan.');
|
|
176
200
|
const shortfall = (raw, length) => {
|
|
177
201
|
const minimum = rent(length);
|
|
178
202
|
return raw.lamports < minimum ? minimum - raw.lamports : 0n;
|
|
@@ -205,7 +229,7 @@ export async function validateResearchUnlock(intent, resolved, accounts, rules)
|
|
|
205
229
|
rule,
|
|
206
230
|
level: current + 1,
|
|
207
231
|
atlasDebit,
|
|
208
|
-
cargo
|
|
232
|
+
cargo,
|
|
209
233
|
points: rule.xpCosts.map(({ category, costRaw }) => ({
|
|
210
234
|
category,
|
|
211
235
|
costRaw,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-unlock.js","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"research-unlock.js","sourceRoot":"","sources":["../../../src/internal/planning/research-unlock.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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"}
|
|
@@ -25,6 +25,8 @@ import { resolveFleetShipAssembly, validateFleetShipAssembly, } from '../interna
|
|
|
25
25
|
import { resolveFleetCreation, validateFleetCreation, } from '../internal/planning/fleet-creation.js';
|
|
26
26
|
import { validateTokenMint } from '../internal/planning/token-mint.js';
|
|
27
27
|
import { resolveResearchUnlock, validateResearchUnlock, } from '../internal/planning/research-unlock.js';
|
|
28
|
+
import { cargoStorageAccounts, cargoStorageSteps, validateCargoStorageFunding, } from '../internal/planning/cargo-storage.js';
|
|
29
|
+
import { decodeGameCargoConfigurationRows } from '../internal/c4/game.js';
|
|
28
30
|
import { CLOCK_ADDRESS } from '../internal/planning/faction-enrollment.js';
|
|
29
31
|
import { decodeGameResearchUnlockRules } from '../internal/c4/game.js';
|
|
30
32
|
import { hashGameShipConfigurations, decodeGameShipAssemblyCatalog, } from '../registry/ships.js';
|
|
@@ -517,6 +519,19 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
517
519
|
])
|
|
518
520
|
requiredAddresses.add(address);
|
|
519
521
|
}
|
|
522
|
+
// Cargo storage funding is rederived from each cargo instruction and the
|
|
523
|
+
// fresh accounts it resizes; a deposit's cargo id comes from its source mint.
|
|
524
|
+
const cargoSteps = cargoStorageSteps(steps);
|
|
525
|
+
for (const step of cargoSteps) {
|
|
526
|
+
for (const address of [
|
|
527
|
+
step.instruction.accounts[1].address,
|
|
528
|
+
...cargoStorageAccounts(step.kind, step.instruction),
|
|
529
|
+
RENT_ADDRESS,
|
|
530
|
+
])
|
|
531
|
+
requiredAddresses.add(address);
|
|
532
|
+
if (step.kind === 'deposit')
|
|
533
|
+
requiredAddresses.add(requireGameAddress(context));
|
|
534
|
+
}
|
|
520
535
|
for (const guard of preconditions) {
|
|
521
536
|
if (guard.kind !== 'ship-import-funding')
|
|
522
537
|
continue;
|
|
@@ -565,10 +580,21 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
565
580
|
const gameDecodes = new Map();
|
|
566
581
|
const profileFunding = new Map();
|
|
567
582
|
const fundedTargets = new Set();
|
|
568
|
-
|
|
583
|
+
let cargoStorage;
|
|
584
|
+
// One decoded cargo row set per Game, shared by cargo-definition guards and
|
|
585
|
+
// a deposit's cargo lookup.
|
|
586
|
+
const cargoRowsByGame = new Map();
|
|
587
|
+
const cargoRows = (game) => {
|
|
588
|
+
let rows = cargoRowsByGame.get(game.address);
|
|
589
|
+
if (!rows) {
|
|
590
|
+
rows = decodeGameCargoConfigurationRows(game, gameDecodes);
|
|
591
|
+
cargoRowsByGame.set(game.address, rows);
|
|
592
|
+
}
|
|
593
|
+
return rows;
|
|
594
|
+
};
|
|
595
|
+
const recordFunding = (guard, funding, target = `${guard.kind}:${guard.address}`) => {
|
|
569
596
|
// Repeated guards for one action are assertions, not additional debits.
|
|
570
597
|
// Every guard still validates its own ceiling before reaching here.
|
|
571
|
-
const target = `${guard.kind}:${guard.address}`;
|
|
572
598
|
if (fundedTargets.has(target))
|
|
573
599
|
return;
|
|
574
600
|
fundedTargets.add(target);
|
|
@@ -597,11 +623,14 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
597
623
|
throw fleetFailure(precondition, new SageSdkError('ACTION_PRECONDITION_FAILED', precondition.kind === 'fleet-dock-funding'
|
|
598
624
|
? `The docking Plan belongs to Game ${precondition.game}, but the context uses Game ${requireGameAddress(context)}. Recreate it with the intended Game context.`
|
|
599
625
|
: 'The docking faction policy belongs to another Game. Recreate the Plan with the intended Game context.', { address: precondition.address }));
|
|
600
|
-
// Dependent docking estimates run after every other
|
|
601
|
-
// exact account-state or policy
|
|
626
|
+
// Dependent docking and cargo storage estimates run after every other
|
|
627
|
+
// freshness guard, so an exact account-state, cargo-definition or policy
|
|
628
|
+
// diagnostic wins whatever the saved order.
|
|
629
|
+
const estimate = (g) => g.kind === 'fleet-dock-funding' || g.kind === 'profile-storage-funding';
|
|
602
630
|
const ordered = [
|
|
603
|
-
...preconditions.filter((g) => g
|
|
631
|
+
...preconditions.filter((g) => !estimate(g)),
|
|
604
632
|
...preconditions.filter((g) => g.kind === 'fleet-dock-funding'),
|
|
633
|
+
...preconditions.filter((g) => g.kind === 'profile-storage-funding'),
|
|
605
634
|
];
|
|
606
635
|
for (const precondition of ordered) {
|
|
607
636
|
const account = byAddress.get(precondition.address);
|
|
@@ -653,6 +682,29 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
653
682
|
}
|
|
654
683
|
continue;
|
|
655
684
|
}
|
|
685
|
+
if (precondition.kind === 'profile-storage-funding') {
|
|
686
|
+
try {
|
|
687
|
+
cargoStorage ??= validateCargoStorageFunding(steps, preconditions.filter((guard) => guard.kind === 'profile-storage-funding'), byAddress,
|
|
688
|
+
// A deposit Plan's cargo-definition guards already required the
|
|
689
|
+
// Game in this batch.
|
|
690
|
+
(mint) => cargoRows(byAddress.get(requireGameAddress(context))).rows.find((row) => row.mint === mint)?.id);
|
|
691
|
+
const result = cargoStorage.get(precondition);
|
|
692
|
+
if ('error' in result)
|
|
693
|
+
throw result.error;
|
|
694
|
+
const { funding } = result;
|
|
695
|
+
// Each guard is one action, and several may resize one account, so
|
|
696
|
+
// every guard adds its own debit. A zero debit withdraws nothing and
|
|
697
|
+
// imposes no Profile reserve on the combined check.
|
|
698
|
+
if (funding.profileDebit > 0n)
|
|
699
|
+
recordFunding(precondition, funding, `${precondition.kind}:${String(ordered.indexOf(precondition))}`);
|
|
700
|
+
}
|
|
701
|
+
catch (error) {
|
|
702
|
+
// Every storage check failure names the Profile, a resized account
|
|
703
|
+
// or the Rent sysvar, all read in this batch.
|
|
704
|
+
throw fleetFailure(precondition, error);
|
|
705
|
+
}
|
|
706
|
+
continue;
|
|
707
|
+
}
|
|
656
708
|
if (precondition.kind === 'research-unlock') {
|
|
657
709
|
try {
|
|
658
710
|
const game = byAddress.get(precondition.game);
|
|
@@ -799,7 +851,7 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
|
|
|
799
851
|
let hashes = cargoHashesByGame.get(precondition.address);
|
|
800
852
|
if (!hashes) {
|
|
801
853
|
const ids = cargoIdsByGame.get(precondition.address);
|
|
802
|
-
hashes = await hashGameCargoConfigurationGuards(account, ids,
|
|
854
|
+
hashes = await hashGameCargoConfigurationGuards(account, ids, cargoRows(account));
|
|
803
855
|
cargoHashesByGame.set(precondition.address, hashes);
|
|
804
856
|
}
|
|
805
857
|
narrowed =
|