@huma-finance/soroban-pool-manager 0.0.8-beta.2

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/src/index.ts ADDED
@@ -0,0 +1,798 @@
1
+ import { ContractSpec, Address } from '@stellar/stellar-sdk'
2
+ import { Buffer } from 'buffer'
3
+ import {
4
+ AssembledTransaction,
5
+ ContractClient,
6
+ ContractClientOptions,
7
+ } from '@stellar/stellar-sdk/lib/contract_client/index.js'
8
+ import type {
9
+ u32,
10
+ i32,
11
+ u64,
12
+ i64,
13
+ u128,
14
+ i128,
15
+ u256,
16
+ i256,
17
+ Option,
18
+ Typepoint,
19
+ Duration,
20
+ } from '@stellar/stellar-sdk/lib/contract_client'
21
+ import { Result } from '@stellar/stellar-sdk/lib/rust_types/index.js'
22
+ export * from '@stellar/stellar-sdk'
23
+ export * from '@stellar/stellar-sdk/lib/contract_client/index.js'
24
+ export * from '@stellar/stellar-sdk/lib/rust_types/index.js'
25
+
26
+ if (typeof window !== 'undefined') {
27
+ //@ts-ignore Buffer exists
28
+ window.Buffer = window.Buffer || Buffer
29
+ }
30
+
31
+ export const networks = {
32
+ testnet: {
33
+ networkPassphrase: 'Test SDF Network ; September 2015',
34
+ contractId: 'CC7TGDDRSA2R7F6RIW3POEZSH22RG7DYNZX6GY2YGQ2O33E5BZWSMPDT',
35
+ },
36
+ } as const
37
+
38
+ export type ClientDataKey =
39
+ | { tag: 'HumaConfig'; values: void }
40
+ | { tag: 'PoolStorage'; values: void }
41
+ | { tag: 'Pool'; values: void }
42
+
43
+ /**
44
+ * Event indicating that a new epoch has started.
45
+ * # Fields:
46
+ * * `epoch_id` - The ID of the epoch that just started.
47
+ * * `end_time` - The time when the current epoch should end.
48
+ */
49
+ export interface NewEpochStartedEvent {
50
+ end_time: u64
51
+ epoch_id: u64
52
+ }
53
+
54
+ /**
55
+ * Event indicating that the current epoch has closed.
56
+ * # Fields:
57
+ * * `epoch_id` - The ID of the epoch that just closed.
58
+ */
59
+ export interface EpochClosedEvent {
60
+ epoch_id: u64
61
+ }
62
+
63
+ /**
64
+ * Event indicating that the epoch has been processed after the pool is closed.
65
+ * # Fields:
66
+ * * `epoch_id` - The ID of the epoch that has been processed.
67
+ */
68
+ export interface EpochProcessedAfterPoolClosureEvent {
69
+ epoch_id: u64
70
+ }
71
+
72
+ /**
73
+ * Event indicating that pending redemption requests have been processed.
74
+ * # Fields:
75
+ * * `senior_tranche_assets` - The total amount of assets in the senior tranche.
76
+ * * `senior_tranche_price` - The LP token price of the senior tranche.
77
+ * * `junior_tranche_assets` - The total amount of assets in the junior tranche.
78
+ * * `junior_tranche_price` - The LP token price of the junior tranche.
79
+ * * `unprocessed_amount` - The amount of assets requested for redemption but not fulfilled.
80
+ */
81
+ export interface RedemptionRequestsProcessedEvent {
82
+ junior_tranche_assets: u128
83
+ junior_tranche_price: u128
84
+ senior_tranche_assets: u128
85
+ senior_tranche_price: u128
86
+ unprocessed_amount: u128
87
+ }
88
+
89
+ export const Errors = {
90
+ 1: { message: '' },
91
+ 72: { message: '' },
92
+ 21: { message: '' },
93
+ 101: { message: '' },
94
+ 301: { message: '' },
95
+ 54: { message: '' },
96
+ 302: { message: '' },
97
+ 91: { message: '' },
98
+ 92: { message: '' },
99
+ 93: { message: '' },
100
+ 53: { message: '' },
101
+ }
102
+
103
+ /**
104
+ * Event indicating that the pool has been enabled.
105
+ * # Fields:
106
+ * * `by` - The address that enabled the pool.
107
+ */
108
+ export interface PoolEnabledEvent {
109
+ by: string
110
+ }
111
+
112
+ /**
113
+ * Event indicating that the pool has been disabled.
114
+ * # Fields:
115
+ * * `by` - The address that disabled the pool.
116
+ */
117
+ export interface PoolDisabledEvent {
118
+ by: string
119
+ }
120
+
121
+ /**
122
+ * Event indicating that the pool has been closed.
123
+ * # Fields:
124
+ * * `by` - The address that closed the pool.
125
+ */
126
+ export interface PoolClosedEvent {
127
+ by: string
128
+ }
129
+
130
+ export type PayPeriodDuration =
131
+ | { tag: 'Monthly'; values: void }
132
+ | { tag: 'Quarterly'; values: void }
133
+ | { tag: 'SemiAnnually'; values: void }
134
+
135
+ export interface PoolSettings {
136
+ default_grace_period_days: u32
137
+ late_payment_grace_period_days: u32
138
+ max_credit_line: u128
139
+ min_deposit_amount: u128
140
+ pay_period_duration: PayPeriodDuration
141
+ principal_only_payment_allowed: boolean
142
+ }
143
+
144
+ export interface LPConfig {
145
+ fixed_senior_yield_bps: u32
146
+ liquidity_cap: u128
147
+ max_senior_junior_ratio: u32
148
+ tranches_risk_adjustment_bps: u32
149
+ withdrawal_lockout_period_days: u32
150
+ }
151
+
152
+ export interface FeeStructure {
153
+ front_loading_fee_bps: u32
154
+ front_loading_fee_flat: u128
155
+ late_fee_bps: u32
156
+ yield_bps: u32
157
+ }
158
+
159
+ export type PoolStatus =
160
+ | { tag: 'Off'; values: void }
161
+ | { tag: 'On'; values: void }
162
+ | { tag: 'Closed'; values: void }
163
+
164
+ export interface CurrentEpoch {
165
+ end_time: u64
166
+ id: u64
167
+ }
168
+
169
+ export interface AdminRnR {
170
+ liquidity_rate_bps_ea: u32
171
+ liquidity_rate_bps_pool_owner: u32
172
+ reward_rate_bps_ea: u32
173
+ reward_rate_bps_pool_owner: u32
174
+ }
175
+
176
+ export interface TrancheAddresses {
177
+ addrs: Array<Option<string>>
178
+ }
179
+
180
+ export interface TrancheAssets {
181
+ assets: Array<u128>
182
+ }
183
+
184
+ export interface EpochRedemptionSummary {
185
+ epoch_id: u64
186
+ total_amount_processed: u128
187
+ total_shares_processed: u128
188
+ total_shares_requested: u128
189
+ }
190
+
191
+ export interface Client {
192
+ /**
193
+ * Construct and simulate a initialize transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
194
+ */
195
+ initialize: (
196
+ {
197
+ pool_name,
198
+ huma_config,
199
+ pool_storage,
200
+ pool,
201
+ }: {
202
+ pool_name: string
203
+ huma_config: string
204
+ pool_storage: string
205
+ pool: string
206
+ },
207
+ options?: {
208
+ /**
209
+ * The fee to pay for the transaction. Default: BASE_FEE
210
+ */
211
+ fee?: number
212
+
213
+ /**
214
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
215
+ */
216
+ timeoutInSeconds?: number
217
+
218
+ /**
219
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
220
+ */
221
+ simulate?: boolean
222
+ },
223
+ ) => Promise<AssembledTransaction<null>>
224
+
225
+ /**
226
+ * Construct and simulate a set_pool transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
227
+ */
228
+ set_pool: (
229
+ { caller, pool }: { caller: string; pool: string },
230
+ options?: {
231
+ /**
232
+ * The fee to pay for the transaction. Default: BASE_FEE
233
+ */
234
+ fee?: number
235
+
236
+ /**
237
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
238
+ */
239
+ timeoutInSeconds?: number
240
+
241
+ /**
242
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
243
+ */
244
+ simulate?: boolean
245
+ },
246
+ ) => Promise<AssembledTransaction<null>>
247
+
248
+ /**
249
+ * Construct and simulate a set_pool_storage transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
250
+ */
251
+ set_pool_storage: (
252
+ { caller, addr }: { caller: string; addr: string },
253
+ options?: {
254
+ /**
255
+ * The fee to pay for the transaction. Default: BASE_FEE
256
+ */
257
+ fee?: number
258
+
259
+ /**
260
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
261
+ */
262
+ timeoutInSeconds?: number
263
+
264
+ /**
265
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
266
+ */
267
+ simulate?: boolean
268
+ },
269
+ ) => Promise<AssembledTransaction<null>>
270
+
271
+ /**
272
+ * Construct and simulate a set_huma_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
273
+ */
274
+ set_huma_config: (
275
+ { huma_config }: { huma_config: string },
276
+ options?: {
277
+ /**
278
+ * The fee to pay for the transaction. Default: BASE_FEE
279
+ */
280
+ fee?: number
281
+
282
+ /**
283
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
284
+ */
285
+ timeoutInSeconds?: number
286
+
287
+ /**
288
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
289
+ */
290
+ simulate?: boolean
291
+ },
292
+ ) => Promise<AssembledTransaction<null>>
293
+
294
+ /**
295
+ * Construct and simulate a set_pool_name transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
296
+ */
297
+ set_pool_name: (
298
+ { caller, name }: { caller: string; name: string },
299
+ options?: {
300
+ /**
301
+ * The fee to pay for the transaction. Default: BASE_FEE
302
+ */
303
+ fee?: number
304
+
305
+ /**
306
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
307
+ */
308
+ timeoutInSeconds?: number
309
+
310
+ /**
311
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
312
+ */
313
+ simulate?: boolean
314
+ },
315
+ ) => Promise<AssembledTransaction<null>>
316
+
317
+ /**
318
+ * Construct and simulate a set_admins transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
319
+ */
320
+ set_admins: (
321
+ {
322
+ caller,
323
+ pool_owner,
324
+ pool_owner_treasury,
325
+ ea,
326
+ }: {
327
+ caller: string
328
+ pool_owner: string
329
+ pool_owner_treasury: string
330
+ ea: string
331
+ },
332
+ options?: {
333
+ /**
334
+ * The fee to pay for the transaction. Default: BASE_FEE
335
+ */
336
+ fee?: number
337
+
338
+ /**
339
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
340
+ */
341
+ timeoutInSeconds?: number
342
+
343
+ /**
344
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
345
+ */
346
+ simulate?: boolean
347
+ },
348
+ ) => Promise<AssembledTransaction<null>>
349
+
350
+ /**
351
+ * Construct and simulate a set_tranche_addresses transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
352
+ */
353
+ set_tranche_addresses: (
354
+ {
355
+ caller,
356
+ junior_addr,
357
+ senior_addr,
358
+ }: { caller: string; junior_addr: string; senior_addr: Option<string> },
359
+ options?: {
360
+ /**
361
+ * The fee to pay for the transaction. Default: BASE_FEE
362
+ */
363
+ fee?: number
364
+
365
+ /**
366
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
367
+ */
368
+ timeoutInSeconds?: number
369
+
370
+ /**
371
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
372
+ */
373
+ simulate?: boolean
374
+ },
375
+ ) => Promise<AssembledTransaction<null>>
376
+
377
+ /**
378
+ * Construct and simulate a set_admin_rnr transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
379
+ */
380
+ set_admin_rnr: (
381
+ {
382
+ caller,
383
+ pool_owner_reward_rate,
384
+ pool_owner_liquidity_rate,
385
+ ea_reward_rate,
386
+ ea_liquidity_rate,
387
+ }: {
388
+ caller: string
389
+ pool_owner_reward_rate: u32
390
+ pool_owner_liquidity_rate: u32
391
+ ea_reward_rate: u32
392
+ ea_liquidity_rate: u32
393
+ },
394
+ options?: {
395
+ /**
396
+ * The fee to pay for the transaction. Default: BASE_FEE
397
+ */
398
+ fee?: number
399
+
400
+ /**
401
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
402
+ */
403
+ timeoutInSeconds?: number
404
+
405
+ /**
406
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
407
+ */
408
+ simulate?: boolean
409
+ },
410
+ ) => Promise<AssembledTransaction<null>>
411
+
412
+ /**
413
+ * Construct and simulate a set_pool_settings transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
414
+ */
415
+ set_pool_settings: (
416
+ {
417
+ caller,
418
+ max_credit_line,
419
+ min_deposit_amount,
420
+ pay_period_duration,
421
+ late_payment_grace_period_days,
422
+ default_grace_period_days,
423
+ principal_only_payment_allowed,
424
+ }: {
425
+ caller: string
426
+ max_credit_line: u128
427
+ min_deposit_amount: u128
428
+ pay_period_duration: PayPeriodDuration
429
+ late_payment_grace_period_days: u32
430
+ default_grace_period_days: u32
431
+ principal_only_payment_allowed: boolean
432
+ },
433
+ options?: {
434
+ /**
435
+ * The fee to pay for the transaction. Default: BASE_FEE
436
+ */
437
+ fee?: number
438
+
439
+ /**
440
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
441
+ */
442
+ timeoutInSeconds?: number
443
+
444
+ /**
445
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
446
+ */
447
+ simulate?: boolean
448
+ },
449
+ ) => Promise<AssembledTransaction<null>>
450
+
451
+ /**
452
+ * Construct and simulate a set_lp_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
453
+ */
454
+ set_lp_config: (
455
+ {
456
+ caller,
457
+ liquidity_cap,
458
+ max_senior_junior_ratio,
459
+ fixed_senior_yield_bps,
460
+ tranches_risk_adjustment_bps,
461
+ withdrawal_lockout_period_days,
462
+ }: {
463
+ caller: string
464
+ liquidity_cap: u128
465
+ max_senior_junior_ratio: u32
466
+ fixed_senior_yield_bps: u32
467
+ tranches_risk_adjustment_bps: u32
468
+ withdrawal_lockout_period_days: u32
469
+ },
470
+ options?: {
471
+ /**
472
+ * The fee to pay for the transaction. Default: BASE_FEE
473
+ */
474
+ fee?: number
475
+
476
+ /**
477
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
478
+ */
479
+ timeoutInSeconds?: number
480
+
481
+ /**
482
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
483
+ */
484
+ simulate?: boolean
485
+ },
486
+ ) => Promise<AssembledTransaction<null>>
487
+
488
+ /**
489
+ * Construct and simulate a set_fee_structure transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
490
+ */
491
+ set_fee_structure: (
492
+ {
493
+ caller,
494
+ yield_bps,
495
+ late_fee_bps,
496
+ front_loading_fee_flat,
497
+ front_loading_fee_bps,
498
+ }: {
499
+ caller: string
500
+ yield_bps: u32
501
+ late_fee_bps: u32
502
+ front_loading_fee_flat: u128
503
+ front_loading_fee_bps: u32
504
+ },
505
+ options?: {
506
+ /**
507
+ * The fee to pay for the transaction. Default: BASE_FEE
508
+ */
509
+ fee?: number
510
+
511
+ /**
512
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
513
+ */
514
+ timeoutInSeconds?: number
515
+
516
+ /**
517
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
518
+ */
519
+ simulate?: boolean
520
+ },
521
+ ) => Promise<AssembledTransaction<null>>
522
+
523
+ /**
524
+ * Construct and simulate a add_pool_operator transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
525
+ */
526
+ add_pool_operator: (
527
+ { addr }: { addr: string },
528
+ options?: {
529
+ /**
530
+ * The fee to pay for the transaction. Default: BASE_FEE
531
+ */
532
+ fee?: number
533
+
534
+ /**
535
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
536
+ */
537
+ timeoutInSeconds?: number
538
+
539
+ /**
540
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
541
+ */
542
+ simulate?: boolean
543
+ },
544
+ ) => Promise<AssembledTransaction<null>>
545
+
546
+ /**
547
+ * Construct and simulate a remove_pool_operator transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
548
+ */
549
+ remove_pool_operator: (
550
+ { addr }: { addr: string },
551
+ options?: {
552
+ /**
553
+ * The fee to pay for the transaction. Default: BASE_FEE
554
+ */
555
+ fee?: number
556
+
557
+ /**
558
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
559
+ */
560
+ timeoutInSeconds?: number
561
+
562
+ /**
563
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
564
+ */
565
+ simulate?: boolean
566
+ },
567
+ ) => Promise<AssembledTransaction<null>>
568
+
569
+ /**
570
+ * Construct and simulate a enable_pool transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
571
+ */
572
+ enable_pool: (
573
+ { caller }: { caller: string },
574
+ options?: {
575
+ /**
576
+ * The fee to pay for the transaction. Default: BASE_FEE
577
+ */
578
+ fee?: number
579
+
580
+ /**
581
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
582
+ */
583
+ timeoutInSeconds?: number
584
+
585
+ /**
586
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
587
+ */
588
+ simulate?: boolean
589
+ },
590
+ ) => Promise<AssembledTransaction<null>>
591
+
592
+ /**
593
+ * Construct and simulate a disable_pool transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
594
+ */
595
+ disable_pool: (
596
+ { caller }: { caller: string },
597
+ options?: {
598
+ /**
599
+ * The fee to pay for the transaction. Default: BASE_FEE
600
+ */
601
+ fee?: number
602
+
603
+ /**
604
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
605
+ */
606
+ timeoutInSeconds?: number
607
+
608
+ /**
609
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
610
+ */
611
+ simulate?: boolean
612
+ },
613
+ ) => Promise<AssembledTransaction<null>>
614
+
615
+ /**
616
+ * Construct and simulate a close_pool transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
617
+ */
618
+ close_pool: (
619
+ { caller }: { caller: string },
620
+ options?: {
621
+ /**
622
+ * The fee to pay for the transaction. Default: BASE_FEE
623
+ */
624
+ fee?: number
625
+
626
+ /**
627
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
628
+ */
629
+ timeoutInSeconds?: number
630
+
631
+ /**
632
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
633
+ */
634
+ simulate?: boolean
635
+ },
636
+ ) => Promise<AssembledTransaction<null>>
637
+
638
+ /**
639
+ * Construct and simulate a close_epoch transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
640
+ */
641
+ close_epoch: (options?: {
642
+ /**
643
+ * The fee to pay for the transaction. Default: BASE_FEE
644
+ */
645
+ fee?: number
646
+
647
+ /**
648
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
649
+ */
650
+ timeoutInSeconds?: number
651
+
652
+ /**
653
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
654
+ */
655
+ simulate?: boolean
656
+ }) => Promise<AssembledTransaction<null>>
657
+
658
+ /**
659
+ * Construct and simulate a withdraw_protocol_fees transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
660
+ */
661
+ withdraw_protocol_fees: (
662
+ { amount }: { amount: u128 },
663
+ options?: {
664
+ /**
665
+ * The fee to pay for the transaction. Default: BASE_FEE
666
+ */
667
+ fee?: number
668
+
669
+ /**
670
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
671
+ */
672
+ timeoutInSeconds?: number
673
+
674
+ /**
675
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
676
+ */
677
+ simulate?: boolean
678
+ },
679
+ ) => Promise<AssembledTransaction<null>>
680
+
681
+ /**
682
+ * Construct and simulate a withdraw_pool_owner_fees transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
683
+ */
684
+ withdraw_pool_owner_fees: (
685
+ { amount }: { amount: u128 },
686
+ options?: {
687
+ /**
688
+ * The fee to pay for the transaction. Default: BASE_FEE
689
+ */
690
+ fee?: number
691
+
692
+ /**
693
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
694
+ */
695
+ timeoutInSeconds?: number
696
+
697
+ /**
698
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
699
+ */
700
+ simulate?: boolean
701
+ },
702
+ ) => Promise<AssembledTransaction<null>>
703
+
704
+ /**
705
+ * Construct and simulate a withdraw_ea_fees transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
706
+ */
707
+ withdraw_ea_fees: (
708
+ { caller, amount }: { caller: string; amount: u128 },
709
+ options?: {
710
+ /**
711
+ * The fee to pay for the transaction. Default: BASE_FEE
712
+ */
713
+ fee?: number
714
+
715
+ /**
716
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
717
+ */
718
+ timeoutInSeconds?: number
719
+
720
+ /**
721
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
722
+ */
723
+ simulate?: boolean
724
+ },
725
+ ) => Promise<AssembledTransaction<null>>
726
+ }
727
+ export class Client extends ContractClient {
728
+ constructor(public readonly options: ContractClientOptions) {
729
+ super(
730
+ new ContractSpec([
731
+ 'AAAAAgAAAAAAAAAAAAAADUNsaWVudERhdGFLZXkAAAAAAAADAAAAAAAAAAAAAAAKSHVtYUNvbmZpZwAAAAAAAAAAAAAAAAALUG9vbFN0b3JhZ2UAAAAAAAAAAAAAAAAEUG9vbA==',
732
+ 'AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAABAAAAAAAAAAJcG9vbF9uYW1lAAAAAAAAEAAAAAAAAAALaHVtYV9jb25maWcAAAAAEwAAAAAAAAAMcG9vbF9zdG9yYWdlAAAAEwAAAAAAAAAEcG9vbAAAABMAAAAA',
733
+ 'AAAAAAAAAAAAAAAIc2V0X3Bvb2wAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAABHBvb2wAAAATAAAAAA==',
734
+ 'AAAAAAAAAAAAAAAQc2V0X3Bvb2xfc3RvcmFnZQAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAEYWRkcgAAABMAAAAA',
735
+ 'AAAAAAAAAAAAAAAPc2V0X2h1bWFfY29uZmlnAAAAAAEAAAAAAAAAC2h1bWFfY29uZmlnAAAAABMAAAAA',
736
+ 'AAAAAAAAAAAAAAANc2V0X3Bvb2xfbmFtZQAAAAAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAEbmFtZQAAABAAAAAA',
737
+ 'AAAAAAAAAAAAAAAKc2V0X2FkbWlucwAAAAAABAAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAApwb29sX293bmVyAAAAAAATAAAAAAAAABNwb29sX293bmVyX3RyZWFzdXJ5AAAAABMAAAAAAAAAAmVhAAAAAAATAAAAAA==',
738
+ 'AAAAAAAAAAAAAAAVc2V0X3RyYW5jaGVfYWRkcmVzc2VzAAAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAtqdW5pb3JfYWRkcgAAAAATAAAAAAAAAAtzZW5pb3JfYWRkcgAAAAPoAAAAEwAAAAA=',
739
+ 'AAAAAAAAAAAAAAANc2V0X2FkbWluX3JucgAAAAAAAAUAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAWcG9vbF9vd25lcl9yZXdhcmRfcmF0ZQAAAAAABAAAAAAAAAAZcG9vbF9vd25lcl9saXF1aWRpdHlfcmF0ZQAAAAAAAAQAAAAAAAAADmVhX3Jld2FyZF9yYXRlAAAAAAAEAAAAAAAAABFlYV9saXF1aWRpdHlfcmF0ZQAAAAAAAAQAAAAA',
740
+ 'AAAAAAAAAAAAAAARc2V0X3Bvb2xfc2V0dGluZ3MAAAAAAAAHAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAD21heF9jcmVkaXRfbGluZQAAAAAKAAAAAAAAABJtaW5fZGVwb3NpdF9hbW91bnQAAAAAAAoAAAAAAAAAE3BheV9wZXJpb2RfZHVyYXRpb24AAAAH0AAAABFQYXlQZXJpb2REdXJhdGlvbgAAAAAAAAAAAAAebGF0ZV9wYXltZW50X2dyYWNlX3BlcmlvZF9kYXlzAAAAAAAEAAAAAAAAABlkZWZhdWx0X2dyYWNlX3BlcmlvZF9kYXlzAAAAAAAABAAAAAAAAAAecHJpbmNpcGFsX29ubHlfcGF5bWVudF9hbGxvd2VkAAAAAAABAAAAAA==',
741
+ 'AAAAAAAAAAAAAAANc2V0X2xwX2NvbmZpZwAAAAAAAAYAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAANbGlxdWlkaXR5X2NhcAAAAAAAAAoAAAAAAAAAF21heF9zZW5pb3JfanVuaW9yX3JhdGlvAAAAAAQAAAAAAAAAFmZpeGVkX3Nlbmlvcl95aWVsZF9icHMAAAAAAAQAAAAAAAAAHHRyYW5jaGVzX3Jpc2tfYWRqdXN0bWVudF9icHMAAAAEAAAAAAAAAB53aXRoZHJhd2FsX2xvY2tvdXRfcGVyaW9kX2RheXMAAAAAAAQAAAAA',
742
+ 'AAAAAAAAAAAAAAARc2V0X2ZlZV9zdHJ1Y3R1cmUAAAAAAAAFAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAACXlpZWxkX2JwcwAAAAAAAAQAAAAAAAAADGxhdGVfZmVlX2JwcwAAAAQAAAAAAAAAFmZyb250X2xvYWRpbmdfZmVlX2ZsYXQAAAAAAAoAAAAAAAAAFWZyb250X2xvYWRpbmdfZmVlX2JwcwAAAAAAAAQAAAAA',
743
+ 'AAAAAAAAAAAAAAARYWRkX3Bvb2xfb3BlcmF0b3IAAAAAAAABAAAAAAAAAARhZGRyAAAAEwAAAAA=',
744
+ 'AAAAAAAAAAAAAAAUcmVtb3ZlX3Bvb2xfb3BlcmF0b3IAAAABAAAAAAAAAARhZGRyAAAAEwAAAAA=',
745
+ 'AAAAAAAAAAAAAAALZW5hYmxlX3Bvb2wAAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAA==',
746
+ 'AAAAAAAAAAAAAAAMZGlzYWJsZV9wb29sAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAA==',
747
+ 'AAAAAAAAAAAAAAAKY2xvc2VfcG9vbAAAAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAA==',
748
+ 'AAAAAAAAAAAAAAALY2xvc2VfZXBvY2gAAAAAAAAAAAA=',
749
+ 'AAAAAAAAAAAAAAAWd2l0aGRyYXdfcHJvdG9jb2xfZmVlcwAAAAAAAQAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAA==',
750
+ 'AAAAAAAAAAAAAAAYd2l0aGRyYXdfcG9vbF9vd25lcl9mZWVzAAAAAQAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAA==',
751
+ 'AAAAAAAAAAAAAAAQd2l0aGRyYXdfZWFfZmVlcwAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAA==',
752
+ 'AAAAAQAAAKlFdmVudCBpbmRpY2F0aW5nIHRoYXQgYSBuZXcgZXBvY2ggaGFzIHN0YXJ0ZWQuCiMgRmllbGRzOgoqIGBlcG9jaF9pZGAgLSBUaGUgSUQgb2YgdGhlIGVwb2NoIHRoYXQganVzdCBzdGFydGVkLgoqIGBlbmRfdGltZWAgLSBUaGUgdGltZSB3aGVuIHRoZSBjdXJyZW50IGVwb2NoIHNob3VsZCBlbmQuAAAAAAAAAAAAABROZXdFcG9jaFN0YXJ0ZWRFdmVudAAAAAIAAAAAAAAACGVuZF90aW1lAAAABgAAAAAAAAAIZXBvY2hfaWQAAAAG',
753
+ 'AAAAAQAAAHJFdmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIGN1cnJlbnQgZXBvY2ggaGFzIGNsb3NlZC4KIyBGaWVsZHM6CiogYGVwb2NoX2lkYCAtIFRoZSBJRCBvZiB0aGUgZXBvY2ggdGhhdCBqdXN0IGNsb3NlZC4AAAAAAAAAAAAQRXBvY2hDbG9zZWRFdmVudAAAAAEAAAAAAAAACGVwb2NoX2lkAAAABg==',
754
+ 'AAAAAQAAAJJFdmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIGVwb2NoIGhhcyBiZWVuIHByb2Nlc3NlZCBhZnRlciB0aGUgcG9vbCBpcyBjbG9zZWQuCiMgRmllbGRzOgoqIGBlcG9jaF9pZGAgLSBUaGUgSUQgb2YgdGhlIGVwb2NoIHRoYXQgaGFzIGJlZW4gcHJvY2Vzc2VkLgAAAAAAAAAAACNFcG9jaFByb2Nlc3NlZEFmdGVyUG9vbENsb3N1cmVFdmVudAAAAAABAAAAAAAAAAhlcG9jaF9pZAAAAAY=',
755
+ 'AAAAAQAAAdBFdmVudCBpbmRpY2F0aW5nIHRoYXQgcGVuZGluZyByZWRlbXB0aW9uIHJlcXVlc3RzIGhhdmUgYmVlbiBwcm9jZXNzZWQuCiMgRmllbGRzOgoqIGBzZW5pb3JfdHJhbmNoZV9hc3NldHNgIC0gVGhlIHRvdGFsIGFtb3VudCBvZiBhc3NldHMgaW4gdGhlIHNlbmlvciB0cmFuY2hlLgoqIGBzZW5pb3JfdHJhbmNoZV9wcmljZWAgLSBUaGUgTFAgdG9rZW4gcHJpY2Ugb2YgdGhlIHNlbmlvciB0cmFuY2hlLgoqIGBqdW5pb3JfdHJhbmNoZV9hc3NldHNgIC0gVGhlIHRvdGFsIGFtb3VudCBvZiBhc3NldHMgaW4gdGhlIGp1bmlvciB0cmFuY2hlLgoqIGBqdW5pb3JfdHJhbmNoZV9wcmljZWAgLSBUaGUgTFAgdG9rZW4gcHJpY2Ugb2YgdGhlIGp1bmlvciB0cmFuY2hlLgoqIGB1bnByb2Nlc3NlZF9hbW91bnRgIC0gVGhlIGFtb3VudCBvZiBhc3NldHMgcmVxdWVzdGVkIGZvciByZWRlbXB0aW9uIGJ1dCBub3QgZnVsZmlsbGVkLgAAAAAAAAAgUmVkZW1wdGlvblJlcXVlc3RzUHJvY2Vzc2VkRXZlbnQAAAAFAAAAAAAAABVqdW5pb3JfdHJhbmNoZV9hc3NldHMAAAAAAAAKAAAAAAAAABRqdW5pb3JfdHJhbmNoZV9wcmljZQAAAAoAAAAAAAAAFXNlbmlvcl90cmFuY2hlX2Fzc2V0cwAAAAAAAAoAAAAAAAAAFHNlbmlvcl90cmFuY2hlX3ByaWNlAAAACgAAAAAAAAASdW5wcm9jZXNzZWRfYW1vdW50AAAAAAAK',
756
+ 'AAAABAAAAAAAAAAAAAAAEFBvb2xNYW5hZ2VyRXJyb3IAAAALAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAAAAEAAAAAAAAAHFBvb2xPd25lck9ySHVtYU93bmVyUmVxdWlyZWQAAABIAAAAAAAAABRQb29sT3BlcmF0b3JSZXF1aXJlZAAAABUAAAAAAAAAHVByb3RvY29sSXNQYXVzZWRPclBvb2xJc05vdE9uAAAAAAAAZQAAAAAAAAATRXBvY2hDbG9zZWRUb29FYXJseQAAAAEtAAAAAAAAABxJbnN1ZmZpY2llbnRBbW91bnRGb3JSZXF1ZXN0AAAANgAAAAAAAAAVUG9vbE93bmVyT3JFQVJlcXVpcmVkAAAAAAABLgAAAAAAAAAWQWRtaW5SZXdhcmRSYXRlVG9vSGlnaAAAAAAAWwAAAAAAAAAWTWluRGVwb3NpdEFtb3VudFRvb0xvdwAAAAAAXAAAAAAAAAAdTGF0ZVBheW1lbnRHcmFjZVBlcmlvZFRvb0xvbmcAAAAAAABdAAAAAAAAACBJbnZhbGlkQmFzaXNQb2ludEhpZ2hlclRoYW4xMDAwMAAAADU=',
757
+ 'AAAAAQAAAGZFdmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBvb2wgaGFzIGJlZW4gZW5hYmxlZC4KIyBGaWVsZHM6CiogYGJ5YCAtIFRoZSBhZGRyZXNzIHRoYXQgZW5hYmxlZCB0aGUgcG9vbC4AAAAAAAAAAAAQUG9vbEVuYWJsZWRFdmVudAAAAAEAAAAAAAAAAmJ5AAAAAAAT',
758
+ 'AAAAAQAAAGhFdmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBvb2wgaGFzIGJlZW4gZGlzYWJsZWQuCiMgRmllbGRzOgoqIGBieWAgLSBUaGUgYWRkcmVzcyB0aGF0IGRpc2FibGVkIHRoZSBwb29sLgAAAAAAAAARUG9vbERpc2FibGVkRXZlbnQAAAAAAAABAAAAAAAAAAJieQAAAAAAEw==',
759
+ 'AAAAAQAAAGRFdmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBvb2wgaGFzIGJlZW4gY2xvc2VkLgojIEZpZWxkczoKKiBgYnlgIC0gVGhlIGFkZHJlc3MgdGhhdCBjbG9zZWQgdGhlIHBvb2wuAAAAAAAAAA9Qb29sQ2xvc2VkRXZlbnQAAAAAAQAAAAAAAAACYnkAAAAAABM=',
760
+ 'AAAAAgAAAAAAAAAAAAAAEVBheVBlcmlvZER1cmF0aW9uAAAAAAAAAwAAAAAAAAAAAAAAB01vbnRobHkAAAAAAAAAAAAAAAAJUXVhcnRlcmx5AAAAAAAAAAAAAAAAAAAMU2VtaUFubnVhbGx5',
761
+ 'AAAABAAAAAAAAAAAAAAADUNhbGVuZGFyRXJyb3IAAAAAAAABAAAAAAAAABlTdGFydERhdGVMYXRlclRoYW5FbmREYXRlAAAAAAAAZQ==',
762
+ 'AAAABAAAAAAAAAAAAAAAC0NvbW1vbkVycm9yAAAAAAIAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAAAQAAAAAAAAAgQXV0aG9yaXplZENvbnRyYWN0Q2FsbGVyUmVxdWlyZWQAAABP',
763
+ 'AAAAAQAAAAAAAAAAAAAADFBvb2xTZXR0aW5ncwAAAAYAAAAAAAAAGWRlZmF1bHRfZ3JhY2VfcGVyaW9kX2RheXMAAAAAAAAEAAAAAAAAAB5sYXRlX3BheW1lbnRfZ3JhY2VfcGVyaW9kX2RheXMAAAAAAAQAAAAAAAAAD21heF9jcmVkaXRfbGluZQAAAAAKAAAAAAAAABJtaW5fZGVwb3NpdF9hbW91bnQAAAAAAAoAAAAAAAAAE3BheV9wZXJpb2RfZHVyYXRpb24AAAAH0AAAABFQYXlQZXJpb2REdXJhdGlvbgAAAAAAAAAAAAAecHJpbmNpcGFsX29ubHlfcGF5bWVudF9hbGxvd2VkAAAAAAAB',
764
+ 'AAAAAQAAAAAAAAAAAAAACExQQ29uZmlnAAAABQAAAAAAAAAWZml4ZWRfc2VuaW9yX3lpZWxkX2JwcwAAAAAABAAAAAAAAAANbGlxdWlkaXR5X2NhcAAAAAAAAAoAAAAAAAAAF21heF9zZW5pb3JfanVuaW9yX3JhdGlvAAAAAAQAAAAAAAAAHHRyYW5jaGVzX3Jpc2tfYWRqdXN0bWVudF9icHMAAAAEAAAAAAAAAB53aXRoZHJhd2FsX2xvY2tvdXRfcGVyaW9kX2RheXMAAAAAAAQ=',
765
+ 'AAAAAQAAAAAAAAAAAAAADEZlZVN0cnVjdHVyZQAAAAQAAAAAAAAAFWZyb250X2xvYWRpbmdfZmVlX2JwcwAAAAAAAAQAAAAAAAAAFmZyb250X2xvYWRpbmdfZmVlX2ZsYXQAAAAAAAoAAAAAAAAADGxhdGVfZmVlX2JwcwAAAAQAAAAAAAAACXlpZWxkX2JwcwAAAAAAAAQ=',
766
+ 'AAAAAgAAAAAAAAAAAAAAClBvb2xTdGF0dXMAAAAAAAMAAAAAAAAAAAAAAANPZmYAAAAAAAAAAAAAAAACT24AAAAAAAAAAAAAAAAABkNsb3NlZAAA',
767
+ 'AAAAAQAAAAAAAAAAAAAADEN1cnJlbnRFcG9jaAAAAAIAAAAAAAAACGVuZF90aW1lAAAABgAAAAAAAAACaWQAAAAAAAY=',
768
+ 'AAAAAQAAAAAAAAAAAAAACEFkbWluUm5SAAAABAAAAAAAAAAVbGlxdWlkaXR5X3JhdGVfYnBzX2VhAAAAAAAABAAAAAAAAAAdbGlxdWlkaXR5X3JhdGVfYnBzX3Bvb2xfb3duZXIAAAAAAAAEAAAAAAAAABJyZXdhcmRfcmF0ZV9icHNfZWEAAAAAAAQAAAAAAAAAGnJld2FyZF9yYXRlX2Jwc19wb29sX293bmVyAAAAAAAE',
769
+ 'AAAAAQAAAAAAAAAAAAAAEFRyYW5jaGVBZGRyZXNzZXMAAAABAAAAAAAAAAVhZGRycwAAAAAAA+oAAAPoAAAAEw==',
770
+ 'AAAAAQAAAAAAAAAAAAAADVRyYW5jaGVBc3NldHMAAAAAAAABAAAAAAAAAAZhc3NldHMAAAAAA+oAAAAK',
771
+ 'AAAAAQAAAAAAAAAAAAAAFkVwb2NoUmVkZW1wdGlvblN1bW1hcnkAAAAAAAQAAAAAAAAACGVwb2NoX2lkAAAABgAAAAAAAAAWdG90YWxfYW1vdW50X3Byb2Nlc3NlZAAAAAAACgAAAAAAAAAWdG90YWxfc2hhcmVzX3Byb2Nlc3NlZAAAAAAACgAAAAAAAAAWdG90YWxfc2hhcmVzX3JlcXVlc3RlZAAAAAAACg==',
772
+ ]),
773
+ options,
774
+ )
775
+ }
776
+ public readonly fromJSON = {
777
+ initialize: this.txFromJSON<null>,
778
+ set_pool: this.txFromJSON<null>,
779
+ set_pool_storage: this.txFromJSON<null>,
780
+ set_huma_config: this.txFromJSON<null>,
781
+ set_pool_name: this.txFromJSON<null>,
782
+ set_admins: this.txFromJSON<null>,
783
+ set_tranche_addresses: this.txFromJSON<null>,
784
+ set_admin_rnr: this.txFromJSON<null>,
785
+ set_pool_settings: this.txFromJSON<null>,
786
+ set_lp_config: this.txFromJSON<null>,
787
+ set_fee_structure: this.txFromJSON<null>,
788
+ add_pool_operator: this.txFromJSON<null>,
789
+ remove_pool_operator: this.txFromJSON<null>,
790
+ enable_pool: this.txFromJSON<null>,
791
+ disable_pool: this.txFromJSON<null>,
792
+ close_pool: this.txFromJSON<null>,
793
+ close_epoch: this.txFromJSON<null>,
794
+ withdraw_protocol_fees: this.txFromJSON<null>,
795
+ withdraw_pool_owner_fees: this.txFromJSON<null>,
796
+ withdraw_ea_fees: this.txFromJSON<null>,
797
+ }
798
+ }