@arcium-hq/client 0.10.4 → 0.11.1
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/README.md +1 -2
- package/build/index.cjs +1493 -279
- package/build/index.mjs +1492 -282
- package/build/types/constants.d.ts +55 -0
- package/build/types/constants.d.ts.map +1 -1
- package/build/types/idl/arcium.d.ts +1338 -209
- package/build/types/idl/arcium.d.ts.map +1 -1
- package/build/types/idl/arcium_staking.d.ts +4583 -2032
- package/build/types/idl/arcium_staking.d.ts.map +1 -1
- package/build/types/idlAccounts.d.ts +14 -0
- package/build/types/idlAccounts.d.ts.map +1 -0
- package/build/types/onchain.d.ts +17 -4
- package/build/types/onchain.d.ts.map +1 -1
- package/build/types/pda.d.ts +29 -1
- package/build/types/pda.d.ts.map +1 -1
- package/build/types/rawCircuit.d.ts +5 -0
- package/build/types/rawCircuit.d.ts.map +1 -0
- package/build/types/recoveryPeers.d.ts +8 -0
- package/build/types/recoveryPeers.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/constants.ts +55 -0
- package/src/idl/arcium.json +1340 -211
- package/src/idl/arcium.ts +1340 -211
- package/src/idl/arcium_staking.json +4411 -1820
- package/src/idl/arcium_staking.ts +4375 -1824
- package/src/idlAccounts.ts +79 -0
- package/src/onchain.ts +62 -177
- package/src/pda.ts +103 -64
- package/src/rawCircuit.ts +41 -0
- package/src/recoveryPeers.ts +46 -0
package/src/idl/arcium.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"address": "Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"name": "arcium",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.11.1",
|
|
6
6
|
"spec": "0.1.0",
|
|
7
7
|
"description": "The Arcium program"
|
|
8
8
|
},
|
|
@@ -293,6 +293,84 @@
|
|
|
293
293
|
}
|
|
294
294
|
]
|
|
295
295
|
},
|
|
296
|
+
{
|
|
297
|
+
"name": "bind_recovery_peer_migration",
|
|
298
|
+
"discriminator": [
|
|
299
|
+
30,
|
|
300
|
+
148,
|
|
301
|
+
4,
|
|
302
|
+
206,
|
|
303
|
+
139,
|
|
304
|
+
2,
|
|
305
|
+
55,
|
|
306
|
+
156
|
|
307
|
+
],
|
|
308
|
+
"accounts": [
|
|
309
|
+
{
|
|
310
|
+
"name": "authority",
|
|
311
|
+
"docs": [
|
|
312
|
+
"The recovery peer's `authority` — same dual role as in `MigrateArxNode`: it authorizes the",
|
|
313
|
+
"bind and is the owner of `primary_stake_account`."
|
|
314
|
+
],
|
|
315
|
+
"signer": true
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "recovery_peer_account",
|
|
319
|
+
"docs": [
|
|
320
|
+
"Must already be layout-migrated (`migrate_recovery_peer`) so the appended",
|
|
321
|
+
"`primary_stake_account` field exists; otherwise the zero-copy load fails on the short",
|
|
322
|
+
"account. Bundle `migrate_recovery_peer` ahead of this instruction in the same transaction."
|
|
323
|
+
],
|
|
324
|
+
"writable": true,
|
|
325
|
+
"pda": {
|
|
326
|
+
"seeds": [
|
|
327
|
+
{
|
|
328
|
+
"kind": "const",
|
|
329
|
+
"value": [
|
|
330
|
+
82,
|
|
331
|
+
101,
|
|
332
|
+
99,
|
|
333
|
+
111,
|
|
334
|
+
118,
|
|
335
|
+
101,
|
|
336
|
+
114,
|
|
337
|
+
121,
|
|
338
|
+
80,
|
|
339
|
+
101,
|
|
340
|
+
101,
|
|
341
|
+
114,
|
|
342
|
+
65,
|
|
343
|
+
99,
|
|
344
|
+
99,
|
|
345
|
+
111,
|
|
346
|
+
117,
|
|
347
|
+
110,
|
|
348
|
+
116
|
|
349
|
+
]
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"kind": "arg",
|
|
353
|
+
"path": "peer_offset"
|
|
354
|
+
}
|
|
355
|
+
]
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "primary_stake_account",
|
|
360
|
+
"writable": true
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"name": "arcium_staking_program",
|
|
364
|
+
"address": "ArcStnN9zZZVB5WjgPhLHjYpY7Gb29mzb96ySsb1kxgq"
|
|
365
|
+
}
|
|
366
|
+
],
|
|
367
|
+
"args": [
|
|
368
|
+
{
|
|
369
|
+
"name": "peer_offset",
|
|
370
|
+
"type": "u32"
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
},
|
|
296
374
|
{
|
|
297
375
|
"name": "bump_epoch_cluster",
|
|
298
376
|
"discriminator": [
|
|
@@ -406,6 +484,7 @@
|
|
|
406
484
|
},
|
|
407
485
|
{
|
|
408
486
|
"name": "mxe",
|
|
487
|
+
"writable": true,
|
|
409
488
|
"pda": {
|
|
410
489
|
"seeds": [
|
|
411
490
|
{
|
|
@@ -943,6 +1022,7 @@
|
|
|
943
1022
|
},
|
|
944
1023
|
{
|
|
945
1024
|
"name": "mxe",
|
|
1025
|
+
"writable": true,
|
|
946
1026
|
"pda": {
|
|
947
1027
|
"seeds": [
|
|
948
1028
|
{
|
|
@@ -1272,13 +1352,88 @@
|
|
|
1272
1352
|
],
|
|
1273
1353
|
"accounts": [
|
|
1274
1354
|
{
|
|
1275
|
-
"name": "
|
|
1355
|
+
"name": "staking_pool_signer",
|
|
1356
|
+
"docs": [
|
|
1357
|
+
"The `arcium_staking::state::StakingPoolAccount` PDA, signing via CPI. Also the destination",
|
|
1358
|
+
"for the settled lamports (so the staking program immediately owns them for later",
|
|
1359
|
+
"proportional distribution). The `seeds`/`bump` constraint verifies it's the canonical pool",
|
|
1360
|
+
"PDA under `ARCIUM_STAKING_ID` (so only the staking program can call this); `Signer`",
|
|
1361
|
+
"enforces it actually signed."
|
|
1362
|
+
],
|
|
1276
1363
|
"writable": true,
|
|
1277
|
-
"signer": true
|
|
1364
|
+
"signer": true,
|
|
1365
|
+
"pda": {
|
|
1366
|
+
"seeds": [
|
|
1367
|
+
{
|
|
1368
|
+
"kind": "const",
|
|
1369
|
+
"value": [
|
|
1370
|
+
83,
|
|
1371
|
+
116,
|
|
1372
|
+
97,
|
|
1373
|
+
107,
|
|
1374
|
+
105,
|
|
1375
|
+
110,
|
|
1376
|
+
103,
|
|
1377
|
+
80,
|
|
1378
|
+
111,
|
|
1379
|
+
111,
|
|
1380
|
+
108,
|
|
1381
|
+
65,
|
|
1382
|
+
99,
|
|
1383
|
+
99,
|
|
1384
|
+
111,
|
|
1385
|
+
117,
|
|
1386
|
+
110,
|
|
1387
|
+
116
|
|
1388
|
+
]
|
|
1389
|
+
}
|
|
1390
|
+
],
|
|
1391
|
+
"program": {
|
|
1392
|
+
"kind": "const",
|
|
1393
|
+
"value": [
|
|
1394
|
+
146,
|
|
1395
|
+
110,
|
|
1396
|
+
184,
|
|
1397
|
+
172,
|
|
1398
|
+
179,
|
|
1399
|
+
131,
|
|
1400
|
+
118,
|
|
1401
|
+
35,
|
|
1402
|
+
207,
|
|
1403
|
+
122,
|
|
1404
|
+
30,
|
|
1405
|
+
190,
|
|
1406
|
+
228,
|
|
1407
|
+
134,
|
|
1408
|
+
232,
|
|
1409
|
+
140,
|
|
1410
|
+
222,
|
|
1411
|
+
89,
|
|
1412
|
+
53,
|
|
1413
|
+
150,
|
|
1414
|
+
174,
|
|
1415
|
+
187,
|
|
1416
|
+
151,
|
|
1417
|
+
58,
|
|
1418
|
+
208,
|
|
1419
|
+
108,
|
|
1420
|
+
237,
|
|
1421
|
+
119,
|
|
1422
|
+
97,
|
|
1423
|
+
204,
|
|
1424
|
+
184,
|
|
1425
|
+
186
|
|
1426
|
+
]
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1278
1429
|
},
|
|
1279
1430
|
{
|
|
1280
|
-
"name": "
|
|
1281
|
-
"
|
|
1431
|
+
"name": "primary_stake_account",
|
|
1432
|
+
"docs": [
|
|
1433
|
+
"The `PrimaryStakingAccount` bound to this node. Passed so the handler can verify",
|
|
1434
|
+
"`node.primary_staking_account == primary_stake_account.key()` — i.e. the staking account",
|
|
1435
|
+
"that's about to claim the fees is the one this node was initialized with."
|
|
1436
|
+
]
|
|
1282
1437
|
},
|
|
1283
1438
|
{
|
|
1284
1439
|
"name": "cluster",
|
|
@@ -1357,40 +1512,122 @@
|
|
|
1357
1512
|
"name": "node_offset",
|
|
1358
1513
|
"type": "u32"
|
|
1359
1514
|
}
|
|
1360
|
-
]
|
|
1515
|
+
],
|
|
1516
|
+
"returns": "u64"
|
|
1361
1517
|
},
|
|
1362
1518
|
{
|
|
1363
|
-
"name": "
|
|
1364
|
-
"docs": [
|
|
1365
|
-
"Closes a computation definition after TTL wait and verifying no active computations."
|
|
1366
|
-
],
|
|
1519
|
+
"name": "claim_recovery_peer_fees",
|
|
1367
1520
|
"discriminator": [
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1521
|
+
132,
|
|
1522
|
+
120,
|
|
1523
|
+
187,
|
|
1524
|
+
164,
|
|
1525
|
+
106,
|
|
1526
|
+
57,
|
|
1527
|
+
202,
|
|
1528
|
+
8
|
|
1376
1529
|
],
|
|
1377
1530
|
"accounts": [
|
|
1378
1531
|
{
|
|
1379
|
-
"name": "
|
|
1532
|
+
"name": "staking_pool_signer",
|
|
1533
|
+
"docs": [
|
|
1534
|
+
"`arcium_staking::StakingPoolAccount` PDA, signing via CPI and receiving the drained",
|
|
1535
|
+
"lamports. The `seeds`/`bump` constraint verifies it's the canonical pool PDA under",
|
|
1536
|
+
"`ARCIUM_STAKING_ID`; `Signer` enforces `is_signer`."
|
|
1537
|
+
],
|
|
1380
1538
|
"writable": true,
|
|
1381
|
-
"signer": true
|
|
1539
|
+
"signer": true,
|
|
1540
|
+
"pda": {
|
|
1541
|
+
"seeds": [
|
|
1542
|
+
{
|
|
1543
|
+
"kind": "const",
|
|
1544
|
+
"value": [
|
|
1545
|
+
83,
|
|
1546
|
+
116,
|
|
1547
|
+
97,
|
|
1548
|
+
107,
|
|
1549
|
+
105,
|
|
1550
|
+
110,
|
|
1551
|
+
103,
|
|
1552
|
+
80,
|
|
1553
|
+
111,
|
|
1554
|
+
111,
|
|
1555
|
+
108,
|
|
1556
|
+
65,
|
|
1557
|
+
99,
|
|
1558
|
+
99,
|
|
1559
|
+
111,
|
|
1560
|
+
117,
|
|
1561
|
+
110,
|
|
1562
|
+
116
|
|
1563
|
+
]
|
|
1564
|
+
}
|
|
1565
|
+
],
|
|
1566
|
+
"program": {
|
|
1567
|
+
"kind": "const",
|
|
1568
|
+
"value": [
|
|
1569
|
+
146,
|
|
1570
|
+
110,
|
|
1571
|
+
184,
|
|
1572
|
+
172,
|
|
1573
|
+
179,
|
|
1574
|
+
131,
|
|
1575
|
+
118,
|
|
1576
|
+
35,
|
|
1577
|
+
207,
|
|
1578
|
+
122,
|
|
1579
|
+
30,
|
|
1580
|
+
190,
|
|
1581
|
+
228,
|
|
1582
|
+
134,
|
|
1583
|
+
232,
|
|
1584
|
+
140,
|
|
1585
|
+
222,
|
|
1586
|
+
89,
|
|
1587
|
+
53,
|
|
1588
|
+
150,
|
|
1589
|
+
174,
|
|
1590
|
+
187,
|
|
1591
|
+
151,
|
|
1592
|
+
58,
|
|
1593
|
+
208,
|
|
1594
|
+
108,
|
|
1595
|
+
237,
|
|
1596
|
+
119,
|
|
1597
|
+
97,
|
|
1598
|
+
204,
|
|
1599
|
+
184,
|
|
1600
|
+
186
|
|
1601
|
+
]
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1382
1604
|
},
|
|
1383
1605
|
{
|
|
1384
|
-
"name": "
|
|
1385
|
-
"
|
|
1606
|
+
"name": "primary_stake_account",
|
|
1607
|
+
"docs": [
|
|
1608
|
+
"`PrimaryStakingAccount` the claiming peer is bound to. Only the key is compared",
|
|
1609
|
+
"against `recovery_peer.primary_stake_account`; the staking program owns the struct."
|
|
1610
|
+
]
|
|
1611
|
+
},
|
|
1612
|
+
{
|
|
1613
|
+
"name": "recovery_peer",
|
|
1386
1614
|
"pda": {
|
|
1387
1615
|
"seeds": [
|
|
1388
1616
|
{
|
|
1389
1617
|
"kind": "const",
|
|
1390
1618
|
"value": [
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1619
|
+
82,
|
|
1620
|
+
101,
|
|
1621
|
+
99,
|
|
1622
|
+
111,
|
|
1623
|
+
118,
|
|
1624
|
+
101,
|
|
1625
|
+
114,
|
|
1626
|
+
121,
|
|
1627
|
+
80,
|
|
1628
|
+
101,
|
|
1629
|
+
101,
|
|
1630
|
+
114,
|
|
1394
1631
|
65,
|
|
1395
1632
|
99,
|
|
1396
1633
|
99,
|
|
@@ -1402,40 +1639,22 @@
|
|
|
1402
1639
|
},
|
|
1403
1640
|
{
|
|
1404
1641
|
"kind": "arg",
|
|
1405
|
-
"path": "
|
|
1642
|
+
"path": "peer_offset"
|
|
1406
1643
|
}
|
|
1407
1644
|
]
|
|
1408
1645
|
}
|
|
1409
1646
|
},
|
|
1410
1647
|
{
|
|
1411
|
-
"name": "
|
|
1648
|
+
"name": "mxe",
|
|
1412
1649
|
"writable": true,
|
|
1413
1650
|
"pda": {
|
|
1414
1651
|
"seeds": [
|
|
1415
1652
|
{
|
|
1416
1653
|
"kind": "const",
|
|
1417
1654
|
"value": [
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
112,
|
|
1422
|
-
117,
|
|
1423
|
-
116,
|
|
1424
|
-
97,
|
|
1425
|
-
116,
|
|
1426
|
-
105,
|
|
1427
|
-
111,
|
|
1428
|
-
110,
|
|
1429
|
-
68,
|
|
1430
|
-
101,
|
|
1431
|
-
102,
|
|
1432
|
-
105,
|
|
1433
|
-
110,
|
|
1434
|
-
105,
|
|
1435
|
-
116,
|
|
1436
|
-
105,
|
|
1437
|
-
111,
|
|
1438
|
-
110,
|
|
1655
|
+
77,
|
|
1656
|
+
88,
|
|
1657
|
+
69,
|
|
1439
1658
|
65,
|
|
1440
1659
|
99,
|
|
1441
1660
|
99,
|
|
@@ -1447,50 +1666,176 @@
|
|
|
1447
1666
|
},
|
|
1448
1667
|
{
|
|
1449
1668
|
"kind": "arg",
|
|
1450
|
-
"path": "
|
|
1451
|
-
},
|
|
1452
|
-
{
|
|
1453
|
-
"kind": "arg",
|
|
1454
|
-
"path": "comp_offset"
|
|
1669
|
+
"path": "mxe_program"
|
|
1455
1670
|
}
|
|
1456
1671
|
]
|
|
1457
1672
|
}
|
|
1458
1673
|
},
|
|
1459
1674
|
{
|
|
1460
|
-
"name": "
|
|
1675
|
+
"name": "pool",
|
|
1676
|
+
"writable": true,
|
|
1461
1677
|
"pda": {
|
|
1462
1678
|
"seeds": [
|
|
1463
1679
|
{
|
|
1464
1680
|
"kind": "const",
|
|
1465
1681
|
"value": [
|
|
1466
|
-
|
|
1467
|
-
120,
|
|
1682
|
+
70,
|
|
1468
1683
|
101,
|
|
1469
|
-
|
|
1470
|
-
|
|
1684
|
+
101,
|
|
1685
|
+
80,
|
|
1471
1686
|
111,
|
|
1472
1687
|
111,
|
|
1473
1688
|
108
|
|
1474
1689
|
]
|
|
1475
|
-
},
|
|
1476
|
-
{
|
|
1477
|
-
"kind": "arg",
|
|
1478
|
-
"path": "_cluster_offset"
|
|
1479
1690
|
}
|
|
1480
1691
|
]
|
|
1481
1692
|
}
|
|
1482
|
-
},
|
|
1483
|
-
{
|
|
1484
|
-
"name": "system_program",
|
|
1485
|
-
"docs": [
|
|
1486
|
-
"System program account."
|
|
1487
|
-
],
|
|
1488
|
-
"address": "11111111111111111111111111111111"
|
|
1489
1693
|
}
|
|
1490
1694
|
],
|
|
1491
1695
|
"args": [
|
|
1492
1696
|
{
|
|
1493
|
-
"name": "
|
|
1697
|
+
"name": "mxe_program",
|
|
1698
|
+
"type": "pubkey"
|
|
1699
|
+
},
|
|
1700
|
+
{
|
|
1701
|
+
"name": "peer_offset",
|
|
1702
|
+
"type": "u32"
|
|
1703
|
+
}
|
|
1704
|
+
],
|
|
1705
|
+
"returns": "u64"
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
"name": "close_computation_definition",
|
|
1709
|
+
"docs": [
|
|
1710
|
+
"Closes a computation definition after TTL wait and verifying no active computations."
|
|
1711
|
+
],
|
|
1712
|
+
"discriminator": [
|
|
1713
|
+
175,
|
|
1714
|
+
224,
|
|
1715
|
+
148,
|
|
1716
|
+
1,
|
|
1717
|
+
107,
|
|
1718
|
+
74,
|
|
1719
|
+
70,
|
|
1720
|
+
110
|
|
1721
|
+
],
|
|
1722
|
+
"accounts": [
|
|
1723
|
+
{
|
|
1724
|
+
"name": "signer",
|
|
1725
|
+
"writable": true,
|
|
1726
|
+
"signer": true
|
|
1727
|
+
},
|
|
1728
|
+
{
|
|
1729
|
+
"name": "mxe",
|
|
1730
|
+
"writable": true,
|
|
1731
|
+
"pda": {
|
|
1732
|
+
"seeds": [
|
|
1733
|
+
{
|
|
1734
|
+
"kind": "const",
|
|
1735
|
+
"value": [
|
|
1736
|
+
77,
|
|
1737
|
+
88,
|
|
1738
|
+
69,
|
|
1739
|
+
65,
|
|
1740
|
+
99,
|
|
1741
|
+
99,
|
|
1742
|
+
111,
|
|
1743
|
+
117,
|
|
1744
|
+
110,
|
|
1745
|
+
116
|
|
1746
|
+
]
|
|
1747
|
+
},
|
|
1748
|
+
{
|
|
1749
|
+
"kind": "arg",
|
|
1750
|
+
"path": "_mxe_program"
|
|
1751
|
+
}
|
|
1752
|
+
]
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
"name": "comp_def_acc",
|
|
1757
|
+
"writable": true,
|
|
1758
|
+
"pda": {
|
|
1759
|
+
"seeds": [
|
|
1760
|
+
{
|
|
1761
|
+
"kind": "const",
|
|
1762
|
+
"value": [
|
|
1763
|
+
67,
|
|
1764
|
+
111,
|
|
1765
|
+
109,
|
|
1766
|
+
112,
|
|
1767
|
+
117,
|
|
1768
|
+
116,
|
|
1769
|
+
97,
|
|
1770
|
+
116,
|
|
1771
|
+
105,
|
|
1772
|
+
111,
|
|
1773
|
+
110,
|
|
1774
|
+
68,
|
|
1775
|
+
101,
|
|
1776
|
+
102,
|
|
1777
|
+
105,
|
|
1778
|
+
110,
|
|
1779
|
+
105,
|
|
1780
|
+
116,
|
|
1781
|
+
105,
|
|
1782
|
+
111,
|
|
1783
|
+
110,
|
|
1784
|
+
65,
|
|
1785
|
+
99,
|
|
1786
|
+
99,
|
|
1787
|
+
111,
|
|
1788
|
+
117,
|
|
1789
|
+
110,
|
|
1790
|
+
116
|
|
1791
|
+
]
|
|
1792
|
+
},
|
|
1793
|
+
{
|
|
1794
|
+
"kind": "arg",
|
|
1795
|
+
"path": "_mxe_program"
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
"kind": "arg",
|
|
1799
|
+
"path": "comp_offset"
|
|
1800
|
+
}
|
|
1801
|
+
]
|
|
1802
|
+
}
|
|
1803
|
+
},
|
|
1804
|
+
{
|
|
1805
|
+
"name": "executing_pool",
|
|
1806
|
+
"pda": {
|
|
1807
|
+
"seeds": [
|
|
1808
|
+
{
|
|
1809
|
+
"kind": "const",
|
|
1810
|
+
"value": [
|
|
1811
|
+
69,
|
|
1812
|
+
120,
|
|
1813
|
+
101,
|
|
1814
|
+
99,
|
|
1815
|
+
112,
|
|
1816
|
+
111,
|
|
1817
|
+
111,
|
|
1818
|
+
108
|
|
1819
|
+
]
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"kind": "arg",
|
|
1823
|
+
"path": "_cluster_offset"
|
|
1824
|
+
}
|
|
1825
|
+
]
|
|
1826
|
+
}
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
"name": "system_program",
|
|
1830
|
+
"docs": [
|
|
1831
|
+
"System program account."
|
|
1832
|
+
],
|
|
1833
|
+
"address": "11111111111111111111111111111111"
|
|
1834
|
+
}
|
|
1835
|
+
],
|
|
1836
|
+
"args": [
|
|
1837
|
+
{
|
|
1838
|
+
"name": "comp_offset",
|
|
1494
1839
|
"type": "u32"
|
|
1495
1840
|
},
|
|
1496
1841
|
{
|
|
@@ -2662,7 +3007,16 @@
|
|
|
2662
3007
|
"name": "large_execpool"
|
|
2663
3008
|
}
|
|
2664
3009
|
],
|
|
2665
|
-
"args": [
|
|
3010
|
+
"args": [
|
|
3011
|
+
{
|
|
3012
|
+
"name": "_selector",
|
|
3013
|
+
"type": {
|
|
3014
|
+
"defined": {
|
|
3015
|
+
"name": "LeaderSelector"
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
}
|
|
3019
|
+
]
|
|
2666
3020
|
},
|
|
2667
3021
|
{
|
|
2668
3022
|
"name": "embiggen_raw_circuit_acc",
|
|
@@ -4273,6 +4627,31 @@
|
|
|
4273
4627
|
]
|
|
4274
4628
|
}
|
|
4275
4629
|
},
|
|
4630
|
+
{
|
|
4631
|
+
"name": "primary_stake_account",
|
|
4632
|
+
"docs": [
|
|
4633
|
+
"The `PrimaryStakingAccount` (owned by the `arcium_staking` program) that this node will be",
|
|
4634
|
+
"bound to for the rest of its life. Reward settlement requires this linkage: fees accrued",
|
|
4635
|
+
"under this node can only be drained via a CPI signed by the staking program's pool PDA",
|
|
4636
|
+
"after matching on this key.",
|
|
4637
|
+
"the staking program's responsibility — if the staker binds garbage they lock themselves",
|
|
4638
|
+
"out of rewards, which is their own problem."
|
|
4639
|
+
],
|
|
4640
|
+
"writable": true
|
|
4641
|
+
},
|
|
4642
|
+
{
|
|
4643
|
+
"name": "staker",
|
|
4644
|
+
"docs": [
|
|
4645
|
+
"Authority of `primary_stake_account`. Required as a second signer so we can CPI into",
|
|
4646
|
+
"`arcium_staking::bind_primary_stake` and commit the stake to this node. The staking",
|
|
4647
|
+
"program re-derives the stake PDA from this key and rejects the call if it mismatches."
|
|
4648
|
+
],
|
|
4649
|
+
"signer": true
|
|
4650
|
+
},
|
|
4651
|
+
{
|
|
4652
|
+
"name": "arcium_staking_program",
|
|
4653
|
+
"address": "ArcStnN9zZZVB5WjgPhLHjYpY7Gb29mzb96ySsb1kxgq"
|
|
4654
|
+
},
|
|
4276
4655
|
{
|
|
4277
4656
|
"name": "system_program",
|
|
4278
4657
|
"address": "11111111111111111111111111111111"
|
|
@@ -5139,7 +5518,17 @@
|
|
|
5139
5518
|
"address": "11111111111111111111111111111111"
|
|
5140
5519
|
}
|
|
5141
5520
|
],
|
|
5142
|
-
"args": [
|
|
5521
|
+
"args": [
|
|
5522
|
+
{
|
|
5523
|
+
"name": "recovery_peers",
|
|
5524
|
+
"type": {
|
|
5525
|
+
"array": [
|
|
5526
|
+
"u32",
|
|
5527
|
+
100
|
|
5528
|
+
]
|
|
5529
|
+
}
|
|
5530
|
+
}
|
|
5531
|
+
]
|
|
5143
5532
|
},
|
|
5144
5533
|
{
|
|
5145
5534
|
"name": "init_mxe_part2",
|
|
@@ -5253,8 +5642,8 @@
|
|
|
5253
5642
|
]
|
|
5254
5643
|
},
|
|
5255
5644
|
{
|
|
5256
|
-
"kind": "
|
|
5257
|
-
"path": "
|
|
5645
|
+
"kind": "account",
|
|
5646
|
+
"path": "mxe_program"
|
|
5258
5647
|
}
|
|
5259
5648
|
]
|
|
5260
5649
|
}
|
|
@@ -5554,6 +5943,17 @@
|
|
|
5554
5943
|
]
|
|
5555
5944
|
}
|
|
5556
5945
|
},
|
|
5946
|
+
{
|
|
5947
|
+
"name": "instructions_sysvar",
|
|
5948
|
+
"docs": [
|
|
5949
|
+
"Instructions sysvar — used in the handler to verify the **next** instruction in this",
|
|
5950
|
+
"transaction is `arcium_staking::init_mxe_recovery_stake_state` with the same",
|
|
5951
|
+
"`mxe_program`. This mirrors the reverse check on the staking side and is what",
|
|
5952
|
+
"guarantees that every MXE is created alongside its recovery stake state (replacement",
|
|
5953
|
+
"for the CPI we couldn't do because of the 4KB stack limit on `try_accounts`)."
|
|
5954
|
+
],
|
|
5955
|
+
"address": "Sysvar1nstructions1111111111111111111111111"
|
|
5956
|
+
},
|
|
5557
5957
|
{
|
|
5558
5958
|
"name": "system_program",
|
|
5559
5959
|
"address": "11111111111111111111111111111111"
|
|
@@ -5564,19 +5964,6 @@
|
|
|
5564
5964
|
"name": "cluster_offset",
|
|
5565
5965
|
"type": "u32"
|
|
5566
5966
|
},
|
|
5567
|
-
{
|
|
5568
|
-
"name": "mxe_program",
|
|
5569
|
-
"type": "pubkey"
|
|
5570
|
-
},
|
|
5571
|
-
{
|
|
5572
|
-
"name": "recovery_peers",
|
|
5573
|
-
"type": {
|
|
5574
|
-
"array": [
|
|
5575
|
-
"u32",
|
|
5576
|
-
100
|
|
5577
|
-
]
|
|
5578
|
-
}
|
|
5579
|
-
},
|
|
5580
5967
|
{
|
|
5581
5968
|
"name": "keygen_offset",
|
|
5582
5969
|
"type": "u64"
|
|
@@ -6033,6 +6420,31 @@
|
|
|
6033
6420
|
]
|
|
6034
6421
|
}
|
|
6035
6422
|
},
|
|
6423
|
+
{
|
|
6424
|
+
"name": "primary_stake_account",
|
|
6425
|
+
"docs": [
|
|
6426
|
+
"The `PrimaryStakingAccount` (owned by `arcium_staking`) that the recovery peer is",
|
|
6427
|
+
"binding itself to. Mirrors the stake-first requirement on `InitArxNode`: every",
|
|
6428
|
+
"recovery peer has to point at a real staking account so we have someone to slash",
|
|
6429
|
+
"(or dock rewards from) if the peer misbehaves. Full account-structure validation",
|
|
6430
|
+
"is the staking program's job — here we just make sure the account is owned by it.",
|
|
6431
|
+
"point at any primary stake account they have authority over."
|
|
6432
|
+
],
|
|
6433
|
+
"writable": true
|
|
6434
|
+
},
|
|
6435
|
+
{
|
|
6436
|
+
"name": "staker",
|
|
6437
|
+
"docs": [
|
|
6438
|
+
"Authority of `primary_stake_account`. Required as a second signer so we can CPI into",
|
|
6439
|
+
"`arcium_staking::bind_primary_stake` and commit the stake to this recovery peer. The",
|
|
6440
|
+
"staking program re-derives the stake PDA from this key and rejects on mismatch."
|
|
6441
|
+
],
|
|
6442
|
+
"signer": true
|
|
6443
|
+
},
|
|
6444
|
+
{
|
|
6445
|
+
"name": "arcium_staking_program",
|
|
6446
|
+
"address": "ArcStnN9zZZVB5WjgPhLHjYpY7Gb29mzb96ySsb1kxgq"
|
|
6447
|
+
},
|
|
6036
6448
|
{
|
|
6037
6449
|
"name": "system_program",
|
|
6038
6450
|
"address": "11111111111111111111111111111111"
|
|
@@ -6170,49 +6582,30 @@
|
|
|
6170
6582
|
]
|
|
6171
6583
|
},
|
|
6172
6584
|
{
|
|
6173
|
-
"name": "
|
|
6585
|
+
"name": "migrate_arx_node",
|
|
6174
6586
|
"discriminator": [
|
|
6587
|
+
26,
|
|
6588
|
+
223,
|
|
6175
6589
|
103,
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
27,
|
|
6182
|
-
170
|
|
6590
|
+
52,
|
|
6591
|
+
241,
|
|
6592
|
+
117,
|
|
6593
|
+
229,
|
|
6594
|
+
143
|
|
6183
6595
|
],
|
|
6184
6596
|
"accounts": [
|
|
6185
6597
|
{
|
|
6186
|
-
"name": "
|
|
6187
|
-
"
|
|
6598
|
+
"name": "authority",
|
|
6599
|
+
"docs": [
|
|
6600
|
+
"The node's `config.authority`, which both *authorizes* the bind (only the node's own admin",
|
|
6601
|
+
"may link a stake account to it — otherwise anyone could divert a node's rewards to their",
|
|
6602
|
+
"own stake) and doubles as the `staker` (owner of `primary_stake_account`) for the CPI."
|
|
6603
|
+
],
|
|
6188
6604
|
"signer": true
|
|
6189
6605
|
},
|
|
6190
|
-
{
|
|
6191
|
-
"name": "cluster_acc",
|
|
6192
|
-
"writable": true,
|
|
6193
|
-
"pda": {
|
|
6194
|
-
"seeds": [
|
|
6195
|
-
{
|
|
6196
|
-
"kind": "const",
|
|
6197
|
-
"value": [
|
|
6198
|
-
67,
|
|
6199
|
-
108,
|
|
6200
|
-
117,
|
|
6201
|
-
115,
|
|
6202
|
-
116,
|
|
6203
|
-
101,
|
|
6204
|
-
114
|
|
6205
|
-
]
|
|
6206
|
-
},
|
|
6207
|
-
{
|
|
6208
|
-
"kind": "arg",
|
|
6209
|
-
"path": "_cluster_offset"
|
|
6210
|
-
}
|
|
6211
|
-
]
|
|
6212
|
-
}
|
|
6213
|
-
},
|
|
6214
6606
|
{
|
|
6215
6607
|
"name": "arx_node_acc",
|
|
6608
|
+
"writable": true,
|
|
6216
6609
|
"pda": {
|
|
6217
6610
|
"seeds": [
|
|
6218
6611
|
{
|
|
@@ -6235,10 +6628,191 @@
|
|
|
6235
6628
|
}
|
|
6236
6629
|
},
|
|
6237
6630
|
{
|
|
6238
|
-
"name": "
|
|
6239
|
-
"
|
|
6240
|
-
|
|
6241
|
-
"
|
|
6631
|
+
"name": "primary_stake_account",
|
|
6632
|
+
"docs": [
|
|
6633
|
+
"The `PrimaryStakingAccount` (created beforehand via",
|
|
6634
|
+
"`arcium_staking::add_primary_stake_to_legacy_acc`) to bind. Owner-checked here; the staking",
|
|
6635
|
+
"program re-derives `[SEED, authority]` and rejects a mismatch during the bind CPI."
|
|
6636
|
+
],
|
|
6637
|
+
"writable": true
|
|
6638
|
+
},
|
|
6639
|
+
{
|
|
6640
|
+
"name": "arcium_staking_program",
|
|
6641
|
+
"address": "ArcStnN9zZZVB5WjgPhLHjYpY7Gb29mzb96ySsb1kxgq"
|
|
6642
|
+
}
|
|
6643
|
+
],
|
|
6644
|
+
"args": [
|
|
6645
|
+
{
|
|
6646
|
+
"name": "node_offset",
|
|
6647
|
+
"type": "u32"
|
|
6648
|
+
}
|
|
6649
|
+
]
|
|
6650
|
+
},
|
|
6651
|
+
{
|
|
6652
|
+
"name": "migrate_cluster",
|
|
6653
|
+
"docs": [
|
|
6654
|
+
"One-shot layout migrations for the staking upgrade. Each grows one already-deployed",
|
|
6655
|
+
"account to the current (append-only) layout; idempotent and permissionless. See",
|
|
6656
|
+
"`instructions::migration`."
|
|
6657
|
+
],
|
|
6658
|
+
"discriminator": [
|
|
6659
|
+
158,
|
|
6660
|
+
61,
|
|
6661
|
+
104,
|
|
6662
|
+
161,
|
|
6663
|
+
253,
|
|
6664
|
+
138,
|
|
6665
|
+
0,
|
|
6666
|
+
17
|
|
6667
|
+
],
|
|
6668
|
+
"accounts": [
|
|
6669
|
+
{
|
|
6670
|
+
"name": "payer",
|
|
6671
|
+
"writable": true,
|
|
6672
|
+
"signer": true
|
|
6673
|
+
},
|
|
6674
|
+
{
|
|
6675
|
+
"name": "cluster",
|
|
6676
|
+
"docs": [
|
|
6677
|
+
"because the new program cannot deserialize the old (short) layout via `Account<Cluster>`."
|
|
6678
|
+
],
|
|
6679
|
+
"writable": true
|
|
6680
|
+
},
|
|
6681
|
+
{
|
|
6682
|
+
"name": "system_program",
|
|
6683
|
+
"address": "11111111111111111111111111111111"
|
|
6684
|
+
}
|
|
6685
|
+
],
|
|
6686
|
+
"args": []
|
|
6687
|
+
},
|
|
6688
|
+
{
|
|
6689
|
+
"name": "migrate_mxe_account",
|
|
6690
|
+
"discriminator": [
|
|
6691
|
+
96,
|
|
6692
|
+
162,
|
|
6693
|
+
117,
|
|
6694
|
+
100,
|
|
6695
|
+
242,
|
|
6696
|
+
143,
|
|
6697
|
+
16,
|
|
6698
|
+
80
|
|
6699
|
+
],
|
|
6700
|
+
"accounts": [
|
|
6701
|
+
{
|
|
6702
|
+
"name": "payer",
|
|
6703
|
+
"writable": true,
|
|
6704
|
+
"signer": true
|
|
6705
|
+
},
|
|
6706
|
+
{
|
|
6707
|
+
"name": "mxe",
|
|
6708
|
+
"writable": true
|
|
6709
|
+
},
|
|
6710
|
+
{
|
|
6711
|
+
"name": "system_program",
|
|
6712
|
+
"address": "11111111111111111111111111111111"
|
|
6713
|
+
}
|
|
6714
|
+
],
|
|
6715
|
+
"args": []
|
|
6716
|
+
},
|
|
6717
|
+
{
|
|
6718
|
+
"name": "migrate_recovery_peer",
|
|
6719
|
+
"discriminator": [
|
|
6720
|
+
58,
|
|
6721
|
+
226,
|
|
6722
|
+
37,
|
|
6723
|
+
60,
|
|
6724
|
+
200,
|
|
6725
|
+
31,
|
|
6726
|
+
251,
|
|
6727
|
+
245
|
|
6728
|
+
],
|
|
6729
|
+
"accounts": [
|
|
6730
|
+
{
|
|
6731
|
+
"name": "payer",
|
|
6732
|
+
"writable": true,
|
|
6733
|
+
"signer": true
|
|
6734
|
+
},
|
|
6735
|
+
{
|
|
6736
|
+
"name": "recovery_peer",
|
|
6737
|
+
"writable": true
|
|
6738
|
+
},
|
|
6739
|
+
{
|
|
6740
|
+
"name": "system_program",
|
|
6741
|
+
"address": "11111111111111111111111111111111"
|
|
6742
|
+
}
|
|
6743
|
+
],
|
|
6744
|
+
"args": []
|
|
6745
|
+
},
|
|
6746
|
+
{
|
|
6747
|
+
"name": "propose_fee",
|
|
6748
|
+
"discriminator": [
|
|
6749
|
+
103,
|
|
6750
|
+
204,
|
|
6751
|
+
172,
|
|
6752
|
+
134,
|
|
6753
|
+
248,
|
|
6754
|
+
252,
|
|
6755
|
+
27,
|
|
6756
|
+
170
|
|
6757
|
+
],
|
|
6758
|
+
"accounts": [
|
|
6759
|
+
{
|
|
6760
|
+
"name": "node_authority",
|
|
6761
|
+
"writable": true,
|
|
6762
|
+
"signer": true
|
|
6763
|
+
},
|
|
6764
|
+
{
|
|
6765
|
+
"name": "cluster_acc",
|
|
6766
|
+
"writable": true,
|
|
6767
|
+
"pda": {
|
|
6768
|
+
"seeds": [
|
|
6769
|
+
{
|
|
6770
|
+
"kind": "const",
|
|
6771
|
+
"value": [
|
|
6772
|
+
67,
|
|
6773
|
+
108,
|
|
6774
|
+
117,
|
|
6775
|
+
115,
|
|
6776
|
+
116,
|
|
6777
|
+
101,
|
|
6778
|
+
114
|
|
6779
|
+
]
|
|
6780
|
+
},
|
|
6781
|
+
{
|
|
6782
|
+
"kind": "arg",
|
|
6783
|
+
"path": "_cluster_offset"
|
|
6784
|
+
}
|
|
6785
|
+
]
|
|
6786
|
+
}
|
|
6787
|
+
},
|
|
6788
|
+
{
|
|
6789
|
+
"name": "arx_node_acc",
|
|
6790
|
+
"pda": {
|
|
6791
|
+
"seeds": [
|
|
6792
|
+
{
|
|
6793
|
+
"kind": "const",
|
|
6794
|
+
"value": [
|
|
6795
|
+
65,
|
|
6796
|
+
114,
|
|
6797
|
+
120,
|
|
6798
|
+
78,
|
|
6799
|
+
111,
|
|
6800
|
+
100,
|
|
6801
|
+
101
|
|
6802
|
+
]
|
|
6803
|
+
},
|
|
6804
|
+
{
|
|
6805
|
+
"kind": "arg",
|
|
6806
|
+
"path": "node_offset"
|
|
6807
|
+
}
|
|
6808
|
+
]
|
|
6809
|
+
}
|
|
6810
|
+
},
|
|
6811
|
+
{
|
|
6812
|
+
"name": "clock",
|
|
6813
|
+
"writable": true,
|
|
6814
|
+
"pda": {
|
|
6815
|
+
"seeds": [
|
|
6242
6816
|
{
|
|
6243
6817
|
"kind": "const",
|
|
6244
6818
|
"value": [
|
|
@@ -6341,6 +6915,42 @@
|
|
|
6341
6915
|
]
|
|
6342
6916
|
}
|
|
6343
6917
|
},
|
|
6918
|
+
{
|
|
6919
|
+
"name": "mempool",
|
|
6920
|
+
"docs": [
|
|
6921
|
+
"The cluster's mempool account, used only to read its size (from the discriminator) so we",
|
|
6922
|
+
"know the minimum primary stake the invited node must hold.",
|
|
6923
|
+
"`mempool_size_of`."
|
|
6924
|
+
],
|
|
6925
|
+
"pda": {
|
|
6926
|
+
"seeds": [
|
|
6927
|
+
{
|
|
6928
|
+
"kind": "const",
|
|
6929
|
+
"value": [
|
|
6930
|
+
77,
|
|
6931
|
+
101,
|
|
6932
|
+
109,
|
|
6933
|
+
112,
|
|
6934
|
+
111,
|
|
6935
|
+
111,
|
|
6936
|
+
108
|
|
6937
|
+
]
|
|
6938
|
+
},
|
|
6939
|
+
{
|
|
6940
|
+
"kind": "arg",
|
|
6941
|
+
"path": "cluster_offset"
|
|
6942
|
+
}
|
|
6943
|
+
]
|
|
6944
|
+
}
|
|
6945
|
+
},
|
|
6946
|
+
{
|
|
6947
|
+
"name": "primary_stake_account",
|
|
6948
|
+
"docs": [
|
|
6949
|
+
"The `PrimaryStakingAccount` (owned by `arcium_staking`) bound to the invited node. We read",
|
|
6950
|
+
"its `primary_stake` (first field) to enforce the per-mempool-size minimum. Verified to be",
|
|
6951
|
+
"owned by the staking program and to match the node's recorded `primary_staking_account`."
|
|
6952
|
+
]
|
|
6953
|
+
},
|
|
6344
6954
|
{
|
|
6345
6955
|
"name": "clock",
|
|
6346
6956
|
"writable": true,
|
|
@@ -6387,7 +6997,12 @@
|
|
|
6387
6997
|
"docs": [
|
|
6388
6998
|
"Queues a computation.",
|
|
6389
6999
|
"cu_price_micro: The priority price of a CU, in micro-lamports. Used",
|
|
6390
|
-
"to calculate the priority fee and rounded down."
|
|
7000
|
+
"to calculate the priority fee and rounded down.",
|
|
7001
|
+
"callback_cu_limit: The compute unit limit to request for the callback transaction(s)",
|
|
7002
|
+
"via set_compute_unit_limit. 0 means unset (the node uses the default compute budget).",
|
|
7003
|
+
"A non-zero value incurs an additional priority fee of callback_cu_limit * cu_price_micro.",
|
|
7004
|
+
"callback_cu_limit + padding together occupy the 8 bytes that previously held the",
|
|
7005
|
+
"(always-zero) output_delivery_fee: u64, so the instruction layout is unchanged."
|
|
6391
7006
|
],
|
|
6392
7007
|
"discriminator": [
|
|
6393
7008
|
1,
|
|
@@ -6720,8 +7335,12 @@
|
|
|
6720
7335
|
"type": "u8"
|
|
6721
7336
|
},
|
|
6722
7337
|
{
|
|
6723
|
-
"name": "
|
|
6724
|
-
"type": "
|
|
7338
|
+
"name": "callback_cu_limit",
|
|
7339
|
+
"type": "u32"
|
|
7340
|
+
},
|
|
7341
|
+
{
|
|
7342
|
+
"name": "padding",
|
|
7343
|
+
"type": "u32"
|
|
6725
7344
|
},
|
|
6726
7345
|
{
|
|
6727
7346
|
"name": "cu_price_micro",
|
|
@@ -8100,6 +8719,114 @@
|
|
|
8100
8719
|
}
|
|
8101
8720
|
]
|
|
8102
8721
|
},
|
|
8722
|
+
{
|
|
8723
|
+
"name": "set_leader_choice",
|
|
8724
|
+
"discriminator": [
|
|
8725
|
+
42,
|
|
8726
|
+
7,
|
|
8727
|
+
112,
|
|
8728
|
+
255,
|
|
8729
|
+
254,
|
|
8730
|
+
186,
|
|
8731
|
+
135,
|
|
8732
|
+
133
|
|
8733
|
+
],
|
|
8734
|
+
"accounts": [
|
|
8735
|
+
{
|
|
8736
|
+
"name": "node_authority",
|
|
8737
|
+
"writable": true,
|
|
8738
|
+
"signer": true
|
|
8739
|
+
},
|
|
8740
|
+
{
|
|
8741
|
+
"name": "cluster_acc",
|
|
8742
|
+
"writable": true,
|
|
8743
|
+
"pda": {
|
|
8744
|
+
"seeds": [
|
|
8745
|
+
{
|
|
8746
|
+
"kind": "const",
|
|
8747
|
+
"value": [
|
|
8748
|
+
67,
|
|
8749
|
+
108,
|
|
8750
|
+
117,
|
|
8751
|
+
115,
|
|
8752
|
+
116,
|
|
8753
|
+
101,
|
|
8754
|
+
114
|
|
8755
|
+
]
|
|
8756
|
+
},
|
|
8757
|
+
{
|
|
8758
|
+
"kind": "arg",
|
|
8759
|
+
"path": "cluster_offset"
|
|
8760
|
+
}
|
|
8761
|
+
]
|
|
8762
|
+
}
|
|
8763
|
+
},
|
|
8764
|
+
{
|
|
8765
|
+
"name": "arx_node_acc",
|
|
8766
|
+
"pda": {
|
|
8767
|
+
"seeds": [
|
|
8768
|
+
{
|
|
8769
|
+
"kind": "const",
|
|
8770
|
+
"value": [
|
|
8771
|
+
65,
|
|
8772
|
+
114,
|
|
8773
|
+
120,
|
|
8774
|
+
78,
|
|
8775
|
+
111,
|
|
8776
|
+
100,
|
|
8777
|
+
101
|
|
8778
|
+
]
|
|
8779
|
+
},
|
|
8780
|
+
{
|
|
8781
|
+
"kind": "arg",
|
|
8782
|
+
"path": "node_offset"
|
|
8783
|
+
}
|
|
8784
|
+
]
|
|
8785
|
+
}
|
|
8786
|
+
},
|
|
8787
|
+
{
|
|
8788
|
+
"name": "mempool",
|
|
8789
|
+
"pda": {
|
|
8790
|
+
"seeds": [
|
|
8791
|
+
{
|
|
8792
|
+
"kind": "const",
|
|
8793
|
+
"value": [
|
|
8794
|
+
77,
|
|
8795
|
+
101,
|
|
8796
|
+
109,
|
|
8797
|
+
112,
|
|
8798
|
+
111,
|
|
8799
|
+
111,
|
|
8800
|
+
108
|
|
8801
|
+
]
|
|
8802
|
+
},
|
|
8803
|
+
{
|
|
8804
|
+
"kind": "arg",
|
|
8805
|
+
"path": "cluster_offset"
|
|
8806
|
+
}
|
|
8807
|
+
]
|
|
8808
|
+
}
|
|
8809
|
+
}
|
|
8810
|
+
],
|
|
8811
|
+
"args": [
|
|
8812
|
+
{
|
|
8813
|
+
"name": "cluster_offset",
|
|
8814
|
+
"type": "u32"
|
|
8815
|
+
},
|
|
8816
|
+
{
|
|
8817
|
+
"name": "node_offset",
|
|
8818
|
+
"type": "u32"
|
|
8819
|
+
},
|
|
8820
|
+
{
|
|
8821
|
+
"name": "choice",
|
|
8822
|
+
"type": {
|
|
8823
|
+
"defined": {
|
|
8824
|
+
"name": "LeaderChoice"
|
|
8825
|
+
}
|
|
8826
|
+
}
|
|
8827
|
+
}
|
|
8828
|
+
]
|
|
8829
|
+
},
|
|
8103
8830
|
{
|
|
8104
8831
|
"name": "set_mxe_keys",
|
|
8105
8832
|
"discriminator": [
|
|
@@ -8306,51 +9033,238 @@
|
|
|
8306
9033
|
"kind": "arg",
|
|
8307
9034
|
"path": "_mxe_program"
|
|
8308
9035
|
}
|
|
8309
|
-
]
|
|
9036
|
+
]
|
|
9037
|
+
}
|
|
9038
|
+
},
|
|
9039
|
+
{
|
|
9040
|
+
"name": "recovery_cluster_acc",
|
|
9041
|
+
"writable": true,
|
|
9042
|
+
"pda": {
|
|
9043
|
+
"seeds": [
|
|
9044
|
+
{
|
|
9045
|
+
"kind": "const",
|
|
9046
|
+
"value": [
|
|
9047
|
+
82,
|
|
9048
|
+
101,
|
|
9049
|
+
99,
|
|
9050
|
+
111,
|
|
9051
|
+
118,
|
|
9052
|
+
101,
|
|
9053
|
+
114,
|
|
9054
|
+
121,
|
|
9055
|
+
67,
|
|
9056
|
+
108,
|
|
9057
|
+
117,
|
|
9058
|
+
115,
|
|
9059
|
+
116,
|
|
9060
|
+
101,
|
|
9061
|
+
114,
|
|
9062
|
+
65,
|
|
9063
|
+
99,
|
|
9064
|
+
99,
|
|
9065
|
+
111,
|
|
9066
|
+
117,
|
|
9067
|
+
110,
|
|
9068
|
+
116
|
|
9069
|
+
]
|
|
9070
|
+
},
|
|
9071
|
+
{
|
|
9072
|
+
"kind": "arg",
|
|
9073
|
+
"path": "_mxe_program"
|
|
9074
|
+
}
|
|
9075
|
+
]
|
|
9076
|
+
}
|
|
9077
|
+
},
|
|
9078
|
+
{
|
|
9079
|
+
"name": "cluster_acc",
|
|
9080
|
+
"writable": true,
|
|
9081
|
+
"pda": {
|
|
9082
|
+
"seeds": [
|
|
9083
|
+
{
|
|
9084
|
+
"kind": "const",
|
|
9085
|
+
"value": [
|
|
9086
|
+
67,
|
|
9087
|
+
108,
|
|
9088
|
+
117,
|
|
9089
|
+
115,
|
|
9090
|
+
116,
|
|
9091
|
+
101,
|
|
9092
|
+
114
|
|
9093
|
+
]
|
|
9094
|
+
},
|
|
9095
|
+
{
|
|
9096
|
+
"kind": "account",
|
|
9097
|
+
"path": "mxe.cluster",
|
|
9098
|
+
"account": "MXEAccount"
|
|
9099
|
+
}
|
|
9100
|
+
]
|
|
9101
|
+
}
|
|
9102
|
+
}
|
|
9103
|
+
],
|
|
9104
|
+
"args": [
|
|
9105
|
+
{
|
|
9106
|
+
"name": "node_offset",
|
|
9107
|
+
"type": "u32"
|
|
9108
|
+
},
|
|
9109
|
+
{
|
|
9110
|
+
"name": "_mxe_program",
|
|
9111
|
+
"type": "pubkey"
|
|
9112
|
+
},
|
|
9113
|
+
{
|
|
9114
|
+
"name": "nonce",
|
|
9115
|
+
"type": {
|
|
9116
|
+
"array": [
|
|
9117
|
+
"u8",
|
|
9118
|
+
16
|
|
9119
|
+
]
|
|
9120
|
+
}
|
|
9121
|
+
},
|
|
9122
|
+
{
|
|
9123
|
+
"name": "encrypted_mxe_keys",
|
|
9124
|
+
"type": {
|
|
9125
|
+
"array": [
|
|
9126
|
+
{
|
|
9127
|
+
"array": [
|
|
9128
|
+
"u8",
|
|
9129
|
+
32
|
|
9130
|
+
]
|
|
9131
|
+
},
|
|
9132
|
+
13
|
|
9133
|
+
]
|
|
9134
|
+
}
|
|
9135
|
+
},
|
|
9136
|
+
{
|
|
9137
|
+
"name": "key_material_hash",
|
|
9138
|
+
"type": {
|
|
9139
|
+
"array": [
|
|
9140
|
+
"u8",
|
|
9141
|
+
32
|
|
9142
|
+
]
|
|
9143
|
+
}
|
|
9144
|
+
},
|
|
9145
|
+
{
|
|
9146
|
+
"name": "bls_sig",
|
|
9147
|
+
"type": {
|
|
9148
|
+
"array": [
|
|
9149
|
+
"u8",
|
|
9150
|
+
64
|
|
9151
|
+
]
|
|
9152
|
+
}
|
|
9153
|
+
}
|
|
9154
|
+
]
|
|
9155
|
+
},
|
|
9156
|
+
{
|
|
9157
|
+
"name": "set_node_staking",
|
|
9158
|
+
"discriminator": [
|
|
9159
|
+
158,
|
|
9160
|
+
40,
|
|
9161
|
+
109,
|
|
9162
|
+
244,
|
|
9163
|
+
217,
|
|
9164
|
+
195,
|
|
9165
|
+
35,
|
|
9166
|
+
140
|
|
9167
|
+
],
|
|
9168
|
+
"accounts": [
|
|
9169
|
+
{
|
|
9170
|
+
"name": "staking_pool_signer",
|
|
9171
|
+
"docs": [
|
|
9172
|
+
"The `arcium_staking::state::StakingPoolAccount` PDA, signing via CPI. The `seeds`/`bump`",
|
|
9173
|
+
"constraint verifies it's the canonical pool PDA under `ARCIUM_STAKING_ID` (so only the",
|
|
9174
|
+
"staking program can call this)"
|
|
9175
|
+
],
|
|
9176
|
+
"signer": true,
|
|
9177
|
+
"pda": {
|
|
9178
|
+
"seeds": [
|
|
9179
|
+
{
|
|
9180
|
+
"kind": "const",
|
|
9181
|
+
"value": [
|
|
9182
|
+
83,
|
|
9183
|
+
116,
|
|
9184
|
+
97,
|
|
9185
|
+
107,
|
|
9186
|
+
105,
|
|
9187
|
+
110,
|
|
9188
|
+
103,
|
|
9189
|
+
80,
|
|
9190
|
+
111,
|
|
9191
|
+
111,
|
|
9192
|
+
108,
|
|
9193
|
+
65,
|
|
9194
|
+
99,
|
|
9195
|
+
99,
|
|
9196
|
+
111,
|
|
9197
|
+
117,
|
|
9198
|
+
110,
|
|
9199
|
+
116
|
|
9200
|
+
]
|
|
9201
|
+
}
|
|
9202
|
+
],
|
|
9203
|
+
"program": {
|
|
9204
|
+
"kind": "const",
|
|
9205
|
+
"value": [
|
|
9206
|
+
146,
|
|
9207
|
+
110,
|
|
9208
|
+
184,
|
|
9209
|
+
172,
|
|
9210
|
+
179,
|
|
9211
|
+
131,
|
|
9212
|
+
118,
|
|
9213
|
+
35,
|
|
9214
|
+
207,
|
|
9215
|
+
122,
|
|
9216
|
+
30,
|
|
9217
|
+
190,
|
|
9218
|
+
228,
|
|
9219
|
+
134,
|
|
9220
|
+
232,
|
|
9221
|
+
140,
|
|
9222
|
+
222,
|
|
9223
|
+
89,
|
|
9224
|
+
53,
|
|
9225
|
+
150,
|
|
9226
|
+
174,
|
|
9227
|
+
187,
|
|
9228
|
+
151,
|
|
9229
|
+
58,
|
|
9230
|
+
208,
|
|
9231
|
+
108,
|
|
9232
|
+
237,
|
|
9233
|
+
119,
|
|
9234
|
+
97,
|
|
9235
|
+
204,
|
|
9236
|
+
184,
|
|
9237
|
+
186
|
|
9238
|
+
]
|
|
9239
|
+
}
|
|
8310
9240
|
}
|
|
8311
9241
|
},
|
|
8312
9242
|
{
|
|
8313
|
-
"name": "
|
|
9243
|
+
"name": "cluster",
|
|
8314
9244
|
"writable": true,
|
|
8315
9245
|
"pda": {
|
|
8316
9246
|
"seeds": [
|
|
8317
9247
|
{
|
|
8318
9248
|
"kind": "const",
|
|
8319
9249
|
"value": [
|
|
8320
|
-
82,
|
|
8321
|
-
101,
|
|
8322
|
-
99,
|
|
8323
|
-
111,
|
|
8324
|
-
118,
|
|
8325
|
-
101,
|
|
8326
|
-
114,
|
|
8327
|
-
121,
|
|
8328
9250
|
67,
|
|
8329
9251
|
108,
|
|
8330
9252
|
117,
|
|
8331
9253
|
115,
|
|
8332
9254
|
116,
|
|
8333
9255
|
101,
|
|
8334
|
-
114
|
|
8335
|
-
65,
|
|
8336
|
-
99,
|
|
8337
|
-
99,
|
|
8338
|
-
111,
|
|
8339
|
-
117,
|
|
8340
|
-
110,
|
|
8341
|
-
116
|
|
9256
|
+
114
|
|
8342
9257
|
]
|
|
8343
9258
|
},
|
|
8344
9259
|
{
|
|
8345
9260
|
"kind": "arg",
|
|
8346
|
-
"path": "
|
|
9261
|
+
"path": "cluster_offset"
|
|
8347
9262
|
}
|
|
8348
9263
|
]
|
|
8349
9264
|
}
|
|
8350
9265
|
},
|
|
8351
9266
|
{
|
|
8352
|
-
"name": "
|
|
8353
|
-
"writable": true,
|
|
9267
|
+
"name": "clock",
|
|
8354
9268
|
"pda": {
|
|
8355
9269
|
"seeds": [
|
|
8356
9270
|
{
|
|
@@ -8358,17 +9272,17 @@
|
|
|
8358
9272
|
"value": [
|
|
8359
9273
|
67,
|
|
8360
9274
|
108,
|
|
9275
|
+
111,
|
|
9276
|
+
99,
|
|
9277
|
+
107,
|
|
9278
|
+
65,
|
|
9279
|
+
99,
|
|
9280
|
+
99,
|
|
9281
|
+
111,
|
|
8361
9282
|
117,
|
|
8362
|
-
|
|
8363
|
-
116
|
|
8364
|
-
101,
|
|
8365
|
-
114
|
|
9283
|
+
110,
|
|
9284
|
+
116
|
|
8366
9285
|
]
|
|
8367
|
-
},
|
|
8368
|
-
{
|
|
8369
|
-
"kind": "account",
|
|
8370
|
-
"path": "mxe.cluster",
|
|
8371
|
-
"account": "MXEAccount"
|
|
8372
9286
|
}
|
|
8373
9287
|
]
|
|
8374
9288
|
}
|
|
@@ -8376,53 +9290,16 @@
|
|
|
8376
9290
|
],
|
|
8377
9291
|
"args": [
|
|
8378
9292
|
{
|
|
8379
|
-
"name": "
|
|
9293
|
+
"name": "cluster_offset",
|
|
8380
9294
|
"type": "u32"
|
|
8381
9295
|
},
|
|
8382
9296
|
{
|
|
8383
|
-
"name": "
|
|
8384
|
-
"type": "
|
|
8385
|
-
},
|
|
8386
|
-
{
|
|
8387
|
-
"name": "nonce",
|
|
8388
|
-
"type": {
|
|
8389
|
-
"array": [
|
|
8390
|
-
"u8",
|
|
8391
|
-
16
|
|
8392
|
-
]
|
|
8393
|
-
}
|
|
8394
|
-
},
|
|
8395
|
-
{
|
|
8396
|
-
"name": "encrypted_mxe_keys",
|
|
8397
|
-
"type": {
|
|
8398
|
-
"array": [
|
|
8399
|
-
{
|
|
8400
|
-
"array": [
|
|
8401
|
-
"u8",
|
|
8402
|
-
32
|
|
8403
|
-
]
|
|
8404
|
-
},
|
|
8405
|
-
13
|
|
8406
|
-
]
|
|
8407
|
-
}
|
|
8408
|
-
},
|
|
8409
|
-
{
|
|
8410
|
-
"name": "key_material_hash",
|
|
8411
|
-
"type": {
|
|
8412
|
-
"array": [
|
|
8413
|
-
"u8",
|
|
8414
|
-
32
|
|
8415
|
-
]
|
|
8416
|
-
}
|
|
9297
|
+
"name": "node_offset",
|
|
9298
|
+
"type": "u32"
|
|
8417
9299
|
},
|
|
8418
9300
|
{
|
|
8419
|
-
"name": "
|
|
8420
|
-
"type":
|
|
8421
|
-
"array": [
|
|
8422
|
-
"u8",
|
|
8423
|
-
64
|
|
8424
|
-
]
|
|
8425
|
-
}
|
|
9301
|
+
"name": "stake",
|
|
9302
|
+
"type": "u64"
|
|
8426
9303
|
}
|
|
8427
9304
|
]
|
|
8428
9305
|
},
|
|
@@ -9754,6 +10631,11 @@
|
|
|
9754
10631
|
"name": "MaxParallelismReached",
|
|
9755
10632
|
"msg": "Max parallelism reached"
|
|
9756
10633
|
},
|
|
10634
|
+
{
|
|
10635
|
+
"code": 6104,
|
|
10636
|
+
"name": "MempoolAlreadyFullSize",
|
|
10637
|
+
"msg": "Mempool is already at its full allocated size"
|
|
10638
|
+
},
|
|
9757
10639
|
{
|
|
9758
10640
|
"code": 6200,
|
|
9759
10641
|
"name": "InvalidComputationOffset",
|
|
@@ -9929,6 +10811,16 @@
|
|
|
9929
10811
|
"name": "InvalidNodeOffset",
|
|
9930
10812
|
"msg": "Node offset is invalid"
|
|
9931
10813
|
},
|
|
10814
|
+
{
|
|
10815
|
+
"code": 6411,
|
|
10816
|
+
"name": "InvalidStakingPoolSigner",
|
|
10817
|
+
"msg": "The provided staking pool signer is not the staking program's StakingPoolAccount PDA"
|
|
10818
|
+
},
|
|
10819
|
+
{
|
|
10820
|
+
"code": 6412,
|
|
10821
|
+
"name": "InvalidStakingAccount",
|
|
10822
|
+
"msg": "The provided primary stake account is not owned by the staking program or does not match the node's bound staking account"
|
|
10823
|
+
},
|
|
9932
10824
|
{
|
|
9933
10825
|
"code": 6500,
|
|
9934
10826
|
"name": "ClusterFull",
|
|
@@ -9987,7 +10879,7 @@
|
|
|
9987
10879
|
{
|
|
9988
10880
|
"code": 6602,
|
|
9989
10881
|
"name": "HeapFull",
|
|
9990
|
-
"msg": "
|
|
10882
|
+
"msg": "Mempool capacity for the current slot reached - retry next slot or reduce queue rate"
|
|
9991
10883
|
},
|
|
9992
10884
|
{
|
|
9993
10885
|
"code": 6603,
|
|
@@ -10104,6 +10996,11 @@
|
|
|
10104
10996
|
"name": "RecoveryInitAlreadyInitialized",
|
|
10105
10997
|
"msg": "Recovery already initialized"
|
|
10106
10998
|
},
|
|
10999
|
+
{
|
|
11000
|
+
"code": 6626,
|
|
11001
|
+
"name": "InvalidSubsequentIx",
|
|
11002
|
+
"msg": "Subsequent instruction in this transaction is not the expected one"
|
|
11003
|
+
},
|
|
10107
11004
|
{
|
|
10108
11005
|
"code": 6700,
|
|
10109
11006
|
"name": "MxeNotInMigrationState",
|
|
@@ -10228,6 +11125,16 @@
|
|
|
10228
11125
|
"code": 6725,
|
|
10229
11126
|
"name": "CannotCloseMxeDuringMigration",
|
|
10230
11127
|
"msg": "MXE is in migration state, cannot close MXE"
|
|
11128
|
+
},
|
|
11129
|
+
{
|
|
11130
|
+
"code": 6726,
|
|
11131
|
+
"name": "InvalidMigrationAccount",
|
|
11132
|
+
"msg": "Account is not a valid target for this migration (wrong owner or discriminator)"
|
|
11133
|
+
},
|
|
11134
|
+
{
|
|
11135
|
+
"code": 6727,
|
|
11136
|
+
"name": "InsufficientPrimaryStake",
|
|
11137
|
+
"msg": "Node's primary stake is below the minimum for this cluster's mempool size"
|
|
10231
11138
|
}
|
|
10232
11139
|
],
|
|
10233
11140
|
"types": [
|
|
@@ -11051,7 +11958,48 @@
|
|
|
11051
11958
|
},
|
|
11052
11959
|
{
|
|
11053
11960
|
"name": "bump",
|
|
11961
|
+
"docs": [
|
|
11962
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
11963
|
+
"as the *final* struct field) so it keeps its original offset right after",
|
|
11964
|
+
"`bls_public_key`. Everything below is appended *after* the bump, which means the byte",
|
|
11965
|
+
"layout of every field up to and including `bump` is identical to the pre-staking",
|
|
11966
|
+
"`Cluster` — old deserializers (including external user programs that read this account)",
|
|
11967
|
+
"decode the original prefix and harmlessly ignore the trailing staking fields."
|
|
11968
|
+
],
|
|
11054
11969
|
"type": "u8"
|
|
11970
|
+
},
|
|
11971
|
+
{
|
|
11972
|
+
"name": "current_epoch_total_rewards",
|
|
11973
|
+
"docs": [
|
|
11974
|
+
"Running total of computation rewards accrued during `rewards_epoch`. Drained to zero",
|
|
11975
|
+
"by `claim_node_fees` when nodes settle via `finalize_epoch_rewards`."
|
|
11976
|
+
],
|
|
11977
|
+
"type": "u64"
|
|
11978
|
+
},
|
|
11979
|
+
{
|
|
11980
|
+
"name": "rewards_epoch",
|
|
11981
|
+
"docs": [
|
|
11982
|
+
"The epoch that `current_epoch_total_rewards` belongs to. If the clock has advanced",
|
|
11983
|
+
"past this epoch and `current_epoch_total_rewards > 0`, the rewards are stale",
|
|
11984
|
+
"(nodes didn't settle in time) — new accruals are silently skipped until nodes",
|
|
11985
|
+
"finalize, which punishes lazy operators."
|
|
11986
|
+
],
|
|
11987
|
+
"type": {
|
|
11988
|
+
"defined": {
|
|
11989
|
+
"name": "Epoch"
|
|
11990
|
+
}
|
|
11991
|
+
}
|
|
11992
|
+
},
|
|
11993
|
+
{
|
|
11994
|
+
"name": "leader_selector",
|
|
11995
|
+
"docs": [
|
|
11996
|
+
"The selector for leader."
|
|
11997
|
+
],
|
|
11998
|
+
"type": {
|
|
11999
|
+
"defined": {
|
|
12000
|
+
"name": "LeaderSelector"
|
|
12001
|
+
}
|
|
12002
|
+
}
|
|
11055
12003
|
}
|
|
11056
12004
|
]
|
|
11057
12005
|
}
|
|
@@ -11585,16 +12533,28 @@
|
|
|
11585
12533
|
{
|
|
11586
12534
|
"name": "priority_fee",
|
|
11587
12535
|
"docs": [
|
|
11588
|
-
"The additional fee to enforce
|
|
12536
|
+
"The additional fee to enforce prioritized execution in the mempool."
|
|
11589
12537
|
],
|
|
11590
12538
|
"type": "u64"
|
|
11591
12539
|
},
|
|
11592
12540
|
{
|
|
11593
|
-
"name": "
|
|
12541
|
+
"name": "callback_cu_limit",
|
|
11594
12542
|
"docs": [
|
|
11595
|
-
"
|
|
12543
|
+
"The compute unit limit to request for the callback transaction(s), i.e. how many CUs the",
|
|
12544
|
+
"node should request via set_compute_unit_limit. 0 means unset, in which case the node uses",
|
|
12545
|
+
"the default compute budget.",
|
|
12546
|
+
"",
|
|
12547
|
+
"This reuses the low 4 bytes of what was previously `output_delivery_fee: u64` (which was",
|
|
12548
|
+
"always 0), so the serialized layout of ExecutionFee is unchanged."
|
|
11596
12549
|
],
|
|
11597
|
-
"type": "
|
|
12550
|
+
"type": "u32"
|
|
12551
|
+
},
|
|
12552
|
+
{
|
|
12553
|
+
"name": "padding",
|
|
12554
|
+
"docs": [
|
|
12555
|
+
"Padding preserving the original 8-byte (u64) layout of the former `output_delivery_fee`."
|
|
12556
|
+
],
|
|
12557
|
+
"type": "u32"
|
|
11598
12558
|
}
|
|
11599
12559
|
]
|
|
11600
12560
|
}
|
|
@@ -11960,6 +12920,113 @@
|
|
|
11960
12920
|
]
|
|
11961
12921
|
}
|
|
11962
12922
|
},
|
|
12923
|
+
{
|
|
12924
|
+
"name": "LeaderChoice",
|
|
12925
|
+
"docs": [
|
|
12926
|
+
"The computation chosen by a node to be executed when the node is leader."
|
|
12927
|
+
],
|
|
12928
|
+
"type": {
|
|
12929
|
+
"kind": "struct",
|
|
12930
|
+
"fields": [
|
|
12931
|
+
{
|
|
12932
|
+
"name": "offset",
|
|
12933
|
+
"docs": [
|
|
12934
|
+
"Computation_offset of the chosen computation."
|
|
12935
|
+
],
|
|
12936
|
+
"type": "u64"
|
|
12937
|
+
},
|
|
12938
|
+
{
|
|
12939
|
+
"name": "slot_idx",
|
|
12940
|
+
"docs": [
|
|
12941
|
+
"The index of the max_heap the computation is in inside the MemPool's Circular Buffer.",
|
|
12942
|
+
"This is the physical index, not the logical one."
|
|
12943
|
+
],
|
|
12944
|
+
"type": "u16"
|
|
12945
|
+
}
|
|
12946
|
+
]
|
|
12947
|
+
}
|
|
12948
|
+
},
|
|
12949
|
+
{
|
|
12950
|
+
"name": "LeaderInfo",
|
|
12951
|
+
"docs": [
|
|
12952
|
+
"The information about a node."
|
|
12953
|
+
],
|
|
12954
|
+
"type": {
|
|
12955
|
+
"kind": "struct",
|
|
12956
|
+
"fields": [
|
|
12957
|
+
{
|
|
12958
|
+
"name": "stake",
|
|
12959
|
+
"docs": [
|
|
12960
|
+
"The node's stake."
|
|
12961
|
+
],
|
|
12962
|
+
"type": "u64"
|
|
12963
|
+
},
|
|
12964
|
+
{
|
|
12965
|
+
"name": "count",
|
|
12966
|
+
"docs": [
|
|
12967
|
+
"The number + 1 of times the node has been chosen as leader in this cycle.",
|
|
12968
|
+
"0 if the stake is unset.",
|
|
12969
|
+
"This way works well for performance."
|
|
12970
|
+
],
|
|
12971
|
+
"type": "u64"
|
|
12972
|
+
},
|
|
12973
|
+
{
|
|
12974
|
+
"name": "last_counter_plus_one",
|
|
12975
|
+
"docs": [
|
|
12976
|
+
"The last time the node has been chosen as leader."
|
|
12977
|
+
],
|
|
12978
|
+
"type": "u64"
|
|
12979
|
+
},
|
|
12980
|
+
{
|
|
12981
|
+
"name": "choice",
|
|
12982
|
+
"docs": [
|
|
12983
|
+
"The choice of that node."
|
|
12984
|
+
],
|
|
12985
|
+
"type": {
|
|
12986
|
+
"defined": {
|
|
12987
|
+
"name": "LeaderChoice"
|
|
12988
|
+
}
|
|
12989
|
+
}
|
|
12990
|
+
}
|
|
12991
|
+
]
|
|
12992
|
+
}
|
|
12993
|
+
},
|
|
12994
|
+
{
|
|
12995
|
+
"name": "LeaderSelector",
|
|
12996
|
+
"docs": [
|
|
12997
|
+
"To select a Leader.",
|
|
12998
|
+
"Uses the greatest divisors method: https://en.wikipedia.org/wiki/D%27Hondt_method"
|
|
12999
|
+
],
|
|
13000
|
+
"type": {
|
|
13001
|
+
"kind": "struct",
|
|
13002
|
+
"fields": [
|
|
13003
|
+
{
|
|
13004
|
+
"name": "staking_epoch",
|
|
13005
|
+
"docs": [
|
|
13006
|
+
"The last epoch the staking was set."
|
|
13007
|
+
],
|
|
13008
|
+
"type": {
|
|
13009
|
+
"defined": {
|
|
13010
|
+
"name": "Epoch"
|
|
13011
|
+
}
|
|
13012
|
+
}
|
|
13013
|
+
},
|
|
13014
|
+
{
|
|
13015
|
+
"name": "info",
|
|
13016
|
+
"docs": [
|
|
13017
|
+
"The information about each node."
|
|
13018
|
+
],
|
|
13019
|
+
"type": {
|
|
13020
|
+
"vec": {
|
|
13021
|
+
"defined": {
|
|
13022
|
+
"name": "LeaderInfo"
|
|
13023
|
+
}
|
|
13024
|
+
}
|
|
13025
|
+
}
|
|
13026
|
+
}
|
|
13027
|
+
]
|
|
13028
|
+
}
|
|
13029
|
+
},
|
|
11963
13030
|
{
|
|
11964
13031
|
"name": "LocalCircuitSource",
|
|
11965
13032
|
"type": {
|
|
@@ -12084,7 +13151,40 @@
|
|
|
12084
13151
|
},
|
|
12085
13152
|
{
|
|
12086
13153
|
"name": "bump",
|
|
13154
|
+
"docs": [
|
|
13155
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
13156
|
+
"as the *final* struct field) so it keeps its original offset right after `status`.",
|
|
13157
|
+
"The recovery-reward fields below are appended *after* the bump, leaving the byte layout",
|
|
13158
|
+
"of every field up to and including `bump` identical to the pre-staking `MXEAccount` —",
|
|
13159
|
+
"old deserializers (including external user programs) decode the original prefix and",
|
|
13160
|
+
"harmlessly ignore the trailing fields."
|
|
13161
|
+
],
|
|
12087
13162
|
"type": "u8"
|
|
13163
|
+
},
|
|
13164
|
+
{
|
|
13165
|
+
"name": "current_epoch_recovery_rewards",
|
|
13166
|
+
"docs": [
|
|
13167
|
+
"Running total of recovery-peer rewards accrued during `recovery_rewards_epoch`.",
|
|
13168
|
+
"Fed by the 20% slice of every computation/failure fee processed on this MXE;",
|
|
13169
|
+
"drained to zero by `claim_recovery_peer_fees` when recovery peers settle via",
|
|
13170
|
+
"`arcium_staking::finalize_recovery_epoch_rewards`. Same stale-epoch guard as",
|
|
13171
|
+
"`Cluster::current_epoch_total_rewards` — if peers don't settle before the epoch",
|
|
13172
|
+
"rolls over, new accruals are silently skipped until the pot is drained."
|
|
13173
|
+
],
|
|
13174
|
+
"type": "u64"
|
|
13175
|
+
},
|
|
13176
|
+
{
|
|
13177
|
+
"name": "recovery_rewards_epoch",
|
|
13178
|
+
"docs": [
|
|
13179
|
+
"Epoch that `current_epoch_recovery_rewards` is attributed to. Compared against the",
|
|
13180
|
+
"executing cluster's `last_updated_epoch` (the same proxy used by cluster rewards) to",
|
|
13181
|
+
"decide whether a new accrual is for the current round or a stale one."
|
|
13182
|
+
],
|
|
13183
|
+
"type": {
|
|
13184
|
+
"defined": {
|
|
13185
|
+
"name": "Epoch"
|
|
13186
|
+
}
|
|
13187
|
+
}
|
|
12088
13188
|
}
|
|
12089
13189
|
]
|
|
12090
13190
|
}
|
|
@@ -12419,9 +13519,7 @@
|
|
|
12419
13519
|
"name": "NodeRef",
|
|
12420
13520
|
"docs": [
|
|
12421
13521
|
"A reference to a node in the cluster.",
|
|
12422
|
-
"The offset is to derive the Node Account."
|
|
12423
|
-
"The current_total_rewards is the total rewards the node has received so far in the current",
|
|
12424
|
-
"epoch."
|
|
13522
|
+
"The offset is to derive the Node Account."
|
|
12425
13523
|
],
|
|
12426
13524
|
"type": {
|
|
12427
13525
|
"kind": "struct",
|
|
@@ -12431,11 +13529,22 @@
|
|
|
12431
13529
|
"type": "u32"
|
|
12432
13530
|
},
|
|
12433
13531
|
{
|
|
12434
|
-
"name": "
|
|
13532
|
+
"name": "_padding",
|
|
12435
13533
|
"docs": [
|
|
12436
|
-
"
|
|
13534
|
+
"Reserved padding occupying the 8 bytes that previously held `current_total_rewards: u64`",
|
|
13535
|
+
"(per-node reward tracking, now superseded by the cluster-level",
|
|
13536
|
+
"`current_epoch_total_rewards`). We keep these bytes rather than shrinking `NodeRef`",
|
|
13537
|
+
"because `nodes: Vec<NodeRef>` sits in the *middle* of the `Cluster` struct: removing the",
|
|
13538
|
+
"field would change the encoded element size and desync the borsh decode of every field",
|
|
13539
|
+
"after `nodes` for already-deployed accounts and external deserializers. Do not repurpose",
|
|
13540
|
+
"without a full account migration."
|
|
12437
13541
|
],
|
|
12438
|
-
"type":
|
|
13542
|
+
"type": {
|
|
13543
|
+
"array": [
|
|
13544
|
+
"u8",
|
|
13545
|
+
8
|
|
13546
|
+
]
|
|
13547
|
+
}
|
|
12439
13548
|
},
|
|
12440
13549
|
{
|
|
12441
13550
|
"name": "vote",
|
|
@@ -12873,7 +13982,27 @@
|
|
|
12873
13982
|
},
|
|
12874
13983
|
{
|
|
12875
13984
|
"name": "bump",
|
|
13985
|
+
"docs": [
|
|
13986
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
13987
|
+
"as the *final* struct field) so it keeps its original offset (76) right after",
|
|
13988
|
+
"`peer_offset`. `primary_stake_account` is appended *after* the bump, leaving the byte",
|
|
13989
|
+
"layout of every field up to and including `bump` identical to the pre-staking",
|
|
13990
|
+
"`RecoveryPeerAccount` — old deserializers decode the original prefix and harmlessly",
|
|
13991
|
+
"ignore the trailing field."
|
|
13992
|
+
],
|
|
12876
13993
|
"type": "u8"
|
|
13994
|
+
},
|
|
13995
|
+
{
|
|
13996
|
+
"name": "primary_stake_account",
|
|
13997
|
+
"docs": [
|
|
13998
|
+
"The `PrimaryStakingAccount` (owned by `arcium_staking`) this recovery peer is bound",
|
|
13999
|
+
"to. Enforced at init time via an owner check so every recovery peer has skin in the",
|
|
14000
|
+
"game — the same stake-first model we already apply to `ArxNode`. Stored here so",
|
|
14001
|
+
"downstream instructions (and off-chain consumers) can look up the backing stake",
|
|
14002
|
+
"without re-validating the chain of accounts. Appended after `bump` to preserve the",
|
|
14003
|
+
"legacy on-chain layout (see the `bump` field comment)."
|
|
14004
|
+
],
|
|
14005
|
+
"type": "pubkey"
|
|
12877
14006
|
}
|
|
12878
14007
|
]
|
|
12879
14008
|
}
|