@aephia/atlas-kit 0.6.0-next.106 → 0.6.0-next.108
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.map +1 -1
- package/dist/cargo/actions/deposit.js +22 -125
- package/dist/cargo/actions/deposit.js.map +1 -1
- package/dist/cargo/actions/wallet-context.d.ts +51 -2
- package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-context.js +125 -2
- package/dist/cargo/actions/wallet-context.js.map +1 -1
- package/dist/cargo/actions/wallet-token.d.ts +1 -6
- package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
- package/dist/cargo/actions/wallet-token.js +0 -45
- package/dist/cargo/actions/wallet-token.js.map +1 -1
- package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
- package/dist/cargo/actions/withdrawal.js +35 -162
- package/dist/cargo/actions/withdrawal.js.map +1 -1
- package/dist/claim-stakes/actions/index.d.ts.map +1 -1
- package/dist/claim-stakes/actions/index.js +2 -11
- package/dist/claim-stakes/actions/index.js.map +1 -1
- package/dist/crafting/actions/index.d.ts.map +1 -1
- package/dist/crafting/actions/index.js +5 -11
- package/dist/crafting/actions/index.js.map +1 -1
- package/dist/fleets/actions/ship-import.d.ts.map +1 -1
- package/dist/fleets/actions/ship-import.js +31 -77
- package/dist/fleets/actions/ship-import.js.map +1 -1
- package/dist/internal/planning/original-token.d.ts +34 -0
- package/dist/internal/planning/original-token.d.ts.map +1 -0
- package/dist/internal/planning/original-token.js +98 -0
- package/dist/internal/planning/original-token.js.map +1 -0
- package/dist/internal/planning/ship-token.d.ts +1 -5
- package/dist/internal/planning/ship-token.d.ts.map +1 -1
- package/dist/internal/planning/ship-token.js +0 -36
- package/dist/internal/planning/ship-token.js.map +1 -1
- package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
- package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
- package/dist/internal/planning/starbase-player-owner.js +17 -0
- package/dist/internal/planning/starbase-player-owner.js.map +1 -0
- package/dist/internal/planning/wallet-starbase.d.ts +34 -0
- package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
- package/dist/internal/planning/wallet-starbase.js +39 -0
- package/dist/internal/planning/wallet-starbase.js.map +1 -0
- package/dist/markets/actions/index.d.ts.map +1 -1
- package/dist/markets/actions/index.js +91 -130
- package/dist/markets/actions/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import { SYSTEM_PROGRAM } from '../../internal/system-program.js';
|
|
2
|
-
import { validateStarbaseSystem } from '../../internal/planning/starbase-system.js';
|
|
3
1
|
import { resolveShipImportFunding, validateShipImportFunding, } from '../../internal/planning/ship-import-funding.js';
|
|
4
2
|
import { isAddress, isOffCurveAddress } from '@solana/kit';
|
|
5
3
|
import { InvalidActionInputError } from '../../client/errors.js';
|
|
6
4
|
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
7
|
-
import { profileAccountDefinition } from '../../internal/c4/identity.js';
|
|
8
|
-
import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/character.js';
|
|
9
|
-
import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
|
|
10
|
-
import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../../internal/c4/world.js';
|
|
11
5
|
import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '../../internal/c4/faction-enrollment.js';
|
|
12
6
|
import { requireGameAddress } from '../../internal/game-context.js';
|
|
13
7
|
import { adaptAddShipEscrowInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
|
|
14
8
|
import { hashAccountState } from '../../internal/planning/account-state.js';
|
|
15
9
|
import { readClock, CLOCK_ADDRESS, } from '../../internal/planning/faction-enrollment.js';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
10
|
+
import { RENT_ADDRESS } from '../../internal/planning/rent.js';
|
|
11
|
+
import { TOKEN_TRANSFER_DISCLOSURE, deriveAssociatedTokenAddress, isTokenMultisig, readTokenAccount, resolveAssociatedTokenCreation, } from '../../internal/planning/original-token.js';
|
|
12
|
+
import { validateShipMint, failShipImport, } from '../../internal/planning/ship-token.js';
|
|
13
|
+
import { requireProfileStarbasePlayer } from '../../internal/planning/starbase-player-owner.js';
|
|
14
|
+
import { validateWalletStarbase } from '../../internal/planning/wallet-starbase.js';
|
|
18
15
|
import { readFreshGameShipConfiguration } from '../../registry/ships.js';
|
|
19
16
|
import { createPlan, } from '../../planning/index.js';
|
|
20
17
|
function address(value) {
|
|
@@ -122,13 +119,9 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
122
119
|
playerProfile: { ...starbase.playerProfile },
|
|
123
120
|
};
|
|
124
121
|
const { authorization, owner, shipId, amount } = options;
|
|
125
|
-
const game = requireGameAddress(ctx), character = await
|
|
126
|
-
if (starbase.address !== player ||
|
|
127
|
-
starbase.character.address !== character ||
|
|
128
|
-
starbase.playerProfile.address !== authorization.profile)
|
|
129
|
-
failShipImport('The loaded StarbasePlayer must be the canonical registration for the authorized Profile and Character.', starbase.address);
|
|
122
|
+
const game = requireGameAddress(ctx), character = await requireProfileStarbasePlayer(starbase, authorization.profile, game), player = starbase.address;
|
|
130
123
|
const config = await readFreshGameShipConfiguration(ctx, shipId), mint = config.ship.mint;
|
|
131
|
-
const source = options.source ?? (await
|
|
124
|
+
const source = options.source ?? (await deriveAssociatedTokenAddress(owner, mint)), escrow = await deriveAssociatedTokenAddress(character, mint);
|
|
132
125
|
if (source === escrow)
|
|
133
126
|
failShipImport('Source and Character escrow must be different token accounts.', source);
|
|
134
127
|
const addresses = [
|
|
@@ -146,28 +139,18 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
146
139
|
const values = await readContextRawAccounts(ctx, addresses);
|
|
147
140
|
const profileRaw = required(values[0], addresses[0], 'Profile'), characterRaw = required(values[1], character, 'Character'), playerRaw = required(values[2], player, 'StarbasePlayer'), systemRaw = required(values[3], addresses[3], 'System'), mintRaw = required(values[4], mint, 'Ship mint'), sourceRaw = required(values[5], source, 'Ship source'), rentRaw = required(values[6], RENT_ADDRESS, 'Rent sysvar'), clockRaw = required(values[7], CLOCK_ADDRESS, 'Clock sysvar');
|
|
148
141
|
const escrowRaw = values[8], ownerRaw = values[9];
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
s.playerProfile !== authorization.profile ||
|
|
156
|
-
s.character !== character ||
|
|
157
|
-
s.system !== starbase.system.address ||
|
|
158
|
-
w.game !== game ||
|
|
159
|
-
(await deriveStarSystemAddress(game, w.systemId)) !==
|
|
160
|
-
starbase.system.address)
|
|
161
|
-
failShipImport('Fresh Character, StarbasePlayer and System relationships must match the configured Game and authorized Profile.', player);
|
|
162
|
-
const systemGuard = {
|
|
163
|
-
kind: 'starbase-system',
|
|
164
|
-
address: systemRaw.address,
|
|
142
|
+
const { playerData: s, profileData: p, systemGuard, } = await validateWalletStarbase({
|
|
143
|
+
profile: profileRaw,
|
|
144
|
+
character: characterRaw,
|
|
145
|
+
player: playerRaw,
|
|
146
|
+
system: systemRaw,
|
|
147
|
+
}, {
|
|
165
148
|
game,
|
|
166
|
-
|
|
149
|
+
profile: authorization.profile,
|
|
150
|
+
character,
|
|
151
|
+
system: starbase.system.address,
|
|
167
152
|
requireCss: true,
|
|
168
|
-
|
|
169
|
-
};
|
|
170
|
-
await validateStarbaseSystem(systemRaw, systemGuard);
|
|
153
|
+
}, failShipImport);
|
|
171
154
|
const key = p.keys[authorization.keyIndex], now = readClock(clockRaw);
|
|
172
155
|
if (!key ||
|
|
173
156
|
key.address !== authorization.authority ||
|
|
@@ -176,13 +159,10 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
176
159
|
failShipImport('Ship import supports a direct Profile AUTH key. Select a matching authorized Profile key; delegated certificates and other permission scopes are not yet verified.', profileRaw.address);
|
|
177
160
|
if (key.expiresAtRaw >= 0n && key.expiresAtRaw < now)
|
|
178
161
|
failShipImport('The selected Profile key has expired. Choose a current AUTH key.', profileRaw.address);
|
|
179
|
-
if (ownerRaw
|
|
180
|
-
ownerRaw.data.length === 355 &&
|
|
181
|
-
(ownerRaw.owner === ORIGINAL_TOKEN_PROGRAM ||
|
|
182
|
-
ownerRaw.owner === 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'))
|
|
162
|
+
if (isTokenMultisig(ownerRaw))
|
|
183
163
|
failShipImport('Token multisig owners are unsupported. Use a directly signing token owner.', owner);
|
|
184
164
|
validateShipMint(mintRaw);
|
|
185
|
-
const sourceAmount =
|
|
165
|
+
const sourceAmount = readTokenAccount(sourceRaw, mint, owner, failShipImport);
|
|
186
166
|
if (sourceAmount < amount)
|
|
187
167
|
failShipImport(`Source has ${sourceAmount} ships but import requests ${amount}. Reduce the amount.`, source);
|
|
188
168
|
const existingCredit = s.shipsInEscrow.find((item) => item.shipId === shipId);
|
|
@@ -197,7 +177,6 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
197
177
|
};
|
|
198
178
|
const resolvedFunding = await resolveShipImportFunding(fundingIntent);
|
|
199
179
|
const { profileDebit: growthFunding } = validateShipImportFunding(fundingIntent, resolvedFunding, new Map(addresses.map((address, index) => [address, values[index]])));
|
|
200
|
-
const minimum = readRent(rentRaw);
|
|
201
180
|
const preconditions = [
|
|
202
181
|
systemGuard,
|
|
203
182
|
{
|
|
@@ -244,7 +223,7 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
244
223
|
const steps = [];
|
|
245
224
|
let ataFunding = 0n;
|
|
246
225
|
if (escrowRaw) {
|
|
247
|
-
const balance =
|
|
226
|
+
const balance = readTokenAccount(escrowRaw, mint, character, failShipImport);
|
|
248
227
|
if (balance + amount > (1n << 64n) - 1n)
|
|
249
228
|
failShipImport('Escrow token balance would exceed u64 capacity. Reduce the amount.', escrow);
|
|
250
229
|
preconditions.push({
|
|
@@ -260,29 +239,15 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
260
239
|
const creation = options.escrowAccount;
|
|
261
240
|
if (!creation)
|
|
262
241
|
failShipImport('Character ship escrow is missing. Explicitly select escrowAccount create-if-missing with a payer or create it separately.', escrow);
|
|
263
|
-
const
|
|
264
|
-
creation.payer,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
ataFunding = minimum(165);
|
|
273
|
-
if (payer.owner !== SYSTEM_PROGRAM ||
|
|
274
|
-
payer.executable ||
|
|
275
|
-
payer.data.length !== 0 ||
|
|
276
|
-
payer.lamports < ataFunding)
|
|
277
|
-
failShipImport(`ATA payer must be a System wallet with at least ${ataFunding} native lamports for escrow storage plus separate fees.`, creation.payer);
|
|
278
|
-
if (extras.slice(1).some((a) => !a.executable))
|
|
279
|
-
failShipImport('ATA creation requires executable associated-token, System and original Token programs.', ATA_PROGRAM);
|
|
280
|
-
preconditions.push(...(await Promise.all(extras.map((raw, i) => observe(raw, [
|
|
281
|
-
'ATA payer identity',
|
|
282
|
-
'Associated-token program',
|
|
283
|
-
'System program',
|
|
284
|
-
'Token program',
|
|
285
|
-
][i])))), {
|
|
242
|
+
const ata = await resolveAssociatedTokenCreation(ctx, {
|
|
243
|
+
payer: creation.payer,
|
|
244
|
+
address: escrow,
|
|
245
|
+
owner: character,
|
|
246
|
+
mint,
|
|
247
|
+
rent: rentRaw,
|
|
248
|
+
}, failShipImport, observe);
|
|
249
|
+
ataFunding = ata.storageFunding;
|
|
250
|
+
preconditions.push(...ata.preconditions, {
|
|
286
251
|
kind: 'token-account-or-absent',
|
|
287
252
|
address: escrow,
|
|
288
253
|
mint,
|
|
@@ -290,23 +255,12 @@ export async function planDepositShipsToGame(ctx, starbase, options) {
|
|
|
290
255
|
describes: 'Explicit idempotent creation permits an absent or already valid canonical Character ATA.',
|
|
291
256
|
});
|
|
292
257
|
steps.push({
|
|
293
|
-
instruction:
|
|
294
|
-
programAddress: ATA_PROGRAM,
|
|
295
|
-
accounts: [
|
|
296
|
-
{ address: creation.payer, role: 3 },
|
|
297
|
-
{ address: escrow, role: 1 },
|
|
298
|
-
{ address: character, role: 0 },
|
|
299
|
-
{ address: mint, role: 0 },
|
|
300
|
-
{ address: SYSTEM_PROGRAM, role: 0 },
|
|
301
|
-
{ address: ORIGINAL_TOKEN_PROGRAM, role: 0 },
|
|
302
|
-
],
|
|
303
|
-
data: Uint8Array.of(1),
|
|
304
|
-
},
|
|
258
|
+
instruction: ata.instruction,
|
|
305
259
|
signers: [creation.payer],
|
|
306
260
|
describes: `Create the canonical Character ship ATA idempotently; payer ${creation.payer} provides observed storage funding ${ataFunding} native lamports, separate from transaction fees.`,
|
|
307
261
|
});
|
|
308
262
|
}
|
|
309
|
-
const describes = `Import ${amount} whole ships for configuration ${shipId} (mint ${mint}): source ${source} decreases by ${amount}, Character escrow ${escrow} increases by ${amount}, and StarbasePlayer ${player} shipsInEscrow[${shipId}] increases by ${amount}. Profile authority ${authorization.authority} and token owner ${owner} authorize import. Profile ${authorization.profile} provides observed StarbasePlayer storage funding ${growthFunding} native lamports; ATA storage funding ${ataFunding} and execution fees are separate. The actual Profile debit and its rent reserve are rechecked before signing within the approved storage ceiling; compatible creation/assembly debits are combined per Profile. Different ship configurations for one StarbasePlayer require separate confirmed imports. Funding is not reserved; permissions, current access and outcomes remain chain-authoritative. Simulate before signing and verify all three balances after confirmation; never automatically retry an unknown outcome. Import does not create a Fleet.
|
|
263
|
+
const describes = `Import ${amount} whole ships for configuration ${shipId} (mint ${mint}): source ${source} decreases by ${amount}, Character escrow ${escrow} increases by ${amount}, and StarbasePlayer ${player} shipsInEscrow[${shipId}] increases by ${amount}. Profile authority ${authorization.authority} and token owner ${owner} authorize import. Profile ${authorization.profile} provides observed StarbasePlayer storage funding ${growthFunding} native lamports; ATA storage funding ${ataFunding} and execution fees are separate. The actual Profile debit and its rent reserve are rechecked before signing within the approved storage ceiling; compatible creation/assembly debits are combined per Profile. Different ship configurations for one StarbasePlayer require separate confirmed imports. Funding is not reserved; permissions, current access and outcomes remain chain-authoritative. Simulate before signing and verify all three balances after confirmation; never automatically retry an unknown outcome. Import does not create a Fleet. ${TOKEN_TRANSFER_DISCLOSURE}${ownerRaw ? '' : ' An absent token owner wallet may receive native funding as an empty, non-executable System account.'}`;
|
|
310
264
|
steps.push({
|
|
311
265
|
instruction: adaptAddShipEscrowInstruction({
|
|
312
266
|
authorization,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-import.js","sourceRoot":"","sources":["../../../src/fleets/actions/ship-import.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ship-import.js","sourceRoot":"","sources":["../../../src/fleets/actions/ship-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Address, type Instruction } from '@solana/kit';
|
|
2
|
+
import type { RawAccount, SageContext } from '../../client/contracts.js';
|
|
3
|
+
import type { PlanPrecondition } from '../../planning/index.js';
|
|
4
|
+
export declare const ORIGINAL_TOKEN_PROGRAM: Address;
|
|
5
|
+
export declare const ATA_PROGRAM: Address;
|
|
6
|
+
/** Rejects with the calling planner's wording and remedy. */
|
|
7
|
+
type Fail = (message: string, address: Address) => never;
|
|
8
|
+
/** What a wallet token transfer Plan rechecks and leaves to the chain. */
|
|
9
|
+
export declare const TOKEN_TRANSFER_DISCLOSURE = "System identity, active Starbase generation and applicable CSS requirements are rechecked before signing; unrelated System combat, shield, health and hab activity is not equality-bound. Execution access checks remain chain-authoritative, not a client-side atomicity guarantee. Mint supply and authorities may change; initialized original Token mint layout and decimals are rechecked before signing.";
|
|
10
|
+
/** The canonical associated token account of `owner` for an original Token `mint`. */
|
|
11
|
+
export declare function deriveAssociatedTokenAddress(owner: Address, mint: Address): Promise<Address>;
|
|
12
|
+
/** Whether a wallet is an original or Token-2022 multisig authority, which
|
|
13
|
+
* needs signer semantics outside the single-owner wallet planners. */
|
|
14
|
+
export declare function isTokenMultisig(account: RawAccount | undefined): boolean;
|
|
15
|
+
/** Requires an initialized, unfrozen original Token account of `mint` owned
|
|
16
|
+
* by `owner` and returns its raw balance. A recorded delegate does not prevent
|
|
17
|
+
* the owner from transferring, so it is accepted. */
|
|
18
|
+
export declare function readTokenAccount(account: RawAccount, mint: Address, owner: Address, fail: Fail): bigint;
|
|
19
|
+
/** Validates an explicit payer for idempotent canonical ATA creation and
|
|
20
|
+
* returns the creation instruction, its storage funding, and the payer, Rent
|
|
21
|
+
* and program observations. Reads Rent unless the caller already holds it. */
|
|
22
|
+
export declare function resolveAssociatedTokenCreation(ctx: SageContext, request: {
|
|
23
|
+
readonly payer: Address;
|
|
24
|
+
readonly address: Address;
|
|
25
|
+
readonly owner: Address;
|
|
26
|
+
readonly mint: Address;
|
|
27
|
+
readonly rent?: RawAccount;
|
|
28
|
+
}, fail: Fail, observe: (account: RawAccount, role: string) => Promise<PlanPrecondition>): Promise<{
|
|
29
|
+
readonly instruction: Instruction;
|
|
30
|
+
readonly preconditions: readonly PlanPrecondition[];
|
|
31
|
+
readonly storageFunding: bigint;
|
|
32
|
+
}>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=original-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"original-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/original-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,eAAO,MAAM,sBAAsB,EACgB,OAAO,CAAC;AAC3D,eAAO,MAAM,WAAW,EAC4B,OAAO,CAAC;AAI5D,6DAA6D;AAC7D,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC;AAEzD,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,mZAC4W,CAAC;AAEnZ,sFAAsF;AACtF,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;sEACsE;AACtE,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAOxE;AAED;;qDAEqD;AACrD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,IAAI,GACT,MAAM,CAwBR;AAED;;8EAE8E;AAC9E,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,GACxE,OAAO,CAAC;IACT,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC,CAgED"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { AccountRole, getAddressDecoder, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
2
|
+
import { readContextRawAccounts } from '../../client/reconciliation.js';
|
|
3
|
+
import { SYSTEM_PROGRAM } from '../system-program.js';
|
|
4
|
+
import { RENT_ADDRESS, readRent } from './rent.js';
|
|
5
|
+
export const ORIGINAL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
6
|
+
export const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
|
|
7
|
+
const TOKEN_2022_PROGRAM = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';
|
|
8
|
+
/** What a wallet token transfer Plan rechecks and leaves to the chain. */
|
|
9
|
+
export const TOKEN_TRANSFER_DISCLOSURE = 'System identity, active Starbase generation and applicable CSS requirements are rechecked before signing; unrelated System combat, shield, health and hab activity is not equality-bound. Execution access checks remain chain-authoritative, not a client-side atomicity guarantee. Mint supply and authorities may change; initialized original Token mint layout and decimals are rechecked before signing.';
|
|
10
|
+
/** The canonical associated token account of `owner` for an original Token `mint`. */
|
|
11
|
+
export async function deriveAssociatedTokenAddress(owner, mint) {
|
|
12
|
+
const encoder = getAddressEncoder();
|
|
13
|
+
const [address] = await getProgramDerivedAddress({
|
|
14
|
+
programAddress: ATA_PROGRAM,
|
|
15
|
+
seeds: [
|
|
16
|
+
encoder.encode(owner),
|
|
17
|
+
encoder.encode(ORIGINAL_TOKEN_PROGRAM),
|
|
18
|
+
encoder.encode(mint),
|
|
19
|
+
],
|
|
20
|
+
});
|
|
21
|
+
return address;
|
|
22
|
+
}
|
|
23
|
+
/** Whether a wallet is an original or Token-2022 multisig authority, which
|
|
24
|
+
* needs signer semantics outside the single-owner wallet planners. */
|
|
25
|
+
export function isTokenMultisig(account) {
|
|
26
|
+
return (account !== undefined &&
|
|
27
|
+
account.data.length === 355 &&
|
|
28
|
+
(account.owner === ORIGINAL_TOKEN_PROGRAM ||
|
|
29
|
+
account.owner === TOKEN_2022_PROGRAM));
|
|
30
|
+
}
|
|
31
|
+
/** Requires an initialized, unfrozen original Token account of `mint` owned
|
|
32
|
+
* by `owner` and returns its raw balance. A recorded delegate does not prevent
|
|
33
|
+
* the owner from transferring, so it is accepted. */
|
|
34
|
+
export function readTokenAccount(account, mint, owner, fail) {
|
|
35
|
+
const { address, data } = account;
|
|
36
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
37
|
+
if (account.executable ||
|
|
38
|
+
account.owner !== ORIGINAL_TOKEN_PROGRAM ||
|
|
39
|
+
data.length !== 165 ||
|
|
40
|
+
[72, 109, 129].some((offset) => view.getUint32(offset, true) > 1))
|
|
41
|
+
fail(`Account ${address} must be a well-formed original Token account of exactly 165 bytes; Token-2022 and multisig layouts are unsupported.`, address);
|
|
42
|
+
const decoder = getAddressDecoder();
|
|
43
|
+
if (view.getUint8(108) !== 1 ||
|
|
44
|
+
decoder.decode(data.subarray(0, 32)) !== mint ||
|
|
45
|
+
decoder.decode(data.subarray(32, 64)) !== owner)
|
|
46
|
+
fail(`Token account ${address} must be initialized, unfrozen and hold mint ${mint} under owner ${owner}; delegated spending is unsupported.`, address);
|
|
47
|
+
return view.getBigUint64(64, true);
|
|
48
|
+
}
|
|
49
|
+
/** Validates an explicit payer for idempotent canonical ATA creation and
|
|
50
|
+
* returns the creation instruction, its storage funding, and the payer, Rent
|
|
51
|
+
* and program observations. Reads Rent unless the caller already holds it. */
|
|
52
|
+
export async function resolveAssociatedTokenCreation(ctx, request, fail, observe) {
|
|
53
|
+
const addresses = [
|
|
54
|
+
request.payer,
|
|
55
|
+
ATA_PROGRAM,
|
|
56
|
+
SYSTEM_PROGRAM,
|
|
57
|
+
ORIGINAL_TOKEN_PROGRAM,
|
|
58
|
+
...(request.rent === undefined ? [RENT_ADDRESS] : []),
|
|
59
|
+
];
|
|
60
|
+
const accounts = (await readContextRawAccounts(ctx, addresses)).map((account, index) => account ??
|
|
61
|
+
fail(`ATA creation prerequisite ${addresses[index]} is missing. Create or fund it separately.`, addresses[index]));
|
|
62
|
+
const [payer, ...programs] = accounts.slice(0, 4);
|
|
63
|
+
const rent = request.rent ?? accounts[4];
|
|
64
|
+
if (programs.some((program) => !program.executable))
|
|
65
|
+
fail('ATA creation requires executable associated-token, System and original Token programs in this deployment.', ATA_PROGRAM);
|
|
66
|
+
// Original Token accounts occupy 165 bytes; the shared Rent reader includes
|
|
67
|
+
// the 128-byte account overhead and validates the full sysvar.
|
|
68
|
+
const storageFunding = readRent(rent)(165);
|
|
69
|
+
if (payer.owner !== SYSTEM_PROGRAM ||
|
|
70
|
+
payer.executable ||
|
|
71
|
+
payer.data.length !== 0 ||
|
|
72
|
+
payer.lamports < storageFunding)
|
|
73
|
+
fail(`ATA payer must be a System wallet with at least ${storageFunding} lamports for storage, in addition to transaction fees.`, request.payer);
|
|
74
|
+
const roles = [
|
|
75
|
+
'ATA payer identity',
|
|
76
|
+
'Associated-token program',
|
|
77
|
+
'System program',
|
|
78
|
+
'Token program',
|
|
79
|
+
'Rent configuration',
|
|
80
|
+
];
|
|
81
|
+
return {
|
|
82
|
+
instruction: {
|
|
83
|
+
programAddress: ATA_PROGRAM,
|
|
84
|
+
accounts: [
|
|
85
|
+
{ address: request.payer, role: AccountRole.WRITABLE_SIGNER },
|
|
86
|
+
{ address: request.address, role: AccountRole.WRITABLE },
|
|
87
|
+
{ address: request.owner, role: AccountRole.READONLY },
|
|
88
|
+
{ address: request.mint, role: AccountRole.READONLY },
|
|
89
|
+
{ address: SYSTEM_PROGRAM, role: AccountRole.READONLY },
|
|
90
|
+
{ address: ORIGINAL_TOKEN_PROGRAM, role: AccountRole.READONLY },
|
|
91
|
+
],
|
|
92
|
+
data: Uint8Array.of(1),
|
|
93
|
+
},
|
|
94
|
+
preconditions: await Promise.all(accounts.map((account, index) => observe(account, roles[index]))),
|
|
95
|
+
storageFunding,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=original-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"original-token.js","sourceRoot":"","sources":["../../../src/internal/planning/original-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
2
|
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
-
export declare const ORIGINAL_TOKEN_PROGRAM: Address;
|
|
4
|
-
export declare const ATA_PROGRAM: Address;
|
|
5
3
|
export declare function failShipImport(message: string, address: Address): never;
|
|
6
|
-
export declare function deriveShipTokenAddress(owner: Address, mint: Address): Promise<Address>;
|
|
7
4
|
export declare function validateShipMint(account: RawAccount): void;
|
|
8
|
-
export declare function validateShipToken(account: RawAccount, mint: Address, owner: Address): bigint;
|
|
9
5
|
//# sourceMappingURL=ship-token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"ship-token.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAMvE;AACD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAM1D"}
|
|
@@ -1,46 +1,10 @@
|
|
|
1
1
|
import { validateTokenMint } from './token-mint.js';
|
|
2
|
-
import { getAddressDecoder, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
|
|
3
2
|
import { SageSdkError } from '../../client/errors.js';
|
|
4
|
-
export const ORIGINAL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
5
|
-
export const ATA_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
|
|
6
3
|
export function failShipImport(message, address) {
|
|
7
4
|
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the relevant accounts and prepare a new ship import Plan.`, { address });
|
|
8
5
|
}
|
|
9
|
-
export async function deriveShipTokenAddress(owner, mint) {
|
|
10
|
-
const encoder = getAddressEncoder();
|
|
11
|
-
return (await getProgramDerivedAddress({
|
|
12
|
-
programAddress: ATA_PROGRAM,
|
|
13
|
-
seeds: [
|
|
14
|
-
encoder.encode(owner),
|
|
15
|
-
encoder.encode(ORIGINAL_TOKEN_PROGRAM),
|
|
16
|
-
encoder.encode(mint),
|
|
17
|
-
],
|
|
18
|
-
}))[0];
|
|
19
|
-
}
|
|
20
|
-
function bytes(account, length) {
|
|
21
|
-
if (account.executable ||
|
|
22
|
-
account.owner !== ORIGINAL_TOKEN_PROGRAM ||
|
|
23
|
-
account.data.length !== length)
|
|
24
|
-
failShipImport(`Account ${account.address} must be an original Token account with exactly ${length} bytes; Token-2022 is unsupported.`, account.address);
|
|
25
|
-
return new DataView(account.data.buffer, account.data.byteOffset, account.data.byteLength);
|
|
26
|
-
}
|
|
27
|
-
function option(view, offset, account) {
|
|
28
|
-
if (view.getUint32(offset, true) > 1)
|
|
29
|
-
failShipImport('The Token account has malformed optional fields.', account.address);
|
|
30
|
-
}
|
|
31
6
|
export function validateShipMint(account) {
|
|
32
7
|
if (validateTokenMint(account) !== 0)
|
|
33
8
|
failShipImport('Ship import requires an initialized zero-decimal mint so each token is one ship.', account.address);
|
|
34
9
|
}
|
|
35
|
-
export function validateShipToken(account, mint, owner) {
|
|
36
|
-
const view = bytes(account, 165);
|
|
37
|
-
for (const offset of [72, 109, 129])
|
|
38
|
-
option(view, offset, account);
|
|
39
|
-
const decoder = getAddressDecoder();
|
|
40
|
-
if (view.getUint8(108) !== 1 ||
|
|
41
|
-
decoder.decode(account.data.subarray(0, 32)) !== mint ||
|
|
42
|
-
decoder.decode(account.data.subarray(32, 64)) !== owner)
|
|
43
|
-
failShipImport(`The token account must be initialized, unfrozen and hold ship mint ${mint} under authority ${owner}. Delegated token spending is unsupported.`, account.address);
|
|
44
|
-
return view.getBigUint64(64, true);
|
|
45
|
-
}
|
|
46
10
|
//# sourceMappingURL=ship-token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-token.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ship-token.js","sourceRoot":"","sources":["../../../src/internal/planning/ship-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAgB;IAC9D,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,GAAG,OAAO,oEAAoE,EAC9E,EAAE,OAAO,EAAE,CACZ,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IAClD,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,cAAc,CACZ,kFAAkF,EAClF,OAAO,CAAC,OAAO,CAChB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
/** The identity fields of a loaded Starbase Player snapshot. */
|
|
3
|
+
interface StarbasePlayerIdentity {
|
|
4
|
+
readonly address: Address;
|
|
5
|
+
readonly playerProfile: {
|
|
6
|
+
readonly address: Address;
|
|
7
|
+
};
|
|
8
|
+
readonly character: {
|
|
9
|
+
readonly address: Address;
|
|
10
|
+
};
|
|
11
|
+
readonly system: {
|
|
12
|
+
readonly address: Address;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Requires a loaded Starbase Player to belong to the authorization Profile,
|
|
16
|
+
* reference that Profile's canonical Character in the configured Game, and sit
|
|
17
|
+
* at its canonical address; returns the Character. Fresh-state checks remain
|
|
18
|
+
* the caller's. */
|
|
19
|
+
export declare function requireProfileStarbasePlayer(player: StarbasePlayerIdentity, profile: Address, game: Address): Promise<Address>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=starbase-player-owner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-player-owner.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/starbase-player-owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,gEAAgE;AAChE,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAED;;;mBAGmB;AACnB,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SageSdkError } from '../../client/errors.js';
|
|
2
|
+
import { findCharacterPda } from '../c4/character.js';
|
|
3
|
+
import { deriveStarbasePlayerAddress } from '../c4/starbase.js';
|
|
4
|
+
/** Requires a loaded Starbase Player to belong to the authorization Profile,
|
|
5
|
+
* reference that Profile's canonical Character in the configured Game, and sit
|
|
6
|
+
* at its canonical address; returns the Character. Fresh-state checks remain
|
|
7
|
+
* the caller's. */
|
|
8
|
+
export async function requireProfileStarbasePlayer(player, profile, game) {
|
|
9
|
+
const character = await findCharacterPda(profile, game);
|
|
10
|
+
if (player.playerProfile.address !== profile ||
|
|
11
|
+
player.character.address !== character ||
|
|
12
|
+
(await deriveStarbasePlayerAddress(player.system.address, character)) !==
|
|
13
|
+
player.address)
|
|
14
|
+
throw new SageSdkError('ACTION_PRECONDITION_FAILED', `Starbase Player ${player.address} is not the canonical registration of authorization Profile ${profile} with its canonical Character ${character} in Star System ${player.system.address}. Load that Profile's Starbase Player through this context and retry.`, { address: player.address });
|
|
15
|
+
return character;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=starbase-player-owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starbase-player-owner.js","sourceRoot":"","sources":["../../../src/internal/planning/starbase-player-owner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAUhE;;;mBAGmB;AACnB,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAA8B,EAC9B,OAAgB,EAChB,IAAa;IAEb,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IACE,MAAM,CAAC,aAAa,CAAC,OAAO,KAAK,OAAO;QACxC,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS;QACtC,CAAC,MAAM,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO;QAEhB,MAAM,IAAI,YAAY,CACpB,4BAA4B,EAC5B,mBAAmB,MAAM,CAAC,OAAO,+DAA+D,OAAO,iCAAiC,SAAS,mBAAmB,MAAM,CAAC,MAAM,CAAC,OAAO,uEAAuE,EAChQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAC5B,CAAC;IACJ,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Address } from '@solana/kit';
|
|
2
|
+
import type { RawAccount } from '../../client/contracts.js';
|
|
3
|
+
/** Rejects with the calling planner's wording and remedy. */
|
|
4
|
+
type Fail = (message: string, address: Address) => never;
|
|
5
|
+
/** Requires the fresh Profile, Character, Starbase Player and System of a
|
|
6
|
+
* wallet transfer to be decodable account state of the configured Game and
|
|
7
|
+
* authorization Profile, and the System to be canonical with an active
|
|
8
|
+
* Starbase (a Central Space Station when `requireCss`). Returns the decoded
|
|
9
|
+
* Profile and Starbase Player and the matching System guard. */
|
|
10
|
+
export declare function validateWalletStarbase(accounts: {
|
|
11
|
+
readonly profile: RawAccount;
|
|
12
|
+
readonly character: RawAccount;
|
|
13
|
+
readonly player: RawAccount;
|
|
14
|
+
readonly system: RawAccount;
|
|
15
|
+
}, facts: {
|
|
16
|
+
readonly game: Address;
|
|
17
|
+
readonly profile: Address;
|
|
18
|
+
readonly character: Address;
|
|
19
|
+
readonly system: Address;
|
|
20
|
+
readonly requireCss: boolean;
|
|
21
|
+
}, fail: Fail): Promise<{
|
|
22
|
+
playerData: Readonly<import("../c4/starbase.js").StarbasePlayerAccountData>;
|
|
23
|
+
profileData: Readonly<import("../c4/identity.js").ProfileAccountData>;
|
|
24
|
+
systemGuard: {
|
|
25
|
+
describes: string;
|
|
26
|
+
requireCss?: true;
|
|
27
|
+
kind: "starbase-system";
|
|
28
|
+
address: import("../../client/contracts.js").Address;
|
|
29
|
+
game: Address;
|
|
30
|
+
starbaseSequenceId: bigint;
|
|
31
|
+
};
|
|
32
|
+
}>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=wallet-starbase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-starbase.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/wallet-starbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAU5D,6DAA6D;AAC7D,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC;AAEzD;;;;gEAIgE;AAChE,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE;IACR,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,EACD,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B,EACD,IAAI,EAAE,IAAI;;;;;;;;;;;GAoCX"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { characterAccountDefinition } from '../c4/character.js';
|
|
2
|
+
import { profileAccountDefinition } from '../c4/identity.js';
|
|
3
|
+
import { starbasePlayerAccountDefinition } from '../c4/starbase.js';
|
|
4
|
+
import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../c4/world.js';
|
|
5
|
+
import { validateStarbaseSystem } from './starbase-system.js';
|
|
6
|
+
/** Requires the fresh Profile, Character, Starbase Player and System of a
|
|
7
|
+
* wallet transfer to be decodable account state of the configured Game and
|
|
8
|
+
* authorization Profile, and the System to be canonical with an active
|
|
9
|
+
* Starbase (a Central Space Station when `requireCss`). Returns the decoded
|
|
10
|
+
* Profile and Starbase Player and the matching System guard. */
|
|
11
|
+
export async function validateWalletStarbase(accounts, facts, fail) {
|
|
12
|
+
for (const account of Object.values(accounts))
|
|
13
|
+
if (account.executable)
|
|
14
|
+
fail('A gameplay prerequisite is executable rather than account state.', account.address);
|
|
15
|
+
const profileData = profileAccountDefinition.decode(accounts.profile);
|
|
16
|
+
const characterData = characterAccountDefinition.decode(accounts.character);
|
|
17
|
+
const playerData = starbasePlayerAccountDefinition.decode(accounts.player);
|
|
18
|
+
const systemData = starSystemAccountDefinition.decode(accounts.system);
|
|
19
|
+
if (characterData.game !== facts.game ||
|
|
20
|
+
characterData.playerProfile !== facts.profile ||
|
|
21
|
+
playerData.playerProfile !== facts.profile ||
|
|
22
|
+
playerData.character !== facts.character ||
|
|
23
|
+
playerData.system !== facts.system ||
|
|
24
|
+
systemData.game !== facts.game ||
|
|
25
|
+
(await deriveStarSystemAddress(facts.game, systemData.systemId)) !==
|
|
26
|
+
facts.system)
|
|
27
|
+
fail('Fresh Character, Starbase Player and System must belong to the configured Game and authorized Profile.', accounts.player.address);
|
|
28
|
+
const systemGuard = {
|
|
29
|
+
kind: 'starbase-system',
|
|
30
|
+
address: accounts.system.address,
|
|
31
|
+
game: facts.game,
|
|
32
|
+
starbaseSequenceId: systemData.sequenceId,
|
|
33
|
+
...(facts.requireCss ? { requireCss: true } : {}),
|
|
34
|
+
describes: `The canonical Star System retains its active Starbase and generation${facts.requireCss ? ' as a Central Space Station' : ''}; unrelated shared activity may change.`,
|
|
35
|
+
};
|
|
36
|
+
await validateStarbaseSystem(accounts.system, systemGuard);
|
|
37
|
+
return { playerData, profileData, systemGuard };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=wallet-starbase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-starbase.js","sourceRoot":"","sources":["../../../src/internal/planning/wallet-starbase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAK9D;;;;gEAIgE;AAChE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAKC,EACD,KAMC,EACD,IAAU;IAEV,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3C,IAAI,OAAO,CAAC,UAAU;YACpB,IAAI,CACF,kEAAkE,EAClE,OAAO,CAAC,OAAO,CAChB,CAAC;IACN,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvE,IACE,aAAa,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACjC,aAAa,CAAC,aAAa,KAAK,KAAK,CAAC,OAAO;QAC7C,UAAU,CAAC,aAAa,KAAK,KAAK,CAAC,OAAO;QAC1C,UAAU,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACxC,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAClC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QAC9B,CAAC,MAAM,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9D,KAAK,CAAC,MAAM;QAEd,IAAI,CACF,wGAAwG,EACxG,QAAQ,CAAC,MAAM,CAAC,OAAO,CACxB,CAAC;IACJ,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,iBAA0B;QAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,kBAAkB,EAAE,UAAU,CAAC,UAAU;QACzC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,SAAS,EAAE,uEAAuE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,yCAAyC;KACjL,CAAC;IACF,MAAM,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/markets/actions/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/markets/actions/index.ts"],"names":[],"mappings":"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"}
|