@aephia/atlas-kit 0.6.0-next.3 → 0.6.0-next.31

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.
Files changed (226) hide show
  1. package/README.md +4 -1
  2. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  3. package/dist/cargo/actions/deposit.js +51 -9
  4. package/dist/cargo/actions/deposit.js.map +1 -1
  5. package/dist/cargo/actions/wallet-context.d.ts +2 -3
  6. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  7. package/dist/cargo/actions/wallet-context.js +6 -33
  8. package/dist/cargo/actions/wallet-context.js.map +1 -1
  9. package/dist/cargo/actions/wallet-token.d.ts +1 -1
  10. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  11. package/dist/cargo/actions/wallet-token.js +1 -9
  12. package/dist/cargo/actions/wallet-token.js.map +1 -1
  13. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  14. package/dist/cargo/actions/withdrawal.js +54 -11
  15. package/dist/cargo/actions/withdrawal.js.map +1 -1
  16. package/dist/client/errors.d.ts +4 -0
  17. package/dist/client/errors.d.ts.map +1 -1
  18. package/dist/client/errors.js +31 -1
  19. package/dist/client/errors.js.map +1 -1
  20. package/dist/client/index.d.ts +1 -0
  21. package/dist/client/index.d.ts.map +1 -1
  22. package/dist/client/index.js +1 -0
  23. package/dist/client/index.js.map +1 -1
  24. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  25. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  26. package/dist/client/rpc-subscription-provider.js +190 -0
  27. package/dist/client/rpc-subscription-provider.js.map +1 -0
  28. package/dist/factions/actions/index.d.ts +36 -0
  29. package/dist/factions/actions/index.d.ts.map +1 -0
  30. package/dist/factions/actions/index.js +136 -0
  31. package/dist/factions/actions/index.js.map +1 -0
  32. package/dist/factions/index.d.ts +1 -0
  33. package/dist/factions/index.d.ts.map +1 -1
  34. package/dist/factions/index.js +1 -0
  35. package/dist/factions/index.js.map +1 -1
  36. package/dist/factions/profile-faction.d.ts +58 -0
  37. package/dist/factions/profile-faction.d.ts.map +1 -0
  38. package/dist/factions/profile-faction.js +63 -0
  39. package/dist/factions/profile-faction.js.map +1 -0
  40. package/dist/fleets/actions/add-ship.d.ts +35 -0
  41. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  42. package/dist/fleets/actions/add-ship.js +149 -0
  43. package/dist/fleets/actions/add-ship.js.map +1 -0
  44. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  45. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  46. package/dist/fleets/actions/create-fleet.js +138 -0
  47. package/dist/fleets/actions/create-fleet.js.map +1 -0
  48. package/dist/fleets/actions/index.d.ts +3 -0
  49. package/dist/fleets/actions/index.d.ts.map +1 -1
  50. package/dist/fleets/actions/index.js +3 -0
  51. package/dist/fleets/actions/index.js.map +1 -1
  52. package/dist/fleets/actions/ship-import.d.ts +48 -0
  53. package/dist/fleets/actions/ship-import.d.ts.map +1 -0
  54. package/dist/fleets/actions/ship-import.js +309 -0
  55. package/dist/fleets/actions/ship-import.js.map +1 -0
  56. package/dist/identity/actions/create-profile.d.ts +56 -0
  57. package/dist/identity/actions/create-profile.d.ts.map +1 -0
  58. package/dist/identity/actions/create-profile.js +139 -0
  59. package/dist/identity/actions/create-profile.js.map +1 -0
  60. package/dist/identity/actions/index.d.ts +38 -0
  61. package/dist/identity/actions/index.d.ts.map +1 -0
  62. package/dist/identity/actions/index.js +109 -0
  63. package/dist/identity/actions/index.js.map +1 -0
  64. package/dist/identity/index.d.ts +15 -0
  65. package/dist/identity/index.d.ts.map +1 -1
  66. package/dist/identity/index.js +15 -0
  67. package/dist/identity/index.js.map +1 -1
  68. package/dist/identity/permissions.d.ts +124 -0
  69. package/dist/identity/permissions.d.ts.map +1 -0
  70. package/dist/identity/permissions.js +171 -0
  71. package/dist/identity/permissions.js.map +1 -0
  72. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  73. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  74. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  75. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  76. package/dist/internal/c4/character-registration.d.ts +9 -0
  77. package/dist/internal/c4/character-registration.d.ts.map +1 -0
  78. package/dist/internal/c4/character-registration.js +21 -0
  79. package/dist/internal/c4/character-registration.js.map +1 -0
  80. package/dist/internal/c4/faction-adapter.d.ts +12 -0
  81. package/dist/internal/c4/faction-adapter.d.ts.map +1 -0
  82. package/dist/internal/c4/faction-adapter.js +52 -0
  83. package/dist/internal/c4/faction-adapter.js.map +1 -0
  84. package/dist/internal/c4/faction-enrollment.d.ts +6 -0
  85. package/dist/internal/c4/faction-enrollment.d.ts.map +1 -0
  86. package/dist/internal/c4/faction-enrollment.js +8 -0
  87. package/dist/internal/c4/faction-enrollment.js.map +1 -0
  88. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  89. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  90. package/dist/internal/c4/faction-epoch-meter.js +31 -0
  91. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  92. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  93. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  94. package/dist/internal/c4/faction-treasury.js +48 -0
  95. package/dist/internal/c4/faction-treasury.js.map +1 -0
  96. package/dist/internal/c4/factions.d.ts +9 -30
  97. package/dist/internal/c4/factions.d.ts.map +1 -1
  98. package/dist/internal/c4/factions.js +22 -107
  99. package/dist/internal/c4/factions.js.map +1 -1
  100. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  101. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  102. package/dist/internal/c4/fleet-creation.js +180 -0
  103. package/dist/internal/c4/fleet-creation.js.map +1 -0
  104. package/dist/internal/c4/fleet-crew-binding.d.ts +2 -0
  105. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  106. package/dist/internal/c4/fleet-crew-binding.js +5 -0
  107. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  108. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  109. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  110. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  111. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  112. package/dist/internal/c4/game.d.ts +18 -6
  113. package/dist/internal/c4/game.d.ts.map +1 -1
  114. package/dist/internal/c4/game.js +34 -9
  115. package/dist/internal/c4/game.js.map +1 -1
  116. package/dist/internal/c4/identity.d.ts +2 -7
  117. package/dist/internal/c4/identity.d.ts.map +1 -1
  118. package/dist/internal/c4/identity.js +2 -23
  119. package/dist/internal/c4/identity.js.map +1 -1
  120. package/dist/internal/c4/legacy-cargo-config.d.ts +6 -0
  121. package/dist/internal/c4/legacy-cargo-config.d.ts.map +1 -0
  122. package/dist/internal/c4/legacy-cargo-config.js +26 -0
  123. package/dist/internal/c4/legacy-cargo-config.js.map +1 -0
  124. package/dist/internal/c4/market.js +10 -6
  125. package/dist/internal/c4/market.js.map +1 -1
  126. package/dist/internal/c4/profile-creation.d.ts +17 -0
  127. package/dist/internal/c4/profile-creation.d.ts.map +1 -0
  128. package/dist/internal/c4/profile-creation.js +36 -0
  129. package/dist/internal/c4/profile-creation.js.map +1 -0
  130. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  131. package/dist/internal/c4/profile-faction.js +2 -0
  132. package/dist/internal/c4/profile-faction.js.map +1 -1
  133. package/dist/internal/c4/profile-permissions.d.ts +14 -0
  134. package/dist/internal/c4/profile-permissions.d.ts.map +1 -0
  135. package/dist/internal/c4/profile-permissions.js +80 -0
  136. package/dist/internal/c4/profile-permissions.js.map +1 -0
  137. package/dist/internal/c4/starbase.js +4 -3
  138. package/dist/internal/c4/starbase.js.map +1 -1
  139. package/dist/internal/c4/wallet-cargo-cache.d.ts +3 -0
  140. package/dist/internal/c4/wallet-cargo-cache.d.ts.map +1 -0
  141. package/dist/internal/c4/wallet-cargo-cache.js +24 -0
  142. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -0
  143. package/dist/internal/c4/world.js +2 -1
  144. package/dist/internal/c4/world.js.map +1 -1
  145. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  146. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  147. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  148. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  149. package/dist/internal/planning/account-state.d.ts +4 -0
  150. package/dist/internal/planning/account-state.d.ts.map +1 -0
  151. package/dist/internal/planning/account-state.js +11 -0
  152. package/dist/internal/planning/account-state.js.map +1 -0
  153. package/dist/internal/planning/authorization-adapter.d.ts +17 -0
  154. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  155. package/dist/internal/planning/authorization-adapter.js +50 -0
  156. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  157. package/dist/internal/planning/faction-enrollment.d.ts +12 -0
  158. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -0
  159. package/dist/internal/planning/faction-enrollment.js +67 -0
  160. package/dist/internal/planning/faction-enrollment.js.map +1 -0
  161. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  162. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  163. package/dist/internal/planning/faction-trade-state.js +39 -0
  164. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  165. package/dist/internal/planning/fleet-creation.d.ts +29 -0
  166. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  167. package/dist/internal/planning/fleet-creation.js +106 -0
  168. package/dist/internal/planning/fleet-creation.js.map +1 -0
  169. package/dist/internal/planning/fleet-ship-assembly.d.ts +35 -0
  170. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  171. package/dist/internal/planning/fleet-ship-assembly.js +135 -0
  172. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  173. package/dist/internal/planning/ship-token.d.ts +10 -0
  174. package/dist/internal/planning/ship-token.d.ts.map +1 -0
  175. package/dist/internal/planning/ship-token.js +47 -0
  176. package/dist/internal/planning/ship-token.js.map +1 -0
  177. package/dist/internal/planning/token-mint.d.ts +4 -0
  178. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  179. package/dist/internal/planning/token-mint.js +15 -0
  180. package/dist/internal/planning/token-mint.js.map +1 -0
  181. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  182. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  183. package/dist/internal/planning/trade-faction-market.js +56 -0
  184. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  185. package/dist/loyalty/actions/index.d.ts.map +1 -1
  186. package/dist/loyalty/actions/index.js +4 -3
  187. package/dist/loyalty/actions/index.js.map +1 -1
  188. package/dist/loyalty/index.d.ts.map +1 -1
  189. package/dist/loyalty/index.js +2 -6
  190. package/dist/loyalty/index.js.map +1 -1
  191. package/dist/markets/actions/index.d.ts +1 -0
  192. package/dist/markets/actions/index.d.ts.map +1 -1
  193. package/dist/markets/actions/index.js +1 -0
  194. package/dist/markets/actions/index.js.map +1 -1
  195. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  196. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  197. package/dist/markets/actions/trade-faction-market.js +288 -0
  198. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  199. package/dist/mining/actions/index.d.ts +86 -0
  200. package/dist/mining/actions/index.d.ts.map +1 -0
  201. package/dist/mining/actions/index.js +295 -0
  202. package/dist/mining/actions/index.js.map +1 -0
  203. package/dist/planning/execution.d.ts.map +1 -1
  204. package/dist/planning/execution.js +191 -16
  205. package/dist/planning/execution.js.map +1 -1
  206. package/dist/planning/index.d.ts +316 -4
  207. package/dist/planning/index.d.ts.map +1 -1
  208. package/dist/planning/index.js +528 -14
  209. package/dist/planning/index.js.map +1 -1
  210. package/dist/planning/simulation.d.ts +18 -1
  211. package/dist/planning/simulation.d.ts.map +1 -1
  212. package/dist/planning/simulation.js +56 -10
  213. package/dist/planning/simulation.js.map +1 -1
  214. package/dist/registry/cargo.d.ts +9 -6
  215. package/dist/registry/cargo.d.ts.map +1 -1
  216. package/dist/registry/cargo.js +30 -4
  217. package/dist/registry/cargo.js.map +1 -1
  218. package/dist/registry/onboarding.d.ts +6 -0
  219. package/dist/registry/onboarding.d.ts.map +1 -0
  220. package/dist/registry/onboarding.js +24 -0
  221. package/dist/registry/onboarding.js.map +1 -0
  222. package/dist/registry/ships.d.ts +28 -0
  223. package/dist/registry/ships.d.ts.map +1 -0
  224. package/dist/registry/ships.js +51 -0
  225. package/dist/registry/ships.js.map +1 -0
  226. package/package.json +13 -1
@@ -0,0 +1,171 @@
1
+ import { isAddress, isOffCurveAddress } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../client/errors.js';
3
+ import { attachJsonSerialization } from '../internal/json.js';
4
+ import { PROFILE_SCOPE, SAGE_SCOPE, permissionBitsForScope, translatePermissions, } from '../internal/c4/profile-permissions.js';
5
+ /** Pinned supported Player Profile program scope, where bit zero means AUTH.
6
+ * @example
7
+ * ```ts
8
+ * const mask = composeProfilePermissions(PROFILE_PERMISSION_SCOPE, ['authenticate']);
9
+ * ```
10
+ */
11
+ export const PROFILE_PERMISSION_SCOPE = PROFILE_SCOPE;
12
+ /** Pinned supported SAGE program scope, where bit zero means manageGame.
13
+ * Recognized names describe bits, not complete action authorization policies.
14
+ * @example
15
+ * ```ts
16
+ * const mask = composeProfilePermissions(SAGE_PERMISSION_SCOPE, ['moveFleet']);
17
+ * ```
18
+ */
19
+ export const SAGE_PERMISSION_SCOPE = SAGE_SCOPE;
20
+ function invalid(field, value, remedy) {
21
+ throw new InvalidActionInputError(field, value, 'explicit valid scoped Profile permission input', remedy);
22
+ }
23
+ function validateScope(scope) {
24
+ if (typeof scope !== 'string' || !isAddress(scope))
25
+ invalid('scope', scope, 'Supply the explicit z.ink/Solana program address whose permissions you are inspecting.');
26
+ }
27
+ function validateMask(mask) {
28
+ if (typeof mask !== 'bigint' || mask < 0n || mask > 0xffffffffffffffffn)
29
+ invalid('permissionsRaw', mask, 'Supply a bigint mask from 0n through 18446744073709551615n.');
30
+ }
31
+ function knownMask(scope) {
32
+ return permissionBitsForScope(scope).reduce((raw, [flag]) => raw | flag, 0n);
33
+ }
34
+ /** Compose only verified names under an explicit scope. Empty input returns zero.
35
+ * Profile and SAGE names require their exact supported program scope;
36
+ * drainSolVault is recognized across scopes. Names identify verified bits, not
37
+ * complete action authorization policies. No default authority mask is added.
38
+ * @example
39
+ * ```ts
40
+ * const raw = composeProfilePermissions(PROFILE_PERMISSION_SCOPE, ['addKeys', 'removeKeys']);
41
+ * ```
42
+ */
43
+ export function composeProfilePermissions(scope, names) {
44
+ validateScope(scope);
45
+ if (!Array.isArray(names))
46
+ invalid('names', names, 'Supply an array of verified Profile permission names.');
47
+ return names.reduce((raw, name) => {
48
+ const entry = permissionBitsForScope(scope).find(([, permission]) => permission === name);
49
+ if (!entry)
50
+ invalid('permission', name, 'Select a verified permission name for this exact scope: Profile names require PROFILE_PERMISSION_SCOPE and SAGE names require SAGE_PERMISSION_SCOPE.');
51
+ return raw | entry[0];
52
+ }, 0n);
53
+ }
54
+ /** Union exact raw masks, preserving unknown bits. Empty input returns zero.
55
+ * This is a pure bit operation. Callers must track the scope each mask belongs to;
56
+ * combining masks does not establish permission meanings or authorization.
57
+ * @example
58
+ * ```ts
59
+ * const raw = unionProfilePermissionMasks([4n, 0n]);
60
+ * ```
61
+ */
62
+ export function unionProfilePermissionMasks(masks) {
63
+ if (!Array.isArray(masks))
64
+ invalid('masks', masks, 'Supply an array of unsigned 64-bit bigint masks.');
65
+ return masks.reduce((raw, mask) => {
66
+ validateMask(mask);
67
+ return raw | mask;
68
+ }, 0n);
69
+ }
70
+ /** Numeric bit containment only, including unknown bits; this is not authorization.
71
+ * Callers must track the scope each mask belongs to; this pure bit operation
72
+ * neither checks scope compatibility nor interprets permission meanings.
73
+ * @example
74
+ * ```ts
75
+ * const contains = containsProfilePermissions(6n, 4n);
76
+ * ```
77
+ */
78
+ export function containsProfilePermissions(availableRaw, requiredRaw) {
79
+ validateMask(availableRaw);
80
+ validateMask(requiredRaw);
81
+ return (availableRaw & requiredRaw) === requiredRaw;
82
+ }
83
+ /** Inspect known meanings without discarding unrecognized raw bits.
84
+ * @example
85
+ * ```ts
86
+ * const inspection = inspectProfilePermissions(PROFILE_PERMISSION_SCOPE, 1n);
87
+ * console.log(inspection.permissions, inspection.unrecognizedBitsRaw);
88
+ * ```
89
+ */
90
+ export function inspectProfilePermissions(scope, permissionsRaw) {
91
+ validateScope(scope);
92
+ validateMask(permissionsRaw);
93
+ return Object.freeze(attachJsonSerialization({
94
+ scope,
95
+ permissionsRaw,
96
+ permissions: Object.freeze([
97
+ ...translatePermissions(permissionsRaw, scope),
98
+ ]),
99
+ unrecognizedBitsRaw: permissionsRaw & ~knownMask(scope),
100
+ }));
101
+ }
102
+ /** Inspect every key against an exact scope, mask, direct signer and explicit time.
103
+ * No AUTH override, role/certificate delegation, threshold policy, RPC, wall clock,
104
+ * refresh or signer is used. All original indices remain visible; select an index
105
+ * explicitly for an existing planner and retain its freshness and simulation checks.
106
+ * Canonical expiresAtRaw controls expiry; negative values are permanent. A key
107
+ * remains unexpired at its exact expiry second and expires only when at is later.
108
+ * @example
109
+ * ```ts
110
+ * declare const profile: ProfileSnapshot;
111
+ * declare const requirement: ProfileKeyRequirement;
112
+ * const candidates = inspectProfileKeys(profile, requirement);
113
+ * console.log(candidates.map(key => [key.keyIndex, key.status]));
114
+ * ```
115
+ */
116
+ export function inspectProfileKeys(profile, requirement) {
117
+ if (profile === null ||
118
+ typeof profile !== 'object' ||
119
+ Array.isArray(profile) ||
120
+ profile.kind !== 'profile' ||
121
+ !Array.isArray(profile.keys))
122
+ invalid('profile', profile, 'Load a ProfileSnapshot with getProfile and pass that loaded Profile, not a Character or raw account.');
123
+ if (requirement === null ||
124
+ typeof requirement !== 'object' ||
125
+ Array.isArray(requirement) ||
126
+ Object.keys(requirement).some((key) => !['signer', 'scope', 'permissionsRaw', 'at'].includes(key)))
127
+ invalid('requirement', requirement, 'Pass only signer, scope, permissionsRaw and at; delegated authorization and AUTH overrides are unsupported.');
128
+ const { signer, scope, permissionsRaw, at } = requirement;
129
+ validateScope(scope);
130
+ validateMask(permissionsRaw);
131
+ if (typeof signer !== 'string' ||
132
+ !isAddress(signer) ||
133
+ isOffCurveAddress(signer))
134
+ invalid('signer', signer, 'Supply the address of a directly signing external z.ink/Solana account.');
135
+ if (typeof at !== 'bigint' || at < 0n || at > 0x7fffffffffffffffn)
136
+ invalid('at', at, 'Supply explicit nonnegative bigint Unix seconds within the signed 64-bit range.');
137
+ const unknownRequired = (permissionsRaw & ~knownMask(scope)) !== 0n;
138
+ return Object.freeze(profile.keys.map((key, keyIndex) => {
139
+ const diagnostics = [];
140
+ const expired = key.expiresAtRaw >= 0n && key.expiresAtRaw < at;
141
+ if (key.address !== signer)
142
+ diagnostics.push('address-mismatch');
143
+ if (key.scope !== scope)
144
+ diagnostics.push('scope-mismatch');
145
+ if (expired)
146
+ diagnostics.push('expired');
147
+ if ((key.permissionsRaw & permissionsRaw) !== permissionsRaw)
148
+ diagnostics.push('missing-permissions');
149
+ const mismatch = diagnostics.length > 0;
150
+ if (unknownRequired)
151
+ diagnostics.push('unrecognized-permissions');
152
+ const status = mismatch
153
+ ? 'mismatch'
154
+ : unknownRequired
155
+ ? 'indeterminate'
156
+ : 'match';
157
+ return Object.freeze(attachJsonSerialization({
158
+ keyIndex,
159
+ address: key.address,
160
+ scope: key.scope,
161
+ permissionsRaw: key.permissionsRaw,
162
+ isProfileAuthority: key.scope === PROFILE_SCOPE && (key.permissionsRaw & 1n) !== 0n,
163
+ expiresAtRaw: key.expiresAtRaw,
164
+ ...(key.expiresAtRaw < 0n ? {} : { expiresAt: key.expiresAtRaw }),
165
+ expired,
166
+ diagnostics: Object.freeze(diagnostics),
167
+ status,
168
+ }));
169
+ }));
170
+ }
171
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type Address } from '@solana/kit';
2
+ import { type CargoType } from '@staratlas/dev-sage';
3
+ /** Canonical cache address (32 bytes) followed by the pinned CargoType encoding (124 bytes). */
4
+ export declare function encodeCargoBytesConfiguration(cache: Address, cargo: CargoType): Uint8Array<ArrayBuffer>;
5
+ /** Distinct from the frozen historical JSON digest; never used to reinterpret old guards. */
6
+ export declare function hashCargoBytesConfiguration(cache: Address, cargo: CargoType): Promise<string>;
7
+ //# sourceMappingURL=cargo-bytes-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cargo-bytes-config.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/cargo-bytes-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE1E,gGAAgG;AAChG,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,SAAS,GACf,UAAU,CAAC,WAAW,CAAC,CAOzB;AAED,6FAA6F;AAC7F,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,CAQjB"}
@@ -0,0 +1,19 @@
1
+ import { getAddressEncoder } from '@solana/kit';
2
+ import { getCargoTypeEncoder } from '@staratlas/dev-sage';
3
+ /** Canonical cache address (32 bytes) followed by the pinned CargoType encoding (124 bytes). */
4
+ export function encodeCargoBytesConfiguration(cache, cargo) {
5
+ const cacheBytes = getAddressEncoder().encode(cache);
6
+ const cargoBytes = getCargoTypeEncoder().encode(cargo);
7
+ const bytes = new Uint8Array(cacheBytes.length + cargoBytes.length);
8
+ bytes.set(cacheBytes);
9
+ bytes.set(cargoBytes, cacheBytes.length);
10
+ return bytes;
11
+ }
12
+ /** Distinct from the frozen historical JSON digest; never used to reinterpret old guards. */
13
+ export async function hashCargoBytesConfiguration(cache, cargo) {
14
+ const hash = await globalThis.crypto.subtle.digest('SHA-256', encodeCargoBytesConfiguration(cache, cargo));
15
+ return [...new Uint8Array(hash)]
16
+ .map((value) => value.toString(16).padStart(2, '0'))
17
+ .join('');
18
+ }
19
+ //# sourceMappingURL=cargo-bytes-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cargo-bytes-config.js","sourceRoot":"","sources":["../../../src/internal/c4/cargo-bytes-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAE1E,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAC3C,KAAc,EACd,KAAgB;IAEhB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAc,EACd,KAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAChD,SAAS,EACT,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAC5C,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Address, type Instruction } from '@solana/kit';
2
+ /** Address-only adapter for the pinned registerCharacter instruction contract. */
3
+ export declare function createRegisterCharacterInstruction(input: {
4
+ readonly profile: Address;
5
+ readonly funder: Address;
6
+ readonly character: Address;
7
+ readonly game: Address;
8
+ }): Instruction;
9
+ //# sourceMappingURL=character-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-registration.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/character-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1E,kFAAkF;AAClF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,GAAG,WAAW,CAgBd"}
@@ -0,0 +1,21 @@
1
+ import { AccountRole } from '@solana/kit';
2
+ import { SAGE_PROGRAM_ADDRESS, getRegisterCharacterInstructionDataEncoder, } from '@staratlas/dev-sage';
3
+ /** Address-only adapter for the pinned registerCharacter instruction contract. */
4
+ export function createRegisterCharacterInstruction(input) {
5
+ // Preserve the generated account order and roles without creating a signer.
6
+ return {
7
+ programAddress: SAGE_PROGRAM_ADDRESS,
8
+ accounts: [
9
+ { address: input.profile, role: AccountRole.READONLY },
10
+ { address: input.funder, role: AccountRole.WRITABLE_SIGNER },
11
+ { address: input.character, role: AccountRole.WRITABLE },
12
+ { address: input.game, role: AccountRole.READONLY },
13
+ {
14
+ address: '11111111111111111111111111111111',
15
+ role: AccountRole.READONLY,
16
+ },
17
+ ],
18
+ data: getRegisterCharacterInstructionDataEncoder().encode({}),
19
+ };
20
+ }
21
+ //# sourceMappingURL=character-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-registration.js","sourceRoot":"","sources":["../../../src/internal/c4/character-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,0CAA0C,GAC3C,MAAM,qBAAqB,CAAC;AAE7B,kFAAkF;AAClF,MAAM,UAAU,kCAAkC,CAAC,KAKlD;IACC,4EAA4E;IAC5E,OAAO;QACL,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE;YACR,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;YACtD,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE;YAC5D,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;YACxD,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;YACnD;gBACE,OAAO,EAAE,kCAA6C;gBACtD,IAAI,EAAE,WAAW,CAAC,QAAQ;aAC3B;SACF;QACD,IAAI,EAAE,0CAA0C,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Decoder } from '@solana/kit';
2
+ import type { EntityType, RawAccount } from '../../client/contracts.js';
3
+ import type { C4AccountAdapter } from './adapter.js';
4
+ export declare function adapter<TEncoded, TData>(options: {
5
+ readonly type: EntityType;
6
+ readonly discriminator: Uint8Array;
7
+ readonly minimumDataLength: number;
8
+ readonly exact?: boolean;
9
+ readonly decoder: Decoder<TEncoded>;
10
+ readonly translate: (value: TEncoded, account: RawAccount) => TData;
11
+ }): C4AccountAdapter<TData>;
12
+ //# sourceMappingURL=faction-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-adapter.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/faction-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAwDrD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAChD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,KAAK,CAAC;CACrE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CA6B1B"}
@@ -0,0 +1,52 @@
1
+ import { SAGE_PROGRAM_ADDRESS } from '@staratlas/dev-sage';
2
+ import { AccountDecodeError, InvalidAccountOwnerError, InvalidDiscriminatorError, } from '../../client/errors.js';
3
+ function hasDiscriminator(data, discriminator) {
4
+ return discriminator.every((byte, index) => data[index] === byte);
5
+ }
6
+ function validateAccount(account, type, discriminator, minimumDataLength, exact) {
7
+ if (account.owner !== SAGE_PROGRAM_ADDRESS) {
8
+ throw new InvalidAccountOwnerError(type, account.address, SAGE_PROGRAM_ADDRESS, account.owner);
9
+ }
10
+ if (!hasDiscriminator(account.data, discriminator)) {
11
+ throw new InvalidDiscriminatorError(type, account.address);
12
+ }
13
+ if ((exact && account.data.length !== minimumDataLength) ||
14
+ (!exact && account.data.length < minimumDataLength)) {
15
+ throw new AccountDecodeError(type, account.address, new RangeError(`Expected ${exact ? 'exactly' : 'at least'} ${minimumDataLength} account bytes, received ${account.data.length}.`));
16
+ }
17
+ }
18
+ function decodeExactly(account, type, decoder) {
19
+ try {
20
+ const [value, offset] = decoder.read(account.data, 0);
21
+ if (offset !== account.data.length) {
22
+ throw new RangeError(`Decoded ${offset} of ${account.data.length} bytes.`);
23
+ }
24
+ return value;
25
+ }
26
+ catch (cause) {
27
+ throw new AccountDecodeError(type, account.address, cause);
28
+ }
29
+ }
30
+ export function adapter(options) {
31
+ const discriminator = Object.freeze(Array.from(options.discriminator));
32
+ const validate = (account) => validateAccount(account, options.type, discriminator, options.minimumDataLength, options.exact === true);
33
+ return Object.freeze({
34
+ decode(account) {
35
+ validate(account);
36
+ try {
37
+ return options.translate(decodeExactly(account, options.type, options.decoder), account);
38
+ }
39
+ catch (cause) {
40
+ if (cause instanceof AccountDecodeError)
41
+ throw cause;
42
+ throw new AccountDecodeError(options.type, account.address, cause);
43
+ }
44
+ },
45
+ discriminator,
46
+ minimumDataLength: options.minimumDataLength,
47
+ programAddress: SAGE_PROGRAM_ADDRESS,
48
+ type: options.type,
49
+ validate,
50
+ });
51
+ }
52
+ //# sourceMappingURL=faction-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-adapter.js","sourceRoot":"","sources":["../../../src/internal/c4/faction-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { PROFILE_FACTION_PROGRAM_ADDRESS } from '@staratlas/dev-profile-faction';
2
+ import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '@staratlas/dev-player-profile';
3
+ export { PROFILE_FACTION_PROGRAM_ADDRESS, PLAYER_PROFILE_PROGRAM_ADDRESS };
4
+ /** Pinned initial-enrollment data only; keeps generated bindings behind the C4 boundary. */
5
+ export declare function encodeChooseFactionData(keyIndex: number, faction: 1 | 2 | 3): import("@solana/kit").ReadonlyUint8Array<ArrayBuffer>;
6
+ //# sourceMappingURL=faction-enrollment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-enrollment.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/faction-enrollment.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,+BAA+B,EAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,CAAC;AAC3E,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,yDAE3E"}
@@ -0,0 +1,8 @@
1
+ import { getChooseFactionInstructionDataEncoder, PROFILE_FACTION_PROGRAM_ADDRESS, } from '@staratlas/dev-profile-faction';
2
+ import { PLAYER_PROFILE_PROGRAM_ADDRESS } from '@staratlas/dev-player-profile';
3
+ export { PROFILE_FACTION_PROGRAM_ADDRESS, PLAYER_PROFILE_PROGRAM_ADDRESS };
4
+ /** Pinned initial-enrollment data only; keeps generated bindings behind the C4 boundary. */
5
+ export function encodeChooseFactionData(keyIndex, faction) {
6
+ return getChooseFactionInstructionDataEncoder().encode({ keyIndex, faction });
7
+ }
8
+ //# sourceMappingURL=faction-enrollment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-enrollment.js","sourceRoot":"","sources":["../../../src/internal/c4/faction-enrollment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,CAAC;AAC3E,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,OAAkB;IAC1E,OAAO,sCAAsC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Address } from '@solana/kit';
2
+ import type { RawAccount } from '../../client/contracts.js';
3
+ /** Narrow validation for the trade-only aggregate standing cohort. */
4
+ export declare function decodeTradeEpochMeter(account: RawAccount): import("@staratlas/dev-sage").FactionEpochMeter;
5
+ /** Canonical trade-only aggregate meter PDA. */
6
+ export declare function deriveTradeEpochMeterAddress({ game, factionId, }: {
7
+ readonly game: Address;
8
+ readonly factionId: number;
9
+ }): Promise<Address>;
10
+ //# sourceMappingURL=faction-epoch-meter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-epoch-meter.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/faction-epoch-meter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,mDAuBxD;AAED,gDAAgD;AAChD,wBAAsB,4BAA4B,CAAC,EACjD,IAAI,EACJ,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,OAAO,CAAC,CAWnB"}
@@ -0,0 +1,31 @@
1
+ import { getAddressEncoder, getProgramDerivedAddress, getU16Encoder, } from '@solana/kit';
2
+ import { FACTION_EPOCH_METER_DISCRIMINATOR, getFactionEpochMeterDecoder, SAGE_PROGRAM_ADDRESS, } from '@staratlas/dev-sage';
3
+ import { SageSdkError } from '../../client/errors.js';
4
+ /** Narrow validation for the trade-only aggregate standing cohort. */
5
+ export function decodeTradeEpochMeter(account) {
6
+ try {
7
+ if (account.owner !== SAGE_PROGRAM_ADDRESS)
8
+ throw new Error('Unexpected account owner.');
9
+ if (!FACTION_EPOCH_METER_DISCRIMINATOR.every((byte, index) => account.data[index] === byte))
10
+ throw new Error('Invalid Faction Epoch Meter discriminator.');
11
+ const decoder = getFactionEpochMeterDecoder();
12
+ if (account.data.length !== decoder.fixedSize)
13
+ throw new RangeError(`Expected ${decoder.fixedSize} Faction Epoch Meter bytes, received ${account.data.length}.`);
14
+ return decoder.decode(account.data);
15
+ }
16
+ catch (cause) {
17
+ throw new SageSdkError('ACCOUNT_DECODE_FAILED', 'Faction Epoch Meter ownership, discriminator or data is invalid. Verify the canonical Game/faction meter address, cluster and installed binding version, refresh the reputation cohort, and retry.', { address: account.address, cause });
18
+ }
19
+ }
20
+ /** Canonical trade-only aggregate meter PDA. */
21
+ export async function deriveTradeEpochMeterAddress({ game, factionId, }) {
22
+ return (await getProgramDerivedAddress({
23
+ programAddress: SAGE_PROGRAM_ADDRESS,
24
+ seeds: [
25
+ new TextEncoder().encode('FactionEpochMeter'),
26
+ getAddressEncoder().encode(game),
27
+ getU16Encoder().encode(factionId),
28
+ ],
29
+ }))[0];
30
+ }
31
+ //# sourceMappingURL=faction-epoch-meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-epoch-meter.js","sourceRoot":"","sources":["../../../src/internal/c4/faction-epoch-meter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iCAAiC,EACjC,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,UAAU,qBAAqB,CAAC,OAAmB;IACvD,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,KAAK,oBAAoB;YACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,IACE,CAAC,iCAAiC,CAAC,KAAK,CACtC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAC9C;YAED,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,SAAS;YAC3C,MAAM,IAAI,UAAU,CAClB,YAAY,OAAO,CAAC,SAAS,wCAAwC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAC5F,CAAC;QACJ,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CACpB,uBAAuB,EACvB,oMAAoM,EACpM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,IAAI,EACJ,SAAS,GAIV;IACC,OAAO,CACL,MAAM,wBAAwB,CAAC;QAC7B,cAAc,EAAE,oBAAoB;QACpC,KAAK,EAAE;YACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC7C,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,aAAa,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;SAClC;KACF,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Address } from '@solana/kit';
2
+ export interface FactionTreasuryAccountData {
3
+ readonly version: number;
4
+ readonly bump: number;
5
+ readonly game: Address;
6
+ readonly factionId: number;
7
+ readonly atlasBalanceRaw: bigint;
8
+ readonly atlasBalance: number;
9
+ readonly epochStartedAtUnixSeconds: bigint;
10
+ readonly epochLengthSeconds: bigint;
11
+ readonly atlasOutThisEpochRaw: bigint;
12
+ readonly atlasOutThisEpoch: number;
13
+ readonly atlasOutCapPerEpochRaw: bigint;
14
+ readonly atlasOutCapPerEpoch: number;
15
+ readonly reserves: readonly {
16
+ readonly cargoId: number;
17
+ readonly quantityRaw: bigint;
18
+ readonly floorRaw: bigint;
19
+ }[];
20
+ }
21
+ export declare const factionTreasuryAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionTreasuryAccountData>;
22
+ export declare function deriveFactionTreasuryAddress(game: Address, factionId: number): Promise<Address>;
23
+ //# sourceMappingURL=faction-treasury.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-treasury.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/faction-treasury.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;CACL;AA2BD,eAAO,MAAM,gCAAgC,qEAM3C,CAAC;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -0,0 +1,48 @@
1
+ import { FACTION_TREASURY_DISCRIMINATOR, getFactionTreasuryDecoder, SAGE_PROGRAM_ADDRESS, } from '@staratlas/dev-sage';
2
+ import { getAddressEncoder, getProgramDerivedAddress, getU16Encoder, } from '@solana/kit';
3
+ import { adapter } from './faction-adapter.js';
4
+ import { validateUnsignedU16EntityId } from './pda.js';
5
+ const FLOYDS_PER_ATLAS = 100_000_000;
6
+ function factionTreasury(value) {
7
+ const cargoIds = new Set([...value.reserves.keys(), ...value.floors.keys()]);
8
+ return {
9
+ atlasBalance: Number(value.vault) / FLOYDS_PER_ATLAS,
10
+ atlasBalanceRaw: value.vault,
11
+ atlasOutCapPerEpoch: Number(value.atlasOutCapPerEpoch) / FLOYDS_PER_ATLAS,
12
+ atlasOutCapPerEpochRaw: value.atlasOutCapPerEpoch,
13
+ atlasOutThisEpoch: Number(value.atlasOutThisEpoch) / FLOYDS_PER_ATLAS,
14
+ atlasOutThisEpochRaw: value.atlasOutThisEpoch,
15
+ bump: value.bump,
16
+ epochLengthSeconds: value.epochLenSecs,
17
+ epochStartedAtUnixSeconds: value.epochStart,
18
+ factionId: value.factionId,
19
+ game: value.gameId,
20
+ reserves: [...cargoIds]
21
+ .sort((left, right) => left - right)
22
+ .map((cargoId) => ({
23
+ cargoId,
24
+ floorRaw: value.floors.get(cargoId) ?? 0n,
25
+ quantityRaw: value.reserves.get(cargoId) ?? 0n,
26
+ })),
27
+ version: value.version,
28
+ };
29
+ }
30
+ export const factionTreasuryAccountDefinition = /* @__PURE__ */ adapter({
31
+ decoder: /* @__PURE__ */ getFactionTreasuryDecoder(),
32
+ discriminator: FACTION_TREASURY_DISCRIMINATOR,
33
+ minimumDataLength: 92,
34
+ translate: factionTreasury,
35
+ type: 'factionTreasury',
36
+ });
37
+ export async function deriveFactionTreasuryAddress(game, factionId) {
38
+ validateUnsignedU16EntityId('faction', factionId);
39
+ return (await getProgramDerivedAddress({
40
+ programAddress: SAGE_PROGRAM_ADDRESS,
41
+ seeds: [
42
+ new TextEncoder().encode('FactionTreasury'),
43
+ getAddressEncoder().encode(game),
44
+ getU16Encoder().encode(factionId),
45
+ ],
46
+ }))[0];
47
+ }
48
+ //# sourceMappingURL=faction-treasury.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-treasury.js","sourceRoot":"","sources":["../../../src/internal/c4/faction-treasury.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAsBrC,SAAS,eAAe,CAAC,KAAsB;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,gBAAgB;QACpD,eAAe,EAAE,KAAK,CAAC,KAAK;QAC5B,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,gBAAgB;QACzE,sBAAsB,EAAE,KAAK,CAAC,mBAAmB;QACjD,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,gBAAgB;QACrE,oBAAoB,EAAE,KAAK,CAAC,iBAAiB;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,kBAAkB,EAAE,KAAK,CAAC,YAAY;QACtC,yBAAyB,EAAE,KAAK,CAAC,UAAU;QAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;aACpB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;aACnC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACzC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;SAC/C,CAAC,CAAC;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,eAAe,CAAC,OAAO,CAAC;IACtE,OAAO,EAAE,eAAe,CAAC,yBAAyB,EAAE;IACpD,aAAa,EAAE,8BAA8B;IAC7C,iBAAiB,EAAE,EAAE;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAa,EACb,SAAiB;IAEjB,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,CACL,MAAM,wBAAwB,CAAC;QAC7B,cAAc,EAAE,oBAAoB;QACpC,KAAK,EAAE;YACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC3C,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,aAAa,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;SAClC;KACF,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
+ export { factionTreasuryAccountDefinition, deriveFactionTreasuryAddress, type FactionTreasuryAccountData, } from './faction-treasury.js';
1
2
  import type { Address, DiscoveryRequest, ProgramAccountFilter, SageContext, SnapshotEnvelope } from '../../client/contracts.js';
2
- import type { C4AccountAdapter } from './adapter.js';
3
3
  import { deriveFactionAccountAddress } from './pda.js';
4
4
  /** Stable FactionOwnership offsets verified against the pinned generated codec. */
5
5
  export declare const FACTION_OWNERSHIP_FILTER_OFFSETS: Readonly<{
@@ -123,25 +123,6 @@ export interface FactionStandingAccountData {
123
123
  readonly bandFloorReachedAtUnixSeconds: bigint;
124
124
  readonly storylineExpiresAtUnixSeconds: bigint | null;
125
125
  }
126
- export interface FactionTreasuryAccountData {
127
- readonly version: number;
128
- readonly bump: number;
129
- readonly game: Address;
130
- readonly factionId: number;
131
- readonly atlasBalanceRaw: bigint;
132
- readonly atlasBalance: number;
133
- readonly epochStartedAtUnixSeconds: bigint;
134
- readonly epochLengthSeconds: bigint;
135
- readonly atlasOutThisEpochRaw: bigint;
136
- readonly atlasOutThisEpoch: number;
137
- readonly atlasOutCapPerEpochRaw: bigint;
138
- readonly atlasOutCapPerEpoch: number;
139
- readonly reserves: readonly {
140
- readonly cargoId: number;
141
- readonly quantityRaw: bigint;
142
- readonly floorRaw: bigint;
143
- }[];
144
- }
145
126
  export type FactionOwnershipAssetData = {
146
127
  readonly kind: 'starbase';
147
128
  readonly system: Address;
@@ -223,21 +204,19 @@ export interface RegionTrackerAccountData {
223
204
  readonly gridExponent: number;
224
205
  readonly regions: readonly FactionRegionData[];
225
206
  }
226
- export declare const factionAccountDefinition: C4AccountAdapter<FactionAccountData>;
227
- export declare const factionConfigAccountDefinition: C4AccountAdapter<FactionConfigAccountData>;
228
- export declare const factionEconomicsConfigAccountDefinition: C4AccountAdapter<FactionEconomicsConfigAccountData>;
229
- export declare const factionRelationTrackerAccountDefinition: C4AccountAdapter<FactionRelationTrackerAccountData>;
230
- export declare const factionStandingAccountDefinition: C4AccountAdapter<FactionStandingAccountData>;
231
- export declare const factionTreasuryAccountDefinition: C4AccountAdapter<FactionTreasuryAccountData>;
232
- export declare const factionOwnershipAccountDefinition: C4AccountAdapter<FactionOwnershipAccountData>;
233
- export declare const kingSystemTrackerAccountDefinition: C4AccountAdapter<KingSystemTrackerAccountData>;
234
- export declare const regionTrackerAccountDefinition: C4AccountAdapter<RegionTrackerAccountData>;
207
+ export declare const factionAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionAccountData>;
208
+ export declare const factionConfigAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionConfigAccountData>;
209
+ export declare const factionEconomicsConfigAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionEconomicsConfigAccountData>;
210
+ export declare const factionRelationTrackerAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionRelationTrackerAccountData>;
211
+ export declare const factionStandingAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionStandingAccountData>;
212
+ export declare const factionOwnershipAccountDefinition: import("./adapter.js").C4AccountAdapter<FactionOwnershipAccountData>;
213
+ export declare const kingSystemTrackerAccountDefinition: import("./adapter.js").C4AccountAdapter<KingSystemTrackerAccountData>;
214
+ export declare const regionTrackerAccountDefinition: import("./adapter.js").C4AccountAdapter<RegionTrackerAccountData>;
235
215
  export { deriveFactionAccountAddress };
236
216
  export declare function deriveFactionConfigAddress(game: Address): Promise<Address>;
237
217
  export declare function deriveFactionEconomicsConfigAddress(game: Address): Promise<Address>;
238
218
  export declare function deriveFactionRelationTrackerAddress(game: Address): Promise<Address>;
239
219
  export declare function deriveFactionStandingAddress(game: Address, profile: Address, factionId: number): Promise<Address>;
240
- export declare function deriveFactionTreasuryAddress(game: Address, factionId: number): Promise<Address>;
241
220
  export declare function deriveFactionOwnershipAddress(game: Address, kind: 'region', regionId: number): Promise<Address>;
242
221
  export declare function deriveFactionOwnershipAddress(game: Address, kind: Exclude<FactionOwnershipKind, 'region'>, assetKey: Address): Promise<Address>;
243
222
  export declare function deriveKingSystemTrackerAddress(game: Address): Promise<Address>;
@@ -1 +1 @@
1
- {"version":3,"file":"factions.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/factions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factions.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/factions.ts"],"names":[],"mappings":"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"}