@omegax/protocol-sdk 0.4.4 → 0.6.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.
Files changed (57) hide show
  1. package/NOTICE +5 -0
  2. package/README.md +88 -20
  3. package/dist/claims.d.ts +1 -2
  4. package/dist/claims.js +101 -166
  5. package/dist/internal/protocol/all.d.ts +283 -0
  6. package/dist/internal/protocol/all.js +7195 -0
  7. package/dist/internal/protocol/builders.d.ts +1 -0
  8. package/dist/internal/protocol/builders.js +1 -0
  9. package/dist/internal/protocol/client.d.ts +1 -0
  10. package/dist/internal/protocol/client.js +1 -0
  11. package/dist/internal/protocol/constants.d.ts +1 -0
  12. package/dist/internal/protocol/constants.js +1 -0
  13. package/dist/internal/protocol/decoders.d.ts +1 -0
  14. package/dist/internal/protocol/decoders.js +1 -0
  15. package/dist/internal/protocol/fetchers.d.ts +1 -0
  16. package/dist/internal/protocol/fetchers.js +1 -0
  17. package/dist/internal/protocol/shared.d.ts +1 -0
  18. package/dist/internal/protocol/shared.js +1 -0
  19. package/dist/internal/protocol-seeds/all.d.ts +265 -0
  20. package/dist/internal/protocol-seeds/all.js +455 -0
  21. package/dist/internal/protocol-seeds/claims.d.ts +1 -0
  22. package/dist/internal/protocol-seeds/claims.js +1 -0
  23. package/dist/internal/protocol-seeds/core.d.ts +1 -0
  24. package/dist/internal/protocol-seeds/core.js +1 -0
  25. package/dist/internal/protocol-seeds/liquidity.d.ts +1 -0
  26. package/dist/internal/protocol-seeds/liquidity.js +1 -0
  27. package/dist/internal/protocol-seeds/oracle.d.ts +1 -0
  28. package/dist/internal/protocol-seeds/oracle.js +1 -0
  29. package/dist/internal/protocol-seeds/policy.d.ts +1 -0
  30. package/dist/internal/protocol-seeds/policy.js +1 -0
  31. package/dist/internal/reward-claim.d.ts +17 -0
  32. package/dist/internal/reward-claim.js +27 -0
  33. package/dist/internal/rpc.d.ts +15 -0
  34. package/dist/internal/rpc.js +26 -0
  35. package/dist/internal/types/all.d.ts +1952 -0
  36. package/dist/internal/types/all.js +1 -0
  37. package/dist/internal/types/builders.d.ts +1 -0
  38. package/dist/internal/types/builders.js +1 -0
  39. package/dist/internal/types/claims.d.ts +1 -0
  40. package/dist/internal/types/claims.js +1 -0
  41. package/dist/internal/types/oracle.d.ts +1 -0
  42. package/dist/internal/types/oracle.js +1 -0
  43. package/dist/internal/types/protocol.d.ts +1 -0
  44. package/dist/internal/types/protocol.js +1 -0
  45. package/dist/internal/types/rpc.d.ts +1 -0
  46. package/dist/internal/types/rpc.js +1 -0
  47. package/dist/oracle.js +3 -2
  48. package/dist/protocol.d.ts +3 -13
  49. package/dist/protocol.js +3 -4534
  50. package/dist/protocol_seeds.d.ts +1 -220
  51. package/dist/protocol_seeds.js +1 -324
  52. package/dist/rpc.js +51 -6
  53. package/dist/transactions.d.ts +1 -0
  54. package/dist/transactions.js +28 -6
  55. package/dist/types.d.ts +1 -1424
  56. package/dist/types.js +1 -1
  57. package/package.json +22 -5
@@ -0,0 +1,455 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export const SEED_CONFIG = 'config';
3
+ export const SEED_POOL = 'pool';
4
+ export const SEED_ORACLE = 'oracle';
5
+ export const SEED_ORACLE_PROFILE = 'oracle_profile';
6
+ export const SEED_POOL_ORACLE = 'pool_oracle';
7
+ export const SEED_MEMBERSHIP = 'membership';
8
+ export const SEED_CYCLE = 'cycle';
9
+ export const SEED_CLAIM = 'claim';
10
+ export const SEED_ORACLE_STAKE = 'oracle_stake';
11
+ export const SEED_POOL_ORACLE_POLICY = 'pool_oracle_policy';
12
+ export const SEED_POOL_TERMS = 'pool_terms';
13
+ export const SEED_POOL_ASSET_VAULT = 'pool_asset_vault';
14
+ export const SEED_POOL_RISK_CONFIG = 'pool_risk_config';
15
+ export const SEED_POOL_CAPITAL_CLASS = 'pool_capital_class';
16
+ export const SEED_POLICY_SERIES = 'policy_series';
17
+ export const SEED_POLICY_SERIES_PAYMENT_OPTION = 'policy_series_payment_option';
18
+ export const SEED_POLICY_POSITION = 'policy_position';
19
+ export const SEED_POLICY_POSITION_NFT = 'policy_position_nft';
20
+ export const SEED_POOL_COMPLIANCE_POLICY = 'pool_compliance_policy';
21
+ export const SEED_POOL_CONTROL_AUTHORITY = 'pool_control_authority';
22
+ export const SEED_POOL_AUTOMATION_POLICY = 'pool_automation_policy';
23
+ export const SEED_POOL_LIQUIDITY_CONFIG = 'pool_liquidity_config';
24
+ export const SEED_POOL_ORACLE_PERMISSIONS = 'pool_oracle_permissions';
25
+ export const SEED_MEMBER_CYCLE = 'member_cycle';
26
+ export const SEED_CYCLE_QUOTE_REPLAY = 'cycle_quote_replay';
27
+ export const SEED_POOL_TREASURY_RESERVE = 'pool_treasury_reserve';
28
+ export const SEED_POOL_SHARE_MINT = 'pool_share_mint';
29
+ export const SEED_REDEMPTION_REQUEST = 'redemption_request';
30
+ export const SEED_COHORT_SETTLEMENT_ROOT = 'cohort_settlement_root';
31
+ export const SEED_PROTOCOL_FEE_VAULT = 'protocol_fee_vault';
32
+ export const SEED_POOL_ORACLE_FEE_VAULT = 'pool_oracle_fee_vault';
33
+ export const SEED_SCHEMA = 'schema';
34
+ export const SEED_SCHEMA_DEPENDENCY = 'schema_dependency';
35
+ export const SEED_POOL_RULE = 'pool_rule';
36
+ export const SEED_INVITE_ISSUER = 'invite_issuer';
37
+ export const SEED_ENROLLMENT_REPLAY = 'enrollment_replay';
38
+ export const SEED_ATTESTATION_VOTE = 'attestation_vote';
39
+ export const SEED_OUTCOME_AGGREGATE = 'outcome_agg';
40
+ export const SEED_CLAIM_DELEGATE = 'claim_delegate';
41
+ export const SEED_PREMIUM_LEDGER = 'premium_ledger';
42
+ export const SEED_PREMIUM_REPLAY = 'premium_replay';
43
+ export const SEED_COVERAGE_CLAIM = 'coverage_claim';
44
+ export const ZERO_PUBKEY = '11111111111111111111111111111111';
45
+ export function asPubkey(value) {
46
+ if (value instanceof PublicKey)
47
+ return value;
48
+ return new PublicKey(value);
49
+ }
50
+ export function deriveConfigPda(programId) {
51
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_CONFIG)], programId);
52
+ }
53
+ export function derivePoolPda(params) {
54
+ const program = asPubkey(params.programId);
55
+ const authority = asPubkey(params.authority);
56
+ return PublicKey.findProgramAddressSync([
57
+ Buffer.from(SEED_POOL),
58
+ authority.toBuffer(),
59
+ Buffer.from(params.poolId, 'utf8'),
60
+ ], program);
61
+ }
62
+ export function deriveOraclePda(params) {
63
+ const program = asPubkey(params.programId);
64
+ const oracle = asPubkey(params.oracle);
65
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_ORACLE), oracle.toBuffer()], program);
66
+ }
67
+ export function deriveOracleProfilePda(params) {
68
+ const program = asPubkey(params.programId);
69
+ const oracle = asPubkey(params.oracle);
70
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_ORACLE_PROFILE), oracle.toBuffer()], program);
71
+ }
72
+ export function derivePoolOraclePda(params) {
73
+ const program = asPubkey(params.programId);
74
+ const pool = asPubkey(params.poolAddress);
75
+ const oracle = asPubkey(params.oracle);
76
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_ORACLE), pool.toBuffer(), oracle.toBuffer()], program);
77
+ }
78
+ export function deriveMembershipPda(params) {
79
+ const program = asPubkey(params.programId);
80
+ const pool = asPubkey(params.poolAddress);
81
+ const member = asPubkey(params.member);
82
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_MEMBERSHIP), pool.toBuffer(), member.toBuffer()], program);
83
+ }
84
+ export function deriveCycleOutcomePda(params) {
85
+ const program = asPubkey(params.programId);
86
+ const pool = asPubkey(params.poolAddress);
87
+ const member = asPubkey(params.member);
88
+ return PublicKey.findProgramAddressSync([
89
+ Buffer.from(SEED_CYCLE),
90
+ pool.toBuffer(),
91
+ member.toBuffer(),
92
+ Buffer.from(params.cycleHash),
93
+ ], program);
94
+ }
95
+ export function deriveClaimPda(params) {
96
+ if (params.seriesRefHash.length !== 32) {
97
+ throw new Error('seriesRefHash must be exactly 32 bytes');
98
+ }
99
+ if (params.ruleHash.length !== 32) {
100
+ throw new Error('ruleHash must be exactly 32 bytes');
101
+ }
102
+ const program = asPubkey(params.programId);
103
+ const pool = asPubkey(params.poolAddress);
104
+ const member = asPubkey(params.member);
105
+ return PublicKey.findProgramAddressSync([
106
+ Buffer.from(SEED_CLAIM),
107
+ pool.toBuffer(),
108
+ Buffer.from(params.seriesRefHash),
109
+ member.toBuffer(),
110
+ Buffer.from(params.cycleHash),
111
+ Buffer.from(params.ruleHash),
112
+ ], program);
113
+ }
114
+ export function deriveOracleStakePda(params) {
115
+ const program = asPubkey(params.programId);
116
+ const oracle = asPubkey(params.oracle);
117
+ const staker = asPubkey(params.staker);
118
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_ORACLE_STAKE), oracle.toBuffer(), staker.toBuffer()], program);
119
+ }
120
+ export function derivePoolOraclePolicyPda(params) {
121
+ const program = asPubkey(params.programId);
122
+ const pool = asPubkey(params.poolAddress);
123
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_ORACLE_POLICY), pool.toBuffer()], program);
124
+ }
125
+ export function derivePoolTermsPda(params) {
126
+ const program = asPubkey(params.programId);
127
+ const pool = asPubkey(params.poolAddress);
128
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_TERMS), pool.toBuffer()], program);
129
+ }
130
+ export function derivePoolAssetVaultPda(params) {
131
+ const program = asPubkey(params.programId);
132
+ const pool = asPubkey(params.poolAddress);
133
+ const mint = asPubkey(params.payoutMint);
134
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_ASSET_VAULT), pool.toBuffer(), mint.toBuffer()], program);
135
+ }
136
+ export function derivePoolRiskConfigPda(params) {
137
+ const program = asPubkey(params.programId);
138
+ const pool = asPubkey(params.poolAddress);
139
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_RISK_CONFIG), pool.toBuffer()], program);
140
+ }
141
+ export function derivePoolLiquidityConfigPda(params) {
142
+ const program = asPubkey(params.programId);
143
+ const pool = asPubkey(params.poolAddress);
144
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_LIQUIDITY_CONFIG), pool.toBuffer()], program);
145
+ }
146
+ export function derivePoolCapitalClassPda(params) {
147
+ const program = asPubkey(params.programId);
148
+ const pool = asPubkey(params.poolAddress);
149
+ const shareMint = asPubkey(params.shareMint);
150
+ return PublicKey.findProgramAddressSync([
151
+ Buffer.from(SEED_POOL_CAPITAL_CLASS),
152
+ pool.toBuffer(),
153
+ shareMint.toBuffer(),
154
+ ], program);
155
+ }
156
+ export function derivePoolCompliancePolicyPda(params) {
157
+ const program = asPubkey(params.programId);
158
+ const pool = asPubkey(params.poolAddress);
159
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_COMPLIANCE_POLICY), pool.toBuffer()], program);
160
+ }
161
+ export function derivePoolControlAuthorityPda(params) {
162
+ const program = asPubkey(params.programId);
163
+ const pool = asPubkey(params.poolAddress);
164
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_CONTROL_AUTHORITY), pool.toBuffer()], program);
165
+ }
166
+ export function derivePoolAutomationPolicyPda(params) {
167
+ const program = asPubkey(params.programId);
168
+ const pool = asPubkey(params.poolAddress);
169
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_AUTOMATION_POLICY), pool.toBuffer()], program);
170
+ }
171
+ function encodeU64Seed(value) {
172
+ const out = Buffer.alloc(8);
173
+ out.writeBigUInt64LE(typeof value === 'bigint' ? value : BigInt(value));
174
+ return out;
175
+ }
176
+ export function derivePoolOraclePermissionSetPda(params) {
177
+ const program = asPubkey(params.programId);
178
+ const pool = asPubkey(params.poolAddress);
179
+ const oracle = asPubkey(params.oracle);
180
+ return PublicKey.findProgramAddressSync([
181
+ Buffer.from(SEED_POOL_ORACLE_PERMISSIONS),
182
+ pool.toBuffer(),
183
+ oracle.toBuffer(),
184
+ ], program);
185
+ }
186
+ export function deriveMemberCyclePda(params) {
187
+ if (params.seriesRefHash.length !== 32) {
188
+ throw new Error('seriesRefHash must be exactly 32 bytes');
189
+ }
190
+ const program = asPubkey(params.programId);
191
+ const pool = asPubkey(params.poolAddress);
192
+ const member = asPubkey(params.member);
193
+ return PublicKey.findProgramAddressSync([
194
+ Buffer.from(SEED_MEMBER_CYCLE),
195
+ pool.toBuffer(),
196
+ Buffer.from(params.seriesRefHash),
197
+ member.toBuffer(),
198
+ encodeU64Seed(params.periodIndex),
199
+ ], program);
200
+ }
201
+ export function deriveCycleQuoteReplayPda(params) {
202
+ if (params.seriesRefHash.length !== 32) {
203
+ throw new Error('seriesRefHash must be exactly 32 bytes');
204
+ }
205
+ const program = asPubkey(params.programId);
206
+ const pool = asPubkey(params.poolAddress);
207
+ const member = asPubkey(params.member);
208
+ return PublicKey.findProgramAddressSync([
209
+ Buffer.from(SEED_CYCLE_QUOTE_REPLAY),
210
+ pool.toBuffer(),
211
+ Buffer.from(params.seriesRefHash),
212
+ member.toBuffer(),
213
+ Buffer.from(params.nonceHash),
214
+ ], program);
215
+ }
216
+ export function derivePoolTreasuryReservePda(params) {
217
+ const program = asPubkey(params.programId);
218
+ const pool = asPubkey(params.poolAddress);
219
+ const paymentMint = asPubkey(params.paymentMint);
220
+ return PublicKey.findProgramAddressSync([
221
+ Buffer.from(SEED_POOL_TREASURY_RESERVE),
222
+ pool.toBuffer(),
223
+ paymentMint.toBuffer(),
224
+ ], program);
225
+ }
226
+ export function derivePoolShareMintPda(params) {
227
+ const program = asPubkey(params.programId);
228
+ const pool = asPubkey(params.poolAddress);
229
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_POOL_SHARE_MINT), pool.toBuffer()], program);
230
+ }
231
+ export function deriveRedemptionRequestPda(params) {
232
+ if (params.requestHash.length !== 32) {
233
+ throw new Error('requestHash must be exactly 32 bytes');
234
+ }
235
+ const program = asPubkey(params.programId);
236
+ const pool = asPubkey(params.poolAddress);
237
+ const redeemer = asPubkey(params.redeemer);
238
+ return PublicKey.findProgramAddressSync([
239
+ Buffer.from(SEED_REDEMPTION_REQUEST),
240
+ pool.toBuffer(),
241
+ redeemer.toBuffer(),
242
+ Buffer.from(params.requestHash),
243
+ ], program);
244
+ }
245
+ export function deriveCohortSettlementRootPda(params) {
246
+ if (params.seriesRefHash.length !== 32) {
247
+ throw new Error('seriesRefHash must be exactly 32 bytes');
248
+ }
249
+ const program = asPubkey(params.programId);
250
+ const pool = asPubkey(params.poolAddress);
251
+ return PublicKey.findProgramAddressSync([
252
+ Buffer.from(SEED_COHORT_SETTLEMENT_ROOT),
253
+ pool.toBuffer(),
254
+ Buffer.from(params.seriesRefHash),
255
+ Buffer.from(params.cohortHash),
256
+ ], program);
257
+ }
258
+ export function deriveProtocolFeeVaultPda(params) {
259
+ const program = asPubkey(params.programId);
260
+ const paymentMint = asPubkey(params.paymentMint);
261
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_PROTOCOL_FEE_VAULT), paymentMint.toBuffer()], program);
262
+ }
263
+ export function derivePoolOracleFeeVaultPda(params) {
264
+ const program = asPubkey(params.programId);
265
+ const pool = asPubkey(params.poolAddress);
266
+ const oracle = asPubkey(params.oracle);
267
+ const paymentMint = asPubkey(params.paymentMint);
268
+ return PublicKey.findProgramAddressSync([
269
+ Buffer.from(SEED_POOL_ORACLE_FEE_VAULT),
270
+ pool.toBuffer(),
271
+ oracle.toBuffer(),
272
+ paymentMint.toBuffer(),
273
+ ], program);
274
+ }
275
+ export function deriveSchemaPda(params) {
276
+ const program = asPubkey(params.programId);
277
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_SCHEMA), Buffer.from(params.schemaKeyHash)], program);
278
+ }
279
+ export function deriveSchemaDependencyPda(params) {
280
+ if (params.schemaKeyHash.length !== 32) {
281
+ throw new Error('schemaKeyHash must be 32 bytes');
282
+ }
283
+ const program = asPubkey(params.programId);
284
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_SCHEMA_DEPENDENCY), Buffer.from(params.schemaKeyHash)], program);
285
+ }
286
+ export function derivePoolRulePda(params) {
287
+ if (params.seriesRefHash.length !== 32) {
288
+ throw new Error('seriesRefHash must be exactly 32 bytes');
289
+ }
290
+ if (params.ruleHash.length !== 32) {
291
+ throw new Error('ruleHash must be exactly 32 bytes');
292
+ }
293
+ const program = asPubkey(params.programId);
294
+ const pool = asPubkey(params.poolAddress);
295
+ return PublicKey.findProgramAddressSync([
296
+ Buffer.from(SEED_POOL_RULE),
297
+ pool.toBuffer(),
298
+ Buffer.from(params.seriesRefHash),
299
+ Buffer.from(params.ruleHash),
300
+ ], program);
301
+ }
302
+ export function deriveInviteIssuerPda(params) {
303
+ const program = asPubkey(params.programId);
304
+ const issuer = asPubkey(params.issuer);
305
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_INVITE_ISSUER), issuer.toBuffer()], program);
306
+ }
307
+ export function deriveEnrollmentReplayPda(params) {
308
+ const program = asPubkey(params.programId);
309
+ const pool = asPubkey(params.poolAddress);
310
+ const member = asPubkey(params.member);
311
+ return PublicKey.findProgramAddressSync([
312
+ Buffer.from(SEED_ENROLLMENT_REPLAY),
313
+ pool.toBuffer(),
314
+ member.toBuffer(),
315
+ Buffer.from(params.nonceHash),
316
+ ], program);
317
+ }
318
+ export function deriveAttestationVotePda(params) {
319
+ if (params.seriesRefHash.length !== 32) {
320
+ throw new Error('seriesRefHash must be exactly 32 bytes');
321
+ }
322
+ const program = asPubkey(params.programId);
323
+ const pool = asPubkey(params.poolAddress);
324
+ const member = asPubkey(params.member);
325
+ const oracle = asPubkey(params.oracle);
326
+ return PublicKey.findProgramAddressSync([
327
+ Buffer.from(SEED_ATTESTATION_VOTE),
328
+ pool.toBuffer(),
329
+ Buffer.from(params.seriesRefHash),
330
+ member.toBuffer(),
331
+ Buffer.from(params.cycleHash),
332
+ Buffer.from(params.ruleHash),
333
+ oracle.toBuffer(),
334
+ ], program);
335
+ }
336
+ export function deriveClaimDelegatePda(params) {
337
+ const program = asPubkey(params.programId);
338
+ const pool = asPubkey(params.poolAddress);
339
+ const member = asPubkey(params.member);
340
+ return PublicKey.findProgramAddressSync([Buffer.from(SEED_CLAIM_DELEGATE), pool.toBuffer(), member.toBuffer()], program);
341
+ }
342
+ export function deriveOutcomeAggregatePda(params) {
343
+ if (params.seriesRefHash.length !== 32) {
344
+ throw new Error('seriesRefHash must be exactly 32 bytes');
345
+ }
346
+ const program = asPubkey(params.programId);
347
+ const pool = asPubkey(params.poolAddress);
348
+ const member = asPubkey(params.member);
349
+ return PublicKey.findProgramAddressSync([
350
+ Buffer.from(SEED_OUTCOME_AGGREGATE),
351
+ pool.toBuffer(),
352
+ Buffer.from(params.seriesRefHash),
353
+ member.toBuffer(),
354
+ Buffer.from(params.cycleHash),
355
+ Buffer.from(params.ruleHash),
356
+ ], program);
357
+ }
358
+ export function derivePolicyPositionPda(params) {
359
+ if (params.seriesRefHash.length !== 32) {
360
+ throw new Error('seriesRefHash must be exactly 32 bytes');
361
+ }
362
+ const program = asPubkey(params.programId);
363
+ const pool = asPubkey(params.poolAddress);
364
+ const member = asPubkey(params.member);
365
+ return PublicKey.findProgramAddressSync([
366
+ Buffer.from(SEED_POLICY_POSITION),
367
+ pool.toBuffer(),
368
+ Buffer.from(params.seriesRefHash),
369
+ member.toBuffer(),
370
+ ], program);
371
+ }
372
+ export function derivePolicySeriesPda(params) {
373
+ if (params.seriesRefHash.length !== 32) {
374
+ throw new Error('seriesRefHash must be exactly 32 bytes');
375
+ }
376
+ const program = asPubkey(params.programId);
377
+ const pool = asPubkey(params.poolAddress);
378
+ return PublicKey.findProgramAddressSync([
379
+ Buffer.from(SEED_POLICY_SERIES),
380
+ pool.toBuffer(),
381
+ Buffer.from(params.seriesRefHash),
382
+ ], program);
383
+ }
384
+ export function derivePolicyPositionNftPda(params) {
385
+ if (params.seriesRefHash.length !== 32) {
386
+ throw new Error('seriesRefHash must be exactly 32 bytes');
387
+ }
388
+ const program = asPubkey(params.programId);
389
+ const pool = asPubkey(params.poolAddress);
390
+ const member = asPubkey(params.member);
391
+ return PublicKey.findProgramAddressSync([
392
+ Buffer.from(SEED_POLICY_POSITION_NFT),
393
+ pool.toBuffer(),
394
+ Buffer.from(params.seriesRefHash),
395
+ member.toBuffer(),
396
+ ], program);
397
+ }
398
+ export function derivePremiumLedgerPda(params) {
399
+ if (params.seriesRefHash.length !== 32) {
400
+ throw new Error('seriesRefHash must be exactly 32 bytes');
401
+ }
402
+ const program = asPubkey(params.programId);
403
+ const pool = asPubkey(params.poolAddress);
404
+ const member = asPubkey(params.member);
405
+ return PublicKey.findProgramAddressSync([
406
+ Buffer.from(SEED_PREMIUM_LEDGER),
407
+ pool.toBuffer(),
408
+ Buffer.from(params.seriesRefHash),
409
+ member.toBuffer(),
410
+ ], program);
411
+ }
412
+ export function derivePremiumReplayPda(params) {
413
+ if (params.seriesRefHash.length !== 32) {
414
+ throw new Error('seriesRefHash must be exactly 32 bytes');
415
+ }
416
+ const program = asPubkey(params.programId);
417
+ const pool = asPubkey(params.poolAddress);
418
+ const member = asPubkey(params.member);
419
+ return PublicKey.findProgramAddressSync([
420
+ Buffer.from(SEED_PREMIUM_REPLAY),
421
+ pool.toBuffer(),
422
+ Buffer.from(params.seriesRefHash),
423
+ member.toBuffer(),
424
+ Buffer.from(params.replayHash),
425
+ ], program);
426
+ }
427
+ export function derivePolicySeriesPaymentOptionPda(params) {
428
+ if (params.seriesRefHash.length !== 32) {
429
+ throw new Error('seriesRefHash must be exactly 32 bytes');
430
+ }
431
+ const program = asPubkey(params.programId);
432
+ const pool = asPubkey(params.poolAddress);
433
+ const paymentMint = asPubkey(params.paymentMint);
434
+ return PublicKey.findProgramAddressSync([
435
+ Buffer.from(SEED_POLICY_SERIES_PAYMENT_OPTION),
436
+ pool.toBuffer(),
437
+ Buffer.from(params.seriesRefHash),
438
+ paymentMint.toBuffer(),
439
+ ], program);
440
+ }
441
+ export function deriveCoverageClaimPda(params) {
442
+ if (params.seriesRefHash.length !== 32) {
443
+ throw new Error('seriesRefHash must be exactly 32 bytes');
444
+ }
445
+ const program = asPubkey(params.programId);
446
+ const pool = asPubkey(params.poolAddress);
447
+ const member = asPubkey(params.member);
448
+ return PublicKey.findProgramAddressSync([
449
+ Buffer.from(SEED_COVERAGE_CLAIM),
450
+ pool.toBuffer(),
451
+ Buffer.from(params.seriesRefHash),
452
+ member.toBuffer(),
453
+ Buffer.from(params.intentHash),
454
+ ], program);
455
+ }
@@ -0,0 +1 @@
1
+ export { SEED_ATTESTATION_VOTE, SEED_CLAIM, SEED_CLAIM_DELEGATE, SEED_COVERAGE_CLAIM, SEED_CYCLE, SEED_CYCLE_QUOTE_REPLAY, SEED_ENROLLMENT_REPLAY, SEED_INVITE_ISSUER, SEED_OUTCOME_AGGREGATE, SEED_POOL_AUTOMATION_POLICY, SEED_POOL_COMPLIANCE_POLICY, SEED_POOL_CONTROL_AUTHORITY, SEED_POOL_RISK_CONFIG, SEED_POOL_RULE, SEED_POOL_TERMS, SEED_SCHEMA, SEED_SCHEMA_DEPENDENCY, deriveAttestationVotePda, deriveClaimDelegatePda, deriveClaimPda, deriveCoverageClaimPda, deriveCycleOutcomePda, deriveCycleQuoteReplayPda, deriveEnrollmentReplayPda, deriveInviteIssuerPda, deriveOutcomeAggregatePda, derivePoolAutomationPolicyPda, derivePoolCompliancePolicyPda, derivePoolControlAuthorityPda, derivePoolRiskConfigPda, derivePoolRulePda, derivePoolTermsPda, deriveSchemaDependencyPda, deriveSchemaPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_ATTESTATION_VOTE, SEED_CLAIM, SEED_CLAIM_DELEGATE, SEED_COVERAGE_CLAIM, SEED_CYCLE, SEED_CYCLE_QUOTE_REPLAY, SEED_ENROLLMENT_REPLAY, SEED_INVITE_ISSUER, SEED_OUTCOME_AGGREGATE, SEED_POOL_AUTOMATION_POLICY, SEED_POOL_COMPLIANCE_POLICY, SEED_POOL_CONTROL_AUTHORITY, SEED_POOL_RISK_CONFIG, SEED_POOL_RULE, SEED_POOL_TERMS, SEED_SCHEMA, SEED_SCHEMA_DEPENDENCY, deriveAttestationVotePda, deriveClaimDelegatePda, deriveClaimPda, deriveCoverageClaimPda, deriveCycleOutcomePda, deriveCycleQuoteReplayPda, deriveEnrollmentReplayPda, deriveInviteIssuerPda, deriveOutcomeAggregatePda, derivePoolAutomationPolicyPda, derivePoolCompliancePolicyPda, derivePoolControlAuthorityPda, derivePoolRiskConfigPda, derivePoolRulePda, derivePoolTermsPda, deriveSchemaDependencyPda, deriveSchemaPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_CONFIG, SEED_MEMBERSHIP, SEED_POOL, ZERO_PUBKEY, asPubkey, deriveConfigPda, deriveMembershipPda, derivePoolPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_CONFIG, SEED_MEMBERSHIP, SEED_POOL, ZERO_PUBKEY, asPubkey, deriveConfigPda, deriveMembershipPda, derivePoolPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_COHORT_SETTLEMENT_ROOT, SEED_POOL_ASSET_VAULT, SEED_POOL_CAPITAL_CLASS, SEED_POOL_LIQUIDITY_CONFIG, SEED_POOL_TREASURY_RESERVE, SEED_POOL_SHARE_MINT, SEED_PROTOCOL_FEE_VAULT, SEED_REDEMPTION_REQUEST, deriveCohortSettlementRootPda, derivePoolAssetVaultPda, derivePoolCapitalClassPda, derivePoolLiquidityConfigPda, derivePoolShareMintPda, derivePoolTreasuryReservePda, deriveProtocolFeeVaultPda, deriveRedemptionRequestPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_COHORT_SETTLEMENT_ROOT, SEED_POOL_ASSET_VAULT, SEED_POOL_CAPITAL_CLASS, SEED_POOL_LIQUIDITY_CONFIG, SEED_POOL_TREASURY_RESERVE, SEED_POOL_SHARE_MINT, SEED_PROTOCOL_FEE_VAULT, SEED_REDEMPTION_REQUEST, deriveCohortSettlementRootPda, derivePoolAssetVaultPda, derivePoolCapitalClassPda, derivePoolLiquidityConfigPda, derivePoolShareMintPda, derivePoolTreasuryReservePda, deriveProtocolFeeVaultPda, deriveRedemptionRequestPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_ORACLE, SEED_ORACLE_PROFILE, SEED_ORACLE_STAKE, SEED_POOL_ORACLE, SEED_POOL_ORACLE_FEE_VAULT, SEED_POOL_ORACLE_PERMISSIONS, SEED_POOL_ORACLE_POLICY, deriveOraclePda, deriveOracleProfilePda, deriveOracleStakePda, derivePoolOracleFeeVaultPda, derivePoolOraclePermissionSetPda, derivePoolOraclePda, derivePoolOraclePolicyPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_ORACLE, SEED_ORACLE_PROFILE, SEED_ORACLE_STAKE, SEED_POOL_ORACLE, SEED_POOL_ORACLE_FEE_VAULT, SEED_POOL_ORACLE_PERMISSIONS, SEED_POOL_ORACLE_POLICY, deriveOraclePda, deriveOracleProfilePda, deriveOracleStakePda, derivePoolOracleFeeVaultPda, derivePoolOraclePermissionSetPda, derivePoolOraclePda, derivePoolOraclePolicyPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_MEMBER_CYCLE, SEED_POLICY_POSITION, SEED_POLICY_POSITION_NFT, SEED_POLICY_SERIES, SEED_POLICY_SERIES_PAYMENT_OPTION, SEED_PREMIUM_LEDGER, SEED_PREMIUM_REPLAY, deriveMemberCyclePda, derivePolicyPositionNftPda, derivePolicyPositionPda, derivePolicySeriesPaymentOptionPda, derivePolicySeriesPda, derivePremiumLedgerPda, derivePremiumReplayPda, } from './all.js';
@@ -0,0 +1 @@
1
+ export { SEED_MEMBER_CYCLE, SEED_POLICY_POSITION, SEED_POLICY_POSITION_NFT, SEED_POLICY_SERIES, SEED_POLICY_SERIES_PAYMENT_OPTION, SEED_PREMIUM_LEDGER, SEED_PREMIUM_REPLAY, deriveMemberCyclePda, derivePolicyPositionNftPda, derivePolicyPositionPda, derivePolicySeriesPaymentOptionPda, derivePolicySeriesPda, derivePremiumLedgerPda, derivePremiumReplayPda, } from './all.js';
@@ -0,0 +1,17 @@
1
+ export interface RewardClaimOptionalAccounts {
2
+ memberCycle?: string;
3
+ cohortSettlementRoot?: string;
4
+ poolAssetVault?: string;
5
+ poolVaultTokenAccount?: string;
6
+ recipientTokenAccount?: string;
7
+ }
8
+ export interface RewardClaimPayloadInput {
9
+ member: string;
10
+ cycleHashHex: string;
11
+ ruleHashHex: string;
12
+ intentHashHex: string;
13
+ payoutAmount: bigint;
14
+ recipient: string;
15
+ }
16
+ export declare function validateRewardClaimOptionalAccounts(params: RewardClaimOptionalAccounts): void;
17
+ export declare function encodeSubmitRewardClaimPayload(params: RewardClaimPayloadInput): Buffer;
@@ -0,0 +1,27 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { anchorDiscriminator, encodeU64Le, fromHex } from '../utils.js';
3
+ const SUBMIT_REWARD_CLAIM_DISCRIMINATOR = anchorDiscriminator('global', 'submit_reward_claim');
4
+ export function validateRewardClaimOptionalAccounts(params) {
5
+ const providedCount = [
6
+ params.poolAssetVault,
7
+ params.poolVaultTokenAccount,
8
+ params.recipientTokenAccount,
9
+ ].filter((value) => typeof value === 'string' && value.length > 0).length;
10
+ if (providedCount !== 0 && providedCount !== 3) {
11
+ throw new Error('poolAssetVault, poolVaultTokenAccount, and recipientTokenAccount must be provided together');
12
+ }
13
+ }
14
+ export function encodeSubmitRewardClaimPayload(params) {
15
+ const cycleHash = fromHex(params.cycleHashHex, 32);
16
+ const ruleHash = fromHex(params.ruleHashHex, 32);
17
+ const intentHash = fromHex(params.intentHashHex, 32);
18
+ return Buffer.concat([
19
+ SUBMIT_REWARD_CLAIM_DISCRIMINATOR,
20
+ new PublicKey(params.member).toBuffer(),
21
+ Buffer.from(cycleHash),
22
+ Buffer.from(ruleHash),
23
+ Buffer.from(intentHash),
24
+ encodeU64Le(params.payoutAmount),
25
+ new PublicKey(params.recipient).toBuffer(),
26
+ ]);
27
+ }
@@ -0,0 +1,15 @@
1
+ import type { Connection } from '@solana/web3.js';
2
+ import { type SolanaTransaction } from '../transactions.js';
3
+ export interface SignedSimulationOptions {
4
+ commitment: 'processed' | 'confirmed' | 'finalized';
5
+ replaceRecentBlockhash: boolean;
6
+ sigVerify: boolean;
7
+ }
8
+ export interface SignedSimulationRpcResult {
9
+ value: {
10
+ err: unknown | null;
11
+ logs?: string[] | null;
12
+ unitsConsumed?: number | null;
13
+ };
14
+ }
15
+ export declare function simulateSignedTransactionViaConnection(connection: Connection, transaction: SolanaTransaction, options: SignedSimulationOptions): Promise<SignedSimulationRpcResult>;
@@ -0,0 +1,26 @@
1
+ import { serializeSolanaTransaction, } from '../transactions.js';
2
+ function getPrivateRpcRequest(connection) {
3
+ const rpcRequest = connection
4
+ ._rpcRequest;
5
+ return typeof rpcRequest === 'function' ? rpcRequest : null;
6
+ }
7
+ export async function simulateSignedTransactionViaConnection(connection, transaction, options) {
8
+ const rpcRequest = getPrivateRpcRequest(connection);
9
+ if (!rpcRequest) {
10
+ return await connection.simulateTransaction(transaction, options);
11
+ }
12
+ const unsafe = await rpcRequest.call(connection, 'simulateTransaction', [
13
+ serializeSolanaTransaction(transaction).toString('base64'),
14
+ {
15
+ encoding: 'base64',
16
+ ...options,
17
+ },
18
+ ]);
19
+ if (unsafe?.error) {
20
+ throw new Error(unsafe.error.message ?? 'failed to simulate transaction');
21
+ }
22
+ if (!unsafe?.result?.value) {
23
+ throw new Error('failed to simulate transaction: missing RPC result');
24
+ }
25
+ return unsafe.result;
26
+ }