@pythnetwork/pyth-solana-receiver 0.12.0 → 0.14.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 (51) hide show
  1. package/README.md +0 -44
  2. package/dist/cjs/PythSolanaReceiver.cjs +442 -0
  3. package/{lib → dist/cjs}/PythSolanaReceiver.d.ts +10 -86
  4. package/dist/cjs/address.cjs +63 -0
  5. package/{lib → dist/cjs}/address.d.ts +0 -1
  6. package/dist/cjs/compute_budget.cjs +42 -0
  7. package/{lib → dist/cjs}/compute_budget.d.ts +0 -5
  8. package/dist/cjs/idl/pyth_push_oracle.cjs +132 -0
  9. package/{lib → dist/cjs}/idl/pyth_push_oracle.d.ts +0 -1
  10. package/dist/cjs/idl/pyth_solana_receiver.cjs +858 -0
  11. package/{lib → dist/cjs}/idl/pyth_solana_receiver.d.ts +0 -1
  12. package/dist/cjs/idl/wormhole_core_bridge_solana.cjs +1751 -0
  13. package/{lib → dist/cjs}/idl/wormhole_core_bridge_solana.d.ts +0 -1
  14. package/dist/cjs/index.cjs +44 -0
  15. package/dist/cjs/index.d.ts +5 -0
  16. package/dist/cjs/package.json +1 -0
  17. package/dist/cjs/vaa.cjs +192 -0
  18. package/{lib → dist/cjs}/vaa.d.ts +4 -30
  19. package/dist/esm/PythSolanaReceiver.d.ts +318 -0
  20. package/dist/esm/PythSolanaReceiver.mjs +462 -0
  21. package/dist/esm/address.d.ts +29 -0
  22. package/dist/esm/address.mjs +45 -0
  23. package/dist/esm/compute_budget.d.ts +28 -0
  24. package/dist/esm/compute_budget.mjs +21 -0
  25. package/dist/esm/idl/pyth_push_oracle.d.ts +117 -0
  26. package/{lib/idl/pyth_push_oracle.js → dist/esm/idl/pyth_push_oracle.mjs} +41 -38
  27. package/dist/esm/idl/pyth_solana_receiver.d.ts +840 -0
  28. package/{lib/idl/pyth_solana_receiver.js → dist/esm/idl/pyth_solana_receiver.mjs} +237 -231
  29. package/dist/esm/idl/wormhole_core_bridge_solana.d.ts +1606 -0
  30. package/{lib/idl/wormhole_core_bridge_solana.js → dist/esm/idl/wormhole_core_bridge_solana.mjs} +598 -465
  31. package/dist/esm/index.d.ts +5 -0
  32. package/dist/esm/index.mjs +5 -0
  33. package/dist/esm/package.json +1 -0
  34. package/dist/esm/vaa.d.ts +75 -0
  35. package/dist/esm/vaa.mjs +197 -0
  36. package/package.json +101 -13
  37. package/lib/PythSolanaReceiver.d.ts.map +0 -1
  38. package/lib/PythSolanaReceiver.js +0 -633
  39. package/lib/address.d.ts.map +0 -1
  40. package/lib/address.js +0 -46
  41. package/lib/compute_budget.d.ts.map +0 -1
  42. package/lib/compute_budget.js +0 -35
  43. package/lib/idl/pyth_push_oracle.d.ts.map +0 -1
  44. package/lib/idl/pyth_solana_receiver.d.ts.map +0 -1
  45. package/lib/idl/pyth_solana_receiver.json +0 -839
  46. package/lib/idl/wormhole_core_bridge_solana.d.ts.map +0 -1
  47. package/lib/index.d.ts +0 -6
  48. package/lib/index.d.ts.map +0 -1
  49. package/lib/index.js +0 -17
  50. package/lib/vaa.d.ts.map +0 -1
  51. package/lib/vaa.js +0 -270
@@ -0,0 +1,858 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "IDL", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return IDL;
9
+ }
10
+ });
11
+ const IDL = {
12
+ version: "0.2.1",
13
+ name: "pyth_solana_receiver",
14
+ instructions: [
15
+ {
16
+ name: "initialize",
17
+ accounts: [
18
+ {
19
+ name: "payer",
20
+ isMut: true,
21
+ isSigner: true
22
+ },
23
+ {
24
+ name: "config",
25
+ isMut: true,
26
+ isSigner: false
27
+ },
28
+ {
29
+ name: "systemProgram",
30
+ isMut: false,
31
+ isSigner: false
32
+ }
33
+ ],
34
+ args: [
35
+ {
36
+ name: "initialConfig",
37
+ type: {
38
+ defined: "Config"
39
+ }
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ name: "requestGovernanceAuthorityTransfer",
45
+ accounts: [
46
+ {
47
+ name: "payer",
48
+ isMut: false,
49
+ isSigner: true
50
+ },
51
+ {
52
+ name: "config",
53
+ isMut: true,
54
+ isSigner: false
55
+ }
56
+ ],
57
+ args: [
58
+ {
59
+ name: "targetGovernanceAuthority",
60
+ type: "publicKey"
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ name: "cancelGovernanceAuthorityTransfer",
66
+ accounts: [
67
+ {
68
+ name: "payer",
69
+ isMut: false,
70
+ isSigner: true
71
+ },
72
+ {
73
+ name: "config",
74
+ isMut: true,
75
+ isSigner: false
76
+ }
77
+ ],
78
+ args: []
79
+ },
80
+ {
81
+ name: "acceptGovernanceAuthorityTransfer",
82
+ accounts: [
83
+ {
84
+ name: "payer",
85
+ isMut: false,
86
+ isSigner: true
87
+ },
88
+ {
89
+ name: "config",
90
+ isMut: true,
91
+ isSigner: false
92
+ }
93
+ ],
94
+ args: []
95
+ },
96
+ {
97
+ name: "setDataSources",
98
+ accounts: [
99
+ {
100
+ name: "payer",
101
+ isMut: false,
102
+ isSigner: true
103
+ },
104
+ {
105
+ name: "config",
106
+ isMut: true,
107
+ isSigner: false
108
+ }
109
+ ],
110
+ args: [
111
+ {
112
+ name: "validDataSources",
113
+ type: {
114
+ vec: {
115
+ defined: "DataSource"
116
+ }
117
+ }
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ name: "setFee",
123
+ accounts: [
124
+ {
125
+ name: "payer",
126
+ isMut: false,
127
+ isSigner: true
128
+ },
129
+ {
130
+ name: "config",
131
+ isMut: true,
132
+ isSigner: false
133
+ }
134
+ ],
135
+ args: [
136
+ {
137
+ name: "singleUpdateFeeInLamports",
138
+ type: "u64"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ name: "setWormholeAddress",
144
+ accounts: [
145
+ {
146
+ name: "payer",
147
+ isMut: false,
148
+ isSigner: true
149
+ },
150
+ {
151
+ name: "config",
152
+ isMut: true,
153
+ isSigner: false
154
+ }
155
+ ],
156
+ args: [
157
+ {
158
+ name: "wormhole",
159
+ type: "publicKey"
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ name: "setMinimumSignatures",
165
+ accounts: [
166
+ {
167
+ name: "payer",
168
+ isMut: false,
169
+ isSigner: true
170
+ },
171
+ {
172
+ name: "config",
173
+ isMut: true,
174
+ isSigner: false
175
+ }
176
+ ],
177
+ args: [
178
+ {
179
+ name: "minimumSignatures",
180
+ type: "u8"
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ name: "postUpdateAtomic",
186
+ docs: [
187
+ "Post a price update using a VAA and a MerklePriceUpdate.",
188
+ "This function allows you to post a price update in a single transaction.",
189
+ "Compared to `post_update`, it only checks whatever signatures are present in the provided VAA and doesn't fail if the number of signatures is lower than the Wormhole quorum of two thirds of the guardians.",
190
+ "The number of signatures that were in the VAA is stored in the `VerificationLevel` of the `PriceUpdateV2` account.",
191
+ "",
192
+ "We recommend using `post_update_atomic` with 5 signatures. This is close to the maximum signatures you can verify in one transaction without exceeding the transaction size limit.",
193
+ "",
194
+ "# Warning",
195
+ "",
196
+ "Using partially verified price updates is dangerous, as it lowers the threshold of guardians that need to collude to produce a malicious price update."
197
+ ],
198
+ accounts: [
199
+ {
200
+ name: "payer",
201
+ isMut: true,
202
+ isSigner: true
203
+ },
204
+ {
205
+ name: "guardianSet",
206
+ isMut: false,
207
+ isSigner: false,
208
+ docs: [
209
+ "Instead we do the same steps in deserialize_guardian_set_checked."
210
+ ]
211
+ },
212
+ {
213
+ name: "config",
214
+ isMut: false,
215
+ isSigner: false
216
+ },
217
+ {
218
+ name: "treasury",
219
+ isMut: true,
220
+ isSigner: false
221
+ },
222
+ {
223
+ name: "priceUpdateAccount",
224
+ isMut: true,
225
+ isSigner: true,
226
+ docs: [
227
+ "The constraint is such that either the price_update_account is uninitialized or the write_authority is the write_authority.",
228
+ "Pubkey::default() is the SystemProgram on Solana and it can't sign so it's impossible that price_update_account.write_authority == Pubkey::default() once the account is initialized"
229
+ ]
230
+ },
231
+ {
232
+ name: "systemProgram",
233
+ isMut: false,
234
+ isSigner: false
235
+ },
236
+ {
237
+ name: "writeAuthority",
238
+ isMut: false,
239
+ isSigner: true
240
+ }
241
+ ],
242
+ args: [
243
+ {
244
+ name: "params",
245
+ type: {
246
+ defined: "PostUpdateAtomicParams"
247
+ }
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ name: "postUpdate",
253
+ docs: [
254
+ "Post a price update using an encoded_vaa account and a MerklePriceUpdate calldata.",
255
+ "This should be called after the client has already verified the Vaa via the Wormhole contract.",
256
+ "Check out target_chains/solana/cli/src/main.rs for an example of how to do this."
257
+ ],
258
+ accounts: [
259
+ {
260
+ name: "payer",
261
+ isMut: true,
262
+ isSigner: true
263
+ },
264
+ {
265
+ name: "encodedVaa",
266
+ isMut: false,
267
+ isSigner: false
268
+ },
269
+ {
270
+ name: "config",
271
+ isMut: false,
272
+ isSigner: false
273
+ },
274
+ {
275
+ name: "treasury",
276
+ isMut: true,
277
+ isSigner: false
278
+ },
279
+ {
280
+ name: "priceUpdateAccount",
281
+ isMut: true,
282
+ isSigner: true,
283
+ docs: [
284
+ "The constraint is such that either the price_update_account is uninitialized or the write_authority is the write_authority.",
285
+ "Pubkey::default() is the SystemProgram on Solana and it can't sign so it's impossible that price_update_account.write_authority == Pubkey::default() once the account is initialized"
286
+ ]
287
+ },
288
+ {
289
+ name: "systemProgram",
290
+ isMut: false,
291
+ isSigner: false
292
+ },
293
+ {
294
+ name: "writeAuthority",
295
+ isMut: false,
296
+ isSigner: true
297
+ }
298
+ ],
299
+ args: [
300
+ {
301
+ name: "params",
302
+ type: {
303
+ defined: "PostUpdateParams"
304
+ }
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ name: "postTwapUpdate",
310
+ docs: [
311
+ "Post a TWAP (time weighted average price) update for a given time window.",
312
+ "This should be called after the client has already verified the VAAs via the Wormhole contract.",
313
+ "Check out target_chains/solana/cli/src/main.rs for an example of how to do this."
314
+ ],
315
+ accounts: [
316
+ {
317
+ name: "payer",
318
+ isMut: true,
319
+ isSigner: true
320
+ },
321
+ {
322
+ name: "startEncodedVaa",
323
+ isMut: false,
324
+ isSigner: false
325
+ },
326
+ {
327
+ name: "endEncodedVaa",
328
+ isMut: false,
329
+ isSigner: false
330
+ },
331
+ {
332
+ name: "config",
333
+ isMut: false,
334
+ isSigner: false
335
+ },
336
+ {
337
+ name: "treasury",
338
+ isMut: true,
339
+ isSigner: false
340
+ },
341
+ {
342
+ name: "twapUpdateAccount",
343
+ isMut: true,
344
+ isSigner: true,
345
+ docs: [
346
+ "The constraint is such that either the price_update_account is uninitialized or the write_authority is the write_authority.",
347
+ "Pubkey::default() is the SystemProgram on Solana and it can't sign so it's impossible that price_update_account.write_authority == Pubkey::default() once the account is initialized"
348
+ ]
349
+ },
350
+ {
351
+ name: "systemProgram",
352
+ isMut: false,
353
+ isSigner: false
354
+ },
355
+ {
356
+ name: "writeAuthority",
357
+ isMut: false,
358
+ isSigner: true
359
+ }
360
+ ],
361
+ args: [
362
+ {
363
+ name: "params",
364
+ type: {
365
+ defined: "PostTwapUpdateParams"
366
+ }
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ name: "reclaimRent",
372
+ accounts: [
373
+ {
374
+ name: "payer",
375
+ isMut: true,
376
+ isSigner: true
377
+ },
378
+ {
379
+ name: "priceUpdateAccount",
380
+ isMut: true,
381
+ isSigner: false
382
+ }
383
+ ],
384
+ args: []
385
+ },
386
+ {
387
+ name: "reclaimTwapRent",
388
+ accounts: [
389
+ {
390
+ name: "payer",
391
+ isMut: true,
392
+ isSigner: true
393
+ },
394
+ {
395
+ name: "twapUpdateAccount",
396
+ isMut: true,
397
+ isSigner: false
398
+ }
399
+ ],
400
+ args: []
401
+ }
402
+ ],
403
+ accounts: [
404
+ {
405
+ name: "Config",
406
+ type: {
407
+ kind: "struct",
408
+ fields: [
409
+ {
410
+ name: "governanceAuthority",
411
+ type: "publicKey"
412
+ },
413
+ {
414
+ name: "targetGovernanceAuthority",
415
+ type: {
416
+ option: "publicKey"
417
+ }
418
+ },
419
+ {
420
+ name: "wormhole",
421
+ type: "publicKey"
422
+ },
423
+ {
424
+ name: "validDataSources",
425
+ type: {
426
+ vec: {
427
+ defined: "DataSource"
428
+ }
429
+ }
430
+ },
431
+ {
432
+ name: "singleUpdateFeeInLamports",
433
+ type: "u64"
434
+ },
435
+ {
436
+ name: "minimumSignatures",
437
+ type: "u8"
438
+ }
439
+ ]
440
+ }
441
+ },
442
+ {
443
+ name: "priceUpdateV2",
444
+ type: {
445
+ kind: "struct",
446
+ fields: [
447
+ {
448
+ name: "writeAuthority",
449
+ type: "publicKey"
450
+ },
451
+ {
452
+ name: "verificationLevel",
453
+ type: {
454
+ defined: "VerificationLevel"
455
+ }
456
+ },
457
+ {
458
+ name: "priceMessage",
459
+ type: {
460
+ defined: "PriceFeedMessage"
461
+ }
462
+ },
463
+ {
464
+ name: "postedSlot",
465
+ type: "u64"
466
+ }
467
+ ]
468
+ }
469
+ },
470
+ {
471
+ name: "twapUpdate",
472
+ type: {
473
+ kind: "struct",
474
+ fields: [
475
+ {
476
+ name: "writeAuthority",
477
+ type: "publicKey"
478
+ },
479
+ {
480
+ name: "twap",
481
+ type: {
482
+ defined: "TwapPrice"
483
+ }
484
+ }
485
+ ]
486
+ }
487
+ }
488
+ ],
489
+ types: [
490
+ {
491
+ name: "PriceFeedMessage",
492
+ type: {
493
+ kind: "struct",
494
+ fields: [
495
+ {
496
+ name: "feedId",
497
+ type: {
498
+ array: [
499
+ "u8",
500
+ 32
501
+ ]
502
+ }
503
+ },
504
+ {
505
+ name: "price",
506
+ type: "i64"
507
+ },
508
+ {
509
+ name: "conf",
510
+ type: "u64"
511
+ },
512
+ {
513
+ name: "exponent",
514
+ type: "i32"
515
+ },
516
+ {
517
+ name: "publishTime",
518
+ type: "i64"
519
+ },
520
+ {
521
+ name: "prevPublishTime",
522
+ type: "i64"
523
+ },
524
+ {
525
+ name: "emaPrice",
526
+ type: "i64"
527
+ },
528
+ {
529
+ name: "emaConf",
530
+ type: "u64"
531
+ }
532
+ ]
533
+ }
534
+ },
535
+ {
536
+ name: "TwapPrice",
537
+ docs: [
538
+ "The time weighted average price & conf for a feed over the window [start_time, end_time].",
539
+ "This type is used to persist the calculated TWAP in TwapUpdate accounts on Solana."
540
+ ],
541
+ type: {
542
+ kind: "struct",
543
+ fields: [
544
+ {
545
+ name: "feedId",
546
+ type: {
547
+ array: [
548
+ "u8",
549
+ 32
550
+ ]
551
+ }
552
+ },
553
+ {
554
+ name: "startTime",
555
+ type: "i64"
556
+ },
557
+ {
558
+ name: "endTime",
559
+ type: "i64"
560
+ },
561
+ {
562
+ name: "price",
563
+ type: "i64"
564
+ },
565
+ {
566
+ name: "conf",
567
+ type: "u64"
568
+ },
569
+ {
570
+ name: "exponent",
571
+ type: "i32"
572
+ },
573
+ {
574
+ name: "downSlotsRatio",
575
+ docs: [
576
+ "Ratio out of 1_000_000, where a value of 1_000_000 represents",
577
+ "all slots were missed and 0 represents no slots were missed."
578
+ ],
579
+ type: "u32"
580
+ }
581
+ ]
582
+ }
583
+ },
584
+ {
585
+ name: "MerklePriceUpdate",
586
+ type: {
587
+ kind: "struct",
588
+ fields: [
589
+ {
590
+ name: "message",
591
+ type: "bytes"
592
+ },
593
+ {
594
+ name: "proof",
595
+ type: {
596
+ vec: {
597
+ array: [
598
+ "u8",
599
+ 20
600
+ ]
601
+ }
602
+ }
603
+ }
604
+ ]
605
+ }
606
+ },
607
+ {
608
+ name: "DataSource",
609
+ type: {
610
+ kind: "struct",
611
+ fields: [
612
+ {
613
+ name: "chain",
614
+ type: "u16"
615
+ },
616
+ {
617
+ name: "emitter",
618
+ type: "publicKey"
619
+ }
620
+ ]
621
+ }
622
+ },
623
+ {
624
+ name: "PostUpdateAtomicParams",
625
+ type: {
626
+ kind: "struct",
627
+ fields: [
628
+ {
629
+ name: "vaa",
630
+ type: "bytes"
631
+ },
632
+ {
633
+ name: "merklePriceUpdate",
634
+ type: {
635
+ defined: "MerklePriceUpdate"
636
+ }
637
+ },
638
+ {
639
+ name: "treasuryId",
640
+ type: "u8"
641
+ }
642
+ ]
643
+ }
644
+ },
645
+ {
646
+ name: "PostUpdateParams",
647
+ type: {
648
+ kind: "struct",
649
+ fields: [
650
+ {
651
+ name: "merklePriceUpdate",
652
+ type: {
653
+ defined: "MerklePriceUpdate"
654
+ }
655
+ },
656
+ {
657
+ name: "treasuryId",
658
+ type: "u8"
659
+ }
660
+ ]
661
+ }
662
+ },
663
+ {
664
+ name: "PostTwapUpdateParams",
665
+ type: {
666
+ kind: "struct",
667
+ fields: [
668
+ {
669
+ name: "startMerklePriceUpdate",
670
+ type: {
671
+ defined: "MerklePriceUpdate"
672
+ }
673
+ },
674
+ {
675
+ name: "endMerklePriceUpdate",
676
+ type: {
677
+ defined: "MerklePriceUpdate"
678
+ }
679
+ },
680
+ {
681
+ name: "treasuryId",
682
+ type: "u8"
683
+ }
684
+ ]
685
+ }
686
+ },
687
+ {
688
+ name: "VerificationLevel",
689
+ docs: [
690
+ "* This enum represents how many guardian signatures were checked for a Pythnet price update\n * If full, guardian quorum has been attained\n * If partial, at least config.minimum signatures have been verified, but in the case config.minimum_signatures changes in the future we also include the number of signatures that were checked"
691
+ ],
692
+ type: {
693
+ kind: "enum",
694
+ variants: [
695
+ {
696
+ name: "Partial",
697
+ fields: [
698
+ {
699
+ name: "numSignatures",
700
+ type: "u8"
701
+ }
702
+ ]
703
+ },
704
+ {
705
+ name: "Full"
706
+ }
707
+ ]
708
+ }
709
+ }
710
+ ],
711
+ errors: [
712
+ {
713
+ code: 6000,
714
+ name: "InvalidWormholeMessage",
715
+ msg: "Received an invalid wormhole message"
716
+ },
717
+ {
718
+ code: 6001,
719
+ name: "DeserializeMessageFailed",
720
+ msg: "An error occurred when deserializing the message"
721
+ },
722
+ {
723
+ code: 6002,
724
+ name: "InvalidPriceUpdate",
725
+ msg: "Received an invalid price update"
726
+ },
727
+ {
728
+ code: 6003,
729
+ name: "UnsupportedMessageType",
730
+ msg: "This type of message is not supported currently"
731
+ },
732
+ {
733
+ code: 6004,
734
+ name: "InvalidDataSource",
735
+ msg: "The tuple emitter chain, emitter doesn't match one of the valid data sources."
736
+ },
737
+ {
738
+ code: 6005,
739
+ name: "InsufficientFunds",
740
+ msg: "Funds are insufficient to pay the receiving fee"
741
+ },
742
+ {
743
+ code: 6006,
744
+ name: "FeedIdMismatch",
745
+ msg: "Cannot calculate TWAP, end slot must be greater than start slot"
746
+ },
747
+ {
748
+ code: 6007,
749
+ name: "ExponentMismatch",
750
+ msg: "The start and end messages must have the same feed ID"
751
+ },
752
+ {
753
+ code: 6008,
754
+ name: "InvalidTwapSlots",
755
+ msg: "The start and end messages must have the same exponent"
756
+ },
757
+ {
758
+ code: 6009,
759
+ name: "InvalidTwapStartMessage",
760
+ msg: "Start message is not the first update for its timestamp"
761
+ },
762
+ {
763
+ code: 6010,
764
+ name: "InvalidTwapEndMessage",
765
+ msg: "End message is not the first update for its timestamp"
766
+ },
767
+ {
768
+ code: 6011,
769
+ name: "TwapCalculationOverflow",
770
+ msg: "Overflow in TWAP calculation"
771
+ },
772
+ {
773
+ code: 6012,
774
+ name: "WrongWriteAuthority",
775
+ msg: "This signer can't write to price update account"
776
+ },
777
+ {
778
+ code: 6013,
779
+ name: "WrongVaaOwner",
780
+ msg: "The posted VAA account has the wrong owner."
781
+ },
782
+ {
783
+ code: 6014,
784
+ name: "DeserializeVaaFailed",
785
+ msg: "An error occurred when deserializing the VAA."
786
+ },
787
+ {
788
+ code: 6015,
789
+ name: "InsufficientGuardianSignatures",
790
+ msg: "The number of guardian signatures is below the minimum"
791
+ },
792
+ {
793
+ code: 6016,
794
+ name: "InvalidVaaVersion",
795
+ msg: "Invalid VAA version"
796
+ },
797
+ {
798
+ code: 6017,
799
+ name: "GuardianSetMismatch",
800
+ msg: "Guardian set version in the VAA doesn't match the guardian set passed"
801
+ },
802
+ {
803
+ code: 6018,
804
+ name: "InvalidGuardianOrder",
805
+ msg: "Guardian signature indices must be increasing"
806
+ },
807
+ {
808
+ code: 6019,
809
+ name: "InvalidGuardianIndex",
810
+ msg: "Guardian index exceeds the number of guardians in the set"
811
+ },
812
+ {
813
+ code: 6020,
814
+ name: "InvalidSignature",
815
+ msg: "A VAA signature is invalid"
816
+ },
817
+ {
818
+ code: 6021,
819
+ name: "InvalidGuardianKeyRecovery",
820
+ msg: "The recovered guardian public key doesn't match the guardian set"
821
+ },
822
+ {
823
+ code: 6022,
824
+ name: "WrongGuardianSetOwner",
825
+ msg: "The guardian set account is owned by the wrong program"
826
+ },
827
+ {
828
+ code: 6023,
829
+ name: "InvalidGuardianSetPda",
830
+ msg: "The Guardian Set account doesn't match the PDA derivation"
831
+ },
832
+ {
833
+ code: 6024,
834
+ name: "GuardianSetExpired",
835
+ msg: "The Guardian Set is expired"
836
+ },
837
+ {
838
+ code: 6025,
839
+ name: "GovernanceAuthorityMismatch",
840
+ msg: "The signer is not authorized to perform this governance action"
841
+ },
842
+ {
843
+ code: 6026,
844
+ name: "TargetGovernanceAuthorityMismatch",
845
+ msg: "The signer is not authorized to accept the governance authority"
846
+ },
847
+ {
848
+ code: 6027,
849
+ name: "NonexistentGovernanceAuthorityTransferRequest",
850
+ msg: "The governance authority needs to request a transfer first"
851
+ },
852
+ {
853
+ code: 6028,
854
+ name: "ZeroMinimumSignatures",
855
+ msg: "The minimum number of signatures should be at least 1"
856
+ }
857
+ ]
858
+ };