hedge-web3 0.1.1 → 0.1.6

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 (88) hide show
  1. package/README.md +44 -0
  2. package/lib/index.js +2102 -0
  3. package/lib/index.js.map +1 -0
  4. package/lib/types/src/Constants.d.ts +13 -0
  5. package/lib/types/src/Constants.d.ts.map +1 -0
  6. package/lib/types/src/HedgeDecimal.d.ts +15 -0
  7. package/lib/types/src/HedgeDecimal.d.ts.map +1 -0
  8. package/lib/types/src/StakingPools.d.ts +4 -0
  9. package/lib/types/src/StakingPools.d.ts.map +1 -0
  10. package/lib/types/src/Vaults.d.ts +9 -0
  11. package/lib/types/src/Vaults.d.ts.map +1 -0
  12. package/lib/types/src/idl/idl.d.ts +3 -0
  13. package/lib/types/src/idl/idl.d.ts.map +1 -0
  14. package/lib/types/src/index.d.ts +20 -0
  15. package/lib/types/src/index.d.ts.map +1 -0
  16. package/lib/types/src/instructions/createStakingPool.d.ts +5 -0
  17. package/lib/types/src/instructions/createStakingPool.d.ts.map +1 -0
  18. package/lib/types/src/instructions/createVault.d.ts +5 -0
  19. package/lib/types/src/instructions/createVault.d.ts.map +1 -0
  20. package/lib/types/src/instructions/depositStakingPool.d.ts +5 -0
  21. package/lib/types/src/instructions/depositStakingPool.d.ts.map +1 -0
  22. package/lib/types/src/instructions/depositVault.d.ts +5 -0
  23. package/lib/types/src/instructions/depositVault.d.ts.map +1 -0
  24. package/lib/types/src/instructions/liquidateVault.d.ts +5 -0
  25. package/lib/types/src/instructions/liquidateVault.d.ts.map +1 -0
  26. package/lib/types/src/instructions/loanVault.d.ts +5 -0
  27. package/lib/types/src/instructions/loanVault.d.ts.map +1 -0
  28. package/lib/types/src/instructions/redeemVault.d.ts +5 -0
  29. package/lib/types/src/instructions/redeemVault.d.ts.map +1 -0
  30. package/lib/types/src/instructions/repayVault.d.ts +5 -0
  31. package/lib/types/src/instructions/repayVault.d.ts.map +1 -0
  32. package/lib/types/src/instructions/withdrawStakingPool.d.ts +5 -0
  33. package/lib/types/src/instructions/withdrawStakingPool.d.ts.map +1 -0
  34. package/lib/types/src/instructions/withdrawVault.d.ts +5 -0
  35. package/lib/types/src/instructions/withdrawVault.d.ts.map +1 -0
  36. package/lib/types/src/state/LiquidationPoolEra.d.ts +15 -0
  37. package/lib/types/src/state/LiquidationPoolEra.d.ts.map +1 -0
  38. package/lib/types/src/state/LiquidationPoolState.d.ts +7 -0
  39. package/lib/types/src/state/LiquidationPoolState.d.ts.map +1 -0
  40. package/lib/types/src/state/LiquidationPosition.d.ts +25 -0
  41. package/lib/types/src/state/LiquidationPosition.d.ts.map +1 -0
  42. package/lib/types/src/state/StakingPool.d.ts +16 -0
  43. package/lib/types/src/state/StakingPool.d.ts.map +1 -0
  44. package/lib/types/src/state/StakingPoolPosition.d.ts +20 -0
  45. package/lib/types/src/state/StakingPoolPosition.d.ts.map +1 -0
  46. package/lib/types/src/state/VaultAccount.d.ts +48 -0
  47. package/lib/types/src/state/VaultAccount.d.ts.map +1 -0
  48. package/lib/types/src/state/VaultHistoryEvent.d.ts +40 -0
  49. package/lib/types/src/state/VaultHistoryEvent.d.ts.map +1 -0
  50. package/lib/types/src/utils/Errors.d.ts +2 -0
  51. package/lib/types/src/utils/Errors.d.ts.map +1 -0
  52. package/lib/types/tsconfig.base.tsbuildinfo +1 -0
  53. package/package.json +6 -5
  54. package/rollup.config.js +14 -8
  55. package/src/Constants.ts +56 -0
  56. package/src/HedgeDecimal.ts +15 -7
  57. package/src/StakingPools.ts +3 -0
  58. package/src/Vaults.ts +8 -0
  59. package/src/idl/idl.ts +1474 -0
  60. package/src/index.ts +19 -4
  61. package/src/instructions/createStakingPool.ts +64 -0
  62. package/src/instructions/createVault.ts +65 -0
  63. package/src/instructions/depositStakingPool.ts +60 -0
  64. package/src/instructions/depositVault.ts +60 -0
  65. package/src/instructions/liquidateVault.ts +66 -0
  66. package/src/instructions/loanVault.ts +78 -0
  67. package/src/instructions/redeemVault.ts +82 -0
  68. package/src/instructions/repayVault.ts +73 -0
  69. package/src/instructions/withdrawStakingPool.ts +69 -0
  70. package/src/instructions/withdrawVault.ts +65 -0
  71. package/src/state/LiquidationPoolEra.ts +29 -0
  72. package/src/state/LiquidationPoolState.ts +10 -0
  73. package/src/state/LiquidationPosition.ts +77 -0
  74. package/src/state/StakingPool.ts +38 -0
  75. package/src/state/StakingPoolPosition.ts +39 -0
  76. package/src/{accounts → state}/VaultAccount.ts +5 -6
  77. package/src/state/VaultHistoryEvent.ts +61 -0
  78. package/src/types/buffer-layout/index.d.ts +88 -0
  79. package/src/utils/Errors.ts +11 -0
  80. package/tsconfig.base.json +3 -3
  81. package/tsconfig.d.json +3 -1
  82. package/tsconfig.json +1 -1
  83. package/src/accounts/LiquidationPoolEra.ts +0 -16
  84. package/src/accounts/LiquidationPoolState.ts +0 -22
  85. package/src/accounts/LiquidationPosition.ts +0 -72
  86. package/src/accounts/StakingPool.ts +0 -31
  87. package/src/accounts/StakingPoolPosition.ts +0 -29
  88. package/src/accounts/VaultHistoryEvent.ts +0 -27
package/src/idl/idl.ts ADDED
@@ -0,0 +1,1474 @@
1
+ import { Idl } from '@project-serum/anchor'
2
+
3
+ export const vaultIdl: Idl = {
4
+ version: '0.1.0',
5
+ name: 'vault',
6
+ instructions: [
7
+ {
8
+ name: 'initHedgeFoundation',
9
+ accounts: [
10
+ {
11
+ name: 'vaultSystemState',
12
+ isMut: true,
13
+ isSigner: false
14
+ },
15
+ {
16
+ name: 'poolState',
17
+ isMut: true,
18
+ isSigner: false
19
+ },
20
+ {
21
+ name: 'poolEra',
22
+ isMut: true,
23
+ isSigner: true
24
+ },
25
+ {
26
+ name: 'poolUsdhAccount',
27
+ isMut: true,
28
+ isSigner: false
29
+ },
30
+ {
31
+ name: 'founder',
32
+ isMut: true,
33
+ isSigner: true
34
+ },
35
+ {
36
+ name: 'usdhMint',
37
+ isMut: true,
38
+ isSigner: false
39
+ },
40
+ {
41
+ name: 'hedgeMint',
42
+ isMut: true,
43
+ isSigner: false
44
+ },
45
+ {
46
+ name: 'founderAssociatedHedgeTokenAccount',
47
+ isMut: true,
48
+ isSigner: false
49
+ },
50
+ {
51
+ name: 'oracleChainlink',
52
+ isMut: false,
53
+ isSigner: false
54
+ },
55
+ {
56
+ name: 'oraclePyth',
57
+ isMut: false,
58
+ isSigner: false
59
+ },
60
+ {
61
+ name: 'oracleSwitchboard',
62
+ isMut: false,
63
+ isSigner: false
64
+ },
65
+ {
66
+ name: 'rent',
67
+ isMut: false,
68
+ isSigner: false
69
+ },
70
+ {
71
+ name: 'splTokenProgramInfo',
72
+ isMut: false,
73
+ isSigner: false
74
+ },
75
+ {
76
+ name: 'splAssociatedTokenProgramInfo',
77
+ isMut: false,
78
+ isSigner: false
79
+ },
80
+ {
81
+ name: 'systemProgram',
82
+ isMut: false,
83
+ isSigner: false
84
+ }
85
+ ],
86
+ args: [
87
+ {
88
+ name: 'bump1',
89
+ type: 'u8'
90
+ },
91
+ {
92
+ name: 'bump2',
93
+ type: 'u8'
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ name: 'createStakingPool',
99
+ accounts: [
100
+ {
101
+ name: 'signer',
102
+ isMut: true,
103
+ isSigner: true
104
+ },
105
+ {
106
+ name: 'vaultSystemState',
107
+ isMut: true,
108
+ isSigner: false
109
+ },
110
+ {
111
+ name: 'pool',
112
+ isMut: true,
113
+ isSigner: false
114
+ },
115
+ {
116
+ name: 'stakedTokenMintInfo',
117
+ isMut: false,
118
+ isSigner: false
119
+ },
120
+ {
121
+ name: 'usdhMint',
122
+ isMut: false,
123
+ isSigner: false
124
+ },
125
+ {
126
+ name: 'poolAssociatedStakedTokenAccount',
127
+ isMut: true,
128
+ isSigner: false
129
+ },
130
+ {
131
+ name: 'poolAssociatedUsdhTokenAccount',
132
+ isMut: true,
133
+ isSigner: false
134
+ },
135
+ {
136
+ name: 'rent',
137
+ isMut: false,
138
+ isSigner: false
139
+ },
140
+ {
141
+ name: 'splTokenProgramInfo',
142
+ isMut: false,
143
+ isSigner: false
144
+ },
145
+ {
146
+ name: 'splAssociatedTokenProgramInfo',
147
+ isMut: false,
148
+ isSigner: false
149
+ },
150
+ {
151
+ name: 'systemProgram',
152
+ isMut: false,
153
+ isSigner: false
154
+ }
155
+ ],
156
+ args: [
157
+ {
158
+ name: 'bump1',
159
+ type: 'u8'
160
+ },
161
+ {
162
+ name: 'poolSeedPhraseInput',
163
+ type: 'string'
164
+ },
165
+ {
166
+ name: 'totalRewards',
167
+ type: 'u64'
168
+ },
169
+ {
170
+ name: 'overrideCurrentTime',
171
+ type: 'i64'
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ name: 'depositStakingPool',
177
+ accounts: [
178
+ {
179
+ name: 'payer',
180
+ isMut: true,
181
+ isSigner: true
182
+ },
183
+ {
184
+ name: 'pool',
185
+ isMut: true,
186
+ isSigner: false
187
+ },
188
+ {
189
+ name: 'poolPosition',
190
+ isMut: true,
191
+ isSigner: true
192
+ },
193
+ {
194
+ name: 'payerAssociatedStakedTokenAccount',
195
+ isMut: true,
196
+ isSigner: false
197
+ },
198
+ {
199
+ name: 'poolAssociatedStakedTokenAccount',
200
+ isMut: true,
201
+ isSigner: false
202
+ },
203
+ {
204
+ name: 'splTokenProgramInfo',
205
+ isMut: false,
206
+ isSigner: false
207
+ },
208
+ {
209
+ name: 'systemProgram',
210
+ isMut: false,
211
+ isSigner: false
212
+ }
213
+ ],
214
+ args: [
215
+ {
216
+ name: 'stakeAmount',
217
+ type: 'u64'
218
+ },
219
+ {
220
+ name: 'overrideCurrentTime',
221
+ type: 'i64'
222
+ }
223
+ ]
224
+ },
225
+ {
226
+ name: 'withdrawStakingPool',
227
+ accounts: [
228
+ {
229
+ name: 'payer',
230
+ isMut: true,
231
+ isSigner: true
232
+ },
233
+ {
234
+ name: 'vaultSystemState',
235
+ isMut: true,
236
+ isSigner: false
237
+ },
238
+ {
239
+ name: 'pool',
240
+ isMut: true,
241
+ isSigner: false
242
+ },
243
+ {
244
+ name: 'poolPosition',
245
+ isMut: true,
246
+ isSigner: false
247
+ },
248
+ {
249
+ name: 'hedgeMint',
250
+ isMut: true,
251
+ isSigner: false
252
+ },
253
+ {
254
+ name: 'stakedTokenMint',
255
+ isMut: true,
256
+ isSigner: false
257
+ },
258
+ {
259
+ name: 'usdhMint',
260
+ isMut: false,
261
+ isSigner: false
262
+ },
263
+ {
264
+ name: 'payerAssociatedStakedTokenAccount',
265
+ isMut: true,
266
+ isSigner: false
267
+ },
268
+ {
269
+ name: 'payerAssociatedHedgeAccount',
270
+ isMut: true,
271
+ isSigner: false
272
+ },
273
+ {
274
+ name: 'payerAssociatedUsdhAccount',
275
+ isMut: true,
276
+ isSigner: false
277
+ },
278
+ {
279
+ name: 'poolAssociatedStakedTokenAccount',
280
+ isMut: true,
281
+ isSigner: false
282
+ },
283
+ {
284
+ name: 'poolAssociatedUsdhTokenAccount',
285
+ isMut: true,
286
+ isSigner: false
287
+ },
288
+ {
289
+ name: 'splTokenProgramInfo',
290
+ isMut: false,
291
+ isSigner: false
292
+ },
293
+ {
294
+ name: 'systemProgram',
295
+ isMut: false,
296
+ isSigner: false
297
+ }
298
+ ],
299
+ args: [
300
+ {
301
+ name: 'overrideCurrentTime',
302
+ type: 'i64'
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ name: 'createVault',
308
+ accounts: [
309
+ {
310
+ name: 'vaultSystemState',
311
+ isMut: true,
312
+ isSigner: false
313
+ },
314
+ {
315
+ name: 'vault',
316
+ isMut: true,
317
+ isSigner: true
318
+ },
319
+ {
320
+ name: 'history',
321
+ isMut: true,
322
+ isSigner: true
323
+ },
324
+ {
325
+ name: 'payer',
326
+ isMut: true,
327
+ isSigner: true
328
+ },
329
+ {
330
+ name: 'systemProgram',
331
+ isMut: false,
332
+ isSigner: false
333
+ }
334
+ ],
335
+ args: [
336
+ {
337
+ name: 'depositAmount',
338
+ type: 'u64'
339
+ },
340
+ {
341
+ name: 'minCollateralRatio',
342
+ type: 'u64'
343
+ }
344
+ ]
345
+ },
346
+ {
347
+ name: 'depositVault',
348
+ accounts: [
349
+ {
350
+ name: 'vaultSystemState',
351
+ isMut: true,
352
+ isSigner: false
353
+ },
354
+ {
355
+ name: 'vaultAccount',
356
+ isMut: true,
357
+ isSigner: false
358
+ },
359
+ {
360
+ name: 'history',
361
+ isMut: true,
362
+ isSigner: true
363
+ },
364
+ {
365
+ name: 'vaultOwner',
366
+ isMut: true,
367
+ isSigner: true
368
+ },
369
+ {
370
+ name: 'systemProgram',
371
+ isMut: false,
372
+ isSigner: false
373
+ }
374
+ ],
375
+ args: [
376
+ {
377
+ name: 'depositAmount',
378
+ type: 'u64'
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ name: 'withdrawVault',
384
+ accounts: [
385
+ {
386
+ name: 'vaultSystemState',
387
+ isMut: true,
388
+ isSigner: false
389
+ },
390
+ {
391
+ name: 'vaultAccount',
392
+ isMut: true,
393
+ isSigner: false
394
+ },
395
+ {
396
+ name: 'history',
397
+ isMut: true,
398
+ isSigner: true
399
+ },
400
+ {
401
+ name: 'chainlinkFeedAccount',
402
+ isMut: false,
403
+ isSigner: false
404
+ },
405
+ {
406
+ name: 'vaultOwner',
407
+ isMut: true,
408
+ isSigner: true
409
+ },
410
+ {
411
+ name: 'systemProgram',
412
+ isMut: false,
413
+ isSigner: false
414
+ }
415
+ ],
416
+ args: [
417
+ {
418
+ name: 'withdrawAmount',
419
+ type: 'u64'
420
+ },
421
+ {
422
+ name: 'overrideSolPrice',
423
+ type: 'u64'
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ name: 'loanVault',
429
+ accounts: [
430
+ {
431
+ name: 'vaultSystemState',
432
+ isMut: true,
433
+ isSigner: false
434
+ },
435
+ {
436
+ name: 'vaultAccount',
437
+ isMut: true,
438
+ isSigner: false
439
+ },
440
+ {
441
+ name: 'history',
442
+ isMut: true,
443
+ isSigner: true
444
+ },
445
+ {
446
+ name: 'feePool',
447
+ isMut: true,
448
+ isSigner: false
449
+ },
450
+ {
451
+ name: 'feePoolAssociatedUsdhTokenAccount',
452
+ isMut: true,
453
+ isSigner: false
454
+ },
455
+ {
456
+ name: 'usdhMint',
457
+ isMut: true,
458
+ isSigner: false
459
+ },
460
+ {
461
+ name: 'vaultOwner',
462
+ isMut: true,
463
+ isSigner: true
464
+ },
465
+ {
466
+ name: 'ownerUsdhAccount',
467
+ isMut: true,
468
+ isSigner: false
469
+ },
470
+ {
471
+ name: 'chainlinkFeedAccount',
472
+ isMut: false,
473
+ isSigner: false
474
+ },
475
+ {
476
+ name: 'splTokenProgramInfo',
477
+ isMut: false,
478
+ isSigner: false
479
+ },
480
+ {
481
+ name: 'systemProgram',
482
+ isMut: false,
483
+ isSigner: false
484
+ }
485
+ ],
486
+ args: [
487
+ {
488
+ name: 'loanAmount',
489
+ type: 'u64'
490
+ },
491
+ {
492
+ name: 'overrideSolPrice',
493
+ type: 'u64'
494
+ }
495
+ ]
496
+ },
497
+ {
498
+ name: 'repayVault',
499
+ accounts: [
500
+ {
501
+ name: 'vaultSystemState',
502
+ isMut: true,
503
+ isSigner: false
504
+ },
505
+ {
506
+ name: 'vaultAccount',
507
+ isMut: true,
508
+ isSigner: false
509
+ },
510
+ {
511
+ name: 'history',
512
+ isMut: true,
513
+ isSigner: true
514
+ },
515
+ {
516
+ name: 'usdhMint',
517
+ isMut: true,
518
+ isSigner: false
519
+ },
520
+ {
521
+ name: 'vaultOwner',
522
+ isMut: true,
523
+ isSigner: true
524
+ },
525
+ {
526
+ name: 'ownerUsdhAccount',
527
+ isMut: true,
528
+ isSigner: false
529
+ },
530
+ {
531
+ name: 'splTokenProgramInfo',
532
+ isMut: false,
533
+ isSigner: false
534
+ },
535
+ {
536
+ name: 'systemProgram',
537
+ isMut: false,
538
+ isSigner: false
539
+ }
540
+ ],
541
+ args: [
542
+ {
543
+ name: 'repayAmount',
544
+ type: 'u64'
545
+ }
546
+ ]
547
+ },
548
+ {
549
+ name: 'redeemVault',
550
+ accounts: [
551
+ {
552
+ name: 'vaultSystemState',
553
+ isMut: true,
554
+ isSigner: false
555
+ },
556
+ {
557
+ name: 'vaultAccount',
558
+ isMut: true,
559
+ isSigner: false
560
+ },
561
+ {
562
+ name: 'history',
563
+ isMut: true,
564
+ isSigner: true
565
+ },
566
+ {
567
+ name: 'usdhMint',
568
+ isMut: true,
569
+ isSigner: false
570
+ },
571
+ {
572
+ name: 'feePool',
573
+ isMut: true,
574
+ isSigner: false
575
+ },
576
+ {
577
+ name: 'feePoolAssociatedUsdhTokenAccount',
578
+ isMut: true,
579
+ isSigner: false
580
+ },
581
+ {
582
+ name: 'payer',
583
+ isMut: true,
584
+ isSigner: true
585
+ },
586
+ {
587
+ name: 'payerUsdhAccount',
588
+ isMut: true,
589
+ isSigner: false
590
+ },
591
+ {
592
+ name: 'chainlinkFeedAccount',
593
+ isMut: false,
594
+ isSigner: false
595
+ },
596
+ {
597
+ name: 'splTokenProgramInfo',
598
+ isMut: false,
599
+ isSigner: false
600
+ },
601
+ {
602
+ name: 'systemProgram',
603
+ isMut: false,
604
+ isSigner: false
605
+ }
606
+ ],
607
+ args: [
608
+ {
609
+ name: 'redeemPayUsdh',
610
+ type: 'u64'
611
+ },
612
+ {
613
+ name: 'overrideSolPrice',
614
+ type: 'u64'
615
+ },
616
+ {
617
+ name: 'overrideCurrentTime',
618
+ type: 'i64'
619
+ }
620
+ ]
621
+ },
622
+ {
623
+ name: 'depositLiquidityPool',
624
+ accounts: [
625
+ {
626
+ name: 'poolState',
627
+ isMut: true,
628
+ isSigner: false
629
+ },
630
+ {
631
+ name: 'poolUsdhAccount',
632
+ isMut: true,
633
+ isSigner: false
634
+ },
635
+ {
636
+ name: 'poolEra',
637
+ isMut: true,
638
+ isSigner: false
639
+ },
640
+ {
641
+ name: 'poolPosition',
642
+ isMut: true,
643
+ isSigner: true
644
+ },
645
+ {
646
+ name: 'payer',
647
+ isMut: true,
648
+ isSigner: true
649
+ },
650
+ {
651
+ name: 'ownerUsdhAccount',
652
+ isMut: true,
653
+ isSigner: false
654
+ },
655
+ {
656
+ name: 'splTokenProgramInfo',
657
+ isMut: false,
658
+ isSigner: false
659
+ },
660
+ {
661
+ name: 'systemProgram',
662
+ isMut: false,
663
+ isSigner: false
664
+ }
665
+ ],
666
+ args: [
667
+ {
668
+ name: 'depositAmount',
669
+ type: 'u64'
670
+ },
671
+ {
672
+ name: 'overrideCurrentTime',
673
+ type: 'i64'
674
+ }
675
+ ]
676
+ },
677
+ {
678
+ name: 'liquidateVault',
679
+ accounts: [
680
+ {
681
+ name: 'vaultSystemState',
682
+ isMut: true,
683
+ isSigner: false
684
+ },
685
+ {
686
+ name: 'vaultAccount',
687
+ isMut: true,
688
+ isSigner: false
689
+ },
690
+ {
691
+ name: 'poolState',
692
+ isMut: true,
693
+ isSigner: false
694
+ },
695
+ {
696
+ name: 'feePool',
697
+ isMut: true,
698
+ isSigner: false
699
+ },
700
+ {
701
+ name: 'poolUsdhAccount',
702
+ isMut: true,
703
+ isSigner: false
704
+ },
705
+ {
706
+ name: 'usdhMint',
707
+ isMut: true,
708
+ isSigner: false
709
+ },
710
+ {
711
+ name: 'poolEra',
712
+ isMut: true,
713
+ isSigner: false
714
+ },
715
+ {
716
+ name: 'newEra',
717
+ isMut: true,
718
+ isSigner: true
719
+ },
720
+ {
721
+ name: 'chainlinkFeedAccount',
722
+ isMut: false,
723
+ isSigner: false
724
+ },
725
+ {
726
+ name: 'history',
727
+ isMut: true,
728
+ isSigner: true
729
+ },
730
+ {
731
+ name: 'payer',
732
+ isMut: true,
733
+ isSigner: true
734
+ },
735
+ {
736
+ name: 'splTokenProgramInfo',
737
+ isMut: false,
738
+ isSigner: false
739
+ },
740
+ {
741
+ name: 'systemProgram',
742
+ isMut: false,
743
+ isSigner: false
744
+ }
745
+ ],
746
+ args: [
747
+ {
748
+ name: 'overrideSolPrice',
749
+ type: 'u64'
750
+ }
751
+ ]
752
+ },
753
+ {
754
+ name: 'withdrawLiquidity',
755
+ accounts: [
756
+ {
757
+ name: 'poolState',
758
+ isMut: true,
759
+ isSigner: false
760
+ },
761
+ {
762
+ name: 'poolEra',
763
+ isMut: true,
764
+ isSigner: false
765
+ },
766
+ {
767
+ name: 'poolPosition',
768
+ isMut: true,
769
+ isSigner: false
770
+ },
771
+ {
772
+ name: 'poolUsdhAccount',
773
+ isMut: true,
774
+ isSigner: false
775
+ },
776
+ {
777
+ name: 'payer',
778
+ isMut: true,
779
+ isSigner: true
780
+ },
781
+ {
782
+ name: 'ownerUsdhAccount',
783
+ isMut: true,
784
+ isSigner: false
785
+ },
786
+ {
787
+ name: 'hedgeMint',
788
+ isMut: true,
789
+ isSigner: false
790
+ },
791
+ {
792
+ name: 'payerAssociatedHedgeAccount',
793
+ isMut: true,
794
+ isSigner: false
795
+ },
796
+ {
797
+ name: 'rent',
798
+ isMut: false,
799
+ isSigner: false
800
+ },
801
+ {
802
+ name: 'splTokenProgramInfo',
803
+ isMut: false,
804
+ isSigner: false
805
+ },
806
+ {
807
+ name: 'splAssociatedTokenProgramInfo',
808
+ isMut: false,
809
+ isSigner: false
810
+ },
811
+ {
812
+ name: 'systemProgram',
813
+ isMut: false,
814
+ isSigner: false
815
+ }
816
+ ],
817
+ args: [
818
+ {
819
+ name: 'overrideCurrentTime',
820
+ type: 'i64'
821
+ }
822
+ ]
823
+ }
824
+ ],
825
+ accounts: [
826
+ {
827
+ name: 'StakingPool',
828
+ type: {
829
+ kind: 'struct',
830
+ fields: [
831
+ {
832
+ name: 'deposits',
833
+ type: 'u64'
834
+ },
835
+ {
836
+ name: 'bump',
837
+ type: 'u8'
838
+ },
839
+ {
840
+ name: 'seedPhrase',
841
+ type: 'string'
842
+ },
843
+ {
844
+ name: 'hedgeRewardAccumulator',
845
+ type: 'u128'
846
+ },
847
+ {
848
+ name: 'usdhFeeAccumulator',
849
+ type: 'u128'
850
+ },
851
+ {
852
+ name: 'solFeeAccumulator',
853
+ type: 'u128'
854
+ },
855
+ {
856
+ name: 'startTime',
857
+ type: 'i64'
858
+ },
859
+ {
860
+ name: 'lastTransactionTime',
861
+ type: 'i64'
862
+ },
863
+ {
864
+ name: 'halfLifeInDays',
865
+ type: 'u64'
866
+ },
867
+ {
868
+ name: 'totalHedgeReward',
869
+ type: 'u64'
870
+ },
871
+ {
872
+ name: 'stakedTokenMint',
873
+ type: 'publicKey'
874
+ }
875
+ ]
876
+ }
877
+ },
878
+ {
879
+ name: 'StakingPoolPosition',
880
+ type: {
881
+ kind: 'struct',
882
+ fields: [
883
+ {
884
+ name: 'state',
885
+ type: {
886
+ defined: 'PositionState'
887
+ }
888
+ },
889
+ {
890
+ name: 'owner',
891
+ type: 'publicKey'
892
+ },
893
+ {
894
+ name: 'pool',
895
+ type: 'publicKey'
896
+ },
897
+ {
898
+ name: 'deposited',
899
+ type: 'u64'
900
+ },
901
+ {
902
+ name: 'startHedgeRewardAccumulator',
903
+ type: 'u128'
904
+ },
905
+ {
906
+ name: 'startUsdhFeeAccumulator',
907
+ type: 'u128'
908
+ },
909
+ {
910
+ name: 'startSolFeeAccumulator',
911
+ type: 'u128'
912
+ },
913
+ {
914
+ name: 'timestampOpened',
915
+ type: 'i64'
916
+ },
917
+ {
918
+ name: 'timestampClosed',
919
+ type: 'i64'
920
+ },
921
+ {
922
+ name: 'closedRewardedTokens',
923
+ type: 'u64'
924
+ }
925
+ ]
926
+ }
927
+ },
928
+ {
929
+ name: 'VaultSystemState',
930
+ type: {
931
+ kind: 'struct',
932
+ fields: [
933
+ {
934
+ name: 'lastRedeemFeeBytes',
935
+ type: 'u128'
936
+ },
937
+ {
938
+ name: 'lastRedeemTimestamp',
939
+ type: 'i64'
940
+ },
941
+ {
942
+ name: 'totalCollateral',
943
+ type: 'u64'
944
+ },
945
+ {
946
+ name: 'totalUsdhSupply',
947
+ type: 'u64'
948
+ },
949
+ {
950
+ name: 'totalVaults',
951
+ type: 'u64'
952
+ },
953
+ {
954
+ name: 'totalVaultsClosed',
955
+ type: 'u64'
956
+ },
957
+ {
958
+ name: 'debtRedistributionProduct',
959
+ type: 'u128'
960
+ },
961
+ {
962
+ name: 'collateralRedistributionAccumulator',
963
+ type: 'u128'
964
+ },
965
+ {
966
+ name: 'debtRedistributionError',
967
+ type: 'u64'
968
+ },
969
+ {
970
+ name: 'bumpVaultState',
971
+ type: 'u8'
972
+ },
973
+ {
974
+ name: 'bumpPoolState',
975
+ type: 'u8'
976
+ },
977
+ {
978
+ name: 'bumpMint',
979
+ type: 'u8'
980
+ },
981
+ {
982
+ name: 'bumpUsdhPoolAccount',
983
+ type: 'u8'
984
+ },
985
+ {
986
+ name: 'authority',
987
+ type: 'publicKey'
988
+ },
989
+ {
990
+ name: 'oracleChainlink',
991
+ type: 'publicKey'
992
+ },
993
+ {
994
+ name: 'oraclePyth',
995
+ type: 'publicKey'
996
+ },
997
+ {
998
+ name: 'oracleSwitchboard',
999
+ type: 'publicKey'
1000
+ },
1001
+ {
1002
+ name: 'hedgeStakingPool',
1003
+ type: 'publicKey'
1004
+ }
1005
+ ]
1006
+ }
1007
+ },
1008
+ {
1009
+ name: 'Vault',
1010
+ type: {
1011
+ kind: 'struct',
1012
+ fields: [
1013
+ {
1014
+ name: 'vaultOwner',
1015
+ type: 'publicKey'
1016
+ },
1017
+ {
1018
+ name: 'deposited',
1019
+ type: 'u64'
1020
+ },
1021
+ {
1022
+ name: 'debt',
1023
+ type: 'u64'
1024
+ },
1025
+ {
1026
+ name: 'vaultVersion',
1027
+ type: 'u64'
1028
+ },
1029
+ {
1030
+ name: 'liquidationPrice',
1031
+ type: 'u64'
1032
+ },
1033
+ {
1034
+ name: 'minCollateralRatio',
1035
+ type: 'u128'
1036
+ },
1037
+ {
1038
+ name: 'debtProductSnapshotBytes',
1039
+ type: 'u128'
1040
+ },
1041
+ {
1042
+ name: 'collateralAccumulatorSnapshotBytes',
1043
+ type: 'u128'
1044
+ },
1045
+ {
1046
+ name: 'collateralType',
1047
+ type: {
1048
+ defined: 'CurrencyType'
1049
+ }
1050
+ },
1051
+ {
1052
+ name: 'debtType',
1053
+ type: {
1054
+ defined: 'CurrencyType'
1055
+ }
1056
+ },
1057
+ {
1058
+ name: 'vaultStatus',
1059
+ type: {
1060
+ defined: 'VaultStatus'
1061
+ }
1062
+ }
1063
+ ]
1064
+ }
1065
+ },
1066
+ {
1067
+ name: 'VaultHistoryEvent',
1068
+ type: {
1069
+ kind: 'struct',
1070
+ fields: [
1071
+ {
1072
+ name: 'vaultAccount',
1073
+ type: 'publicKey'
1074
+ },
1075
+ {
1076
+ name: 'actorAccount',
1077
+ type: 'publicKey'
1078
+ },
1079
+ {
1080
+ name: 'usdSolPrice',
1081
+ type: 'u128'
1082
+ },
1083
+ {
1084
+ name: 'usdhDebtBefore',
1085
+ type: 'u64'
1086
+ },
1087
+ {
1088
+ name: 'usdhDebtAfter',
1089
+ type: 'u64'
1090
+ },
1091
+ {
1092
+ name: 'solBalanceBefore',
1093
+ type: 'u64'
1094
+ },
1095
+ {
1096
+ name: 'solBalanceAfter',
1097
+ type: 'u64'
1098
+ },
1099
+ {
1100
+ name: 'minCollateralRatioBefore',
1101
+ type: 'u128'
1102
+ },
1103
+ {
1104
+ name: 'minCollateralRatioAfter',
1105
+ type: 'u128'
1106
+ },
1107
+ {
1108
+ name: 'vaultStateBefore',
1109
+ type: {
1110
+ defined: 'VaultStatus'
1111
+ }
1112
+ },
1113
+ {
1114
+ name: 'vaultStateAfter',
1115
+ type: {
1116
+ defined: 'VaultStatus'
1117
+ }
1118
+ },
1119
+ {
1120
+ name: 'timestamp',
1121
+ type: 'i64'
1122
+ },
1123
+ {
1124
+ name: 'action',
1125
+ type: {
1126
+ defined: 'VaultHistoryAction'
1127
+ }
1128
+ }
1129
+ ]
1130
+ }
1131
+ },
1132
+ {
1133
+ name: 'LiquidationPoolState',
1134
+ type: {
1135
+ kind: 'struct',
1136
+ fields: [
1137
+ {
1138
+ name: 'currentEra',
1139
+ type: 'publicKey'
1140
+ },
1141
+ {
1142
+ name: 'lifetimeDeposits',
1143
+ type: 'u64'
1144
+ },
1145
+ {
1146
+ name: 'lifetimeOpenedPositions',
1147
+ type: 'u64'
1148
+ },
1149
+ {
1150
+ name: 'lifetimeClosedPositions',
1151
+ type: 'u64'
1152
+ },
1153
+ {
1154
+ name: 'lifetimeVaultsLiquidated',
1155
+ type: 'u64'
1156
+ },
1157
+ {
1158
+ name: 'lifetimeVaultsRedistributed',
1159
+ type: 'u64'
1160
+ },
1161
+ {
1162
+ name: 'lifetimeSolPurchased',
1163
+ type: 'u64'
1164
+ },
1165
+ {
1166
+ name: 'lifetimeSolClaimed',
1167
+ type: 'u64'
1168
+ },
1169
+ {
1170
+ name: 'hedgeInitRewardsTimestamp',
1171
+ type: 'i64'
1172
+ }
1173
+ ]
1174
+ }
1175
+ },
1176
+ {
1177
+ name: 'LiquidationPoolEra',
1178
+ type: {
1179
+ kind: 'struct',
1180
+ fields: [
1181
+ {
1182
+ name: 'totalDeposits',
1183
+ type: 'u64'
1184
+ },
1185
+ {
1186
+ name: 'productBytes',
1187
+ type: 'u128'
1188
+ },
1189
+ {
1190
+ name: 'sumBytes',
1191
+ type: 'u128'
1192
+ },
1193
+ {
1194
+ name: 'hedgeRewardsAccumulatorBytes',
1195
+ type: 'u128'
1196
+ },
1197
+ {
1198
+ name: 'hedgeRewardsTimestamp',
1199
+ type: 'i64'
1200
+ }
1201
+ ]
1202
+ }
1203
+ },
1204
+ {
1205
+ name: 'LiquidationPosition',
1206
+ type: {
1207
+ kind: 'struct',
1208
+ fields: [
1209
+ {
1210
+ name: 'state',
1211
+ type: {
1212
+ defined: 'PositionState'
1213
+ }
1214
+ },
1215
+ {
1216
+ name: 'era',
1217
+ type: 'publicKey'
1218
+ },
1219
+ {
1220
+ name: 'ownerAccount',
1221
+ type: 'publicKey'
1222
+ },
1223
+ {
1224
+ name: 'deposit',
1225
+ type: 'u64'
1226
+ },
1227
+ {
1228
+ name: 'closedSol',
1229
+ type: 'u64'
1230
+ },
1231
+ {
1232
+ name: 'closedUsdh',
1233
+ type: 'u64'
1234
+ },
1235
+ {
1236
+ name: 'productSnapshotBytes',
1237
+ type: 'u128'
1238
+ },
1239
+ {
1240
+ name: 'sumSnapshotBytes',
1241
+ type: 'u128'
1242
+ },
1243
+ {
1244
+ name: 'hedgeRewardsSnapshotAccum',
1245
+ type: 'u128'
1246
+ },
1247
+ {
1248
+ name: 'timestampOpened',
1249
+ type: 'i64'
1250
+ },
1251
+ {
1252
+ name: 'timestampClosed',
1253
+ type: 'i64'
1254
+ }
1255
+ ]
1256
+ }
1257
+ },
1258
+ {
1259
+ name: 'Aggregator',
1260
+ type: {
1261
+ kind: 'struct',
1262
+ fields: [
1263
+ {
1264
+ name: 'isInitialized',
1265
+ type: 'bool'
1266
+ },
1267
+ {
1268
+ name: 'version',
1269
+ type: 'u32'
1270
+ },
1271
+ {
1272
+ name: 'config',
1273
+ type: {
1274
+ defined: 'Config'
1275
+ }
1276
+ },
1277
+ {
1278
+ name: 'updatedAt',
1279
+ type: 'i64'
1280
+ },
1281
+ {
1282
+ name: 'owner',
1283
+ type: 'publicKey'
1284
+ },
1285
+ {
1286
+ name: 'submissions',
1287
+ type: {
1288
+ array: [
1289
+ {
1290
+ defined: 'Submission'
1291
+ },
1292
+ 8
1293
+ ]
1294
+ }
1295
+ },
1296
+ {
1297
+ name: 'answer',
1298
+ type: {
1299
+ option: 'u128'
1300
+ }
1301
+ }
1302
+ ]
1303
+ }
1304
+ }
1305
+ ],
1306
+ types: [
1307
+ {
1308
+ name: 'Config',
1309
+ type: {
1310
+ kind: 'struct',
1311
+ fields: [
1312
+ {
1313
+ name: 'oracles',
1314
+ type: {
1315
+ vec: 'publicKey'
1316
+ }
1317
+ },
1318
+ {
1319
+ name: 'minAnswerThreshold',
1320
+ type: 'u8'
1321
+ },
1322
+ {
1323
+ name: 'stalenessThreshold',
1324
+ type: 'u8'
1325
+ },
1326
+ {
1327
+ name: 'decimals',
1328
+ type: 'u8'
1329
+ }
1330
+ ]
1331
+ }
1332
+ },
1333
+ {
1334
+ name: 'Submission',
1335
+ type: {
1336
+ kind: 'struct',
1337
+ fields: [
1338
+ {
1339
+ name: 'timestamp',
1340
+ type: 'i64'
1341
+ },
1342
+ {
1343
+ name: 'value',
1344
+ type: 'u128'
1345
+ }
1346
+ ]
1347
+ }
1348
+ },
1349
+ {
1350
+ name: 'PositionState',
1351
+ type: {
1352
+ kind: 'enum',
1353
+ variants: [
1354
+ {
1355
+ name: 'Open'
1356
+ },
1357
+ {
1358
+ name: 'Closed'
1359
+ }
1360
+ ]
1361
+ }
1362
+ },
1363
+ {
1364
+ name: 'CurrencyType',
1365
+ type: {
1366
+ kind: 'enum',
1367
+ variants: [
1368
+ {
1369
+ name: 'Solana'
1370
+ },
1371
+ {
1372
+ name: 'Usdh'
1373
+ }
1374
+ ]
1375
+ }
1376
+ },
1377
+ {
1378
+ name: 'VaultStatus',
1379
+ type: {
1380
+ kind: 'enum',
1381
+ variants: [
1382
+ {
1383
+ name: 'Open'
1384
+ },
1385
+ {
1386
+ name: 'Closed'
1387
+ },
1388
+ {
1389
+ name: 'Liquidated'
1390
+ },
1391
+ {
1392
+ name: 'Distributed'
1393
+ },
1394
+ {
1395
+ name: 'Redeemed'
1396
+ }
1397
+ ]
1398
+ }
1399
+ },
1400
+ {
1401
+ name: 'VaultHistoryAction',
1402
+ type: {
1403
+ kind: 'enum',
1404
+ variants: [
1405
+ {
1406
+ name: 'Create'
1407
+ },
1408
+ {
1409
+ name: 'Close'
1410
+ },
1411
+ {
1412
+ name: 'Liquidate'
1413
+ },
1414
+ {
1415
+ name: 'PartialLiquidate'
1416
+ },
1417
+ {
1418
+ name: 'Distributed'
1419
+ },
1420
+ {
1421
+ name: 'Redeem'
1422
+ },
1423
+ {
1424
+ name: 'TransferOwnership'
1425
+ },
1426
+ {
1427
+ name: 'Deposit'
1428
+ },
1429
+ {
1430
+ name: 'Withdraw'
1431
+ },
1432
+ {
1433
+ name: 'Loan'
1434
+ },
1435
+ {
1436
+ name: 'RepayCredit'
1437
+ }
1438
+ ]
1439
+ }
1440
+ }
1441
+ ],
1442
+ errors: [
1443
+ {
1444
+ code: 6000,
1445
+ name: 'AlreadyInitialized',
1446
+ msg: 'This vault was already initialized'
1447
+ },
1448
+ {
1449
+ code: 6001,
1450
+ name: 'NotInitialized',
1451
+ msg: 'This vault was not initialized'
1452
+ },
1453
+ {
1454
+ code: 6002,
1455
+ name: 'Overdraw',
1456
+ msg: 'Cannot withdraw more than deposited'
1457
+ },
1458
+ {
1459
+ code: 6003,
1460
+ name: 'Overpaid',
1461
+ msg: 'Cannot repay more than loaned'
1462
+ },
1463
+ {
1464
+ code: 6004,
1465
+ name: 'NotAuthorizedToCreateStakingPools',
1466
+ msg: 'Signer not authorized to create new staking pools'
1467
+ },
1468
+ {
1469
+ code: 6005,
1470
+ name: 'BadSeed',
1471
+ msg: 'Bad Seed'
1472
+ }
1473
+ ]
1474
+ }