@aephia/atlas-kit 0.0.0
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/LICENSE +202 -0
- package/README.md +124 -0
- package/dist/bindings.d.ts +11 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +11 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +122 -0
- package/dist/cargo/actions/index.d.ts.map +1 -0
- package/dist/cargo/actions/index.js +526 -0
- package/dist/cargo/actions/index.js.map +1 -0
- package/dist/cargo/index.d.ts +77 -0
- package/dist/cargo/index.d.ts.map +1 -0
- package/dist/cargo/index.js +102 -0
- package/dist/cargo/index.js.map +1 -0
- package/dist/claim-stakes/index.d.ts +64 -0
- package/dist/claim-stakes/index.d.ts.map +1 -0
- package/dist/claim-stakes/index.js +97 -0
- package/dist/claim-stakes/index.js.map +1 -0
- package/dist/client/context.d.ts +21 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +1374 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/contracts.d.ts +671 -0
- package/dist/client/contracts.d.ts.map +1 -0
- package/dist/client/contracts.js +2 -0
- package/dist/client/contracts.js.map +1 -0
- package/dist/client/deployments.d.ts +3 -0
- package/dist/client/deployments.d.ts.map +1 -0
- package/dist/client/deployments.js +2 -0
- package/dist/client/deployments.js.map +1 -0
- package/dist/client/errors.d.ts +227 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +288 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +4 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +10 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/provider-errors.d.ts +9 -0
- package/dist/client/provider-errors.d.ts.map +1 -0
- package/dist/client/provider-errors.js +12 -0
- package/dist/client/provider-errors.js.map +1 -0
- package/dist/client/reconciliation.d.ts +10 -0
- package/dist/client/reconciliation.d.ts.map +1 -0
- package/dist/client/reconciliation.js +9 -0
- package/dist/client/reconciliation.js.map +1 -0
- package/dist/client/refs.d.ts +23 -0
- package/dist/client/refs.d.ts.map +1 -0
- package/dist/client/refs.js +12 -0
- package/dist/client/refs.js.map +1 -0
- package/dist/combat/index.d.ts +256 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +222 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/crafting/index.d.ts +308 -0
- package/dist/crafting/index.d.ts.map +1 -0
- package/dist/crafting/index.js +400 -0
- package/dist/crafting/index.js.map +1 -0
- package/dist/factions/index.d.ts +292 -0
- package/dist/factions/index.d.ts.map +1 -0
- package/dist/factions/index.js +334 -0
- package/dist/factions/index.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +200 -0
- package/dist/fleets/actions/index.d.ts.map +1 -0
- package/dist/fleets/actions/index.js +854 -0
- package/dist/fleets/actions/index.js.map +1 -0
- package/dist/fleets/index.d.ts +100 -0
- package/dist/fleets/index.d.ts.map +1 -0
- package/dist/fleets/index.js +124 -0
- package/dist/fleets/index.js.map +1 -0
- package/dist/identity/index.d.ts +225 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +341 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +401 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +519 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/c4/adapter.d.ts +6 -0
- package/dist/internal/c4/adapter.d.ts.map +1 -0
- package/dist/internal/c4/adapter.js +2 -0
- package/dist/internal/c4/adapter.js.map +1 -0
- package/dist/internal/c4/bindings.d.ts +4 -0
- package/dist/internal/c4/bindings.d.ts.map +1 -0
- package/dist/internal/c4/bindings.js +4 -0
- package/dist/internal/c4/bindings.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +5 -0
- package/dist/internal/c4/character-modifier.d.ts.map +1 -0
- package/dist/internal/c4/character-modifier.js +100 -0
- package/dist/internal/c4/character-modifier.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +140 -0
- package/dist/internal/c4/claim-stake.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake.js +205 -0
- package/dist/internal/c4/claim-stake.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +98 -0
- package/dist/internal/c4/combat.d.ts.map +1 -0
- package/dist/internal/c4/combat.js +232 -0
- package/dist/internal/c4/combat.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +170 -0
- package/dist/internal/c4/crafting.d.ts.map +1 -0
- package/dist/internal/c4/crafting.js +387 -0
- package/dist/internal/c4/crafting.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +248 -0
- package/dist/internal/c4/factions.d.ts.map +1 -0
- package/dist/internal/c4/factions.js +589 -0
- package/dist/internal/c4/factions.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.js +51 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +310 -0
- package/dist/internal/c4/fleet.d.ts.map +1 -0
- package/dist/internal/c4/fleet.js +393 -0
- package/dist/internal/c4/fleet.js.map +1 -0
- package/dist/internal/c4/game.d.ts +192 -0
- package/dist/internal/c4/game.d.ts.map +1 -0
- package/dist/internal/c4/game.js +396 -0
- package/dist/internal/c4/game.js.map +1 -0
- package/dist/internal/c4/identity.d.ts +193 -0
- package/dist/internal/c4/identity.d.ts.map +1 -0
- package/dist/internal/c4/identity.js +180 -0
- package/dist/internal/c4/identity.js.map +1 -0
- package/dist/internal/c4/loot-layout.d.ts +20 -0
- package/dist/internal/c4/loot-layout.d.ts.map +1 -0
- package/dist/internal/c4/loot-layout.js +29 -0
- package/dist/internal/c4/loot-layout.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +102 -0
- package/dist/internal/c4/loyalty.d.ts.map +1 -0
- package/dist/internal/c4/loyalty.js +318 -0
- package/dist/internal/c4/loyalty.js.map +1 -0
- package/dist/internal/c4/market.d.ts +112 -0
- package/dist/internal/c4/market.d.ts.map +1 -0
- package/dist/internal/c4/market.js +247 -0
- package/dist/internal/c4/market.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +6 -0
- package/dist/internal/c4/pda.d.ts.map +1 -0
- package/dist/internal/c4/pda.js +45 -0
- package/dist/internal/c4/pda.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts +14 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -0
- package/dist/internal/c4/profile-faction.js +69 -0
- package/dist/internal/c4/profile-faction.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +135 -0
- package/dist/internal/c4/rewards.d.ts.map +1 -0
- package/dist/internal/c4/rewards.js +305 -0
- package/dist/internal/c4/rewards.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +85 -0
- package/dist/internal/c4/scanning.d.ts.map +1 -0
- package/dist/internal/c4/scanning.js +180 -0
- package/dist/internal/c4/scanning.js.map +1 -0
- package/dist/internal/c4/starbase.d.ts +186 -0
- package/dist/internal/c4/starbase.d.ts.map +1 -0
- package/dist/internal/c4/starbase.js +259 -0
- package/dist/internal/c4/starbase.js.map +1 -0
- package/dist/internal/c4/world.d.ts +294 -0
- package/dist/internal/c4/world.d.ts.map +1 -0
- package/dist/internal/c4/world.js +417 -0
- package/dist/internal/c4/world.js.map +1 -0
- package/dist/internal/cargo.d.ts +65 -0
- package/dist/internal/cargo.d.ts.map +1 -0
- package/dist/internal/cargo.js +46 -0
- package/dist/internal/cargo.js.map +1 -0
- package/dist/internal/claim-stake.d.ts +31 -0
- package/dist/internal/claim-stake.d.ts.map +1 -0
- package/dist/internal/claim-stake.js +20 -0
- package/dist/internal/claim-stake.js.map +1 -0
- package/dist/internal/fleet.d.ts +165 -0
- package/dist/internal/fleet.d.ts.map +1 -0
- package/dist/internal/fleet.js +179 -0
- package/dist/internal/fleet.js.map +1 -0
- package/dist/internal/game-context.d.ts +4 -0
- package/dist/internal/game-context.d.ts.map +1 -0
- package/dist/internal/game-context.js +9 -0
- package/dist/internal/game-context.js.map +1 -0
- package/dist/internal/immutable-tree.d.ts +5 -0
- package/dist/internal/immutable-tree.d.ts.map +1 -0
- package/dist/internal/immutable-tree.js +47 -0
- package/dist/internal/immutable-tree.js.map +1 -0
- package/dist/internal/json.d.ts +7 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +33 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +63 -0
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
- package/dist/internal/planning/authorization-adapter.js +222 -0
- package/dist/internal/planning/authorization-adapter.js.map +1 -0
- package/dist/internal/read-meta.d.ts +84 -0
- package/dist/internal/read-meta.d.ts.map +1 -0
- package/dist/internal/read-meta.js +28 -0
- package/dist/internal/read-meta.js.map +1 -0
- package/dist/internal/resolved-snapshot.d.ts +3 -0
- package/dist/internal/resolved-snapshot.d.ts.map +1 -0
- package/dist/internal/resolved-snapshot.js +11 -0
- package/dist/internal/resolved-snapshot.js.map +1 -0
- package/dist/internal/zink/provider.d.ts +9 -0
- package/dist/internal/zink/provider.d.ts.map +1 -0
- package/dist/internal/zink/provider.js +213 -0
- package/dist/internal/zink/provider.js.map +1 -0
- package/dist/loyalty/index.d.ts +195 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/loyalty/index.js +289 -0
- package/dist/loyalty/index.js.map +1 -0
- package/dist/markets/index.d.ts +195 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +232 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/mining/index.d.ts +156 -0
- package/dist/mining/index.d.ts.map +1 -0
- package/dist/mining/index.js +236 -0
- package/dist/mining/index.js.map +1 -0
- package/dist/planning/assembly.d.ts +42 -0
- package/dist/planning/assembly.d.ts.map +1 -0
- package/dist/planning/assembly.js +141 -0
- package/dist/planning/assembly.js.map +1 -0
- package/dist/planning/composition.d.ts +4 -0
- package/dist/planning/composition.d.ts.map +1 -0
- package/dist/planning/composition.js +76 -0
- package/dist/planning/composition.js.map +1 -0
- package/dist/planning/execution.d.ts +93 -0
- package/dist/planning/execution.d.ts.map +1 -0
- package/dist/planning/execution.js +549 -0
- package/dist/planning/execution.js.map +1 -0
- package/dist/planning/index.d.ts +219 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +375 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/plan-instances.d.ts +3 -0
- package/dist/planning/plan-instances.d.ts.map +1 -0
- package/dist/planning/plan-instances.js +8 -0
- package/dist/planning/plan-instances.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.js +449 -0
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts +72 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
- package/dist/planning/plan-sequence-execution.js +410 -0
- package/dist/planning/plan-sequence-execution.js.map +1 -0
- package/dist/planning/plan-sequence.d.ts +244 -0
- package/dist/planning/plan-sequence.d.ts.map +1 -0
- package/dist/planning/plan-sequence.js +264 -0
- package/dist/planning/plan-sequence.js.map +1 -0
- package/dist/planning/simulation.d.ts +50 -0
- package/dist/planning/simulation.d.ts.map +1 -0
- package/dist/planning/simulation.js +69 -0
- package/dist/planning/simulation.js.map +1 -0
- package/dist/registry/combat.d.ts +5 -0
- package/dist/registry/combat.d.ts.map +1 -0
- package/dist/registry/combat.js +7 -0
- package/dist/registry/combat.js.map +1 -0
- package/dist/registry/index.d.ts +138 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +397 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/rewards/index.d.ts +202 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +290 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/scanning/index.d.ts +185 -0
- package/dist/scanning/index.d.ts.map +1 -0
- package/dist/scanning/index.js +207 -0
- package/dist/scanning/index.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +60 -0
- package/dist/starbases/actions/index.d.ts.map +1 -0
- package/dist/starbases/actions/index.js +245 -0
- package/dist/starbases/actions/index.js.map +1 -0
- package/dist/starbases/index.d.ts +165 -0
- package/dist/starbases/index.d.ts.map +1 -0
- package/dist/starbases/index.js +213 -0
- package/dist/starbases/index.js.map +1 -0
- package/dist/world/index.d.ts +180 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +265 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { OptionalTier, RiskZoneChecked, SizeClass, } from '@staratlas/dev-sage';
|
|
2
|
+
function optionalTier(tier) {
|
|
3
|
+
switch (tier) {
|
|
4
|
+
case OptionalTier.None:
|
|
5
|
+
return undefined;
|
|
6
|
+
case OptionalTier.One:
|
|
7
|
+
return 1;
|
|
8
|
+
case OptionalTier.Two:
|
|
9
|
+
return 2;
|
|
10
|
+
case OptionalTier.Three:
|
|
11
|
+
return 3;
|
|
12
|
+
case OptionalTier.Four:
|
|
13
|
+
return 4;
|
|
14
|
+
case OptionalTier.Five:
|
|
15
|
+
return 5;
|
|
16
|
+
/* v8 ignore next -- the generated enum decoder rejects unknown values. */
|
|
17
|
+
default:
|
|
18
|
+
throw new RangeError(`Unsupported OptionalTier value ${String(tier)}.`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function riskZone(zone) {
|
|
22
|
+
switch (zone) {
|
|
23
|
+
case RiskZoneChecked.LowRiskZone:
|
|
24
|
+
return 'low';
|
|
25
|
+
case RiskZoneChecked.MediumRiskZone:
|
|
26
|
+
return 'medium';
|
|
27
|
+
case RiskZoneChecked.HighRiskZone:
|
|
28
|
+
return 'high';
|
|
29
|
+
/* v8 ignore next -- the generated enum decoder rejects unknown values. */
|
|
30
|
+
default:
|
|
31
|
+
throw new RangeError(`Unsupported RiskZoneChecked value ${String(zone)}.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function shipSize(size) {
|
|
35
|
+
switch (size) {
|
|
36
|
+
case SizeClass.XxSmall:
|
|
37
|
+
return 'xx-small';
|
|
38
|
+
case SizeClass.Xsmall:
|
|
39
|
+
return 'x-small';
|
|
40
|
+
case SizeClass.Small:
|
|
41
|
+
return 'small';
|
|
42
|
+
case SizeClass.Medium:
|
|
43
|
+
return 'medium';
|
|
44
|
+
case SizeClass.Large:
|
|
45
|
+
return 'large';
|
|
46
|
+
case SizeClass.Capital:
|
|
47
|
+
return 'capital';
|
|
48
|
+
case SizeClass.Commander:
|
|
49
|
+
return 'commander';
|
|
50
|
+
case SizeClass.Titan:
|
|
51
|
+
return 'titan';
|
|
52
|
+
/* v8 ignore next -- the generated enum decoder rejects unknown values. */
|
|
53
|
+
default:
|
|
54
|
+
throw new RangeError(`Unsupported SizeClass value ${String(size)}.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Translates generated Character modifier values into SDK-owned data. */
|
|
58
|
+
export function translateCharacterModifier(modifier) {
|
|
59
|
+
const maxResidentialPlotTier = optionalTier(modifier.maxResidentialPlotTier);
|
|
60
|
+
const maxProductivePlotTier = optionalTier(modifier.maxProductivePlotTier);
|
|
61
|
+
return {
|
|
62
|
+
cargoCategories: [...modifier.cargoCategories],
|
|
63
|
+
craftingJobConcurrencyBonus: modifier.craftingJobConcurrencyBonus,
|
|
64
|
+
craftingEfficiencyModifier: modifier.craftingEfficiencyModifier.toNumber(),
|
|
65
|
+
craftingEfficiencyModifierRaw: modifier.craftingEfficiencyModifier.raw,
|
|
66
|
+
craftingTimeModifier: modifier.craftingTimeModifier.toNumber(),
|
|
67
|
+
craftingTimeModifierRaw: modifier.craftingTimeModifier.raw,
|
|
68
|
+
enemyFactionZoneAccess: modifier.enemyFactionZoneAccess,
|
|
69
|
+
fleetConcurrency: modifier.fleetConcurrency,
|
|
70
|
+
fleetSize: modifier.fleetSize,
|
|
71
|
+
maxDailyStreakLength: modifier.maxDailyStreakLength,
|
|
72
|
+
...(maxProductivePlotTier === undefined ? {} : { maxProductivePlotTier }),
|
|
73
|
+
maxProductivePlots: modifier.maxProductivePlots,
|
|
74
|
+
...(maxResidentialPlotTier === undefined ? {} : { maxResidentialPlotTier }),
|
|
75
|
+
maxResidentialPlots: modifier.maxResidentialPlots,
|
|
76
|
+
maxShipSize: shipSize(modifier.maxShipSize),
|
|
77
|
+
rareMineralDiscovery: [...modifier.rareMineralDiscovery].map(([cargoId, multiplier]) => ({
|
|
78
|
+
cargoId,
|
|
79
|
+
multiplier: multiplier.toNumber(),
|
|
80
|
+
multiplierRaw: multiplier.raw,
|
|
81
|
+
})),
|
|
82
|
+
researchTags: [...modifier.researchTags],
|
|
83
|
+
respawnTimeModifier: modifier.respawnTimeModifier.toNumber(),
|
|
84
|
+
respawnTimeModifierRaw: modifier.respawnTimeModifier.raw,
|
|
85
|
+
scanCoolDownModifier: modifier.scanCoolDownModifier.toNumber(),
|
|
86
|
+
scanCoolDownModifierRaw: modifier.scanCoolDownModifier.raw,
|
|
87
|
+
scanPowerModifier: modifier.scanPowerModifier.toNumber(),
|
|
88
|
+
scanPowerModifierRaw: modifier.scanPowerModifier.raw,
|
|
89
|
+
securityZoneAccess: riskZone(modifier.securityZoneAccess),
|
|
90
|
+
subwarpSpeedModifier: modifier.subwarpSpeedModifier.toNumber(),
|
|
91
|
+
subwarpSpeedModifierRaw: modifier.subwarpSpeedModifier.raw,
|
|
92
|
+
warpCooldownModifier: modifier.warpCooldownModifier.toNumber(),
|
|
93
|
+
warpCooldownModifierRaw: modifier.warpCooldownModifier.raw,
|
|
94
|
+
warpLaneFeeModifier: modifier.warpLaneFeeModifier.toNumber(),
|
|
95
|
+
warpLaneFeeModifierRaw: modifier.warpLaneFeeModifier.raw,
|
|
96
|
+
warpSpeedModifier: modifier.warpSpeedModifier.toNumber(),
|
|
97
|
+
warpSpeedModifierRaw: modifier.warpSpeedModifier.raw,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=character-modifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-modifier.js","sourceRoot":"","sources":["../../../src/internal/c4/character-modifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { Address, DiscoveryRequest, ProgramAccountFilter, SageContext, SnapshotEnvelope } from '../../client/contracts.js';
|
|
2
|
+
import type { C4AccountAdapter } from './adapter.js';
|
|
3
|
+
/** Stable ClaimStakeInstance filter offsets verified against the pinned codec. */
|
|
4
|
+
export declare const CLAIM_STAKE_FILTER_OFFSETS: Readonly<{
|
|
5
|
+
body: 73;
|
|
6
|
+
discriminator: 0;
|
|
7
|
+
game: 41;
|
|
8
|
+
owner: 9;
|
|
9
|
+
}>;
|
|
10
|
+
/** Audited Claim Stake relationships; ClaimStakeInstance has no PDA. */
|
|
11
|
+
export declare const CLAIM_STAKE_RELATIONSHIPS: readonly [{
|
|
12
|
+
readonly from: "character";
|
|
13
|
+
readonly kind: "discovered";
|
|
14
|
+
readonly mechanism: "targeted owner, Game, and discriminator filters";
|
|
15
|
+
readonly to: "claimStakeInstance[]";
|
|
16
|
+
}, {
|
|
17
|
+
readonly from: "celestialBody";
|
|
18
|
+
readonly kind: "discovered";
|
|
19
|
+
readonly mechanism: "targeted celestialBodyId, Game, and discriminator filters";
|
|
20
|
+
readonly to: "claimStakeInstance[]";
|
|
21
|
+
}, {
|
|
22
|
+
readonly from: "claimStakeInstance";
|
|
23
|
+
readonly kind: "stored";
|
|
24
|
+
readonly mechanism: "owner and celestialBodyId account fields";
|
|
25
|
+
readonly to: "character | celestialBody";
|
|
26
|
+
}, {
|
|
27
|
+
readonly from: "claimStakeInstance";
|
|
28
|
+
readonly kind: "nested";
|
|
29
|
+
readonly mechanism: "ProductionCore CargoPod value";
|
|
30
|
+
readonly to: "cargoPod";
|
|
31
|
+
}, {
|
|
32
|
+
readonly from: "claimStakeInstance";
|
|
33
|
+
readonly kind: "instruction-only";
|
|
34
|
+
readonly mechanism: "placement and harvesting co-accounts are not durable relations";
|
|
35
|
+
readonly to: "starbasePlayer | currencyCache";
|
|
36
|
+
}];
|
|
37
|
+
/** One translated building quantity on a Claim Stake.
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* declare const building: ClaimStakeBuildingData;
|
|
41
|
+
* console.log(building.buildingId, building.quantity);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export interface ClaimStakeBuildingData {
|
|
45
|
+
readonly buildingId: number;
|
|
46
|
+
readonly quantity: number;
|
|
47
|
+
}
|
|
48
|
+
/** One unresolved resource quantity in the nested production CargoPod.
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* declare const amount: ClaimStakeCargoAmountData;
|
|
52
|
+
* console.log(amount.cargoId, amount.amount);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export interface ClaimStakeCargoAmountData {
|
|
56
|
+
readonly cargoId: number;
|
|
57
|
+
readonly amount: bigint;
|
|
58
|
+
}
|
|
59
|
+
/** The translated nested production CargoPod.
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* declare const pod: ClaimStakeCargoPodData;
|
|
63
|
+
* console.log(pod.storageCost, pod.amounts);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export interface ClaimStakeCargoPodData {
|
|
67
|
+
readonly seqId: number;
|
|
68
|
+
readonly storageCost: bigint;
|
|
69
|
+
readonly amounts: readonly ClaimStakeCargoAmountData[];
|
|
70
|
+
}
|
|
71
|
+
/** One unresolved net resource production rate.
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* declare const resource: ClaimStakeResourceRateData;
|
|
75
|
+
* console.log(resource.ratePerSecond);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export interface ClaimStakeResourceRateData {
|
|
79
|
+
readonly cargoId: number;
|
|
80
|
+
readonly ratePerSecond: number;
|
|
81
|
+
readonly ratePerSecondRaw: bigint;
|
|
82
|
+
}
|
|
83
|
+
/** Stable translated Claim Stake lifecycle state.
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* declare const state: ClaimStakeStateData;
|
|
87
|
+
* console.log(state.kind);
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export type ClaimStakeStateData = {
|
|
91
|
+
readonly kind: 'active';
|
|
92
|
+
} | {
|
|
93
|
+
readonly kind: 'design';
|
|
94
|
+
readonly sequenceId: number;
|
|
95
|
+
readonly buildings: readonly ClaimStakeBuildingData[];
|
|
96
|
+
} | {
|
|
97
|
+
readonly kind: 'deactivated';
|
|
98
|
+
readonly deactivatedAtUnixSeconds: bigint;
|
|
99
|
+
};
|
|
100
|
+
/** Fully translated ClaimStakeInstance account data before registry joins.
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* declare const stake: ClaimStakeAccountData;
|
|
104
|
+
* console.log(stake.ownerCharacter, stake.body);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export interface ClaimStakeAccountData {
|
|
108
|
+
readonly version: number;
|
|
109
|
+
readonly ownerCharacter: Address;
|
|
110
|
+
readonly game: Address;
|
|
111
|
+
readonly body: Address;
|
|
112
|
+
readonly claimStakeDefinitionId: number;
|
|
113
|
+
readonly claimStakeDefinitionSeqId: number;
|
|
114
|
+
readonly buildingDefinitionSeqId: number;
|
|
115
|
+
readonly systemSeqId: bigint;
|
|
116
|
+
readonly lastRentAtUnixSeconds: bigint;
|
|
117
|
+
readonly constructionRemainingSeconds: bigint;
|
|
118
|
+
readonly constructionProgressAtUnixSeconds: bigint;
|
|
119
|
+
readonly rentBalanceRaw: bigint;
|
|
120
|
+
readonly neededCrew: number;
|
|
121
|
+
readonly buildings: readonly ClaimStakeBuildingData[];
|
|
122
|
+
readonly state: ClaimStakeStateData;
|
|
123
|
+
readonly production: {
|
|
124
|
+
readonly lastTickAtUnixSeconds: bigint;
|
|
125
|
+
readonly resourceCapacityRaw: bigint;
|
|
126
|
+
readonly netResources: readonly ClaimStakeResourceRateData[];
|
|
127
|
+
readonly cargoPod: ClaimStakeCargoPodData;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/** Stable ClaimStakeInstance account definition for the pinned C4 bindings. */
|
|
131
|
+
export declare const claimStakeAccountDefinition: C4AccountAdapter<ClaimStakeAccountData>;
|
|
132
|
+
/** Builds stable Claim Stake filters for one owning Character. */
|
|
133
|
+
export declare function buildClaimStakeCharacterDiscoveryFilters(game: Address, character: Address): readonly ProgramAccountFilter[];
|
|
134
|
+
/** Builds stable Claim Stake filters for one Celestial Body. */
|
|
135
|
+
export declare function buildClaimStakeBodyDiscoveryFilters(game: Address, body: Address): readonly ProgramAccountFilter[];
|
|
136
|
+
/** Discovers Claim Stakes owned by one Character. */
|
|
137
|
+
export declare function discoverClaimStakeAccountsByCharacter(context: SageContext, character: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<ClaimStakeAccountData>[]>;
|
|
138
|
+
/** Discovers Claim Stakes placed on one Celestial Body. */
|
|
139
|
+
export declare function discoverClaimStakeAccountsByBody(context: SageContext, body: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<ClaimStakeAccountData>[]>;
|
|
140
|
+
//# sourceMappingURL=claim-stake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-stake.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/claim-stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { CLAIM_STAKE_INSTANCE_DISCRIMINATOR, SAGE_PROGRAM_ADDRESS, getClaimStakeInstanceDecoder, } from '@staratlas/dev-sage';
|
|
2
|
+
import { getAddressEncoder } from '@solana/kit';
|
|
3
|
+
import { AccountDecodeError, InvalidAccountOwnerError, InvalidDiscriminatorError, MissingGameContextError, } from '../../client/errors.js';
|
|
4
|
+
const CLAIM_STAKE_MINIMUM_DATA_LENGTH = 196;
|
|
5
|
+
const CLAIM_STAKE_ACCOUNT_DISCRIMINATOR = Object.freeze(Array.from(CLAIM_STAKE_INSTANCE_DISCRIMINATOR));
|
|
6
|
+
/** Stable ClaimStakeInstance filter offsets verified against the pinned codec. */
|
|
7
|
+
export const CLAIM_STAKE_FILTER_OFFSETS = Object.freeze({
|
|
8
|
+
body: 73,
|
|
9
|
+
discriminator: 0,
|
|
10
|
+
game: 41,
|
|
11
|
+
owner: 9,
|
|
12
|
+
});
|
|
13
|
+
/** Audited Claim Stake relationships; ClaimStakeInstance has no PDA. */
|
|
14
|
+
export const CLAIM_STAKE_RELATIONSHIPS = Object.freeze([
|
|
15
|
+
{
|
|
16
|
+
from: 'character',
|
|
17
|
+
kind: 'discovered',
|
|
18
|
+
mechanism: 'targeted owner, Game, and discriminator filters',
|
|
19
|
+
to: 'claimStakeInstance[]',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
from: 'celestialBody',
|
|
23
|
+
kind: 'discovered',
|
|
24
|
+
mechanism: 'targeted celestialBodyId, Game, and discriminator filters',
|
|
25
|
+
to: 'claimStakeInstance[]',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
from: 'claimStakeInstance',
|
|
29
|
+
kind: 'stored',
|
|
30
|
+
mechanism: 'owner and celestialBodyId account fields',
|
|
31
|
+
to: 'character | celestialBody',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
from: 'claimStakeInstance',
|
|
35
|
+
kind: 'nested',
|
|
36
|
+
mechanism: 'ProductionCore CargoPod value',
|
|
37
|
+
to: 'cargoPod',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
from: 'claimStakeInstance',
|
|
41
|
+
kind: 'instruction-only',
|
|
42
|
+
mechanism: 'placement and harvesting co-accounts are not durable relations',
|
|
43
|
+
to: 'starbasePlayer | currencyCache',
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
46
|
+
function hasDiscriminator(data) {
|
|
47
|
+
return CLAIM_STAKE_ACCOUNT_DISCRIMINATOR.every((byte, index) => data[index] === byte);
|
|
48
|
+
}
|
|
49
|
+
function validateClaimStakeAccount(account) {
|
|
50
|
+
if (account.owner !== SAGE_PROGRAM_ADDRESS) {
|
|
51
|
+
throw new InvalidAccountOwnerError('claimStakeInstance', account.address, SAGE_PROGRAM_ADDRESS, account.owner);
|
|
52
|
+
}
|
|
53
|
+
if (account.data.length < CLAIM_STAKE_ACCOUNT_DISCRIMINATOR.length ||
|
|
54
|
+
!hasDiscriminator(account.data)) {
|
|
55
|
+
throw new InvalidDiscriminatorError('claimStakeInstance', account.address);
|
|
56
|
+
}
|
|
57
|
+
if (account.data.length < CLAIM_STAKE_MINIMUM_DATA_LENGTH) {
|
|
58
|
+
throw new AccountDecodeError('claimStakeInstance', account.address, new RangeError(`Expected at least ${CLAIM_STAKE_MINIMUM_DATA_LENGTH} ClaimStakeInstance account bytes, received ${account.data.length}.`));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function decodeExactly(account) {
|
|
62
|
+
try {
|
|
63
|
+
const [decoded, offset] = getClaimStakeInstanceDecoder().read(account.data, 0);
|
|
64
|
+
if (offset !== account.data.length) {
|
|
65
|
+
throw new RangeError(`Decoded ${offset} of ${account.data.length} ClaimStakeInstance account bytes; trailing bytes are not accepted.`);
|
|
66
|
+
}
|
|
67
|
+
return decoded;
|
|
68
|
+
}
|
|
69
|
+
catch (cause) {
|
|
70
|
+
throw new AccountDecodeError('claimStakeInstance', account.address, cause);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function buildings(values) {
|
|
74
|
+
return [...values].map(([buildingId, quantity]) => ({
|
|
75
|
+
buildingId,
|
|
76
|
+
quantity,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
function cargoPod(value) {
|
|
80
|
+
return {
|
|
81
|
+
amounts: [...value.amounts].map(([cargoId, amount]) => ({
|
|
82
|
+
amount,
|
|
83
|
+
cargoId,
|
|
84
|
+
})),
|
|
85
|
+
seqId: value.seqId,
|
|
86
|
+
storageCost: value.storageCost,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function state(value) {
|
|
90
|
+
switch (value.__kind) {
|
|
91
|
+
case 'Active':
|
|
92
|
+
return { kind: 'active' };
|
|
93
|
+
case 'Design':
|
|
94
|
+
return {
|
|
95
|
+
buildings: buildings(value.fields[0].buildings),
|
|
96
|
+
kind: 'design',
|
|
97
|
+
sequenceId: value.fields[0].sequenceId,
|
|
98
|
+
};
|
|
99
|
+
case 'Deactivated':
|
|
100
|
+
return {
|
|
101
|
+
deactivatedAtUnixSeconds: value.fields[0].deactivationTime,
|
|
102
|
+
kind: 'deactivated',
|
|
103
|
+
};
|
|
104
|
+
/* v8 ignore next -- assigning a new generated union variant fails compilation here. */
|
|
105
|
+
default: {
|
|
106
|
+
const exhaustive = value;
|
|
107
|
+
throw new RangeError(`Unsupported generated StructureInstanceState variant ${String(exhaustive)}.`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function translateClaimStake(value) {
|
|
112
|
+
return {
|
|
113
|
+
body: value.celestialBodyId,
|
|
114
|
+
buildingDefinitionSeqId: value.buildingDefinitionSeqId,
|
|
115
|
+
buildings: buildings(value.buildings),
|
|
116
|
+
claimStakeDefinitionId: value.claimStakeDefinitionId,
|
|
117
|
+
claimStakeDefinitionSeqId: value.claimStakeDefinitionSeqId,
|
|
118
|
+
constructionProgressAtUnixSeconds: value.constructionProgressTimestamp,
|
|
119
|
+
constructionRemainingSeconds: value.constructionRemaining,
|
|
120
|
+
game: value.gameId,
|
|
121
|
+
lastRentAtUnixSeconds: value.lastRentClockTimestamp,
|
|
122
|
+
neededCrew: value.neededCrew,
|
|
123
|
+
ownerCharacter: value.owner,
|
|
124
|
+
production: {
|
|
125
|
+
cargoPod: cargoPod(value.productionCore.cargoPod),
|
|
126
|
+
lastTickAtUnixSeconds: value.productionCore.lastTickTimestamp,
|
|
127
|
+
netResources: [...value.productionCore.netResourceProduction].map(([cargoId, rate]) => ({
|
|
128
|
+
cargoId,
|
|
129
|
+
ratePerSecond: rate.toNumber(),
|
|
130
|
+
ratePerSecondRaw: rate.raw,
|
|
131
|
+
})),
|
|
132
|
+
resourceCapacityRaw: value.productionCore.resourceStorage,
|
|
133
|
+
},
|
|
134
|
+
rentBalanceRaw: value.rentBalance,
|
|
135
|
+
state: state(value.state),
|
|
136
|
+
systemSeqId: value.systemSeqId,
|
|
137
|
+
version: value.version,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/** Stable ClaimStakeInstance account definition for the pinned C4 bindings. */
|
|
141
|
+
export const claimStakeAccountDefinition = Object.freeze({
|
|
142
|
+
decode(account) {
|
|
143
|
+
validateClaimStakeAccount(account);
|
|
144
|
+
return translateClaimStake(decodeExactly(account));
|
|
145
|
+
},
|
|
146
|
+
discriminator: CLAIM_STAKE_ACCOUNT_DISCRIMINATOR,
|
|
147
|
+
minimumDataLength: CLAIM_STAKE_MINIMUM_DATA_LENGTH,
|
|
148
|
+
programAddress: SAGE_PROGRAM_ADDRESS,
|
|
149
|
+
type: 'claimStakeInstance',
|
|
150
|
+
validate: validateClaimStakeAccount,
|
|
151
|
+
});
|
|
152
|
+
function discoveryFilters(game, offset, address) {
|
|
153
|
+
return Object.freeze([
|
|
154
|
+
{
|
|
155
|
+
bytes: new Uint8Array(CLAIM_STAKE_INSTANCE_DISCRIMINATOR),
|
|
156
|
+
offset: CLAIM_STAKE_FILTER_OFFSETS.discriminator,
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
bytes: new Uint8Array(getAddressEncoder().encode(game)),
|
|
160
|
+
offset: CLAIM_STAKE_FILTER_OFFSETS.game,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
bytes: new Uint8Array(getAddressEncoder().encode(address)),
|
|
164
|
+
offset,
|
|
165
|
+
},
|
|
166
|
+
]);
|
|
167
|
+
}
|
|
168
|
+
/** Builds stable Claim Stake filters for one owning Character. */
|
|
169
|
+
export function buildClaimStakeCharacterDiscoveryFilters(game, character) {
|
|
170
|
+
return discoveryFilters(game, CLAIM_STAKE_FILTER_OFFSETS.owner, character);
|
|
171
|
+
}
|
|
172
|
+
/** Builds stable Claim Stake filters for one Celestial Body. */
|
|
173
|
+
export function buildClaimStakeBodyDiscoveryFilters(game, body) {
|
|
174
|
+
return discoveryFilters(game, CLAIM_STAKE_FILTER_OFFSETS.body, body);
|
|
175
|
+
}
|
|
176
|
+
async function discoverClaimStakeAccounts(context, relatedAddress, relation, options = {}) {
|
|
177
|
+
const game = context.game;
|
|
178
|
+
if (game === undefined)
|
|
179
|
+
throw new MissingGameContextError();
|
|
180
|
+
const stakes = await context.data.discover(claimStakeAccountDefinition, {
|
|
181
|
+
...options,
|
|
182
|
+
filters: relation === 'character'
|
|
183
|
+
? buildClaimStakeCharacterDiscoveryFilters(game, relatedAddress)
|
|
184
|
+
: buildClaimStakeBodyDiscoveryFilters(game, relatedAddress),
|
|
185
|
+
strategy: 'targeted-program-accounts',
|
|
186
|
+
});
|
|
187
|
+
for (const stake of stakes) {
|
|
188
|
+
const matchesRelation = relation === 'character'
|
|
189
|
+
? stake.data.ownerCharacter === relatedAddress
|
|
190
|
+
: stake.data.body === relatedAddress;
|
|
191
|
+
if (stake.data.game !== game || !matchesRelation) {
|
|
192
|
+
throw new AccountDecodeError('claimStakeInstance', stake.address, new RangeError('The decoded ClaimStakeInstance fields contradicted its discovery filters.'), `A discovered Claim Stake candidate did not match the requested Game and ${relation} after decoding. Verify the provider, configured cluster, and pinned ClaimStakeInstance filter offsets before retrying.`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return stakes;
|
|
196
|
+
}
|
|
197
|
+
/** Discovers Claim Stakes owned by one Character. */
|
|
198
|
+
export function discoverClaimStakeAccountsByCharacter(context, character, options) {
|
|
199
|
+
return discoverClaimStakeAccounts(context, character, 'character', options);
|
|
200
|
+
}
|
|
201
|
+
/** Discovers Claim Stakes placed on one Celestial Body. */
|
|
202
|
+
export function discoverClaimStakeAccountsByBody(context, body, options) {
|
|
203
|
+
return discoverClaimStakeAccounts(context, body, 'body', options);
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=claim-stake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-stake.js","sourceRoot":"","sources":["../../../src/internal/c4/claim-stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { Address, DiscoveryRequest, ProgramAccountFilter, SageContext, SnapshotEnvelope } from '../../client/contracts.js';
|
|
2
|
+
import type { C4AccountAdapter } from './adapter.js';
|
|
3
|
+
export { LOOT_FILTER_OFFSETS } from './loot-layout.js';
|
|
4
|
+
/** Audited read and deferred-action relationships for the combat capability. */
|
|
5
|
+
export declare const COMBAT_RELATIONSHIPS: readonly [{
|
|
6
|
+
readonly from: "profile + faction";
|
|
7
|
+
readonly kind: "derived";
|
|
8
|
+
readonly mechanism: "OutlawFlag PDA seeds";
|
|
9
|
+
readonly to: "outlawFlag?";
|
|
10
|
+
}, {
|
|
11
|
+
readonly from: "loot";
|
|
12
|
+
readonly kind: "stored";
|
|
13
|
+
readonly mechanism: "Game, Profile, coordinates, and destroyer account fields";
|
|
14
|
+
readonly to: "game | profile | fleet";
|
|
15
|
+
}, {
|
|
16
|
+
readonly from: "combat";
|
|
17
|
+
readonly kind: "nested";
|
|
18
|
+
readonly mechanism: "Game config, Fleet combat state, and Loot items/reward legs";
|
|
19
|
+
readonly to: "configuration | fleetCombatStatus | lootInventory";
|
|
20
|
+
}, {
|
|
21
|
+
readonly from: "combat";
|
|
22
|
+
readonly kind: "instruction-only";
|
|
23
|
+
readonly mechanism: "attack, repair, stimulant, reward resolution, and sweep co-accounts are not durable relations";
|
|
24
|
+
readonly to: "actions";
|
|
25
|
+
}, {
|
|
26
|
+
readonly from: "game | profile";
|
|
27
|
+
readonly kind: "discovered";
|
|
28
|
+
readonly mechanism: "targeted Loot discriminator, Game, and Profile filters";
|
|
29
|
+
readonly to: "loot[]";
|
|
30
|
+
}];
|
|
31
|
+
export type CombatFaction = 'unaligned' | 'mud' | 'oni' | 'ustur';
|
|
32
|
+
export interface LootCargoAmountData {
|
|
33
|
+
readonly cargoId: number;
|
|
34
|
+
readonly amount: bigint;
|
|
35
|
+
}
|
|
36
|
+
export interface LootInventoryData {
|
|
37
|
+
readonly sequenceId: number;
|
|
38
|
+
readonly storageCostRaw: bigint;
|
|
39
|
+
readonly amounts: readonly LootCargoAmountData[];
|
|
40
|
+
}
|
|
41
|
+
export interface LootItemData {
|
|
42
|
+
readonly destroyer: Address;
|
|
43
|
+
readonly exclusivityUnlockAtUnixSeconds: bigint;
|
|
44
|
+
readonly rewardReclaimAtUnixSeconds: bigint;
|
|
45
|
+
readonly inventory: LootInventoryData;
|
|
46
|
+
}
|
|
47
|
+
export interface LootRewardLegData {
|
|
48
|
+
readonly recipient: Address;
|
|
49
|
+
readonly medallionsRaw: bigint;
|
|
50
|
+
readonly salvageTargetValueRaw: bigint;
|
|
51
|
+
}
|
|
52
|
+
export type LootRewardData = {
|
|
53
|
+
readonly kind: 'none';
|
|
54
|
+
} | {
|
|
55
|
+
readonly kind: 'committed' | 'resolved';
|
|
56
|
+
readonly configVersion: number;
|
|
57
|
+
readonly slot: bigint;
|
|
58
|
+
readonly committedAtUnixSeconds: bigint;
|
|
59
|
+
readonly legs: readonly LootRewardLegData[];
|
|
60
|
+
} | {
|
|
61
|
+
readonly kind: 'unknown';
|
|
62
|
+
readonly rawStatus: number;
|
|
63
|
+
readonly configVersion: number;
|
|
64
|
+
readonly slot: bigint;
|
|
65
|
+
readonly committedAtUnixSeconds: bigint;
|
|
66
|
+
readonly legs: readonly LootRewardLegData[];
|
|
67
|
+
};
|
|
68
|
+
/** Fully translated Loot account data before cargo-definition resolution. */
|
|
69
|
+
export interface LootAccountData {
|
|
70
|
+
readonly version: number;
|
|
71
|
+
readonly game: Address;
|
|
72
|
+
readonly profile: Address;
|
|
73
|
+
readonly coordinates: {
|
|
74
|
+
readonly x: number;
|
|
75
|
+
readonly y: number;
|
|
76
|
+
};
|
|
77
|
+
readonly reward: LootRewardData;
|
|
78
|
+
readonly items: readonly LootItemData[];
|
|
79
|
+
}
|
|
80
|
+
/** Fully translated OutlawFlag account data. */
|
|
81
|
+
export interface OutlawFlagAccountData {
|
|
82
|
+
readonly version: number;
|
|
83
|
+
readonly profile: Address;
|
|
84
|
+
readonly faction: CombatFaction;
|
|
85
|
+
readonly isOutlaw: boolean;
|
|
86
|
+
readonly declaredAtUnixSeconds: bigint;
|
|
87
|
+
readonly pvpUntilUnixSeconds: bigint;
|
|
88
|
+
readonly bump: number;
|
|
89
|
+
}
|
|
90
|
+
export declare const lootAccountDefinition: C4AccountAdapter<LootAccountData>;
|
|
91
|
+
export declare const outlawFlagAccountDefinition: C4AccountAdapter<OutlawFlagAccountData>;
|
|
92
|
+
/** Derives the optional OutlawFlag address for one Profile/faction pair. */
|
|
93
|
+
export declare function deriveOutlawFlagAddress(profile: Address, againstFaction: CombatFaction): Promise<Address>;
|
|
94
|
+
/** Builds stable targeted filters for Loot by Game and creator Profile. */
|
|
95
|
+
export declare function buildLootDiscoveryFilters(game: Address, profile: Address): readonly ProgramAccountFilter[];
|
|
96
|
+
/** Discovers Loot by stable Game/Profile fields and revalidates every decoded hint. */
|
|
97
|
+
export declare function discoverLootAccounts(context: SageContext, profile: Address, options?: Omit<DiscoveryRequest, 'filters' | 'strategy'>): Promise<readonly SnapshotEnvelope<LootAccountData>[]>;
|
|
98
|
+
//# sourceMappingURL=combat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/combat.ts"],"names":[],"mappings":"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"}
|