@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,222 @@
|
|
|
1
|
+
import { AccountRole, } from '@solana/kit';
|
|
2
|
+
import { InvalidActionInputError } from '../../client/errors.js';
|
|
3
|
+
import { playerProfile, sage } from '../c4/bindings.js';
|
|
4
|
+
const KEY_INDEX_MAX = 65_535;
|
|
5
|
+
/** Validates planning authorization before any instruction encoding or I/O. */
|
|
6
|
+
export function validatePlanAuthorization(authorization) {
|
|
7
|
+
if (!Number.isSafeInteger(authorization.keyIndex) ||
|
|
8
|
+
authorization.keyIndex < 0 ||
|
|
9
|
+
authorization.keyIndex > KEY_INDEX_MAX) {
|
|
10
|
+
throw new InvalidActionInputError('PlanAuthorization.keyIndex', authorization.keyIndex, 'an integer from 0 through 65535', 'Set PlanAuthorization.keyIndex to the selected Profile key index before planning this action.');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function readonlyAccount(address) {
|
|
14
|
+
return Object.freeze({ address, role: AccountRole.READONLY });
|
|
15
|
+
}
|
|
16
|
+
function writableAccount(address) {
|
|
17
|
+
return Object.freeze({ address, role: AccountRole.WRITABLE });
|
|
18
|
+
}
|
|
19
|
+
function readonlySignerAddress(address) {
|
|
20
|
+
return Object.freeze({ address, role: AccountRole.READONLY_SIGNER });
|
|
21
|
+
}
|
|
22
|
+
function writableSignerAddress(address) {
|
|
23
|
+
return Object.freeze({ address, role: AccountRole.WRITABLE_SIGNER });
|
|
24
|
+
}
|
|
25
|
+
function optionalReadonlyAccount(address, programAddress) {
|
|
26
|
+
return readonlyAccount(address ?? programAddress);
|
|
27
|
+
}
|
|
28
|
+
function optionalWritableAccount(address, programAddress) {
|
|
29
|
+
return address === undefined
|
|
30
|
+
? readonlyAccount(programAddress)
|
|
31
|
+
: writableAccount(address);
|
|
32
|
+
}
|
|
33
|
+
function getProgramAddress(config) {
|
|
34
|
+
return config.programAddress ?? sage.SAGE_PROGRAM_ADDRESS;
|
|
35
|
+
}
|
|
36
|
+
function authorizationAccounts(input, programAddress) {
|
|
37
|
+
validatePlanAuthorization(input.authorization);
|
|
38
|
+
return [
|
|
39
|
+
readonlySignerAddress(input.authorization.authority),
|
|
40
|
+
writableAccount(input.authorization.profile),
|
|
41
|
+
readonlyAccount(input.authorization.certificate ?? programAddress),
|
|
42
|
+
readonlyAccount(input.profileValidationProgram ??
|
|
43
|
+
playerProfile.PLAYER_PROFILE_PROGRAM_ADDRESS),
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
function createAddressOnlyInstruction(programAddress, accounts, data) {
|
|
47
|
+
return Object.freeze({
|
|
48
|
+
accounts: Object.freeze(accounts),
|
|
49
|
+
data,
|
|
50
|
+
programAddress,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function adaptDockedToIdleInstruction(input, config = {}) {
|
|
54
|
+
const programAddress = getProgramAddress(config);
|
|
55
|
+
const accounts = [
|
|
56
|
+
...authorizationAccounts(input, programAddress),
|
|
57
|
+
writableAccount(input.fleet),
|
|
58
|
+
readonlyAccount(input.systemAndStarbasePlayerSystem),
|
|
59
|
+
readonlyAccount(input.systemAndStarbasePlayerStarbasePlayer),
|
|
60
|
+
readonlyAccount(input.game),
|
|
61
|
+
];
|
|
62
|
+
const data = sage
|
|
63
|
+
.getDockedToIdleInstructionDataEncoder()
|
|
64
|
+
.encode({ keyIndex: input.authorization.keyIndex });
|
|
65
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
66
|
+
}
|
|
67
|
+
export function adaptIdleToDockedInstruction(input, config = {}) {
|
|
68
|
+
const programAddress = getProgramAddress(config);
|
|
69
|
+
const accounts = [
|
|
70
|
+
...authorizationAccounts(input, programAddress),
|
|
71
|
+
writableAccount(input.fleet),
|
|
72
|
+
readonlyAccount(input.systemAndStarbasePlayerSystem),
|
|
73
|
+
writableAccount(input.systemAndStarbasePlayerStarbasePlayer),
|
|
74
|
+
readonlyAccount(input.game),
|
|
75
|
+
];
|
|
76
|
+
const data = sage
|
|
77
|
+
.getIdleToDockedInstructionDataEncoder()
|
|
78
|
+
.encode({ keyIndex: input.authorization.keyIndex });
|
|
79
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
80
|
+
}
|
|
81
|
+
/** Adapts the generated bidirectional Fleet/Starbase cargo instruction without retaining a signer. */
|
|
82
|
+
export function adaptTransferCargoToFleetInstruction(input, config = {}) {
|
|
83
|
+
const programAddress = getProgramAddress(config);
|
|
84
|
+
const accounts = [
|
|
85
|
+
...authorizationAccounts(input, programAddress),
|
|
86
|
+
writableAccount(input.fleet),
|
|
87
|
+
readonlyAccount(input.game),
|
|
88
|
+
writableAccount(input.character),
|
|
89
|
+
readonlyAccount(input.systemAndStarbasePlayerSystem),
|
|
90
|
+
writableAccount(input.systemAndStarbasePlayerStarbasePlayer),
|
|
91
|
+
];
|
|
92
|
+
const data = sage.getTransferCargoToFleetInstructionDataEncoder().encode({
|
|
93
|
+
ammoBank: input.ammoBank,
|
|
94
|
+
cargoHold: input.cargoHold,
|
|
95
|
+
fuelTank: input.fuelTank,
|
|
96
|
+
keyIndex: input.authorization.keyIndex,
|
|
97
|
+
});
|
|
98
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
99
|
+
}
|
|
100
|
+
/** Adapts the generated within-Fleet cargo instruction without retaining a signer. */
|
|
101
|
+
export function adaptTransferCargoWithinFleetInstruction(input, config = {}) {
|
|
102
|
+
const programAddress = getProgramAddress(config);
|
|
103
|
+
const accounts = [
|
|
104
|
+
...authorizationAccounts(input, programAddress),
|
|
105
|
+
writableAccount(input.fleet),
|
|
106
|
+
readonlyAccount(input.game),
|
|
107
|
+
];
|
|
108
|
+
const data = sage.getTransferCargoWithinFleetInstructionDataEncoder().encode({
|
|
109
|
+
amount: input.amount,
|
|
110
|
+
cargoId: input.cargoId,
|
|
111
|
+
cargoPodFrom: input.cargoPodFrom,
|
|
112
|
+
cargoPodTo: input.cargoPodTo,
|
|
113
|
+
keyIndex: input.authorization.keyIndex,
|
|
114
|
+
});
|
|
115
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
116
|
+
}
|
|
117
|
+
/** Adapts StarbasePlayer registration with an address-only rent funder. */
|
|
118
|
+
export function adaptRegisterStarbasePlayerInstruction(input, config = {}) {
|
|
119
|
+
const programAddress = getProgramAddress(config);
|
|
120
|
+
const accounts = [
|
|
121
|
+
writableSignerAddress(input.funder),
|
|
122
|
+
readonlyAccount(input.game),
|
|
123
|
+
readonlyAccount(input.character),
|
|
124
|
+
readonlyAccount(input.profileFaction),
|
|
125
|
+
readonlyAccount(input.system),
|
|
126
|
+
writableAccount(input.starbasePlayer),
|
|
127
|
+
readonlyAccount(input.systemProgram ?? '11111111111111111111111111111111'),
|
|
128
|
+
optionalReadonlyAccount(input.factionRelationTracker, programAddress),
|
|
129
|
+
optionalReadonlyAccount(input.factionStanding, programAddress),
|
|
130
|
+
optionalReadonlyAccount(input.factionConfig, programAddress),
|
|
131
|
+
readonlyAccount(input.factionOwnership),
|
|
132
|
+
];
|
|
133
|
+
const data = sage
|
|
134
|
+
.getRegisterStarbasePlayerInstructionDataEncoder()
|
|
135
|
+
.encode({});
|
|
136
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
137
|
+
}
|
|
138
|
+
/** Adapts movement arrival settlement with an address-only rent funder. */
|
|
139
|
+
export function adaptFleetSettleArrivalInstruction(input, config = {}) {
|
|
140
|
+
const programAddress = getProgramAddress(config);
|
|
141
|
+
const accounts = [
|
|
142
|
+
writableSignerAddress(input.funder),
|
|
143
|
+
writableAccount(input.fleet),
|
|
144
|
+
readonlyAccount(input.game),
|
|
145
|
+
optionalReadonlyAccount(undefined, programAddress),
|
|
146
|
+
optionalWritableAccount(undefined, programAddress),
|
|
147
|
+
writableAccount(input.character),
|
|
148
|
+
];
|
|
149
|
+
const data = sage
|
|
150
|
+
.getTheOneFleetStateHandlerInstructionDataEncoder()
|
|
151
|
+
.encode({});
|
|
152
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
153
|
+
}
|
|
154
|
+
export function adaptStartSubwarpInstruction(input, config = {}) {
|
|
155
|
+
const programAddress = getProgramAddress(config);
|
|
156
|
+
const accounts = [
|
|
157
|
+
...authorizationAccounts(input, programAddress),
|
|
158
|
+
writableAccount(input.character),
|
|
159
|
+
writableAccount(input.fleet),
|
|
160
|
+
readonlyAccount(input.game),
|
|
161
|
+
readonlyAccount(input.regionTracker),
|
|
162
|
+
optionalWritableAccount(input.crewBinding, programAddress),
|
|
163
|
+
];
|
|
164
|
+
const data = sage.getStartSubwarpInstructionDataEncoder().encode({
|
|
165
|
+
destRegionId: input.destRegionId,
|
|
166
|
+
keyIndex: input.authorization.keyIndex,
|
|
167
|
+
startRegionId: input.startRegionId,
|
|
168
|
+
toCoordinate: input.toCoordinate,
|
|
169
|
+
});
|
|
170
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
171
|
+
}
|
|
172
|
+
export function adaptStopSubwarpInstruction(input, config = {}) {
|
|
173
|
+
const programAddress = getProgramAddress(config);
|
|
174
|
+
const accounts = [
|
|
175
|
+
...authorizationAccounts(input, programAddress),
|
|
176
|
+
writableAccount(input.character),
|
|
177
|
+
writableAccount(input.fleet),
|
|
178
|
+
readonlyAccount(input.game),
|
|
179
|
+
readonlyAccount(input.regionTracker),
|
|
180
|
+
];
|
|
181
|
+
const data = sage.getStopSubwarpInstructionDataEncoder().encode({
|
|
182
|
+
keyIndex: input.authorization.keyIndex,
|
|
183
|
+
});
|
|
184
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
185
|
+
}
|
|
186
|
+
export function adaptWarpToCoordinateInstruction(input, config = {}) {
|
|
187
|
+
const programAddress = getProgramAddress(config);
|
|
188
|
+
const accounts = [
|
|
189
|
+
...authorizationAccounts(input, programAddress),
|
|
190
|
+
writableAccount(input.character),
|
|
191
|
+
writableAccount(input.fleet),
|
|
192
|
+
readonlyAccount(input.game),
|
|
193
|
+
readonlyAccount(input.regionTracker),
|
|
194
|
+
optionalWritableAccount(input.crewBinding, programAddress),
|
|
195
|
+
];
|
|
196
|
+
const data = sage.getWarpToCoordinateInstructionDataEncoder().encode({
|
|
197
|
+
destRegionId: input.destRegionId,
|
|
198
|
+
destination: input.destination,
|
|
199
|
+
keyIndex: input.authorization.keyIndex,
|
|
200
|
+
startRegionId: input.startRegionId,
|
|
201
|
+
});
|
|
202
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
203
|
+
}
|
|
204
|
+
export function adaptWarpLaneInstruction(input, config = {}) {
|
|
205
|
+
const programAddress = getProgramAddress(config);
|
|
206
|
+
const accounts = [
|
|
207
|
+
...authorizationAccounts(input, programAddress),
|
|
208
|
+
writableAccount(input.character),
|
|
209
|
+
writableAccount(input.fleet),
|
|
210
|
+
readonlyAccount(input.game),
|
|
211
|
+
readonlyAccount(input.fromSystem),
|
|
212
|
+
readonlyAccount(input.toSystem),
|
|
213
|
+
writableAccount(input.currencyCache),
|
|
214
|
+
readonlyAccount(input.factionRelationTracker),
|
|
215
|
+
readonlyAccount(input.regionTracker),
|
|
216
|
+
];
|
|
217
|
+
const data = sage
|
|
218
|
+
.getWarpLaneInstructionDataEncoder()
|
|
219
|
+
.encode({ keyIndex: input.authorization.keyIndex });
|
|
220
|
+
return createAddressOnlyInstruction(programAddress, accounts, data);
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=authorization-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-adapter.js","sourceRoot":"","sources":["../../../src/internal/planning/authorization-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAOZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAsExD,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CACvC,aAAgC;IAEhC,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC7C,aAAa,CAAC,QAAQ,GAAG,CAAC;QAC1B,aAAa,CAAC,QAAQ,GAAG,aAAa,EACtC,CAAC;QACD,MAAM,IAAI,uBAAuB,CAC/B,4BAA4B,EAC5B,aAAa,CAAC,QAAQ,EACtB,iCAAiC,EACjC,+FAA+F,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAA4B,EAC5B,cAAuB;IAEvB,OAAO,eAAe,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAA4B,EAC5B,cAAuB;IAEvB,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;QACjC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAoC;IAC7D,OAAO,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;AAC5D,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAGC,EACD,cAAuB;IAEvB,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/C,OAAO;QACL,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;QAC5C,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,IAAI,cAAc,CAAC;QAClE,eAAe,CACb,KAAK,CAAC,wBAAwB;YAC5B,aAAa,CAAC,8BAA8B,CAC/C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,cAAuB,EACvB,QAAgC,EAChC,IAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI;QACJ,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAmC,EACnC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,6BAA6B,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,qCAAqC,CAAC;QAC5D,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,IAAI,GAAG,IAAI;SACd,qCAAqC,EAAE;SACvC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAmC,EACnC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,6BAA6B,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,qCAAqC,CAAC;QAC5D,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,IAAI,GAAG,IAAI;SACd,qCAAqC,EAAE;SACvC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,oCAAoC,CAClD,KAA2C,EAC3C,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,6BAA6B,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,qCAAqC,CAAC;KAC7D,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,6CAA6C,EAAE,CAAC,MAAM,CAAC;QACvE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;KACvC,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,wCAAwC,CACtD,KAA+C,EAC/C,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,iDAAiD,EAAE,CAAC,MAAM,CAAC;QAC3E,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;KACvC,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,sCAAsC,CACpD,KAA6C,EAC7C,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;QACrC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;QACrC,eAAe,CACb,KAAK,CAAC,aAAa,IAAK,kCAA8C,CACvE;QACD,uBAAuB,CAAC,KAAK,CAAC,sBAAsB,EAAE,cAAc,CAAC;QACrE,uBAAuB,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC;QAC9D,uBAAuB,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC;QAC5D,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;KACxC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI;SACd,+CAA+C,EAAE;SACjD,MAAM,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kCAAkC,CAChD,KAAyC,EACzC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,uBAAuB,CAAC,SAAS,EAAE,cAAc,CAAC;QAClD,uBAAuB,CAAC,SAAS,EAAE,cAAc,CAAC;QAClD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;KACjC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI;SACd,gDAAgD,EAAE;SAClD,MAAM,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAmC,EACnC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;QACpC,uBAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC;KAC3D,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC;QAC/D,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAkC,EAClC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;KACrC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC,MAAM,CAAC;QAC9D,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;KACvC,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAuC,EACvC,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;QACpC,uBAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC;KAC3D,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,yCAAyC,EAAE,CAAC,MAAM,CAAC;QACnE,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAC;IACH,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAA+B,EAC/B,SAAuC,EAAE;IAEzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;QAC/C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;QACjC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;QACpC,eAAe,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC7C,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;KACrC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI;SACd,iCAAiC,EAAE;SACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,4BAA4B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Commitment, DataSourceIdentity, DiscoveryStrategy } from '../client/contracts.js';
|
|
2
|
+
/** Provenance attached non-enumerably to finder results.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* declare const fleets: object;
|
|
7
|
+
* const meta: ReadMeta | undefined = readMeta(fleets);
|
|
8
|
+
* if (meta) console.log(meta.strategy, meta.slot);
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export interface ReadMeta {
|
|
12
|
+
readonly strategy: DiscoveryStrategy;
|
|
13
|
+
/** Earliest source slot across the result, or `0n` when it is empty. */
|
|
14
|
+
readonly slot: bigint;
|
|
15
|
+
readonly commitment: Commitment;
|
|
16
|
+
readonly source: DataSourceIdentity;
|
|
17
|
+
readonly filters?: readonly ReadMetaFilter[];
|
|
18
|
+
readonly indexer?: IndexerValidationMeta;
|
|
19
|
+
readonly walletProfiles?: WalletProfileValidationMeta;
|
|
20
|
+
/** Returns a JSON-safe copy with bigints as strings and filter bytes as arrays. */
|
|
21
|
+
toJSON(): unknown;
|
|
22
|
+
}
|
|
23
|
+
/** Conservative validation summary for address hints returned by an indexer.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const summary: IndexerValidationMeta = {
|
|
28
|
+
* candidateCount: 3,
|
|
29
|
+
* duplicateCount: 1,
|
|
30
|
+
* missingCount: 1,
|
|
31
|
+
* validatedCount: 1,
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export interface IndexerValidationMeta {
|
|
36
|
+
readonly candidateCount: number;
|
|
37
|
+
readonly duplicateCount: number;
|
|
38
|
+
readonly missingCount: number;
|
|
39
|
+
readonly validatedCount: number;
|
|
40
|
+
}
|
|
41
|
+
/** Validation summary for wallet-to-Profile address hints.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const summary: WalletProfileValidationMeta = {
|
|
46
|
+
* candidateCount: 3,
|
|
47
|
+
* duplicateCount: 1,
|
|
48
|
+
* missingCount: 1,
|
|
49
|
+
* validatedCount: 1,
|
|
50
|
+
* };
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export interface WalletProfileValidationMeta {
|
|
54
|
+
readonly candidateCount: number;
|
|
55
|
+
readonly duplicateCount: number;
|
|
56
|
+
readonly missingCount: number;
|
|
57
|
+
readonly validatedCount: number;
|
|
58
|
+
}
|
|
59
|
+
/** Immutable JSON-safe filter provenance exposed by {@link readMeta}.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const filter: ReadMetaFilter = { offset: 0, bytes: [1, 2] };
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export interface ReadMetaFilter {
|
|
67
|
+
readonly offset: number;
|
|
68
|
+
readonly bytes: readonly number[];
|
|
69
|
+
}
|
|
70
|
+
type ReadMetaInput = Omit<ReadMeta, 'toJSON'>;
|
|
71
|
+
/** Returns finder provenance without wrapping the finder result.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* declare const ctx: SageContext;
|
|
76
|
+
* declare const profileAddress: Address;
|
|
77
|
+
* const fleets = await getFleetsByOwner(ctx, profileAddress);
|
|
78
|
+
* const meta = readMeta(fleets);
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function readMeta(result: object): ReadMeta | undefined;
|
|
82
|
+
export declare function attachReadMeta<T extends object>(result: T, meta: ReadMeta | ReadMetaInput): T;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=read-meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-meta.d.ts","sourceRoot":"","sources":["../../src/internal/read-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAShC;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC;IACtD,mFAAmF;IACnF,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE7D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,QAAQ,GAAG,aAAa,GAC7B,CAAC,CAaH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { attachJsonSerialization } from './json.js';
|
|
2
|
+
const READ_META = Symbol('aephia.sage.readMeta');
|
|
3
|
+
/** Returns finder provenance without wrapping the finder result.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* declare const ctx: SageContext;
|
|
8
|
+
* declare const profileAddress: Address;
|
|
9
|
+
* const fleets = await getFleetsByOwner(ctx, profileAddress);
|
|
10
|
+
* const meta = readMeta(fleets);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export function readMeta(result) {
|
|
14
|
+
return result[READ_META];
|
|
15
|
+
}
|
|
16
|
+
export function attachReadMeta(result, meta) {
|
|
17
|
+
const serializedMeta = Object.freeze(attachJsonSerialization({
|
|
18
|
+
...meta,
|
|
19
|
+
}));
|
|
20
|
+
Object.defineProperty(result, READ_META, {
|
|
21
|
+
configurable: false,
|
|
22
|
+
enumerable: false,
|
|
23
|
+
value: serializedMeta,
|
|
24
|
+
writable: false,
|
|
25
|
+
});
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=read-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-meta.js","sourceRoot":"","sources":["../../src/internal/read-meta.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAgFjD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAQ,MAA0B,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAS,EACT,IAA8B;IAE9B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,uBAAuB,CAAC;QACtB,GAAG,IAAI;KACR,CAAC,CACH,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;QACvC,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-snapshot.d.ts","sourceRoot":"","sources":["../../src/internal/resolved-snapshot.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQrD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Recursively freezes an SDK-owned resolved snapshot tree. */
|
|
2
|
+
export function freezeResolvedSnapshot(value) {
|
|
3
|
+
if (value === null || typeof value !== 'object' || Object.isFrozen(value)) {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
for (const nested of Object.values(value)) {
|
|
7
|
+
freezeResolvedSnapshot(nested);
|
|
8
|
+
}
|
|
9
|
+
return Object.freeze(value);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=resolved-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-snapshot.js","sourceRoot":"","sources":["../../src/internal/resolved-snapshot.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,UAAU,sBAAsB,CAAI,KAAQ;IAChD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AccountProvider, SageRpc } from '../../client/contracts.js';
|
|
2
|
+
interface ZinkProviderLimits {
|
|
3
|
+
readonly maxAccountDataBytes: number;
|
|
4
|
+
readonly maxDiscoveryResults: number;
|
|
5
|
+
}
|
|
6
|
+
/** Creates a raw, read-only z.ink account provider without performing network I/O. */
|
|
7
|
+
export declare function createZinkProvider(rpc: SageRpc, cluster: string, limits?: ZinkProviderLimits): AccountProvider;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/zink/provider.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,eAAe,EAMf,OAAO,EACR,MAAM,2BAA2B,CAAC;AAmBnC,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AA8ID,sFAAsF;AACtF,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,kBAGP,GACA,eAAe,CAmLjB"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { getBase58Decoder, getBase64Encoder, isAddress, isSolanaError, SOLANA_ERROR__JSON_RPC__INVALID_PARAMS, } from '@solana/kit';
|
|
2
|
+
import { ProviderError, ResourceLimitExceededError, } from '../../client/errors.js';
|
|
3
|
+
const DEFAULT_COMMITMENT = 'confirmed';
|
|
4
|
+
const DEFAULT_MAX_ACCOUNT_DATA_BYTES = 4 * 1024 * 1024;
|
|
5
|
+
const DEFAULT_MAX_DISCOVERY_RESULTS = 10_000;
|
|
6
|
+
const GET_MULTIPLE_ACCOUNTS_LIMIT = 100;
|
|
7
|
+
const MAX_CONCURRENT_MULTIPLE_ACCOUNT_REQUESTS = 4;
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return value !== null && typeof value === 'object';
|
|
10
|
+
}
|
|
11
|
+
function invalidResponse() {
|
|
12
|
+
return new ProviderError('The z.ink RPC returned an invalid account response. Check the configured endpoint and installed @solana/kit version, then retry.');
|
|
13
|
+
}
|
|
14
|
+
function parseSlot(value) {
|
|
15
|
+
if (!isRecord(value) || typeof value.slot !== 'bigint') {
|
|
16
|
+
throw invalidResponse();
|
|
17
|
+
}
|
|
18
|
+
return value.slot;
|
|
19
|
+
}
|
|
20
|
+
function parseRpcAccount(value) {
|
|
21
|
+
if (!isRecord(value) ||
|
|
22
|
+
!Array.isArray(value.data) ||
|
|
23
|
+
value.data.length !== 2 ||
|
|
24
|
+
typeof value.data[0] !== 'string' ||
|
|
25
|
+
value.data[1] !== 'base64' ||
|
|
26
|
+
typeof value.executable !== 'boolean' ||
|
|
27
|
+
typeof value.lamports !== 'bigint' ||
|
|
28
|
+
typeof value.owner !== 'string' ||
|
|
29
|
+
!isAddress(value.owner)) {
|
|
30
|
+
throw invalidResponse();
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
data: [value.data[0], 'base64'],
|
|
34
|
+
executable: value.executable,
|
|
35
|
+
lamports: value.lamports,
|
|
36
|
+
owner: value.owner,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function toRawAccount(address, value, slot, commitment, maxAccountDataBytes = DEFAULT_MAX_ACCOUNT_DATA_BYTES) {
|
|
40
|
+
const account = parseRpcAccount(value);
|
|
41
|
+
const maximumEncodedLength = Math.ceil(maxAccountDataBytes / 3) * 4;
|
|
42
|
+
if (account.data[0].length > maximumEncodedLength) {
|
|
43
|
+
const estimatedDecodedByteUpperBound = Math.floor((account.data[0].length * 3) / 4);
|
|
44
|
+
throw new ResourceLimitExceededError('account data bytes', estimatedDecodedByteUpperBound, maxAccountDataBytes);
|
|
45
|
+
}
|
|
46
|
+
let data;
|
|
47
|
+
try {
|
|
48
|
+
data = Uint8Array.from(getBase64Encoder().encode(account.data[0]));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
throw invalidResponse();
|
|
52
|
+
}
|
|
53
|
+
if (data.byteLength > maxAccountDataBytes) {
|
|
54
|
+
throw new ResourceLimitExceededError('account data bytes', data.byteLength, maxAccountDataBytes);
|
|
55
|
+
}
|
|
56
|
+
return Object.freeze({
|
|
57
|
+
address,
|
|
58
|
+
commitment,
|
|
59
|
+
data,
|
|
60
|
+
executable: account.executable,
|
|
61
|
+
lamports: account.lamports,
|
|
62
|
+
owner: account.owner,
|
|
63
|
+
slot,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function throwIfAborted(signal) {
|
|
67
|
+
if (signal?.aborted === true) {
|
|
68
|
+
throw signal.reason;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async function sendRpc(send, signal, operation) {
|
|
72
|
+
throwIfAborted(signal);
|
|
73
|
+
try {
|
|
74
|
+
return await send();
|
|
75
|
+
}
|
|
76
|
+
catch (cause) {
|
|
77
|
+
if (signal?.aborted === true) {
|
|
78
|
+
throw signal.reason;
|
|
79
|
+
}
|
|
80
|
+
if (isSolanaError(cause, SOLANA_ERROR__JSON_RPC__INVALID_PARAMS)) {
|
|
81
|
+
throw new ProviderError(`The z.ink RPC rejected the ${operation} as invalid. Verify the request addresses and filters, then retry with corrected values.`);
|
|
82
|
+
}
|
|
83
|
+
throw new ProviderError(`The z.ink RPC provider could not complete the ${operation}. Check the configured endpoint and network availability, then retry.`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function getCommitment(commitment) {
|
|
87
|
+
return commitment ?? DEFAULT_COMMITMENT;
|
|
88
|
+
}
|
|
89
|
+
function getSendOptions(signal) {
|
|
90
|
+
return signal === undefined ? {} : { abortSignal: signal };
|
|
91
|
+
}
|
|
92
|
+
function getRpcFilters(filters) {
|
|
93
|
+
return filters.map((filter) => {
|
|
94
|
+
if (!Number.isSafeInteger(filter.offset) || filter.offset < 0) {
|
|
95
|
+
throw new ProviderError('A z.ink program-account filter offset must be a non-negative safe integer. Correct the adapter-verified byte offset before retrying discovery.');
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
memcmp: {
|
|
99
|
+
bytes: getBase58Decoder().decode(filter.bytes),
|
|
100
|
+
encoding: 'base58',
|
|
101
|
+
offset: BigInt(filter.offset),
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/** Creates a raw, read-only z.ink account provider without performing network I/O. */
|
|
107
|
+
export function createZinkProvider(rpc, cluster, limits = {
|
|
108
|
+
maxAccountDataBytes: DEFAULT_MAX_ACCOUNT_DATA_BYTES,
|
|
109
|
+
maxDiscoveryResults: DEFAULT_MAX_DISCOVERY_RESULTS,
|
|
110
|
+
}) {
|
|
111
|
+
const identity = Object.freeze({
|
|
112
|
+
kind: 'rpc',
|
|
113
|
+
name: cluster,
|
|
114
|
+
});
|
|
115
|
+
const readAccount = async (address, options = {}) => {
|
|
116
|
+
const commitment = getCommitment(options.commitment);
|
|
117
|
+
const response = await sendRpc(() => rpc
|
|
118
|
+
.getAccountInfo(address, { commitment, encoding: 'base64' })
|
|
119
|
+
.send(getSendOptions(options.signal)), options.signal, 'account read');
|
|
120
|
+
const slot = parseSlot(response.context);
|
|
121
|
+
return response.value === null
|
|
122
|
+
? undefined
|
|
123
|
+
: toRawAccount(address, response.value, slot, commitment, limits.maxAccountDataBytes);
|
|
124
|
+
};
|
|
125
|
+
const readAccounts = async (addresses, options = {}) => {
|
|
126
|
+
throwIfAborted(options.signal);
|
|
127
|
+
if (addresses.length === 0) {
|
|
128
|
+
return Object.freeze([]);
|
|
129
|
+
}
|
|
130
|
+
const commitment = getCommitment(options.commitment);
|
|
131
|
+
const chunks = [];
|
|
132
|
+
for (let offset = 0; offset < addresses.length; offset += GET_MULTIPLE_ACCOUNTS_LIMIT) {
|
|
133
|
+
chunks.push(addresses.slice(offset, offset + GET_MULTIPLE_ACCOUNTS_LIMIT));
|
|
134
|
+
}
|
|
135
|
+
const batchController = new AbortController();
|
|
136
|
+
const abortBatch = () => batchController.abort(options.signal?.reason);
|
|
137
|
+
options.signal?.addEventListener('abort', abortBatch, { once: true });
|
|
138
|
+
const results = new Array(chunks.length);
|
|
139
|
+
let nextChunkIndex = 0;
|
|
140
|
+
try {
|
|
141
|
+
const worker = async () => {
|
|
142
|
+
while (nextChunkIndex < chunks.length) {
|
|
143
|
+
throwIfAborted(batchController.signal);
|
|
144
|
+
const chunkIndex = nextChunkIndex++;
|
|
145
|
+
const chunk = chunks[chunkIndex];
|
|
146
|
+
try {
|
|
147
|
+
const response = await sendRpc(() => rpc
|
|
148
|
+
.getMultipleAccounts(chunk, {
|
|
149
|
+
commitment,
|
|
150
|
+
encoding: 'base64',
|
|
151
|
+
})
|
|
152
|
+
.send(getSendOptions(batchController.signal)), batchController.signal, 'multiple-account read');
|
|
153
|
+
const slot = parseSlot(response.context);
|
|
154
|
+
if (!Array.isArray(response.value) ||
|
|
155
|
+
response.value.length !== chunk.length) {
|
|
156
|
+
throw invalidResponse();
|
|
157
|
+
}
|
|
158
|
+
results[chunkIndex] = response.value.map((value, index) => value === null
|
|
159
|
+
? undefined
|
|
160
|
+
: toRawAccount(chunk[index], value, slot, commitment, limits.maxAccountDataBytes));
|
|
161
|
+
}
|
|
162
|
+
catch (cause) {
|
|
163
|
+
if (!batchController.signal.aborted) {
|
|
164
|
+
batchController.abort(cause);
|
|
165
|
+
}
|
|
166
|
+
throw cause;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
await Promise.all(Array.from({
|
|
171
|
+
length: Math.min(chunks.length, MAX_CONCURRENT_MULTIPLE_ACCOUNT_REQUESTS),
|
|
172
|
+
}, worker));
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
options.signal?.removeEventListener('abort', abortBatch);
|
|
176
|
+
}
|
|
177
|
+
return Object.freeze(results.flat());
|
|
178
|
+
};
|
|
179
|
+
const discoverAccounts = async (request) => {
|
|
180
|
+
const commitment = getCommitment(request.commitment);
|
|
181
|
+
const filters = getRpcFilters(request.filters);
|
|
182
|
+
const response = await sendRpc(() => rpc
|
|
183
|
+
.getProgramAccounts(request.programAddress, {
|
|
184
|
+
commitment,
|
|
185
|
+
encoding: 'base64',
|
|
186
|
+
filters,
|
|
187
|
+
withContext: true,
|
|
188
|
+
})
|
|
189
|
+
.send(getSendOptions(request.signal)), request.signal, 'program-account discovery');
|
|
190
|
+
const slot = parseSlot(response.context);
|
|
191
|
+
if (!Array.isArray(response.value)) {
|
|
192
|
+
throw invalidResponse();
|
|
193
|
+
}
|
|
194
|
+
if (response.value.length > limits.maxDiscoveryResults) {
|
|
195
|
+
throw new ResourceLimitExceededError('discovery results', response.value.length, limits.maxDiscoveryResults);
|
|
196
|
+
}
|
|
197
|
+
return Object.freeze(response.value.map((entry) => {
|
|
198
|
+
if (!isRecord(entry) ||
|
|
199
|
+
typeof entry.pubkey !== 'string' ||
|
|
200
|
+
!isAddress(entry.pubkey)) {
|
|
201
|
+
throw invalidResponse();
|
|
202
|
+
}
|
|
203
|
+
return toRawAccount(entry.pubkey, entry.account, slot, commitment, limits.maxAccountDataBytes);
|
|
204
|
+
}));
|
|
205
|
+
};
|
|
206
|
+
return Object.freeze({
|
|
207
|
+
discoverAccounts,
|
|
208
|
+
identity,
|
|
209
|
+
readAccount,
|
|
210
|
+
readAccounts,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/zink/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,sCAAsC,GAGvC,MAAM,aAAa,CAAC;AAWrB,OAAO,EACL,aAAa,EACb,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,kBAAkB,GAAe,WAAW,CAAC;AACnD,MAAM,8BAA8B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACvD,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAC7C,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,wCAAwC,GAAG,CAAC,CAAC;AAcnD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrD,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,aAAa,CACtB,kIAAkI,CACnI,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC1B,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS;QACrC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EACvB,CAAC;QACD,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAAgB,EAChB,KAAc,EACd,IAAY,EACZ,UAAsB,EACtB,mBAAmB,GAAG,8BAA8B;IAEpD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAClD,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAC/C,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CACjC,CAAC;QACF,MAAM,IAAI,0BAA0B,CAClC,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,CACpB,CAAC;IACJ,CAAC;IACD,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,UAAU,CAAC,IAAI,CACpB,gBAAgB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAuB,CAAC,CACjE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,GAAG,mBAAmB,EAAE,CAAC;QAC1C,MAAM,IAAI,0BAA0B,CAClC,oBAAoB,EACpB,IAAI,CAAC,UAAU,EACf,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,UAAU;QACV,IAAI;QACJ,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IAC1C,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,IAAsB,EACtB,MAA+B,EAC/B,SAAiB;IAEjB,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,EAAE,sCAAsC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,aAAa,CACrB,8BAA8B,SAAS,0FAA0F,CAClI,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,iDAAiD,SAAS,uEAAuE,CAClI,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAAuB;IAC5C,OAAO,UAAU,IAAI,kBAAkB,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IAC1C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC;IAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,aAAa,CACrB,gJAAgJ,CACjJ,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAuB;gBACpE,QAAQ,EAAE,QAAiB;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAChC,GAAY,EACZ,OAAe,EACf,SAA6B;IAC3B,mBAAmB,EAAE,8BAA8B;IACnD,mBAAmB,EAAE,6BAA6B;CACnD;IAED,MAAM,QAAQ,GAAuB,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,MAAM,WAAW,GAAmC,KAAK,EACvD,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,EAAE;QACF,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,GAAG,EAAE,CACH,GAAG;aACA,cAAc,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;aAC3D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACzC,OAAO,CAAC,MAAM,EACd,cAAc,CACf,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC,KAAK,KAAK,IAAI;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,YAAY,CACV,OAAO,EACP,QAAQ,CAAC,KAAK,EACd,IAAI,EACJ,UAAU,EACV,MAAM,CAAC,mBAAmB,CAC3B,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,YAAY,GAAiD,KAAK,EACtE,SAAS,EACT,OAAO,GAAG,EAAE,EACZ,EAAE;QACF,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KACE,IAAI,MAAM,GAAG,CAAC,EACd,MAAM,GAAG,SAAS,CAAC,MAAM,EACzB,MAAM,IAAI,2BAA2B,EACrC,CAAC;YACD,MAAM,CAAC,IAAI,CACT,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,OAAO,GAA4C,IAAI,KAAK,CAChE,MAAM,CAAC,MAAM,CACd,CAAC;QACF,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;gBACxB,OAAO,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACvC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAE,CAAC;oBAClC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,GAAG,EAAE,CACH,GAAG;6BACA,mBAAmB,CAAC,KAAK,EAAE;4BAC1B,UAAU;4BACV,QAAQ,EAAE,QAAQ;yBACnB,CAAC;6BACD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EACjD,eAAe,CAAC,MAAM,EACtB,uBAAuB,CACxB,CAAC;wBACF,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBACzC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EACtC,CAAC;4BACD,MAAM,eAAe,EAAE,CAAC;wBAC1B,CAAC;wBACD,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACxD,KAAK,KAAK,IAAI;4BACZ,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,YAAY,CACV,KAAK,CAAC,KAAK,CAAE,EACb,KAAK,EACL,IAAI,EACJ,UAAU,EACV,MAAM,CAAC,mBAAmB,CAC3B,CACN,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACpC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC/B,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CACR;gBACE,MAAM,EAAE,IAAI,CAAC,GAAG,CACd,MAAM,CAAC,MAAM,EACb,wCAAwC,CACzC;aACF,EACD,MAAM,CACP,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAwC,KAAK,EACjE,OAAO,EACP,EAAE;QACF,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,GAAG,EAAE,CACH,GAAG;aACA,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE;YAC1C,UAAU;YACV,QAAQ,EAAE,QAAQ;YAClB,OAAO;YACP,WAAW,EAAE,IAAI;SAClB,CAAC;aACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACzC,OAAO,CAAC,MAAM,EACd,2BAA2B,CAC5B,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACvD,MAAM,IAAI,0BAA0B,CAClC,mBAAmB,EACnB,QAAQ,CAAC,KAAK,CAAC,MAAM,EACrB,MAAM,CAAC,mBAAmB,CAC3B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAChC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACxB,CAAC;gBACD,MAAM,eAAe,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,YAAY,CACjB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,OAAO,EACb,IAAI,EACJ,UAAU,EACV,MAAM,CAAC,mBAAmB,CAC3B,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,gBAAgB;QAChB,QAAQ;QACR,WAAW;QACX,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
|