@arcium-hq/client 0.9.6 → 0.10.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.
package/build/index.mjs CHANGED
@@ -3,8 +3,8 @@ import { ed25519 } from '@noble/curves/ed25519';
3
3
  export { x25519 } from '@noble/curves/ed25519';
4
4
  import { shake256, sha3_512 } from '@noble/hashes/sha3';
5
5
  import { invert, mod, isNegativeLE, pow2 } from '@noble/curves/abstract/modular';
6
- import * as anchor from '@coral-xyz/anchor';
7
- import { Program } from '@coral-xyz/anchor';
6
+ import * as anchor from '@anchor-lang/core';
7
+ import { Program } from '@anchor-lang/core';
8
8
  import { randomBytes as randomBytes$1 } from '@noble/hashes/utils';
9
9
  import { twistedEdwards } from '@noble/curves/abstract/edwards';
10
10
  import fs from 'fs';
@@ -1865,7 +1865,7 @@ function createPacker(fields, typeName = 'Packer') {
1865
1865
  var address = "Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ";
1866
1866
  var metadata = {
1867
1867
  name: "arcium",
1868
- version: "0.9.6",
1868
+ version: "0.10.0",
1869
1869
  spec: "0.1.0",
1870
1870
  description: "The Arcium program"
1871
1871
  };
@@ -2312,7 +2312,7 @@ var instructions = [
2312
2312
  },
2313
2313
  {
2314
2314
  kind: "account",
2315
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2315
+ path: "mxe.cluster",
2316
2316
  account: "MXEAccount"
2317
2317
  }
2318
2318
  ]
@@ -2348,7 +2348,7 @@ var instructions = [
2348
2348
  },
2349
2349
  {
2350
2350
  kind: "account",
2351
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2351
+ path: "mxe.cluster",
2352
2352
  account: "MXEAccount"
2353
2353
  },
2354
2354
  {
@@ -2377,7 +2377,7 @@ var instructions = [
2377
2377
  },
2378
2378
  {
2379
2379
  kind: "account",
2380
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2380
+ path: "mxe.cluster",
2381
2381
  account: "MXEAccount"
2382
2382
  }
2383
2383
  ]
@@ -2403,7 +2403,7 @@ var instructions = [
2403
2403
  },
2404
2404
  {
2405
2405
  kind: "account",
2406
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2406
+ path: "mxe.cluster",
2407
2407
  account: "MXEAccount"
2408
2408
  }
2409
2409
  ]
@@ -2733,7 +2733,7 @@ var instructions = [
2733
2733
  },
2734
2734
  {
2735
2735
  kind: "account",
2736
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2736
+ path: "mxe.cluster",
2737
2737
  account: "MXEAccount"
2738
2738
  }
2739
2739
  ]
@@ -2758,7 +2758,7 @@ var instructions = [
2758
2758
  },
2759
2759
  {
2760
2760
  kind: "account",
2761
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2761
+ path: "mxe.cluster",
2762
2762
  account: "MXEAccount"
2763
2763
  }
2764
2764
  ]
@@ -2794,7 +2794,7 @@ var instructions = [
2794
2794
  },
2795
2795
  {
2796
2796
  kind: "account",
2797
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2797
+ path: "mxe.cluster",
2798
2798
  account: "MXEAccount"
2799
2799
  },
2800
2800
  {
@@ -2849,7 +2849,7 @@ var instructions = [
2849
2849
  },
2850
2850
  {
2851
2851
  kind: "account",
2852
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2852
+ path: "mxe.cluster",
2853
2853
  account: "MXEAccount"
2854
2854
  }
2855
2855
  ]
@@ -2967,7 +2967,7 @@ var instructions = [
2967
2967
  },
2968
2968
  {
2969
2969
  kind: "account",
2970
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2970
+ path: "mxe.cluster",
2971
2971
  account: "MXEAccount"
2972
2972
  },
2973
2973
  {
@@ -2996,7 +2996,7 @@ var instructions = [
2996
2996
  },
2997
2997
  {
2998
2998
  kind: "account",
2999
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
2999
+ path: "mxe.cluster",
3000
3000
  account: "MXEAccount"
3001
3001
  }
3002
3002
  ]
@@ -3223,28 +3223,29 @@ var instructions = [
3223
3223
  ]
3224
3224
  },
3225
3225
  {
3226
- name: "close_key_recovery",
3226
+ name: "close_computation_definition",
3227
3227
  docs: [
3228
- "Closes all recovery-related accounts."
3228
+ "Closes a computation definition after TTL wait and verifying no active computations."
3229
3229
  ],
3230
3230
  discriminator: [
3231
- 249,
3232
- 127,
3233
- 56,
3234
- 116,
3235
- 125,
3236
- 136,
3237
- 84,
3238
- 184
3231
+ 175,
3232
+ 224,
3233
+ 148,
3234
+ 1,
3235
+ 107,
3236
+ 74,
3237
+ 70,
3238
+ 110
3239
3239
  ],
3240
3240
  accounts: [
3241
3241
  {
3242
- name: "authority",
3242
+ name: "signer",
3243
3243
  writable: true,
3244
3244
  signer: true
3245
3245
  },
3246
3246
  {
3247
- name: "original_mxe",
3247
+ name: "mxe",
3248
+ writable: true,
3248
3249
  pda: {
3249
3250
  seeds: [
3250
3251
  {
@@ -3264,22 +3265,40 @@ var instructions = [
3264
3265
  },
3265
3266
  {
3266
3267
  kind: "arg",
3267
- path: "_original_mxe_program"
3268
+ path: "_mxe_program"
3268
3269
  }
3269
3270
  ]
3270
3271
  }
3271
3272
  },
3272
3273
  {
3273
- name: "backup_mxe",
3274
+ name: "comp_def_acc",
3274
3275
  writable: true,
3275
3276
  pda: {
3276
3277
  seeds: [
3277
3278
  {
3278
3279
  kind: "const",
3279
3280
  value: [
3280
- 77,
3281
- 88,
3282
- 69,
3281
+ 67,
3282
+ 111,
3283
+ 109,
3284
+ 112,
3285
+ 117,
3286
+ 116,
3287
+ 97,
3288
+ 116,
3289
+ 105,
3290
+ 111,
3291
+ 110,
3292
+ 68,
3293
+ 101,
3294
+ 102,
3295
+ 105,
3296
+ 110,
3297
+ 105,
3298
+ 116,
3299
+ 105,
3300
+ 111,
3301
+ 110,
3283
3302
  65,
3284
3303
  99,
3285
3304
  99,
@@ -3291,30 +3310,93 @@ var instructions = [
3291
3310
  },
3292
3311
  {
3293
3312
  kind: "arg",
3294
- path: "_backup_mxe_program"
3313
+ path: "_mxe_program"
3314
+ },
3315
+ {
3316
+ kind: "arg",
3317
+ path: "comp_offset"
3295
3318
  }
3296
3319
  ]
3297
3320
  }
3298
3321
  },
3299
3322
  {
3300
- name: "mxe_recovery_account",
3301
- writable: true,
3323
+ name: "executing_pool",
3302
3324
  pda: {
3303
3325
  seeds: [
3304
3326
  {
3305
3327
  kind: "const",
3306
3328
  value: [
3307
- 77,
3329
+ 69,
3308
3330
  120,
3309
3331
  101,
3310
- 82,
3311
- 101,
3312
3332
  99,
3333
+ 112,
3313
3334
  111,
3314
- 118,
3315
- 101,
3316
- 114,
3317
- 121,
3335
+ 111,
3336
+ 108
3337
+ ]
3338
+ },
3339
+ {
3340
+ kind: "arg",
3341
+ path: "_cluster_offset"
3342
+ }
3343
+ ]
3344
+ }
3345
+ },
3346
+ {
3347
+ name: "system_program",
3348
+ docs: [
3349
+ "System program account."
3350
+ ],
3351
+ address: "11111111111111111111111111111111"
3352
+ }
3353
+ ],
3354
+ args: [
3355
+ {
3356
+ name: "comp_offset",
3357
+ type: "u32"
3358
+ },
3359
+ {
3360
+ name: "mxe_program",
3361
+ type: "pubkey"
3362
+ },
3363
+ {
3364
+ name: "cluster_offset",
3365
+ type: "u32"
3366
+ }
3367
+ ]
3368
+ },
3369
+ {
3370
+ name: "close_computation_definition_buffers",
3371
+ docs: [
3372
+ "Closes the raw circuit buffer account for a computation definition."
3373
+ ],
3374
+ discriminator: [
3375
+ 98,
3376
+ 101,
3377
+ 140,
3378
+ 112,
3379
+ 8,
3380
+ 211,
3381
+ 211,
3382
+ 1
3383
+ ],
3384
+ accounts: [
3385
+ {
3386
+ name: "signer",
3387
+ writable: true,
3388
+ signer: true
3389
+ },
3390
+ {
3391
+ name: "mxe",
3392
+ pda: {
3393
+ seeds: [
3394
+ {
3395
+ kind: "const",
3396
+ value: [
3397
+ 77,
3398
+ 88,
3399
+ 69,
3318
3400
  65,
3319
3401
  99,
3320
3402
  99,
@@ -3325,19 +3407,14 @@ var instructions = [
3325
3407
  ]
3326
3408
  },
3327
3409
  {
3328
- kind: "account",
3329
- path: "backup_mxe_program"
3330
- },
3331
- {
3332
- kind: "account",
3333
- path: "original_mxe_program"
3410
+ kind: "arg",
3411
+ path: "_mxe_program"
3334
3412
  }
3335
3413
  ]
3336
3414
  }
3337
3415
  },
3338
3416
  {
3339
- name: "key_recovery_finalize_comp_def",
3340
- writable: true,
3417
+ name: "comp_def_acc",
3341
3418
  pda: {
3342
3419
  seeds: [
3343
3420
  {
@@ -3374,90 +3451,645 @@ var instructions = [
3374
3451
  ]
3375
3452
  },
3376
3453
  {
3377
- kind: "account",
3378
- path: "backup_mxe_program"
3454
+ kind: "arg",
3455
+ path: "_mxe_program"
3379
3456
  },
3457
+ {
3458
+ kind: "arg",
3459
+ path: "_comp_offset"
3460
+ }
3461
+ ]
3462
+ }
3463
+ },
3464
+ {
3465
+ name: "comp_def_raw",
3466
+ writable: true,
3467
+ pda: {
3468
+ seeds: [
3380
3469
  {
3381
3470
  kind: "const",
3382
3471
  value: [
3383
- 3,
3384
- 0,
3385
- 0,
3386
- 0
3472
+ 67,
3473
+ 111,
3474
+ 109,
3475
+ 112,
3476
+ 117,
3477
+ 116,
3478
+ 97,
3479
+ 116,
3480
+ 105,
3481
+ 111,
3482
+ 110,
3483
+ 68,
3484
+ 101,
3485
+ 102,
3486
+ 105,
3487
+ 110,
3488
+ 105,
3489
+ 116,
3490
+ 105,
3491
+ 111,
3492
+ 110,
3493
+ 82,
3494
+ 97,
3495
+ 119
3387
3496
  ]
3497
+ },
3498
+ {
3499
+ kind: "account",
3500
+ path: "comp_def_acc"
3501
+ },
3502
+ {
3503
+ kind: "arg",
3504
+ path: "_raw_circuit_index"
3388
3505
  }
3389
3506
  ]
3390
3507
  }
3391
- },
3392
- {
3393
- name: "original_mxe_program"
3394
- },
3395
- {
3396
- name: "backup_mxe_program"
3397
3508
  }
3398
3509
  ],
3399
3510
  args: [
3400
3511
  {
3401
- name: "original_mxe_program",
3402
- type: "pubkey"
3512
+ name: "comp_offset",
3513
+ type: "u32"
3403
3514
  },
3404
3515
  {
3405
- name: "backup_mxe_program",
3516
+ name: "mxe_program",
3406
3517
  type: "pubkey"
3518
+ },
3519
+ {
3520
+ name: "raw_circuit_index",
3521
+ type: "u8"
3407
3522
  }
3408
3523
  ]
3409
3524
  },
3410
3525
  {
3411
- name: "close_permissioned_recovery_peers_account",
3526
+ name: "close_key_recovery",
3412
3527
  docs: [
3413
- "Close the permissioned recovery peers account"
3528
+ "Closes all recovery-related accounts in the success path."
3414
3529
  ],
3415
3530
  discriminator: [
3416
- 55,
3417
- 55,
3418
- 184,
3419
- 150,
3420
- 82,
3421
- 190,
3422
- 205,
3423
- 92
3531
+ 249,
3532
+ 127,
3533
+ 56,
3534
+ 116,
3535
+ 125,
3536
+ 136,
3537
+ 84,
3538
+ 184
3424
3539
  ],
3425
3540
  accounts: [
3426
3541
  {
3427
- name: "signer",
3542
+ name: "authority",
3428
3543
  writable: true,
3429
3544
  signer: true
3430
3545
  },
3431
3546
  {
3432
- name: "permissioned_recovery_peers_acc",
3433
- writable: true,
3547
+ name: "original_mxe",
3434
3548
  pda: {
3435
3549
  seeds: [
3436
3550
  {
3437
3551
  kind: "const",
3438
3552
  value: [
3439
- 80,
3440
- 101,
3441
- 114,
3442
- 109,
3443
- 105,
3444
- 115,
3445
- 115,
3446
- 105,
3447
- 111,
3448
- 110,
3449
- 101,
3450
- 100,
3451
- 82,
3452
- 101,
3553
+ 77,
3554
+ 88,
3555
+ 69,
3556
+ 65,
3557
+ 99,
3453
3558
  99,
3454
3559
  111,
3455
- 118,
3456
- 101,
3457
- 114,
3458
- 121,
3459
- 80,
3460
- 101,
3560
+ 117,
3561
+ 110,
3562
+ 116
3563
+ ]
3564
+ },
3565
+ {
3566
+ kind: "arg",
3567
+ path: "_original_mxe_program"
3568
+ }
3569
+ ]
3570
+ }
3571
+ },
3572
+ {
3573
+ name: "backup_mxe",
3574
+ writable: true,
3575
+ pda: {
3576
+ seeds: [
3577
+ {
3578
+ kind: "const",
3579
+ value: [
3580
+ 77,
3581
+ 88,
3582
+ 69,
3583
+ 65,
3584
+ 99,
3585
+ 99,
3586
+ 111,
3587
+ 117,
3588
+ 110,
3589
+ 116
3590
+ ]
3591
+ },
3592
+ {
3593
+ kind: "account",
3594
+ path: "mxe_recovery_account"
3595
+ }
3596
+ ]
3597
+ }
3598
+ },
3599
+ {
3600
+ name: "mxe_recovery_account",
3601
+ writable: true,
3602
+ pda: {
3603
+ seeds: [
3604
+ {
3605
+ kind: "const",
3606
+ value: [
3607
+ 77,
3608
+ 120,
3609
+ 101,
3610
+ 82,
3611
+ 101,
3612
+ 99,
3613
+ 111,
3614
+ 118,
3615
+ 101,
3616
+ 114,
3617
+ 121,
3618
+ 65,
3619
+ 99,
3620
+ 99,
3621
+ 111,
3622
+ 117,
3623
+ 110,
3624
+ 116
3625
+ ]
3626
+ },
3627
+ {
3628
+ kind: "arg",
3629
+ path: "_original_mxe_program"
3630
+ }
3631
+ ]
3632
+ }
3633
+ },
3634
+ {
3635
+ name: "key_recovery_finalize_comp_def",
3636
+ writable: true,
3637
+ pda: {
3638
+ seeds: [
3639
+ {
3640
+ kind: "const",
3641
+ value: [
3642
+ 67,
3643
+ 111,
3644
+ 109,
3645
+ 112,
3646
+ 117,
3647
+ 116,
3648
+ 97,
3649
+ 116,
3650
+ 105,
3651
+ 111,
3652
+ 110,
3653
+ 68,
3654
+ 101,
3655
+ 102,
3656
+ 105,
3657
+ 110,
3658
+ 105,
3659
+ 116,
3660
+ 105,
3661
+ 111,
3662
+ 110,
3663
+ 65,
3664
+ 99,
3665
+ 99,
3666
+ 111,
3667
+ 117,
3668
+ 110,
3669
+ 116
3670
+ ]
3671
+ },
3672
+ {
3673
+ kind: "account",
3674
+ path: "mxe_recovery_account"
3675
+ },
3676
+ {
3677
+ kind: "const",
3678
+ value: [
3679
+ 3,
3680
+ 0,
3681
+ 0,
3682
+ 0
3683
+ ]
3684
+ }
3685
+ ]
3686
+ }
3687
+ },
3688
+ {
3689
+ name: "key_recovery_finalize_computation",
3690
+ writable: true,
3691
+ pda: {
3692
+ seeds: [
3693
+ {
3694
+ kind: "const",
3695
+ value: [
3696
+ 67,
3697
+ 111,
3698
+ 109,
3699
+ 112,
3700
+ 117,
3701
+ 116,
3702
+ 97,
3703
+ 116,
3704
+ 105,
3705
+ 111,
3706
+ 110,
3707
+ 65,
3708
+ 99,
3709
+ 99,
3710
+ 111,
3711
+ 117,
3712
+ 110,
3713
+ 116
3714
+ ]
3715
+ },
3716
+ {
3717
+ kind: "arg",
3718
+ path: "backup_cluster_offset"
3719
+ },
3720
+ {
3721
+ kind: "account",
3722
+ path: "mxe_recovery_account"
3723
+ }
3724
+ ]
3725
+ }
3726
+ },
3727
+ {
3728
+ name: "original_mxe_program"
3729
+ },
3730
+ {
3731
+ name: "backup_mxe_program"
3732
+ }
3733
+ ],
3734
+ args: [
3735
+ {
3736
+ name: "original_mxe_program",
3737
+ type: "pubkey"
3738
+ },
3739
+ {
3740
+ name: "backup_cluster_offset",
3741
+ type: "u32"
3742
+ }
3743
+ ]
3744
+ },
3745
+ {
3746
+ name: "close_mxe",
3747
+ docs: [
3748
+ "Closes an MXE account and auto-closes the keygen computation definition."
3749
+ ],
3750
+ discriminator: [
3751
+ 121,
3752
+ 143,
3753
+ 242,
3754
+ 246,
3755
+ 169,
3756
+ 45,
3757
+ 13,
3758
+ 97
3759
+ ],
3760
+ accounts: [
3761
+ {
3762
+ name: "signer",
3763
+ writable: true,
3764
+ signer: true
3765
+ },
3766
+ {
3767
+ name: "mxe_program",
3768
+ docs: [
3769
+ "constraint in tests because setting it would require us to deploy a program each time."
3770
+ ]
3771
+ },
3772
+ {
3773
+ name: "mxe",
3774
+ writable: true,
3775
+ pda: {
3776
+ seeds: [
3777
+ {
3778
+ kind: "const",
3779
+ value: [
3780
+ 77,
3781
+ 88,
3782
+ 69,
3783
+ 65,
3784
+ 99,
3785
+ 99,
3786
+ 111,
3787
+ 117,
3788
+ 110,
3789
+ 116
3790
+ ]
3791
+ },
3792
+ {
3793
+ kind: "account",
3794
+ path: "mxe_program"
3795
+ }
3796
+ ]
3797
+ }
3798
+ },
3799
+ {
3800
+ name: "mxe_keygen_computation",
3801
+ writable: true,
3802
+ pda: {
3803
+ seeds: [
3804
+ {
3805
+ kind: "const",
3806
+ value: [
3807
+ 67,
3808
+ 111,
3809
+ 109,
3810
+ 112,
3811
+ 117,
3812
+ 116,
3813
+ 97,
3814
+ 116,
3815
+ 105,
3816
+ 111,
3817
+ 110,
3818
+ 65,
3819
+ 99,
3820
+ 99,
3821
+ 111,
3822
+ 117,
3823
+ 110,
3824
+ 116
3825
+ ]
3826
+ },
3827
+ {
3828
+ kind: "arg",
3829
+ path: "_cluster_offset"
3830
+ },
3831
+ {
3832
+ kind: "arg",
3833
+ path: "_keygen_offset"
3834
+ }
3835
+ ]
3836
+ }
3837
+ },
3838
+ {
3839
+ name: "mxe_keygen_comp_def",
3840
+ writable: true,
3841
+ pda: {
3842
+ seeds: [
3843
+ {
3844
+ kind: "const",
3845
+ value: [
3846
+ 67,
3847
+ 111,
3848
+ 109,
3849
+ 112,
3850
+ 117,
3851
+ 116,
3852
+ 97,
3853
+ 116,
3854
+ 105,
3855
+ 111,
3856
+ 110,
3857
+ 68,
3858
+ 101,
3859
+ 102,
3860
+ 105,
3861
+ 110,
3862
+ 105,
3863
+ 116,
3864
+ 105,
3865
+ 111,
3866
+ 110,
3867
+ 65,
3868
+ 99,
3869
+ 99,
3870
+ 111,
3871
+ 117,
3872
+ 110,
3873
+ 116
3874
+ ]
3875
+ },
3876
+ {
3877
+ kind: "account",
3878
+ path: "mxe_program"
3879
+ },
3880
+ {
3881
+ kind: "const",
3882
+ value: [
3883
+ 1,
3884
+ 0,
3885
+ 0,
3886
+ 0
3887
+ ]
3888
+ }
3889
+ ]
3890
+ }
3891
+ },
3892
+ {
3893
+ name: "mxe_key_recovery_init_comp_def",
3894
+ docs: [
3895
+ "Optional: only exists if key recovery was initiated."
3896
+ ],
3897
+ writable: true,
3898
+ optional: true,
3899
+ pda: {
3900
+ seeds: [
3901
+ {
3902
+ kind: "const",
3903
+ value: [
3904
+ 67,
3905
+ 111,
3906
+ 109,
3907
+ 112,
3908
+ 117,
3909
+ 116,
3910
+ 97,
3911
+ 116,
3912
+ 105,
3913
+ 111,
3914
+ 110,
3915
+ 68,
3916
+ 101,
3917
+ 102,
3918
+ 105,
3919
+ 110,
3920
+ 105,
3921
+ 116,
3922
+ 105,
3923
+ 111,
3924
+ 110,
3925
+ 65,
3926
+ 99,
3927
+ 99,
3928
+ 111,
3929
+ 117,
3930
+ 110,
3931
+ 116
3932
+ ]
3933
+ },
3934
+ {
3935
+ kind: "account",
3936
+ path: "mxe_program"
3937
+ },
3938
+ {
3939
+ kind: "const",
3940
+ value: [
3941
+ 2,
3942
+ 0,
3943
+ 0,
3944
+ 0
3945
+ ]
3946
+ }
3947
+ ]
3948
+ }
3949
+ },
3950
+ {
3951
+ name: "key_recovery_init_computation",
3952
+ writable: true,
3953
+ optional: true,
3954
+ pda: {
3955
+ seeds: [
3956
+ {
3957
+ kind: "const",
3958
+ value: [
3959
+ 67,
3960
+ 111,
3961
+ 109,
3962
+ 112,
3963
+ 117,
3964
+ 116,
3965
+ 97,
3966
+ 116,
3967
+ 105,
3968
+ 111,
3969
+ 110,
3970
+ 65,
3971
+ 99,
3972
+ 99,
3973
+ 111,
3974
+ 117,
3975
+ 110,
3976
+ 116
3977
+ ]
3978
+ },
3979
+ {
3980
+ kind: "arg",
3981
+ path: "_cluster_offset"
3982
+ },
3983
+ {
3984
+ kind: "account",
3985
+ path: "mxe.key_recovery_init_offset",
3986
+ account: "MXEAccount"
3987
+ }
3988
+ ]
3989
+ }
3990
+ },
3991
+ {
3992
+ name: "recovery_cluster_acc",
3993
+ writable: true,
3994
+ pda: {
3995
+ seeds: [
3996
+ {
3997
+ kind: "const",
3998
+ value: [
3999
+ 82,
4000
+ 101,
4001
+ 99,
4002
+ 111,
4003
+ 118,
4004
+ 101,
4005
+ 114,
4006
+ 121,
4007
+ 67,
4008
+ 108,
4009
+ 117,
4010
+ 115,
4011
+ 116,
4012
+ 101,
4013
+ 114,
4014
+ 65,
4015
+ 99,
4016
+ 99,
4017
+ 111,
4018
+ 117,
4019
+ 110,
4020
+ 116
4021
+ ]
4022
+ },
4023
+ {
4024
+ kind: "account",
4025
+ path: "mxe_program"
4026
+ }
4027
+ ]
4028
+ }
4029
+ }
4030
+ ],
4031
+ args: [
4032
+ {
4033
+ name: "cluster_offset",
4034
+ type: "u32"
4035
+ },
4036
+ {
4037
+ name: "keygen_offset",
4038
+ type: "u64"
4039
+ }
4040
+ ]
4041
+ },
4042
+ {
4043
+ name: "close_permissioned_recovery_peers_account",
4044
+ docs: [
4045
+ "Close the permissioned recovery peers account"
4046
+ ],
4047
+ discriminator: [
4048
+ 55,
4049
+ 55,
4050
+ 184,
4051
+ 150,
4052
+ 82,
4053
+ 190,
4054
+ 205,
4055
+ 92
4056
+ ],
4057
+ accounts: [
4058
+ {
4059
+ name: "signer",
4060
+ writable: true,
4061
+ signer: true
4062
+ },
4063
+ {
4064
+ name: "permissioned_recovery_peers_acc",
4065
+ writable: true,
4066
+ pda: {
4067
+ seeds: [
4068
+ {
4069
+ kind: "const",
4070
+ value: [
4071
+ 80,
4072
+ 101,
4073
+ 114,
4074
+ 109,
4075
+ 105,
4076
+ 115,
4077
+ 115,
4078
+ 105,
4079
+ 111,
4080
+ 110,
4081
+ 101,
4082
+ 100,
4083
+ 82,
4084
+ 101,
4085
+ 99,
4086
+ 111,
4087
+ 118,
4088
+ 101,
4089
+ 114,
4090
+ 121,
4091
+ 80,
4092
+ 101,
3461
4093
  101,
3462
4094
  114,
3463
4095
  115,
@@ -3714,8 +4346,112 @@ var instructions = [
3714
4346
  67,
3715
4347
  108,
3716
4348
  111,
3717
- 99,
3718
- 107,
4349
+ 99,
4350
+ 107,
4351
+ 65,
4352
+ 99,
4353
+ 99,
4354
+ 111,
4355
+ 117,
4356
+ 110,
4357
+ 116
4358
+ ]
4359
+ }
4360
+ ]
4361
+ }
4362
+ }
4363
+ ],
4364
+ args: [
4365
+ {
4366
+ name: "cluster_id",
4367
+ type: "u32"
4368
+ },
4369
+ {
4370
+ name: "deactivation_epoch",
4371
+ type: {
4372
+ defined: {
4373
+ name: "Epoch"
4374
+ }
4375
+ }
4376
+ }
4377
+ ]
4378
+ },
4379
+ {
4380
+ name: "deactivate_computation_definition",
4381
+ docs: [
4382
+ "Deactivates a computation definition, preventing new computations from being queued."
4383
+ ],
4384
+ discriminator: [
4385
+ 170,
4386
+ 212,
4387
+ 226,
4388
+ 44,
4389
+ 43,
4390
+ 226,
4391
+ 117,
4392
+ 162
4393
+ ],
4394
+ accounts: [
4395
+ {
4396
+ name: "signer",
4397
+ writable: true,
4398
+ signer: true
4399
+ },
4400
+ {
4401
+ name: "mxe",
4402
+ pda: {
4403
+ seeds: [
4404
+ {
4405
+ kind: "const",
4406
+ value: [
4407
+ 77,
4408
+ 88,
4409
+ 69,
4410
+ 65,
4411
+ 99,
4412
+ 99,
4413
+ 111,
4414
+ 117,
4415
+ 110,
4416
+ 116
4417
+ ]
4418
+ },
4419
+ {
4420
+ kind: "arg",
4421
+ path: "_mxe_program"
4422
+ }
4423
+ ]
4424
+ }
4425
+ },
4426
+ {
4427
+ name: "comp_def_acc",
4428
+ writable: true,
4429
+ pda: {
4430
+ seeds: [
4431
+ {
4432
+ kind: "const",
4433
+ value: [
4434
+ 67,
4435
+ 111,
4436
+ 109,
4437
+ 112,
4438
+ 117,
4439
+ 116,
4440
+ 97,
4441
+ 116,
4442
+ 105,
4443
+ 111,
4444
+ 110,
4445
+ 68,
4446
+ 101,
4447
+ 102,
4448
+ 105,
4449
+ 110,
4450
+ 105,
4451
+ 116,
4452
+ 105,
4453
+ 111,
4454
+ 110,
3719
4455
  65,
3720
4456
  99,
3721
4457
  99,
@@ -3724,6 +4460,14 @@ var instructions = [
3724
4460
  110,
3725
4461
  116
3726
4462
  ]
4463
+ },
4464
+ {
4465
+ kind: "arg",
4466
+ path: "_mxe_program"
4467
+ },
4468
+ {
4469
+ kind: "arg",
4470
+ path: "comp_offset"
3727
4471
  }
3728
4472
  ]
3729
4473
  }
@@ -3731,16 +4475,12 @@ var instructions = [
3731
4475
  ],
3732
4476
  args: [
3733
4477
  {
3734
- name: "cluster_id",
4478
+ name: "comp_offset",
3735
4479
  type: "u32"
3736
4480
  },
3737
4481
  {
3738
- name: "deactivation_epoch",
3739
- type: {
3740
- defined: {
3741
- name: "Epoch"
3742
- }
3743
- }
4482
+ name: "mxe_program",
4483
+ type: "pubkey"
3744
4484
  }
3745
4485
  ]
3746
4486
  },
@@ -4044,7 +4784,7 @@ var instructions = [
4044
4784
  },
4045
4785
  {
4046
4786
  kind: "account",
4047
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
4787
+ path: "mxe.cluster",
4048
4788
  account: "MXEAccount"
4049
4789
  }
4050
4790
  ]
@@ -4311,10 +5051,6 @@ var instructions = [
4311
5051
  116
4312
5052
  ]
4313
5053
  },
4314
- {
4315
- kind: "account",
4316
- path: "backup_mxe_program"
4317
- },
4318
5054
  {
4319
5055
  kind: "account",
4320
5056
  path: "original_mxe_program"
@@ -4567,7 +5303,7 @@ var instructions = [
4567
5303
  {
4568
5304
  name: "finalize_key_recovery_execution",
4569
5305
  docs: [
4570
- "Finalizes the key recovery execution after threshold is met and queues the computation."
5306
+ "Queues the key_recovery_finalize computation after threshold is met."
4571
5307
  ],
4572
5308
  discriminator: [
4573
5309
  211,
@@ -4682,7 +5418,6 @@ var instructions = [
4682
5418
  },
4683
5419
  {
4684
5420
  name: "mxe_recovery_account",
4685
- writable: true,
4686
5421
  pda: {
4687
5422
  seeds: [
4688
5423
  {
@@ -4708,10 +5443,6 @@ var instructions = [
4708
5443
  116
4709
5444
  ]
4710
5445
  },
4711
- {
4712
- kind: "account",
4713
- path: "backup_mxe_program"
4714
- },
4715
5446
  {
4716
5447
  kind: "account",
4717
5448
  path: "original_mxe_program"
@@ -5064,7 +5795,7 @@ var instructions = [
5064
5795
  },
5065
5796
  {
5066
5797
  kind: "account",
5067
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
5798
+ path: "mxe.cluster",
5068
5799
  account: "MXEAccount"
5069
5800
  }
5070
5801
  ]
@@ -5099,7 +5830,7 @@ var instructions = [
5099
5830
  },
5100
5831
  {
5101
5832
  kind: "account",
5102
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
5833
+ path: "mxe.cluster",
5103
5834
  account: "MXEAccount"
5104
5835
  },
5105
5836
  {
@@ -5189,7 +5920,7 @@ var instructions = [
5189
5920
  },
5190
5921
  {
5191
5922
  kind: "account",
5192
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
5923
+ path: "mxe.cluster",
5193
5924
  account: "MXEAccount"
5194
5925
  }
5195
5926
  ]
@@ -5793,12 +6524,6 @@ var instructions = [
5793
6524
  {
5794
6525
  name: "cu_amount",
5795
6526
  type: "u64"
5796
- },
5797
- {
5798
- name: "finalization_authority",
5799
- type: {
5800
- option: "pubkey"
5801
- }
5802
6527
  }
5803
6528
  ]
5804
6529
  },
@@ -5887,10 +6612,6 @@ var instructions = [
5887
6612
  116
5888
6613
  ]
5889
6614
  },
5890
- {
5891
- kind: "account",
5892
- path: "backup_mxe_program"
5893
- },
5894
6615
  {
5895
6616
  kind: "account",
5896
6617
  path: "original_mxe_program"
@@ -6066,10 +6787,6 @@ var instructions = [
6066
6787
  116
6067
6788
  ]
6068
6789
  },
6069
- {
6070
- kind: "account",
6071
- path: "backup_mxe_program"
6072
- },
6073
6790
  {
6074
6791
  kind: "account",
6075
6792
  path: "original_mxe_program"
@@ -6134,6 +6851,46 @@ var instructions = [
6134
6851
  ]
6135
6852
  }
6136
6853
  },
6854
+ {
6855
+ name: "key_recovery_finalize_computation",
6856
+ writable: true,
6857
+ pda: {
6858
+ seeds: [
6859
+ {
6860
+ kind: "const",
6861
+ value: [
6862
+ 67,
6863
+ 111,
6864
+ 109,
6865
+ 112,
6866
+ 117,
6867
+ 116,
6868
+ 97,
6869
+ 116,
6870
+ 105,
6871
+ 111,
6872
+ 110,
6873
+ 65,
6874
+ 99,
6875
+ 99,
6876
+ 111,
6877
+ 117,
6878
+ 110,
6879
+ 116
6880
+ ]
6881
+ },
6882
+ {
6883
+ kind: "account",
6884
+ path: "backup_mxe.cluster",
6885
+ account: "MXEAccount"
6886
+ },
6887
+ {
6888
+ kind: "arg",
6889
+ path: "key_recovery_finalize_offset"
6890
+ }
6891
+ ]
6892
+ }
6893
+ },
6137
6894
  {
6138
6895
  name: "original_mxe_program"
6139
6896
  },
@@ -6153,6 +6910,14 @@ var instructions = [
6153
6910
  {
6154
6911
  name: "backup_mxe_program",
6155
6912
  type: "pubkey"
6913
+ },
6914
+ {
6915
+ name: "cluster_offset",
6916
+ type: "u32"
6917
+ },
6918
+ {
6919
+ name: "key_recovery_finalize_offset",
6920
+ type: "u64"
6156
6921
  }
6157
6922
  ]
6158
6923
  },
@@ -6687,7 +7452,7 @@ var instructions = [
6687
7452
  type: "u64"
6688
7453
  },
6689
7454
  {
6690
- name: "recent_offset",
7455
+ name: "recent_slot",
6691
7456
  type: "u64"
6692
7457
  }
6693
7458
  ]
@@ -7576,7 +8341,7 @@ var instructions = [
7576
8341
  },
7577
8342
  {
7578
8343
  kind: "account",
7579
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8344
+ path: "mxe.cluster",
7580
8345
  account: "MXEAccount"
7581
8346
  },
7582
8347
  {
@@ -7632,7 +8397,7 @@ var instructions = [
7632
8397
  },
7633
8398
  {
7634
8399
  kind: "account",
7635
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8400
+ path: "mxe.cluster",
7636
8401
  account: "MXEAccount"
7637
8402
  }
7638
8403
  ]
@@ -7657,7 +8422,7 @@ var instructions = [
7657
8422
  },
7658
8423
  {
7659
8424
  kind: "account",
7660
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8425
+ path: "mxe.cluster",
7661
8426
  account: "MXEAccount"
7662
8427
  }
7663
8428
  ]
@@ -7730,7 +8495,7 @@ var instructions = [
7730
8495
  },
7731
8496
  {
7732
8497
  kind: "account",
7733
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8498
+ path: "mxe.cluster",
7734
8499
  account: "MXEAccount"
7735
8500
  }
7736
8501
  ]
@@ -7835,7 +8600,7 @@ var instructions = [
7835
8600
  name: "queue_key_recovery_init",
7836
8601
  docs: [
7837
8602
  "Queues the key recovery init computation for the MXE.",
7838
- "Can only be called once after MXE keys are set."
8603
+ "Can only be called after MXE keys are set."
7839
8604
  ],
7840
8605
  discriminator: [
7841
8606
  76,
@@ -8177,7 +8942,7 @@ var instructions = [
8177
8942
  },
8178
8943
  {
8179
8944
  kind: "account",
8180
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8945
+ path: "mxe.cluster",
8181
8946
  account: "MXEAccount"
8182
8947
  },
8183
8948
  {
@@ -8207,7 +8972,7 @@ var instructions = [
8207
8972
  },
8208
8973
  {
8209
8974
  kind: "account",
8210
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
8975
+ path: "mxe.cluster",
8211
8976
  account: "MXEAccount"
8212
8977
  }
8213
8978
  ]
@@ -8296,7 +9061,7 @@ var instructions = [
8296
9061
  {
8297
9062
  name: "recover_mxe",
8298
9063
  docs: [
8299
- "Sets an MXE to the Recovery state, enabling the recovery process to begin."
9064
+ "Sets an MXE to the `Migration` state, enabling the recovery process to begin."
8300
9065
  ],
8301
9066
  discriminator: [
8302
9067
  65,
@@ -8665,192 +9430,41 @@ var instructions = [
8665
9430
  type: {
8666
9431
  vec: "pubkey"
8667
9432
  }
8668
- }
8669
- ]
8670
- },
8671
- {
8672
- name: "requeue_key_recovery_finalize",
8673
- docs: [
8674
- "Re-queues the key_recovery_finalize computation after a failed execution."
8675
- ],
8676
- discriminator: [
8677
- 131,
8678
- 109,
8679
- 226,
8680
- 183,
8681
- 90,
8682
- 203,
8683
- 17,
8684
- 191
8685
- ],
8686
- accounts: [
8687
- {
8688
- name: "authority",
8689
- writable: true,
8690
- signer: true
8691
- },
8692
- {
8693
- name: "payer",
8694
- writable: true,
8695
- signer: true
8696
- },
8697
- {
8698
- name: "original_mxe",
8699
- pda: {
8700
- seeds: [
8701
- {
8702
- kind: "const",
8703
- value: [
8704
- 77,
8705
- 88,
8706
- 69,
8707
- 65,
8708
- 99,
8709
- 99,
8710
- 111,
8711
- 117,
8712
- 110,
8713
- 116
8714
- ]
8715
- },
8716
- {
8717
- kind: "arg",
8718
- path: "_original_mxe_program"
8719
- }
8720
- ]
8721
- }
8722
- },
8723
- {
8724
- name: "backup_mxe",
8725
- pda: {
8726
- seeds: [
8727
- {
8728
- kind: "const",
8729
- value: [
8730
- 77,
8731
- 88,
8732
- 69,
8733
- 65,
8734
- 99,
8735
- 99,
8736
- 111,
8737
- 117,
8738
- 110,
8739
- 116
8740
- ]
8741
- },
8742
- {
8743
- kind: "arg",
8744
- path: "_backup_mxe_program"
8745
- }
8746
- ]
8747
- }
8748
- },
8749
- {
8750
- name: "recovery_cluster_acc",
8751
- pda: {
8752
- seeds: [
8753
- {
8754
- kind: "const",
8755
- value: [
8756
- 82,
8757
- 101,
8758
- 99,
8759
- 111,
8760
- 118,
8761
- 101,
8762
- 114,
8763
- 121,
8764
- 67,
8765
- 108,
8766
- 117,
8767
- 115,
8768
- 116,
8769
- 101,
8770
- 114,
8771
- 65,
8772
- 99,
8773
- 99,
8774
- 111,
8775
- 117,
8776
- 110,
8777
- 116
8778
- ]
8779
- },
8780
- {
8781
- kind: "arg",
8782
- path: "_original_mxe_program"
8783
- }
8784
- ]
8785
- }
8786
- },
8787
- {
8788
- name: "mxe_recovery_account",
8789
- writable: true,
8790
- pda: {
8791
- seeds: [
8792
- {
8793
- kind: "const",
8794
- value: [
8795
- 77,
8796
- 120,
8797
- 101,
8798
- 82,
8799
- 101,
8800
- 99,
8801
- 111,
8802
- 118,
8803
- 101,
8804
- 114,
8805
- 121,
8806
- 65,
8807
- 99,
8808
- 99,
8809
- 111,
8810
- 117,
8811
- 110,
8812
- 116
8813
- ]
8814
- },
8815
- {
8816
- kind: "account",
8817
- path: "backup_mxe_program"
8818
- },
8819
- {
8820
- kind: "account",
8821
- path: "original_mxe_program"
8822
- }
8823
- ]
8824
- }
9433
+ }
9434
+ ]
9435
+ },
9436
+ {
9437
+ name: "requeue_mxe_keygen",
9438
+ docs: [
9439
+ "Re-queues the MXE keygen computation if it has expired from the mempool.",
9440
+ "This allows retrying the keygen if it wasn't processed in time."
9441
+ ],
9442
+ discriminator: [
9443
+ 90,
9444
+ 98,
9445
+ 117,
9446
+ 181,
9447
+ 88,
9448
+ 71,
9449
+ 135,
9450
+ 30
9451
+ ],
9452
+ accounts: [
9453
+ {
9454
+ name: "signer",
9455
+ writable: true,
9456
+ signer: true
8825
9457
  },
8826
9458
  {
8827
- name: "key_recovery_finalize_comp_def",
9459
+ name: "mxe",
8828
9460
  pda: {
8829
9461
  seeds: [
8830
9462
  {
8831
9463
  kind: "const",
8832
9464
  value: [
8833
- 67,
8834
- 111,
8835
- 109,
8836
- 112,
8837
- 117,
8838
- 116,
8839
- 97,
8840
- 116,
8841
- 105,
8842
- 111,
8843
- 110,
8844
- 68,
8845
- 101,
8846
- 102,
8847
- 105,
8848
- 110,
8849
- 105,
8850
- 116,
8851
- 105,
8852
- 111,
8853
- 110,
9465
+ 77,
9466
+ 88,
9467
+ 69,
8854
9468
  65,
8855
9469
  99,
8856
9470
  99,
@@ -8862,116 +9476,74 @@ var instructions = [
8862
9476
  },
8863
9477
  {
8864
9478
  kind: "account",
8865
- path: "backup_mxe_program"
8866
- },
8867
- {
8868
- kind: "const",
8869
- value: [
8870
- 3,
8871
- 0,
8872
- 0,
8873
- 0
8874
- ]
9479
+ path: "mxe_program"
8875
9480
  }
8876
9481
  ]
8877
9482
  }
8878
9483
  },
8879
9484
  {
8880
- name: "previous_computation",
8881
- docs: [
8882
- "The previous failed computation account"
8883
- ],
9485
+ name: "executing_pool",
9486
+ writable: true,
8884
9487
  pda: {
8885
9488
  seeds: [
8886
9489
  {
8887
9490
  kind: "const",
8888
9491
  value: [
8889
- 67,
8890
- 111,
8891
- 109,
9492
+ 69,
9493
+ 120,
9494
+ 101,
9495
+ 99,
8892
9496
  112,
8893
- 117,
8894
- 116,
8895
- 97,
8896
- 116,
8897
- 105,
8898
9497
  111,
8899
- 110,
8900
- 65,
8901
- 99,
8902
- 99,
8903
9498
  111,
8904
- 117,
8905
- 110,
8906
- 116
9499
+ 108
8907
9500
  ]
8908
9501
  },
8909
9502
  {
8910
9503
  kind: "arg",
8911
9504
  path: "cluster_offset"
8912
- },
8913
- {
8914
- kind: "account",
8915
- path: "mxe_recovery_account"
8916
9505
  }
8917
9506
  ]
8918
9507
  }
8919
9508
  },
8920
9509
  {
8921
- name: "new_computation",
9510
+ name: "mempool",
8922
9511
  writable: true,
8923
9512
  pda: {
8924
9513
  seeds: [
8925
9514
  {
8926
9515
  kind: "const",
8927
9516
  value: [
8928
- 67,
8929
- 111,
9517
+ 77,
9518
+ 101,
8930
9519
  109,
8931
9520
  112,
8932
- 117,
8933
- 116,
8934
- 97,
8935
- 116,
8936
- 105,
8937
9521
  111,
8938
- 110,
8939
- 65,
8940
- 99,
8941
- 99,
8942
9522
  111,
8943
- 117,
8944
- 110,
8945
- 116
9523
+ 108
8946
9524
  ]
8947
9525
  },
8948
9526
  {
8949
9527
  kind: "arg",
8950
9528
  path: "cluster_offset"
8951
- },
8952
- {
8953
- kind: "arg",
8954
- path: "new_key_recovery_finalize_offset"
8955
9529
  }
8956
9530
  ]
8957
9531
  }
8958
9532
  },
8959
9533
  {
8960
- name: "executing_pool",
8961
- writable: true,
9534
+ name: "cluster",
8962
9535
  pda: {
8963
9536
  seeds: [
8964
9537
  {
8965
9538
  kind: "const",
8966
9539
  value: [
8967
- 69,
8968
- 120,
9540
+ 67,
9541
+ 108,
9542
+ 117,
9543
+ 115,
9544
+ 116,
8969
9545
  101,
8970
- 99,
8971
- 112,
8972
- 111,
8973
- 111,
8974
- 108
9546
+ 114
8975
9547
  ]
8976
9548
  },
8977
9549
  {
@@ -8982,94 +9554,70 @@ var instructions = [
8982
9554
  }
8983
9555
  },
8984
9556
  {
8985
- name: "mempool",
9557
+ name: "mxe_keygen_computation",
8986
9558
  writable: true,
8987
9559
  pda: {
8988
9560
  seeds: [
8989
9561
  {
8990
9562
  kind: "const",
8991
9563
  value: [
8992
- 77,
8993
- 101,
9564
+ 67,
9565
+ 111,
8994
9566
  109,
8995
9567
  112,
9568
+ 117,
9569
+ 116,
9570
+ 97,
9571
+ 116,
9572
+ 105,
8996
9573
  111,
9574
+ 110,
9575
+ 65,
9576
+ 99,
9577
+ 99,
8997
9578
  111,
8998
- 108
9579
+ 117,
9580
+ 110,
9581
+ 116
8999
9582
  ]
9000
9583
  },
9001
9584
  {
9002
9585
  kind: "arg",
9003
9586
  path: "cluster_offset"
9004
- }
9005
- ]
9006
- }
9007
- },
9008
- {
9009
- name: "pool_account",
9010
- writable: true,
9011
- pda: {
9012
- seeds: [
9587
+ },
9013
9588
  {
9014
- kind: "const",
9015
- value: [
9016
- 70,
9017
- 101,
9018
- 101,
9019
- 80,
9020
- 111,
9021
- 111,
9022
- 108
9023
- ]
9589
+ kind: "account",
9590
+ path: "mxe.keygen_offset",
9591
+ account: "MXEAccount"
9024
9592
  }
9025
9593
  ]
9026
9594
  }
9027
9595
  },
9028
9596
  {
9029
- name: "original_mxe_program"
9030
- },
9031
- {
9032
- name: "backup_mxe_program"
9033
- },
9034
- {
9035
- name: "system_program",
9036
- address: "11111111111111111111111111111111"
9597
+ name: "mxe_program"
9037
9598
  }
9038
9599
  ],
9039
9600
  args: [
9040
- {
9041
- name: "original_mxe_program",
9042
- type: "pubkey"
9043
- },
9044
- {
9045
- name: "backup_mxe_program",
9046
- type: "pubkey"
9047
- },
9048
9601
  {
9049
9602
  name: "cluster_offset",
9050
9603
  type: "u32"
9051
- },
9052
- {
9053
- name: "new_key_recovery_finalize_offset",
9054
- type: "u64"
9055
9604
  }
9056
9605
  ]
9057
9606
  },
9058
9607
  {
9059
- name: "requeue_mxe_keygen",
9608
+ name: "set_active",
9060
9609
  docs: [
9061
- "Re-queues the MXE keygen computation if it has expired from the mempool.",
9062
- "This allows retrying the keygen if it wasn't processed in time."
9610
+ "Sets an MXE to `Active`."
9063
9611
  ],
9064
9612
  discriminator: [
9065
- 90,
9066
- 98,
9067
- 117,
9068
- 181,
9069
- 88,
9070
- 71,
9071
- 135,
9072
- 30
9613
+ 29,
9614
+ 16,
9615
+ 225,
9616
+ 132,
9617
+ 38,
9618
+ 216,
9619
+ 206,
9620
+ 33
9073
9621
  ],
9074
9622
  accounts: [
9075
9623
  {
@@ -9079,57 +9627,6 @@ var instructions = [
9079
9627
  },
9080
9628
  {
9081
9629
  name: "mxe",
9082
- pda: {
9083
- seeds: [
9084
- {
9085
- kind: "const",
9086
- value: [
9087
- 77,
9088
- 88,
9089
- 69,
9090
- 65,
9091
- 99,
9092
- 99,
9093
- 111,
9094
- 117,
9095
- 110,
9096
- 116
9097
- ]
9098
- },
9099
- {
9100
- kind: "account",
9101
- path: "mxe_program"
9102
- }
9103
- ]
9104
- }
9105
- },
9106
- {
9107
- name: "executing_pool",
9108
- writable: true,
9109
- pda: {
9110
- seeds: [
9111
- {
9112
- kind: "const",
9113
- value: [
9114
- 69,
9115
- 120,
9116
- 101,
9117
- 99,
9118
- 112,
9119
- 111,
9120
- 111,
9121
- 108
9122
- ]
9123
- },
9124
- {
9125
- kind: "arg",
9126
- path: "cluster_offset"
9127
- }
9128
- ]
9129
- }
9130
- },
9131
- {
9132
- name: "mempool",
9133
9630
  writable: true,
9134
9631
  pda: {
9135
9632
  seeds: [
@@ -9137,63 +9634,80 @@ var instructions = [
9137
9634
  kind: "const",
9138
9635
  value: [
9139
9636
  77,
9140
- 101,
9141
- 109,
9142
- 112,
9143
- 111,
9637
+ 88,
9638
+ 69,
9639
+ 65,
9640
+ 99,
9641
+ 99,
9144
9642
  111,
9145
- 108
9643
+ 117,
9644
+ 110,
9645
+ 116
9146
9646
  ]
9147
9647
  },
9148
9648
  {
9149
9649
  kind: "arg",
9150
- path: "cluster_offset"
9650
+ path: "_mxe_program"
9151
9651
  }
9152
9652
  ]
9153
9653
  }
9154
9654
  },
9155
9655
  {
9156
- name: "cluster",
9656
+ name: "recovery_cluster_acc",
9157
9657
  pda: {
9158
9658
  seeds: [
9159
9659
  {
9160
9660
  kind: "const",
9161
9661
  value: [
9662
+ 82,
9663
+ 101,
9664
+ 99,
9665
+ 111,
9666
+ 118,
9667
+ 101,
9668
+ 114,
9669
+ 121,
9162
9670
  67,
9163
9671
  108,
9164
9672
  117,
9165
9673
  115,
9166
9674
  116,
9167
9675
  101,
9168
- 114
9676
+ 114,
9677
+ 65,
9678
+ 99,
9679
+ 99,
9680
+ 111,
9681
+ 117,
9682
+ 110,
9683
+ 116
9169
9684
  ]
9170
9685
  },
9171
9686
  {
9172
9687
  kind: "arg",
9173
- path: "cluster_offset"
9688
+ path: "_mxe_program"
9174
9689
  }
9175
9690
  ]
9176
9691
  }
9177
9692
  },
9178
9693
  {
9179
- name: "mxe_keygen_computation",
9180
- writable: true,
9694
+ name: "mxe_recovery_account",
9181
9695
  pda: {
9182
9696
  seeds: [
9183
9697
  {
9184
9698
  kind: "const",
9185
9699
  value: [
9186
- 67,
9187
- 111,
9188
- 109,
9189
- 112,
9190
- 117,
9191
- 116,
9192
- 97,
9193
- 116,
9194
- 105,
9700
+ 77,
9701
+ 120,
9702
+ 101,
9703
+ 82,
9704
+ 101,
9705
+ 99,
9195
9706
  111,
9196
- 110,
9707
+ 118,
9708
+ 101,
9709
+ 114,
9710
+ 121,
9197
9711
  65,
9198
9712
  99,
9199
9713
  99,
@@ -9205,12 +9719,7 @@ var instructions = [
9205
9719
  },
9206
9720
  {
9207
9721
  kind: "arg",
9208
- path: "cluster_offset"
9209
- },
9210
- {
9211
- kind: "account",
9212
- path: "mxe.keygen_offset",
9213
- account: "MXEAccount"
9722
+ path: "_mxe_program"
9214
9723
  }
9215
9724
  ]
9216
9725
  }
@@ -9221,8 +9730,8 @@ var instructions = [
9221
9730
  ],
9222
9731
  args: [
9223
9732
  {
9224
- name: "cluster_offset",
9225
- type: "u32"
9733
+ name: "mxe_program",
9734
+ type: "pubkey"
9226
9735
  }
9227
9736
  ]
9228
9737
  },
@@ -9343,60 +9852,25 @@ var instructions = [
9343
9852
  ]
9344
9853
  },
9345
9854
  {
9346
- name: "set_cluster",
9855
+ name: "set_cluster_authority",
9347
9856
  discriminator: [
9348
- 140,
9349
- 96,
9857
+ 94,
9858
+ 172,
9859
+ 32,
9860
+ 75,
9350
9861
  38,
9351
- 83,
9352
- 225,
9353
- 128,
9354
- 25,
9355
- 176
9862
+ 40,
9863
+ 31,
9864
+ 106
9356
9865
  ],
9357
9866
  accounts: [
9358
9867
  {
9359
- name: "signer",
9360
- docs: [
9361
- "Signer of the transaction."
9362
- ],
9868
+ name: "current_authority",
9363
9869
  writable: true,
9364
9870
  signer: true
9365
9871
  },
9366
9872
  {
9367
- name: "mxe",
9368
- docs: [
9369
- "MXE account to set the cluster for."
9370
- ],
9371
- pda: {
9372
- seeds: [
9373
- {
9374
- kind: "const",
9375
- value: [
9376
- 77,
9377
- 88,
9378
- 69,
9379
- 65,
9380
- 99,
9381
- 99,
9382
- 111,
9383
- 117,
9384
- 110,
9385
- 116
9386
- ]
9387
- },
9388
- {
9389
- kind: "account",
9390
- path: "mxe_program"
9391
- }
9392
- ]
9393
- }
9394
- },
9395
- {
9396
- name: "cluster",
9397
- docs: [
9398
- "Cluster to set for the MXE."
9399
- ],
9873
+ name: "cluster_acc",
9400
9874
  writable: true,
9401
9875
  pda: {
9402
9876
  seeds: [
@@ -9414,35 +9888,7 @@ var instructions = [
9414
9888
  },
9415
9889
  {
9416
9890
  kind: "arg",
9417
- path: "cluster_offset"
9418
- }
9419
- ]
9420
- }
9421
- },
9422
- {
9423
- name: "mxe_program"
9424
- },
9425
- {
9426
- name: "clock",
9427
- writable: true,
9428
- pda: {
9429
- seeds: [
9430
- {
9431
- kind: "const",
9432
- value: [
9433
- 67,
9434
- 108,
9435
- 111,
9436
- 99,
9437
- 107,
9438
- 65,
9439
- 99,
9440
- 99,
9441
- 111,
9442
- 117,
9443
- 110,
9444
- 116
9445
- ]
9891
+ path: "_id"
9446
9892
  }
9447
9893
  ]
9448
9894
  }
@@ -9450,26 +9896,32 @@ var instructions = [
9450
9896
  ],
9451
9897
  args: [
9452
9898
  {
9453
- name: "cluster_offset",
9899
+ name: "cluster_id",
9454
9900
  type: "u32"
9901
+ },
9902
+ {
9903
+ name: "new_authority",
9904
+ type: {
9905
+ option: "pubkey"
9906
+ }
9455
9907
  }
9456
9908
  ]
9457
9909
  },
9458
9910
  {
9459
- name: "set_cluster_authority",
9911
+ name: "set_cluster_td_info",
9460
9912
  discriminator: [
9461
- 94,
9462
- 172,
9463
- 32,
9464
- 75,
9465
- 38,
9466
- 40,
9467
- 31,
9468
- 106
9913
+ 182,
9914
+ 126,
9915
+ 92,
9916
+ 101,
9917
+ 25,
9918
+ 252,
9919
+ 84,
9920
+ 180
9469
9921
  ],
9470
9922
  accounts: [
9471
9923
  {
9472
- name: "current_authority",
9924
+ name: "authority",
9473
9925
  writable: true,
9474
9926
  signer: true
9475
9927
  },
@@ -9504,30 +9956,84 @@ var instructions = [
9504
9956
  type: "u32"
9505
9957
  },
9506
9958
  {
9507
- name: "new_authority",
9959
+ name: "td_info",
9508
9960
  type: {
9509
- option: "pubkey"
9961
+ option: {
9962
+ defined: {
9963
+ name: "NodeMetadata"
9964
+ }
9965
+ }
9966
+ }
9967
+ }
9968
+ ]
9969
+ },
9970
+ {
9971
+ name: "set_mxe_keys",
9972
+ discriminator: [
9973
+ 156,
9974
+ 205,
9975
+ 125,
9976
+ 215,
9977
+ 134,
9978
+ 88,
9979
+ 62,
9980
+ 144
9981
+ ],
9982
+ accounts: [
9983
+ {
9984
+ name: "signer",
9985
+ writable: true,
9986
+ signer: true
9987
+ },
9988
+ {
9989
+ name: "node",
9990
+ pda: {
9991
+ seeds: [
9992
+ {
9993
+ kind: "const",
9994
+ value: [
9995
+ 65,
9996
+ 114,
9997
+ 120,
9998
+ 78,
9999
+ 111,
10000
+ 100,
10001
+ 101
10002
+ ]
10003
+ },
10004
+ {
10005
+ kind: "arg",
10006
+ path: "node_offset"
10007
+ }
10008
+ ]
10009
+ }
10010
+ },
10011
+ {
10012
+ name: "mxe",
10013
+ writable: true,
10014
+ pda: {
10015
+ seeds: [
10016
+ {
10017
+ kind: "const",
10018
+ value: [
10019
+ 77,
10020
+ 88,
10021
+ 69,
10022
+ 65,
10023
+ 99,
10024
+ 99,
10025
+ 111,
10026
+ 117,
10027
+ 110,
10028
+ 116
10029
+ ]
10030
+ },
10031
+ {
10032
+ kind: "arg",
10033
+ path: "_mxe_program"
10034
+ }
10035
+ ]
9510
10036
  }
9511
- }
9512
- ]
9513
- },
9514
- {
9515
- name: "set_cluster_td_info",
9516
- discriminator: [
9517
- 182,
9518
- 126,
9519
- 92,
9520
- 101,
9521
- 25,
9522
- 252,
9523
- 84,
9524
- 180
9525
- ],
9526
- accounts: [
9527
- {
9528
- name: "authority",
9529
- writable: true,
9530
- signer: true
9531
10037
  },
9532
10038
  {
9533
10039
  name: "cluster_acc",
@@ -9547,8 +10053,9 @@ var instructions = [
9547
10053
  ]
9548
10054
  },
9549
10055
  {
9550
- kind: "arg",
9551
- path: "_id"
10056
+ kind: "account",
10057
+ path: "mxe.cluster",
10058
+ account: "MXEAccount"
9552
10059
  }
9553
10060
  ]
9554
10061
  }
@@ -9556,32 +10063,62 @@ var instructions = [
9556
10063
  ],
9557
10064
  args: [
9558
10065
  {
9559
- name: "cluster_id",
10066
+ name: "node_offset",
9560
10067
  type: "u32"
9561
10068
  },
9562
10069
  {
9563
- name: "td_info",
10070
+ name: "_mxe_program",
10071
+ type: "pubkey"
10072
+ },
10073
+ {
10074
+ name: "mxe_x25519_pubkey",
9564
10075
  type: {
9565
- option: {
9566
- defined: {
9567
- name: "NodeMetadata"
9568
- }
9569
- }
10076
+ array: [
10077
+ "u8",
10078
+ 32
10079
+ ]
10080
+ }
10081
+ },
10082
+ {
10083
+ name: "mxe_ed25519_verifying_key",
10084
+ type: {
10085
+ array: [
10086
+ "u8",
10087
+ 32
10088
+ ]
10089
+ }
10090
+ },
10091
+ {
10092
+ name: "mxe_elgamal_pubkey",
10093
+ type: {
10094
+ array: [
10095
+ "u8",
10096
+ 32
10097
+ ]
10098
+ }
10099
+ },
10100
+ {
10101
+ name: "mxe_pubkey_validity_proof",
10102
+ type: {
10103
+ array: [
10104
+ "u8",
10105
+ 64
10106
+ ]
9570
10107
  }
9571
10108
  }
9572
10109
  ]
9573
10110
  },
9574
10111
  {
9575
- name: "set_mxe_keys",
10112
+ name: "set_mxe_recovery_keys_init",
9576
10113
  discriminator: [
9577
- 156,
9578
- 205,
9579
- 125,
9580
- 215,
9581
- 134,
9582
- 88,
9583
- 62,
9584
- 144
10114
+ 49,
10115
+ 89,
10116
+ 116,
10117
+ 64,
10118
+ 81,
10119
+ 250,
10120
+ 112,
10121
+ 64
9585
10122
  ],
9586
10123
  accounts: [
9587
10124
  {
@@ -9639,6 +10176,45 @@ var instructions = [
9639
10176
  ]
9640
10177
  }
9641
10178
  },
10179
+ {
10180
+ name: "recovery_cluster_acc",
10181
+ writable: true,
10182
+ pda: {
10183
+ seeds: [
10184
+ {
10185
+ kind: "const",
10186
+ value: [
10187
+ 82,
10188
+ 101,
10189
+ 99,
10190
+ 111,
10191
+ 118,
10192
+ 101,
10193
+ 114,
10194
+ 121,
10195
+ 67,
10196
+ 108,
10197
+ 117,
10198
+ 115,
10199
+ 116,
10200
+ 101,
10201
+ 114,
10202
+ 65,
10203
+ 99,
10204
+ 99,
10205
+ 111,
10206
+ 117,
10207
+ 110,
10208
+ 116
10209
+ ]
10210
+ },
10211
+ {
10212
+ kind: "arg",
10213
+ path: "_mxe_program"
10214
+ }
10215
+ ]
10216
+ }
10217
+ },
9642
10218
  {
9643
10219
  name: "cluster_acc",
9644
10220
  writable: true,
@@ -9658,7 +10234,7 @@ var instructions = [
9658
10234
  },
9659
10235
  {
9660
10236
  kind: "account",
9661
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
10237
+ path: "mxe.cluster",
9662
10238
  account: "MXEAccount"
9663
10239
  }
9664
10240
  ]
@@ -9675,25 +10251,30 @@ var instructions = [
9675
10251
  type: "pubkey"
9676
10252
  },
9677
10253
  {
9678
- name: "mxe_x25519_pubkey",
10254
+ name: "nonce",
9679
10255
  type: {
9680
10256
  array: [
9681
10257
  "u8",
9682
- 32
10258
+ 16
9683
10259
  ]
9684
10260
  }
9685
10261
  },
9686
10262
  {
9687
- name: "mxe_ed25519_verifying_key",
10263
+ name: "encrypted_mxe_keys",
9688
10264
  type: {
9689
10265
  array: [
9690
- "u8",
9691
- 32
10266
+ {
10267
+ array: [
10268
+ "u8",
10269
+ 32
10270
+ ]
10271
+ },
10272
+ 13
9692
10273
  ]
9693
10274
  }
9694
10275
  },
9695
10276
  {
9696
- name: "mxe_elgamal_pubkey",
10277
+ name: "key_material_hash",
9697
10278
  type: {
9698
10279
  array: [
9699
10280
  "u8",
@@ -9702,7 +10283,7 @@ var instructions = [
9702
10283
  }
9703
10284
  },
9704
10285
  {
9705
- name: "mxe_pubkey_validity_proof",
10286
+ name: "bls_sig",
9706
10287
  type: {
9707
10288
  array: [
9708
10289
  "u8",
@@ -9713,25 +10294,49 @@ var instructions = [
9713
10294
  ]
9714
10295
  },
9715
10296
  {
9716
- name: "set_mxe_recovery_keys_init",
10297
+ name: "submit_aggregated_bls_pubkey",
9717
10298
  discriminator: [
9718
- 49,
9719
- 89,
9720
- 116,
9721
- 64,
9722
- 81,
9723
- 250,
9724
- 112,
9725
- 64
10299
+ 192,
10300
+ 135,
10301
+ 47,
10302
+ 120,
10303
+ 63,
10304
+ 18,
10305
+ 232,
10306
+ 164
9726
10307
  ],
9727
10308
  accounts: [
9728
10309
  {
9729
- name: "signer",
10310
+ name: "node_authority",
9730
10311
  writable: true,
9731
10312
  signer: true
9732
10313
  },
9733
10314
  {
9734
- name: "node",
10315
+ name: "cluster_acc",
10316
+ writable: true,
10317
+ pda: {
10318
+ seeds: [
10319
+ {
10320
+ kind: "const",
10321
+ value: [
10322
+ 67,
10323
+ 108,
10324
+ 117,
10325
+ 115,
10326
+ 116,
10327
+ 101,
10328
+ 114
10329
+ ]
10330
+ },
10331
+ {
10332
+ kind: "arg",
10333
+ path: "cluster_offset"
10334
+ }
10335
+ ]
10336
+ }
10337
+ },
10338
+ {
10339
+ name: "arx_node_acc",
9735
10340
  pda: {
9736
10341
  seeds: [
9737
10342
  {
@@ -9739,23 +10344,99 @@ var instructions = [
9739
10344
  value: [
9740
10345
  65,
9741
10346
  114,
9742
- 120,
9743
- 78,
10347
+ 120,
10348
+ 78,
10349
+ 111,
10350
+ 100,
10351
+ 101
10352
+ ]
10353
+ },
10354
+ {
10355
+ kind: "arg",
10356
+ path: "node_offset"
10357
+ }
10358
+ ]
10359
+ }
10360
+ }
10361
+ ],
10362
+ args: [
10363
+ {
10364
+ name: "cluster_id",
10365
+ type: "u32"
10366
+ },
10367
+ {
10368
+ name: "node_bump",
10369
+ type: "u32"
10370
+ },
10371
+ {
10372
+ name: "aggregated_bls_pubkey",
10373
+ type: {
10374
+ defined: {
10375
+ name: "BN254G2BLSPublicKey"
10376
+ }
10377
+ }
10378
+ }
10379
+ ]
10380
+ },
10381
+ {
10382
+ name: "submit_key_recovery_share",
10383
+ docs: [
10384
+ "Submits a recovery share from a recovery peer.",
10385
+ "Each share contains RESCUE_KEY_COUNT (5) field elements of 32 bytes each."
10386
+ ],
10387
+ discriminator: [
10388
+ 108,
10389
+ 74,
10390
+ 123,
10391
+ 253,
10392
+ 76,
10393
+ 98,
10394
+ 190,
10395
+ 164
10396
+ ],
10397
+ accounts: [
10398
+ {
10399
+ name: "signer",
10400
+ writable: true,
10401
+ signer: true
10402
+ },
10403
+ {
10404
+ name: "recovery_peer_account",
10405
+ pda: {
10406
+ seeds: [
10407
+ {
10408
+ kind: "const",
10409
+ value: [
10410
+ 82,
10411
+ 101,
10412
+ 99,
10413
+ 111,
10414
+ 118,
10415
+ 101,
10416
+ 114,
10417
+ 121,
10418
+ 80,
10419
+ 101,
10420
+ 101,
10421
+ 114,
10422
+ 65,
10423
+ 99,
10424
+ 99,
9744
10425
  111,
9745
- 100,
9746
- 101
10426
+ 117,
10427
+ 110,
10428
+ 116
9747
10429
  ]
9748
10430
  },
9749
10431
  {
9750
10432
  kind: "arg",
9751
- path: "node_offset"
10433
+ path: "peer_offset"
9752
10434
  }
9753
10435
  ]
9754
10436
  }
9755
10437
  },
9756
10438
  {
9757
- name: "mxe",
9758
- writable: true,
10439
+ name: "original_mxe",
9759
10440
  pda: {
9760
10441
  seeds: [
9761
10442
  {
@@ -9775,14 +10456,13 @@ var instructions = [
9775
10456
  },
9776
10457
  {
9777
10458
  kind: "arg",
9778
- path: "_mxe_program"
10459
+ path: "_original_mxe_program"
9779
10460
  }
9780
10461
  ]
9781
10462
  }
9782
10463
  },
9783
10464
  {
9784
10465
  name: "recovery_cluster_acc",
9785
- writable: true,
9786
10466
  pda: {
9787
10467
  seeds: [
9788
10468
  {
@@ -9814,57 +10494,72 @@ var instructions = [
9814
10494
  },
9815
10495
  {
9816
10496
  kind: "arg",
9817
- path: "_mxe_program"
10497
+ path: "_original_mxe_program"
9818
10498
  }
9819
10499
  ]
9820
10500
  }
9821
10501
  },
9822
10502
  {
9823
- name: "cluster_acc",
10503
+ name: "mxe_recovery_account",
9824
10504
  writable: true,
9825
10505
  pda: {
9826
10506
  seeds: [
9827
10507
  {
9828
10508
  kind: "const",
9829
10509
  value: [
9830
- 67,
9831
- 108,
9832
- 117,
9833
- 115,
9834
- 116,
10510
+ 77,
10511
+ 120,
9835
10512
  101,
9836
- 114
10513
+ 82,
10514
+ 101,
10515
+ 99,
10516
+ 111,
10517
+ 118,
10518
+ 101,
10519
+ 114,
10520
+ 121,
10521
+ 65,
10522
+ 99,
10523
+ 99,
10524
+ 111,
10525
+ 117,
10526
+ 110,
10527
+ 116
9837
10528
  ]
9838
10529
  },
9839
10530
  {
9840
10531
  kind: "account",
9841
- path: "mxe.cluster.ok_or(ArciumError :: ClusterNotSet) ? ",
9842
- account: "MXEAccount"
10532
+ path: "original_mxe_program"
9843
10533
  }
9844
10534
  ]
9845
10535
  }
10536
+ },
10537
+ {
10538
+ name: "original_mxe_program"
10539
+ },
10540
+ {
10541
+ name: "backup_mxe_program"
9846
10542
  }
9847
10543
  ],
9848
10544
  args: [
9849
10545
  {
9850
- name: "node_offset",
9851
- type: "u32"
10546
+ name: "original_mxe_program",
10547
+ type: "pubkey"
9852
10548
  },
9853
10549
  {
9854
- name: "_mxe_program",
10550
+ name: "backup_mxe_program",
9855
10551
  type: "pubkey"
9856
10552
  },
9857
10553
  {
9858
- name: "nonce",
9859
- type: {
9860
- array: [
9861
- "u8",
9862
- 16
9863
- ]
9864
- }
10554
+ name: "peer_offset",
10555
+ type: "u32"
9865
10556
  },
9866
10557
  {
9867
- name: "encrypted_mxe_keys",
10558
+ name: "peer_index",
10559
+ type: "u32"
10560
+ },
10561
+ {
10562
+ name: "share",
9868
10563
  type: {
9869
10564
  array: [
9870
10565
  {
@@ -9873,41 +10568,209 @@ var instructions = [
9873
10568
  32
9874
10569
  ]
9875
10570
  },
9876
- 13
10571
+ 5
10572
+ ]
10573
+ }
10574
+ }
10575
+ ]
10576
+ },
10577
+ {
10578
+ name: "update_current_epoch_idempotent",
10579
+ discriminator: [
10580
+ 47,
10581
+ 73,
10582
+ 68,
10583
+ 127,
10584
+ 116,
10585
+ 74,
10586
+ 89,
10587
+ 62
10588
+ ],
10589
+ accounts: [
10590
+ {
10591
+ name: "clock",
10592
+ writable: true,
10593
+ pda: {
10594
+ seeds: [
10595
+ {
10596
+ kind: "const",
10597
+ value: [
10598
+ 67,
10599
+ 108,
10600
+ 111,
10601
+ 99,
10602
+ 107,
10603
+ 65,
10604
+ 99,
10605
+ 99,
10606
+ 111,
10607
+ 117,
10608
+ 110,
10609
+ 116
10610
+ ]
10611
+ }
10612
+ ]
10613
+ }
10614
+ }
10615
+ ],
10616
+ args: [
10617
+ ]
10618
+ },
10619
+ {
10620
+ name: "upload_circuit",
10621
+ discriminator: [
10622
+ 86,
10623
+ 238,
10624
+ 214,
10625
+ 111,
10626
+ 30,
10627
+ 23,
10628
+ 168,
10629
+ 100
10630
+ ],
10631
+ accounts: [
10632
+ {
10633
+ name: "signer",
10634
+ writable: true,
10635
+ signer: true
10636
+ },
10637
+ {
10638
+ name: "comp_def_acc",
10639
+ pda: {
10640
+ seeds: [
10641
+ {
10642
+ kind: "const",
10643
+ value: [
10644
+ 67,
10645
+ 111,
10646
+ 109,
10647
+ 112,
10648
+ 117,
10649
+ 116,
10650
+ 97,
10651
+ 116,
10652
+ 105,
10653
+ 111,
10654
+ 110,
10655
+ 68,
10656
+ 101,
10657
+ 102,
10658
+ 105,
10659
+ 110,
10660
+ 105,
10661
+ 116,
10662
+ 105,
10663
+ 111,
10664
+ 110,
10665
+ 65,
10666
+ 99,
10667
+ 99,
10668
+ 111,
10669
+ 117,
10670
+ 110,
10671
+ 116
10672
+ ]
10673
+ },
10674
+ {
10675
+ kind: "arg",
10676
+ path: "_mxe_program"
10677
+ },
10678
+ {
10679
+ kind: "arg",
10680
+ path: "_comp_offset"
10681
+ }
9877
10682
  ]
9878
10683
  }
9879
10684
  },
9880
10685
  {
9881
- name: "key_material_hash",
9882
- type: {
9883
- array: [
9884
- "u8",
9885
- 32
10686
+ name: "comp_def_raw",
10687
+ writable: true,
10688
+ pda: {
10689
+ seeds: [
10690
+ {
10691
+ kind: "const",
10692
+ value: [
10693
+ 67,
10694
+ 111,
10695
+ 109,
10696
+ 112,
10697
+ 117,
10698
+ 116,
10699
+ 97,
10700
+ 116,
10701
+ 105,
10702
+ 111,
10703
+ 110,
10704
+ 68,
10705
+ 101,
10706
+ 102,
10707
+ 105,
10708
+ 110,
10709
+ 105,
10710
+ 116,
10711
+ 105,
10712
+ 111,
10713
+ 110,
10714
+ 82,
10715
+ 97,
10716
+ 119
10717
+ ]
10718
+ },
10719
+ {
10720
+ kind: "account",
10721
+ path: "comp_def_acc"
10722
+ },
10723
+ {
10724
+ kind: "arg",
10725
+ path: "raw_circuit_index"
10726
+ }
9886
10727
  ]
9887
10728
  }
9888
10729
  },
9889
10730
  {
9890
- name: "bls_sig",
10731
+ name: "system_program",
10732
+ address: "11111111111111111111111111111111"
10733
+ }
10734
+ ],
10735
+ args: [
10736
+ {
10737
+ name: "comp_offset",
10738
+ type: "u32"
10739
+ },
10740
+ {
10741
+ name: "mxe_program",
10742
+ type: "pubkey"
10743
+ },
10744
+ {
10745
+ name: "raw_circuit_index",
10746
+ type: "u8"
10747
+ },
10748
+ {
10749
+ name: "upload_data",
9891
10750
  type: {
9892
10751
  array: [
9893
10752
  "u8",
9894
- 64
10753
+ 814
9895
10754
  ]
9896
10755
  }
10756
+ },
10757
+ {
10758
+ name: "offset",
10759
+ type: "u32"
9897
10760
  }
9898
10761
  ]
9899
10762
  },
9900
10763
  {
9901
- name: "submit_aggregated_bls_pubkey",
10764
+ name: "vote_fee",
9902
10765
  discriminator: [
9903
- 192,
9904
- 135,
9905
- 47,
9906
- 120,
9907
- 63,
9908
- 18,
9909
- 232,
9910
- 164
10766
+ 39,
10767
+ 118,
10768
+ 79,
10769
+ 185,
10770
+ 118,
10771
+ 12,
10772
+ 71,
10773
+ 84
9911
10774
  ],
9912
10775
  accounts: [
9913
10776
  {
@@ -9934,7 +10797,7 @@ var instructions = [
9934
10797
  },
9935
10798
  {
9936
10799
  kind: "arg",
9937
- path: "cluster_offset"
10800
+ path: "_cluster_offset"
9938
10801
  }
9939
10802
  ]
9940
10803
  }
@@ -9961,84 +10824,70 @@ var instructions = [
9961
10824
  }
9962
10825
  ]
9963
10826
  }
10827
+ },
10828
+ {
10829
+ name: "clock",
10830
+ writable: true,
10831
+ pda: {
10832
+ seeds: [
10833
+ {
10834
+ kind: "const",
10835
+ value: [
10836
+ 67,
10837
+ 108,
10838
+ 111,
10839
+ 99,
10840
+ 107,
10841
+ 65,
10842
+ 99,
10843
+ 99,
10844
+ 111,
10845
+ 117,
10846
+ 110,
10847
+ 116
10848
+ ]
10849
+ }
10850
+ ]
10851
+ }
9964
10852
  }
9965
10853
  ],
9966
10854
  args: [
9967
10855
  {
9968
- name: "cluster_id",
10856
+ name: "cluster_offset",
9969
10857
  type: "u32"
9970
10858
  },
9971
10859
  {
9972
- name: "node_bump",
10860
+ name: "node_offset",
9973
10861
  type: "u32"
9974
10862
  },
9975
10863
  {
9976
- name: "aggregated_bls_pubkey",
9977
- type: {
9978
- defined: {
9979
- name: "BN254G2BLSPublicKey"
9980
- }
9981
- }
10864
+ name: "fee_vote",
10865
+ type: "u64"
9982
10866
  }
9983
10867
  ]
9984
10868
  },
9985
10869
  {
9986
- name: "submit_key_recovery_share",
10870
+ name: "z_close_aborted_key_recovery",
9987
10871
  docs: [
9988
- "Submits a recovery share from a recovery peer.",
9989
- "Each share contains RESCUE_KEY_COUNT (5) field elements of 32 bytes each."
10872
+ "Closes all recovery-related accounts in the cancel path.",
10873
+ "Instruction name starts with 'Z' to append to the idls."
9990
10874
  ],
9991
10875
  discriminator: [
9992
- 108,
9993
- 74,
9994
- 123,
9995
- 253,
9996
- 76,
9997
- 98,
9998
- 190,
9999
- 164
10876
+ 28,
10877
+ 29,
10878
+ 32,
10879
+ 130,
10880
+ 111,
10881
+ 5,
10882
+ 244,
10883
+ 101
10000
10884
  ],
10001
10885
  accounts: [
10002
10886
  {
10003
- name: "signer",
10887
+ name: "authority",
10004
10888
  writable: true,
10005
10889
  signer: true
10006
10890
  },
10007
- {
10008
- name: "recovery_peer_account",
10009
- pda: {
10010
- seeds: [
10011
- {
10012
- kind: "const",
10013
- value: [
10014
- 82,
10015
- 101,
10016
- 99,
10017
- 111,
10018
- 118,
10019
- 101,
10020
- 114,
10021
- 121,
10022
- 80,
10023
- 101,
10024
- 101,
10025
- 114,
10026
- 65,
10027
- 99,
10028
- 99,
10029
- 111,
10030
- 117,
10031
- 110,
10032
- 116
10033
- ]
10034
- },
10035
- {
10036
- kind: "arg",
10037
- path: "peer_offset"
10038
- }
10039
- ]
10040
- }
10041
- },
10042
10891
  {
10043
10892
  name: "original_mxe",
10044
10893
  pda: {
@@ -10063,151 +10912,19 @@ var instructions = [
10063
10912
  path: "_original_mxe_program"
10064
10913
  }
10065
10914
  ]
10066
- }
10067
- },
10068
- {
10069
- name: "recovery_cluster_acc",
10070
- pda: {
10071
- seeds: [
10072
- {
10073
- kind: "const",
10074
- value: [
10075
- 82,
10076
- 101,
10077
- 99,
10078
- 111,
10079
- 118,
10080
- 101,
10081
- 114,
10082
- 121,
10083
- 67,
10084
- 108,
10085
- 117,
10086
- 115,
10087
- 116,
10088
- 101,
10089
- 114,
10090
- 65,
10091
- 99,
10092
- 99,
10093
- 111,
10094
- 117,
10095
- 110,
10096
- 116
10097
- ]
10098
- },
10099
- {
10100
- kind: "arg",
10101
- path: "_original_mxe_program"
10102
- }
10103
- ]
10104
- }
10105
- },
10106
- {
10107
- name: "mxe_recovery_account",
10108
- writable: true,
10109
- pda: {
10110
- seeds: [
10111
- {
10112
- kind: "const",
10113
- value: [
10114
- 77,
10115
- 120,
10116
- 101,
10117
- 82,
10118
- 101,
10119
- 99,
10120
- 111,
10121
- 118,
10122
- 101,
10123
- 114,
10124
- 121,
10125
- 65,
10126
- 99,
10127
- 99,
10128
- 111,
10129
- 117,
10130
- 110,
10131
- 116
10132
- ]
10133
- },
10134
- {
10135
- kind: "account",
10136
- path: "backup_mxe_program"
10137
- },
10138
- {
10139
- kind: "account",
10140
- path: "original_mxe_program"
10141
- }
10142
- ]
10143
- }
10144
- },
10145
- {
10146
- name: "original_mxe_program"
10147
- },
10148
- {
10149
- name: "backup_mxe_program"
10150
- }
10151
- ],
10152
- args: [
10153
- {
10154
- name: "original_mxe_program",
10155
- type: "pubkey"
10156
- },
10157
- {
10158
- name: "backup_mxe_program",
10159
- type: "pubkey"
10160
- },
10161
- {
10162
- name: "peer_offset",
10163
- type: "u32"
10164
- },
10165
- {
10166
- name: "peer_index",
10167
- type: "u32"
10168
- },
10169
- {
10170
- name: "share",
10171
- type: {
10172
- array: [
10173
- {
10174
- array: [
10175
- "u8",
10176
- 32
10177
- ]
10178
- },
10179
- 5
10180
- ]
10181
- }
10182
- }
10183
- ]
10184
- },
10185
- {
10186
- name: "update_current_epoch_idempotent",
10187
- discriminator: [
10188
- 47,
10189
- 73,
10190
- 68,
10191
- 127,
10192
- 116,
10193
- 74,
10194
- 89,
10195
- 62
10196
- ],
10197
- accounts: [
10915
+ }
10916
+ },
10198
10917
  {
10199
- name: "clock",
10918
+ name: "backup_mxe",
10200
10919
  writable: true,
10201
10920
  pda: {
10202
10921
  seeds: [
10203
10922
  {
10204
10923
  kind: "const",
10205
10924
  value: [
10206
- 67,
10207
- 108,
10208
- 111,
10209
- 99,
10210
- 107,
10925
+ 77,
10926
+ 88,
10927
+ 69,
10211
10928
  65,
10212
10929
  99,
10213
10930
  99,
@@ -10216,60 +10933,33 @@ var instructions = [
10216
10933
  110,
10217
10934
  116
10218
10935
  ]
10936
+ },
10937
+ {
10938
+ kind: "account",
10939
+ path: "mxe_recovery_account"
10219
10940
  }
10220
10941
  ]
10221
10942
  }
10222
- }
10223
- ],
10224
- args: [
10225
- ]
10226
- },
10227
- {
10228
- name: "upload_circuit",
10229
- discriminator: [
10230
- 86,
10231
- 238,
10232
- 214,
10233
- 111,
10234
- 30,
10235
- 23,
10236
- 168,
10237
- 100
10238
- ],
10239
- accounts: [
10240
- {
10241
- name: "signer",
10242
- writable: true,
10243
- signer: true
10244
10943
  },
10245
10944
  {
10246
- name: "comp_def_acc",
10945
+ name: "mxe_recovery_account",
10946
+ writable: true,
10247
10947
  pda: {
10248
10948
  seeds: [
10249
10949
  {
10250
10950
  kind: "const",
10251
10951
  value: [
10252
- 67,
10253
- 111,
10254
- 109,
10255
- 112,
10256
- 117,
10257
- 116,
10258
- 97,
10259
- 116,
10260
- 105,
10261
- 111,
10262
- 110,
10263
- 68,
10952
+ 77,
10953
+ 120,
10264
10954
  101,
10265
- 102,
10266
- 105,
10267
- 110,
10268
- 105,
10269
- 116,
10270
- 105,
10955
+ 82,
10956
+ 101,
10957
+ 99,
10271
10958
  111,
10272
- 110,
10959
+ 118,
10960
+ 101,
10961
+ 114,
10962
+ 121,
10273
10963
  65,
10274
10964
  99,
10275
10965
  99,
@@ -10281,17 +10971,13 @@ var instructions = [
10281
10971
  },
10282
10972
  {
10283
10973
  kind: "arg",
10284
- path: "_mxe_program"
10285
- },
10286
- {
10287
- kind: "arg",
10288
- path: "_comp_offset"
10974
+ path: "_original_mxe_program"
10289
10975
  }
10290
10976
  ]
10291
10977
  }
10292
10978
  },
10293
10979
  {
10294
- name: "comp_def_raw",
10980
+ name: "key_recovery_finalize_comp_def",
10295
10981
  writable: true,
10296
10982
  pda: {
10297
10983
  seeds: [
@@ -10319,75 +11005,33 @@ var instructions = [
10319
11005
  105,
10320
11006
  111,
10321
11007
  110,
10322
- 82,
10323
- 97,
10324
- 119
11008
+ 65,
11009
+ 99,
11010
+ 99,
11011
+ 111,
11012
+ 117,
11013
+ 110,
11014
+ 116
10325
11015
  ]
10326
11016
  },
10327
11017
  {
10328
11018
  kind: "account",
10329
- path: "comp_def_acc"
11019
+ path: "mxe_recovery_account"
10330
11020
  },
10331
11021
  {
10332
- kind: "arg",
10333
- path: "raw_circuit_index"
11022
+ kind: "const",
11023
+ value: [
11024
+ 3,
11025
+ 0,
11026
+ 0,
11027
+ 0
11028
+ ]
10334
11029
  }
10335
11030
  ]
10336
11031
  }
10337
11032
  },
10338
11033
  {
10339
- name: "system_program",
10340
- address: "11111111111111111111111111111111"
10341
- }
10342
- ],
10343
- args: [
10344
- {
10345
- name: "comp_offset",
10346
- type: "u32"
10347
- },
10348
- {
10349
- name: "mxe_program",
10350
- type: "pubkey"
10351
- },
10352
- {
10353
- name: "raw_circuit_index",
10354
- type: "u8"
10355
- },
10356
- {
10357
- name: "upload_data",
10358
- type: {
10359
- array: [
10360
- "u8",
10361
- 814
10362
- ]
10363
- }
10364
- },
10365
- {
10366
- name: "offset",
10367
- type: "u32"
10368
- }
10369
- ]
10370
- },
10371
- {
10372
- name: "vote_fee",
10373
- discriminator: [
10374
- 39,
10375
- 118,
10376
- 79,
10377
- 185,
10378
- 118,
10379
- 12,
10380
- 71,
10381
- 84
10382
- ],
10383
- accounts: [
10384
- {
10385
- name: "node_authority",
10386
- writable: true,
10387
- signer: true
10388
- },
10389
- {
10390
- name: "cluster_acc",
11034
+ name: "key_recovery_finalize_computation",
10391
11035
  writable: true,
10392
11036
  pda: {
10393
11037
  seeds: [
@@ -10395,82 +11039,76 @@ var instructions = [
10395
11039
  kind: "const",
10396
11040
  value: [
10397
11041
  67,
10398
- 108,
11042
+ 111,
11043
+ 109,
11044
+ 112,
10399
11045
  117,
10400
- 115,
10401
11046
  116,
10402
- 101,
10403
- 114
11047
+ 97,
11048
+ 116,
11049
+ 105,
11050
+ 111,
11051
+ 110,
11052
+ 65,
11053
+ 99,
11054
+ 99,
11055
+ 111,
11056
+ 117,
11057
+ 110,
11058
+ 116
10404
11059
  ]
10405
11060
  },
10406
11061
  {
10407
11062
  kind: "arg",
10408
- path: "_cluster_offset"
11063
+ path: "backup_cluster_offset"
11064
+ },
11065
+ {
11066
+ kind: "account",
11067
+ path: "mxe_recovery_account"
10409
11068
  }
10410
11069
  ]
10411
11070
  }
10412
11071
  },
10413
11072
  {
10414
- name: "arx_node_acc",
11073
+ name: "executing_pool",
11074
+ writable: true,
10415
11075
  pda: {
10416
11076
  seeds: [
10417
11077
  {
10418
11078
  kind: "const",
10419
11079
  value: [
10420
- 65,
10421
- 114,
11080
+ 69,
10422
11081
  120,
10423
- 78,
11082
+ 101,
11083
+ 99,
11084
+ 112,
10424
11085
  111,
10425
- 100,
10426
- 101
11086
+ 111,
11087
+ 108
10427
11088
  ]
10428
11089
  },
10429
11090
  {
10430
11091
  kind: "arg",
10431
- path: "node_offset"
11092
+ path: "backup_cluster_offset"
10432
11093
  }
10433
11094
  ]
10434
11095
  }
10435
11096
  },
10436
11097
  {
10437
- name: "clock",
10438
- writable: true,
10439
- pda: {
10440
- seeds: [
10441
- {
10442
- kind: "const",
10443
- value: [
10444
- 67,
10445
- 108,
10446
- 111,
10447
- 99,
10448
- 107,
10449
- 65,
10450
- 99,
10451
- 99,
10452
- 111,
10453
- 117,
10454
- 110,
10455
- 116
10456
- ]
10457
- }
10458
- ]
10459
- }
11098
+ name: "original_mxe_program"
11099
+ },
11100
+ {
11101
+ name: "backup_mxe_program"
10460
11102
  }
10461
11103
  ],
10462
11104
  args: [
10463
11105
  {
10464
- name: "cluster_offset",
10465
- type: "u32"
11106
+ name: "original_mxe_program",
11107
+ type: "pubkey"
10466
11108
  },
10467
11109
  {
10468
- name: "node_offset",
11110
+ name: "backup_cluster_offset",
10469
11111
  type: "u32"
10470
- },
10471
- {
10472
- name: "fee_vote",
10473
- type: "u64"
10474
11112
  }
10475
11113
  ]
10476
11114
  }
@@ -10787,7 +11425,59 @@ var events = [
10787
11425
  72,
10788
11426
  218,
10789
11427
  87,
10790
- 145
11428
+ 145
11429
+ ]
11430
+ },
11431
+ {
11432
+ name: "CloseComputationDefinitionBuffersEvent",
11433
+ discriminator: [
11434
+ 24,
11435
+ 85,
11436
+ 55,
11437
+ 5,
11438
+ 223,
11439
+ 56,
11440
+ 125,
11441
+ 30
11442
+ ]
11443
+ },
11444
+ {
11445
+ name: "CloseComputationDefinitionEvent",
11446
+ discriminator: [
11447
+ 157,
11448
+ 140,
11449
+ 179,
11450
+ 138,
11451
+ 201,
11452
+ 132,
11453
+ 108,
11454
+ 37
11455
+ ]
11456
+ },
11457
+ {
11458
+ name: "CloseMxeEvent",
11459
+ discriminator: [
11460
+ 71,
11461
+ 207,
11462
+ 152,
11463
+ 87,
11464
+ 123,
11465
+ 254,
11466
+ 179,
11467
+ 226
11468
+ ]
11469
+ },
11470
+ {
11471
+ name: "DeactivateComputationDefinitionEvent",
11472
+ discriminator: [
11473
+ 139,
11474
+ 142,
11475
+ 249,
11476
+ 251,
11477
+ 50,
11478
+ 65,
11479
+ 58,
11480
+ 168
10791
11481
  ]
10792
11482
  },
10793
11483
  {
@@ -10902,6 +11592,16 @@ var errors = [
10902
11592
  name: "CantFindMempoolID",
10903
11593
  msg: "Couldn't find a mempool ID for the computation"
10904
11594
  },
11595
+ {
11596
+ code: 6009,
11597
+ name: "MxeHasComputationDefinitions",
11598
+ msg: "MXE has unclosed computation definitions"
11599
+ },
11600
+ {
11601
+ code: 6010,
11602
+ name: "MxeKeygenNotFinalized",
11603
+ msg: "MXE keygen is not finalized"
11604
+ },
10905
11605
  {
10906
11606
  code: 6100,
10907
11607
  name: "InvalidMempoolDiscriminator",
@@ -11017,6 +11717,31 @@ var errors = [
11017
11717
  name: "InvalidOffset",
11018
11718
  msg: "Offset is invalid"
11019
11719
  },
11720
+ {
11721
+ code: 6306,
11722
+ name: "ComputationDefinitionDeactivated",
11723
+ msg: "Computation definition is deactivated"
11724
+ },
11725
+ {
11726
+ code: 6307,
11727
+ name: "ComputationDefinitionNotDeactivated",
11728
+ msg: "Computation definition is not deactivated"
11729
+ },
11730
+ {
11731
+ code: 6308,
11732
+ name: "ComputationDefinitionHasActiveComputations",
11733
+ msg: "Computation definition has active computations"
11734
+ },
11735
+ {
11736
+ code: 6309,
11737
+ name: "ComputationDefinitionTtlNotPassed",
11738
+ msg: "Computation definition TTL not passed"
11739
+ },
11740
+ {
11741
+ code: 6310,
11742
+ name: "CannotCloseReservedComputationDefinition",
11743
+ msg: "Cannot close a reserved computation definition"
11744
+ },
11020
11745
  {
11021
11746
  code: 6400,
11022
11747
  name: "InvalidNode",
@@ -11242,15 +11967,20 @@ var errors = [
11242
11967
  name: "InvalidDomainSeparator",
11243
11968
  msg: "Invalid domain separator"
11244
11969
  },
11970
+ {
11971
+ code: 6625,
11972
+ name: "RecoveryInitAlreadyInitialized",
11973
+ msg: "Recovery already initialized"
11974
+ },
11245
11975
  {
11246
11976
  code: 6700,
11247
11977
  name: "MxeNotInMigrationState",
11248
- msg: "MXE is not in migration state"
11978
+ msg: "MXE is not in `Migration` state"
11249
11979
  },
11250
11980
  {
11251
11981
  code: 6701,
11252
11982
  name: "MxeAlreadyInMigration",
11253
- msg: "MXE is already in migration state"
11983
+ msg: "MXE is already in `Migration` state"
11254
11984
  },
11255
11985
  {
11256
11986
  code: 6702,
@@ -11320,7 +12050,7 @@ var errors = [
11320
12050
  {
11321
12051
  code: 6716,
11322
12052
  name: "MxeInMigrationState",
11323
- msg: "MXE is in migration state, cannot queue new computations"
12053
+ msg: "MXE is in `Migration` state, cannot queue new computations"
11324
12054
  },
11325
12055
  {
11326
12056
  code: 6717,
@@ -11346,6 +12076,26 @@ var errors = [
11346
12076
  code: 6721,
11347
12077
  name: "CompilationWithoutMainnetFeatureFlag",
11348
12078
  msg: "Program must be compiled with the \\mainnet\\ feature flag."
12079
+ },
12080
+ {
12081
+ code: 6722,
12082
+ name: "MxeInActiveState",
12083
+ msg: "MXE is in `Active` state"
12084
+ },
12085
+ {
12086
+ code: 6723,
12087
+ name: "MxeNotInActiveState",
12088
+ msg: "MXE is not in `Active` state"
12089
+ },
12090
+ {
12091
+ code: 6724,
12092
+ name: "MxeRecoveryAccountDataNotEmpty",
12093
+ msg: "Mxe recovery account data is not empty"
12094
+ },
12095
+ {
12096
+ code: 6725,
12097
+ name: "CannotCloseMxeDuringMigration",
12098
+ msg: "MXE is in migration state, cannot close MXE"
11349
12099
  }
11350
12100
  ];
11351
12101
  var types = [
@@ -11404,6 +12154,9 @@ var types = [
11404
12154
  },
11405
12155
  {
11406
12156
  name: "TimeoutElapsed"
12157
+ },
12158
+ {
12159
+ name: "KeyRecoveryError"
11407
12160
  }
11408
12161
  ]
11409
12162
  }
@@ -11883,6 +12636,35 @@ var types = [
11883
12636
  ]
11884
12637
  }
11885
12638
  },
12639
+ {
12640
+ name: "CircuitFailureReason",
12641
+ type: {
12642
+ kind: "enum",
12643
+ variants: [
12644
+ {
12645
+ name: "OnChainCircuitNotReady"
12646
+ },
12647
+ {
12648
+ name: "OffChainCircuitFetchFailed"
12649
+ },
12650
+ {
12651
+ name: "OffChainCircuitHashMismatch"
12652
+ },
12653
+ {
12654
+ name: "CircuitCUMismatch"
12655
+ },
12656
+ {
12657
+ name: "LocalCircuitFetchFailed"
12658
+ },
12659
+ {
12660
+ name: "CircuitSerialization"
12661
+ },
12662
+ {
12663
+ name: "OtherArxError"
12664
+ }
12665
+ ]
12666
+ }
12667
+ },
11886
12668
  {
11887
12669
  name: "CircuitSource",
11888
12670
  type: {
@@ -11976,6 +12758,58 @@ var types = [
11976
12758
  ]
11977
12759
  }
11978
12760
  },
12761
+ {
12762
+ name: "CloseComputationDefinitionBuffersEvent",
12763
+ type: {
12764
+ kind: "struct",
12765
+ fields: [
12766
+ {
12767
+ name: "comp_def_offset",
12768
+ type: "u32"
12769
+ },
12770
+ {
12771
+ name: "mxe_program_id",
12772
+ type: "pubkey"
12773
+ },
12774
+ {
12775
+ name: "raw_circuit_index",
12776
+ type: "u8"
12777
+ }
12778
+ ]
12779
+ }
12780
+ },
12781
+ {
12782
+ name: "CloseComputationDefinitionEvent",
12783
+ type: {
12784
+ kind: "struct",
12785
+ fields: [
12786
+ {
12787
+ name: "comp_def_offset",
12788
+ type: "u32"
12789
+ },
12790
+ {
12791
+ name: "mxe_program_id",
12792
+ type: "pubkey"
12793
+ }
12794
+ ]
12795
+ }
12796
+ },
12797
+ {
12798
+ name: "CloseMxeEvent",
12799
+ type: {
12800
+ kind: "struct",
12801
+ fields: [
12802
+ {
12803
+ name: "mxe_program_id",
12804
+ type: "pubkey"
12805
+ },
12806
+ {
12807
+ name: "cluster_offset",
12808
+ type: "u32"
12809
+ }
12810
+ ]
12811
+ }
12812
+ },
11979
12813
  {
11980
12814
  name: "Cluster",
11981
12815
  type: {
@@ -12208,15 +13042,27 @@ var types = [
12208
13042
  kind: "struct",
12209
13043
  fields: [
12210
13044
  {
12211
- name: "finalization_authority",
13045
+ name: "deactivation_slot",
12212
13046
  docs: [
12213
- "The authority that is allowed to finalize a computation execution (callback).",
12214
- "This is distinct from `upload_auth` (in `OnChainCircuitSource`) which controls the",
12215
- "computation definition lifecycle (uploading/finalizing the definition itself).",
12216
- "If set to None, anyone can finalize the computation execution."
13047
+ "Slot at which the computation definition was deactivated, or `None` while active.",
13048
+ "An OnChain circuit with `OnChainCircuitSource.is_completed == false` is not yet",
13049
+ "queueable even when `deactivation_slot == None`; use `is_ready_to_queue()` to combine",
13050
+ "both conditions."
12217
13051
  ],
12218
13052
  type: {
12219
- option: "pubkey"
13053
+ option: "u64"
13054
+ }
13055
+ },
13056
+ {
13057
+ name: "padding",
13058
+ docs: [
13059
+ "Padding to avoid breaking change since the above used to be Option<Pubkey>"
13060
+ ],
13061
+ type: {
13062
+ array: [
13063
+ "u8",
13064
+ 24
13065
+ ]
12220
13066
  }
12221
13067
  },
12222
13068
  {
@@ -12306,6 +13152,35 @@ var types = [
12306
13152
  ]
12307
13153
  }
12308
13154
  },
13155
+ {
13156
+ name: "ComputationMeta",
13157
+ docs: [
13158
+ "Metadata for each computation slot in the execpool."
13159
+ ],
13160
+ serialization: "bytemuck",
13161
+ repr: {
13162
+ kind: "c"
13163
+ },
13164
+ type: {
13165
+ kind: "struct",
13166
+ fields: [
13167
+ {
13168
+ name: "index",
13169
+ type: "u64"
13170
+ },
13171
+ {
13172
+ name: "queued_slot",
13173
+ docs: [
13174
+ "Slot at which the computation was originally queued (derived from mempool buffer",
13175
+ "position at promotion time). Preserves the original queue time so lifecycle checks",
13176
+ "like `all_computations_newer_than` compare against the real queue slot, not the",
13177
+ "promotion slot."
13178
+ ],
13179
+ type: "u64"
13180
+ }
13181
+ ]
13182
+ }
13183
+ },
12309
13184
  {
12310
13185
  name: "ComputationReference",
12311
13186
  serialization: "bytemuck",
@@ -12399,6 +13274,26 @@ var types = [
12399
13274
  ]
12400
13275
  }
12401
13276
  },
13277
+ {
13278
+ name: "DeactivateComputationDefinitionEvent",
13279
+ type: {
13280
+ kind: "struct",
13281
+ fields: [
13282
+ {
13283
+ name: "comp_def_offset",
13284
+ type: "u32"
13285
+ },
13286
+ {
13287
+ name: "mxe_program_id",
13288
+ type: "pubkey"
13289
+ },
13290
+ {
13291
+ name: "deactivation_slot",
13292
+ type: "u64"
13293
+ }
13294
+ ]
13295
+ }
13296
+ },
12402
13297
  {
12403
13298
  name: "Epoch",
12404
13299
  docs: [
@@ -12445,10 +13340,14 @@ var types = [
12445
13340
  type: "u64"
12446
13341
  },
12447
13342
  {
12448
- name: "execpool_index",
13343
+ name: "meta",
12449
13344
  type: {
12450
13345
  array: [
12451
- "u64",
13346
+ {
13347
+ defined: {
13348
+ name: "ComputationMeta"
13349
+ }
13350
+ },
12452
13351
  {
12453
13352
  generic: "MAX_PARRALLEL_COMPUTATIONS"
12454
13353
  }
@@ -12521,6 +13420,16 @@ var types = [
12521
13420
  },
12522
13421
  {
12523
13422
  name: "OutputTooLarge"
13423
+ },
13424
+ {
13425
+ name: "CircuitFailure",
13426
+ fields: [
13427
+ {
13428
+ defined: {
13429
+ name: "CircuitFailureReason"
13430
+ }
13431
+ }
13432
+ ]
12524
13433
  }
12525
13434
  ]
12526
13435
  }
@@ -12940,14 +13849,20 @@ var types = [
12940
13849
  type: {
12941
13850
  kind: "struct",
12942
13851
  fields: [
13852
+ {
13853
+ name: "_padding",
13854
+ docs: [
13855
+ "`cluster` used to be Option<u32>, so we need to add a padding byte for backwards",
13856
+ "compatibility."
13857
+ ],
13858
+ type: "u8"
13859
+ },
12943
13860
  {
12944
13861
  name: "cluster",
12945
13862
  docs: [
12946
13863
  "The cluster executing the MXE."
12947
13864
  ],
12948
- type: {
12949
- option: "u32"
12950
- }
13865
+ type: "u32"
12951
13866
  },
12952
13867
  {
12953
13868
  name: "keygen_offset",
@@ -13023,7 +13938,7 @@ var types = [
13023
13938
  {
13024
13939
  name: "status",
13025
13940
  docs: [
13026
- "The status of this MXE (Active or Migration)."
13941
+ "The status of this MXE (`Active` or `Migration`)."
13027
13942
  ],
13028
13943
  type: {
13029
13944
  defined: {
@@ -13242,7 +14157,7 @@ var types = [
13242
14157
  name: "MxeRecoveryAccount",
13243
14158
  docs: [
13244
14159
  "Account for tracking key recovery execution state.",
13245
- "PDA seeds: [\"mxe_recovery\", backup_mxe_pubkey, original_mxe_pubkey]"
14160
+ "PDA seeds: [MxeRecoveryAccount::SEED, original_mxe_pubkey]"
13246
14161
  ],
13247
14162
  serialization: "bytemuck",
13248
14163
  repr: {
@@ -13290,21 +14205,14 @@ var types = [
13290
14205
  type: "pubkey"
13291
14206
  },
13292
14207
  {
13293
- name: "is_finalized",
13294
- docs: [
13295
- "Whether the recovery has been finalized (threshold met and marked ready)."
13296
- ],
13297
- type: "u8"
13298
- },
13299
- {
13300
- name: "_padding2",
14208
+ name: "_padding",
13301
14209
  docs: [
13302
- "Padding to ensure struct size is u64 aligned (6 bytes)"
14210
+ "Padding to ensure struct size is u64 aligned"
13303
14211
  ],
13304
14212
  type: {
13305
14213
  array: [
13306
14214
  "u8",
13307
- 6
14215
+ 7
13308
14216
  ]
13309
14217
  }
13310
14218
  },
@@ -14863,27 +15771,6 @@ async function uploadCircuit(provider, circuitName, mxeProgramId, rawCircuit, lo
14863
15771
  sigs.push(await signAndSendWithBlockhash(provider, finalizeCompDefTx, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions));
14864
15772
  return sigs;
14865
15773
  }
14866
- /**
14867
- * Queue a key recovery initialization for an MXE on a given cluster.
14868
- * @param provider - Anchor provider for signing and sending.
14869
- * @param clusterOffset - Cluster offset to recover keys from.
14870
- * @param mxeProgramId - Public key of the MXE program.
14871
- * @param confirmOptions - Transaction confirmation options.
14872
- * @returns Array of transaction signatures.
14873
- */
14874
- async function queueKeyRecoveryInit(provider, clusterOffset, mxeProgramId, confirmOptions) {
14875
- const program = getArciumProgram(provider);
14876
- const sigs = [];
14877
- const queueKeyRecoveryInitTx = await program.methods
14878
- .queueKeyRecoveryInit(clusterOffset, mxeProgramId)
14879
- .accounts({
14880
- signer: provider.publicKey,
14881
- mxeProgram: mxeProgramId,
14882
- })
14883
- .transaction();
14884
- sigs.push(await signAndSendWithBlockhash(provider, queueKeyRecoveryInitTx, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || "confirmed" }), confirmOptions));
14885
- return sigs;
14886
- }
14887
15774
  /**
14888
15775
  * Build a transaction to finalize a computation definition.
14889
15776
  * @param provider - Anchor provider to use for transactions.
@@ -14988,7 +15875,9 @@ async function buildUploadCircuitTx(program, signerPubkey, compDefAccInfo, mxePr
14988
15875
  }
14989
15876
  let bytesInner = bytes;
14990
15877
  if (bytesInner.length < MAX_UPLOAD_PER_TX_BYTES) {
14991
- const paddedBytes = Buffer.allocUnsafe(MAX_UPLOAD_PER_TX_BYTES);
15878
+ // Zero-fill the padding; allocUnsafe would leak prior process heap
15879
+ // (tx bytes, keys) into public ledger history (R-01).
15880
+ const paddedBytes = Buffer.alloc(MAX_UPLOAD_PER_TX_BYTES);
14992
15881
  paddedBytes.set(bytesInner);
14993
15882
  bytesInner = paddedBytes;
14994
15883
  }
@@ -15052,120 +15941,6 @@ function getCompDefAccInfo(circuitName, mxeProgramId) {
15052
15941
  function getCompDefAccPDA(arciumProgramId, mxeProgramId, offset) {
15053
15942
  return anchor.web3.PublicKey.findProgramAddressSync([Buffer.from(COMP_DEF_ACC_SEED, 'utf-8'), mxeProgramId.toBuffer(), offset], arciumProgramId)[0];
15054
15943
  }
15055
- /**
15056
- * Set an MXE to Recovery status, initiating the key recovery process.
15057
- * @param provider - Anchor provider to use for transactions.
15058
- * @param mxeProgramId - Public key of the MXE program to recover.
15059
- * @param confirmOptions - Transaction confirmation options.
15060
- * @returns Transaction signature.
15061
- */
15062
- async function recoverMxe(provider, mxeProgramId, confirmOptions) {
15063
- const program = getArciumProgram(provider);
15064
- const tx = await program.methods
15065
- .recoverMxe(mxeProgramId)
15066
- .accountsPartial({
15067
- authority: provider.publicKey,
15068
- mxeProgram: mxeProgramId,
15069
- })
15070
- .transaction();
15071
- return signAndSendWithBlockhash(provider, tx, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions);
15072
- }
15073
- /**
15074
- * Initialize key recovery execution by creating the MxeRecoveryAccount and
15075
- * registering the key_recovery_final computation definition on the backup MXE.
15076
- * This is split into two parts due to Solana's 10KB per-instruction allocation limit.
15077
- * @param provider - Anchor provider to use for transactions.
15078
- * @param originalMxeProgramId - Public key of the original MXE program being recovered.
15079
- * @param backupMxeProgramId - Public key of the backup MXE program that will take over.
15080
- * @param confirmOptions - Transaction confirmation options.
15081
- * @returns Transaction signature from part2.
15082
- */
15083
- async function initKeyRecoveryExecution(provider, originalMxeProgramId, backupMxeProgramId, confirmOptions) {
15084
- // Part 1: Create MxeRecoveryAccount with partial size
15085
- const program = getArciumProgram(provider);
15086
- const tx1 = await program.methods
15087
- .initKeyRecoveryExecutionPart1(originalMxeProgramId, backupMxeProgramId)
15088
- .accountsPartial({
15089
- payer: provider.publicKey,
15090
- originalMxeProgram: originalMxeProgramId,
15091
- backupMxeProgram: backupMxeProgramId,
15092
- })
15093
- .transaction();
15094
- await signAndSendWithBlockhash(provider, tx1, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions);
15095
- // Part 2: Reallocate to full size and create computation definition
15096
- const tx2 = await program.methods
15097
- .initKeyRecoveryExecutionPart2(originalMxeProgramId, backupMxeProgramId)
15098
- .accountsPartial({
15099
- authority: provider.publicKey,
15100
- payer: provider.publicKey,
15101
- originalMxeProgram: originalMxeProgramId,
15102
- backupMxeProgram: backupMxeProgramId,
15103
- })
15104
- .transaction();
15105
- return signAndSendWithBlockhash(provider, tx2, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions);
15106
- }
15107
- /**
15108
- * Submit a re-encrypted key recovery share from a recovery peer.
15109
- * Recovery peers must decrypt shares using their x25519 private key and re-encrypt
15110
- * them for the backup MXE before submission.
15111
- * @param provider - Anchor provider to use for transactions.
15112
- * @param originalMxeProgramId - Public key of the original MXE program being recovered.
15113
- * @param backupMxeProgramId - Public key of the backup MXE program.
15114
- * @param peerOffset - Offset of the recovery peer.
15115
- * @param peerIndex - Index of this peer in the recovery peers list.
15116
- * @param share - Re-encrypted share: 5 field elements of 32 bytes each (160 bytes total).
15117
- * @param confirmOptions - Transaction confirmation options.
15118
- * @returns Transaction signature.
15119
- */
15120
- async function submitKeyRecoveryShare(provider, originalMxeProgramId, backupMxeProgramId, peerOffset, peerIndex, share, confirmOptions) {
15121
- const program = getArciumProgram(provider);
15122
- // Convert to array of 5 elements, each 32 bytes
15123
- const shareArrays = share.map(elem => Array.from(elem));
15124
- if (shareArrays.length !== 5) {
15125
- throw new Error(`Share must contain exactly 5 elements, got ${shareArrays.length}`);
15126
- }
15127
- for (let i = 0; i < 5; i++) {
15128
- if (shareArrays[i].length !== 32) {
15129
- throw new Error(`Share element ${i} must be exactly 32 bytes, got ${shareArrays[i].length}`);
15130
- }
15131
- }
15132
- const tx = await program.methods
15133
- .submitKeyRecoveryShare(originalMxeProgramId, backupMxeProgramId, peerOffset, peerIndex, shareArrays)
15134
- .accountsPartial({
15135
- signer: provider.publicKey,
15136
- originalMxeProgram: originalMxeProgramId,
15137
- backupMxeProgram: backupMxeProgramId,
15138
- })
15139
- .transaction();
15140
- return signAndSendWithBlockhash(provider, tx, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions);
15141
- }
15142
- /**
15143
- * Finalize key recovery execution after the submission threshold is met.
15144
- * This queues the key_recovery_finalize MPC computation on the backup cluster.
15145
- * @param provider - Anchor provider to use for transactions.
15146
- * @param originalMxeProgramId - Public key of the original MXE program being recovered.
15147
- * @param backupMxeProgramId - Public key of the backup MXE program.
15148
- * @param clusterOffset - Cluster offset where the backup MXE is deployed.
15149
- * @param keyRecoveryFinalizeOffset - Computation offset for the key_recovery_finalize computation.
15150
- * @param confirmOptions - Transaction confirmation options.
15151
- * @returns Transaction signature.
15152
- */
15153
- async function finalizeKeyRecoveryExecution(provider, originalMxeProgramId, backupMxeProgramId, clusterOffset, keyRecoveryFinalizeOffset, confirmOptions) {
15154
- const program = getArciumProgram(provider);
15155
- const tx = await program.methods
15156
- .finalizeKeyRecoveryExecution(originalMxeProgramId, backupMxeProgramId, clusterOffset)
15157
- .accountsPartial({
15158
- authority: provider.publicKey,
15159
- payer: provider.publicKey,
15160
- keyRecoveryFinalizeComputation: getComputationAccAddress(clusterOffset, keyRecoveryFinalizeOffset),
15161
- executingPool: getExecutingPoolAccAddress(clusterOffset),
15162
- mempool: getMempoolAccAddress(clusterOffset),
15163
- originalMxeProgram: originalMxeProgramId,
15164
- backupMxeProgram: backupMxeProgramId,
15165
- })
15166
- .transaction();
15167
- return signAndSendWithBlockhash(provider, tx, await provider.connection.getLatestBlockhash({ commitment: confirmOptions?.commitment || 'confirmed' }), confirmOptions);
15168
- }
15169
15944
  /**
15170
15945
  * Initialize an MXE (part 1). Due to Solana's 10KB per-instruction allocation limit,
15171
15946
  * this only partially allocates recovery_cluster_acc.
@@ -15201,7 +15976,7 @@ async function initMxePart1(provider, mxeProgramId, confirmOptions) {
15201
15976
  * @param confirmOptions - Transaction confirmation options.
15202
15977
  * @returns Transaction signature.
15203
15978
  */
15204
- async function initMxePart2(provider, clusterOffset, mxeProgramId, recoveryPeers, keygenOffset, keyRecoveryInitOffset, lutOffset, mxeAuthority, confirmOptions) {
15979
+ async function initMxePart2(provider, clusterOffset, mxeProgramId, keygenOffset, keyRecoveryInitOffset, recoveryPeers, lutOffset, mxeAuthority, confirmOptions) {
15205
15980
  const program = getArciumProgram(provider);
15206
15981
  // Ensure recoveryPeers has exactly 100 elements
15207
15982
  const paddedRecoveryPeers = [...recoveryPeers];
@@ -15339,4 +16114,4 @@ async function awaitComputationFinalization(provider, computationOffset, mxeProg
15339
16114
  : new Error(timeoutMsg);
15340
16115
  }
15341
16116
 
15342
- export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, claimComputationRent, createPacker, deserializeLE, finalizeKeyRecoveryExecution, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getCircuitState, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getLookupTableAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRawCircuitAccAddress, getRecoveryClusterAccAddress, initKeyRecoveryExecution, initMxePart1, initMxePart2, isNullRef, positiveModulo, queueKeyRecoveryInit, randMatrix, recoverMxe, serializeLE, sha256, submitKeyRecoveryShare, toVec, uploadCircuit };
16117
+ export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, claimComputationRent, createPacker, deserializeLE, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getCircuitState, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getLookupTableAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRawCircuitAccAddress, getRecoveryClusterAccAddress, initMxePart1, initMxePart2, isNullRef, positiveModulo, randMatrix, serializeLE, sha256, toVec, uploadCircuit };