@arcium-hq/client 0.10.3 → 0.11.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/README.md +1 -2
- package/build/index.cjs +1454 -281
- package/build/index.mjs +1453 -284
- package/build/types/constants.d.ts +55 -0
- package/build/types/constants.d.ts.map +1 -1
- package/build/types/idl/arcium.d.ts +1301 -213
- package/build/types/idl/arcium.d.ts.map +1 -1
- package/build/types/idl/arcium_staking.d.ts +4301 -1750
- 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 +1299 -211
- package/src/idl/arcium.ts +1299 -211
- package/src/idl/arcium_staking.json +4518 -1967
- package/src/idl/arcium_staking.ts +4518 -1967
- 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.0",
|
|
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": [
|
|
@@ -6387,7 +6961,12 @@
|
|
|
6387
6961
|
"docs": [
|
|
6388
6962
|
"Queues a computation.",
|
|
6389
6963
|
"cu_price_micro: The priority price of a CU, in micro-lamports. Used",
|
|
6390
|
-
"to calculate the priority fee and rounded down."
|
|
6964
|
+
"to calculate the priority fee and rounded down.",
|
|
6965
|
+
"callback_cu_limit: The compute unit limit to request for the callback transaction(s)",
|
|
6966
|
+
"via set_compute_unit_limit. 0 means unset (the node uses the default compute budget).",
|
|
6967
|
+
"A non-zero value incurs an additional priority fee of callback_cu_limit * cu_price_micro.",
|
|
6968
|
+
"callback_cu_limit + padding together occupy the 8 bytes that previously held the",
|
|
6969
|
+
"(always-zero) output_delivery_fee: u64, so the instruction layout is unchanged."
|
|
6391
6970
|
],
|
|
6392
6971
|
"discriminator": [
|
|
6393
6972
|
1,
|
|
@@ -6720,8 +7299,12 @@
|
|
|
6720
7299
|
"type": "u8"
|
|
6721
7300
|
},
|
|
6722
7301
|
{
|
|
6723
|
-
"name": "
|
|
6724
|
-
"type": "
|
|
7302
|
+
"name": "callback_cu_limit",
|
|
7303
|
+
"type": "u32"
|
|
7304
|
+
},
|
|
7305
|
+
{
|
|
7306
|
+
"name": "padding",
|
|
7307
|
+
"type": "u32"
|
|
6725
7308
|
},
|
|
6726
7309
|
{
|
|
6727
7310
|
"name": "cu_price_micro",
|
|
@@ -8100,6 +8683,114 @@
|
|
|
8100
8683
|
}
|
|
8101
8684
|
]
|
|
8102
8685
|
},
|
|
8686
|
+
{
|
|
8687
|
+
"name": "set_leader_choice",
|
|
8688
|
+
"discriminator": [
|
|
8689
|
+
42,
|
|
8690
|
+
7,
|
|
8691
|
+
112,
|
|
8692
|
+
255,
|
|
8693
|
+
254,
|
|
8694
|
+
186,
|
|
8695
|
+
135,
|
|
8696
|
+
133
|
|
8697
|
+
],
|
|
8698
|
+
"accounts": [
|
|
8699
|
+
{
|
|
8700
|
+
"name": "node_authority",
|
|
8701
|
+
"writable": true,
|
|
8702
|
+
"signer": true
|
|
8703
|
+
},
|
|
8704
|
+
{
|
|
8705
|
+
"name": "cluster_acc",
|
|
8706
|
+
"writable": true,
|
|
8707
|
+
"pda": {
|
|
8708
|
+
"seeds": [
|
|
8709
|
+
{
|
|
8710
|
+
"kind": "const",
|
|
8711
|
+
"value": [
|
|
8712
|
+
67,
|
|
8713
|
+
108,
|
|
8714
|
+
117,
|
|
8715
|
+
115,
|
|
8716
|
+
116,
|
|
8717
|
+
101,
|
|
8718
|
+
114
|
|
8719
|
+
]
|
|
8720
|
+
},
|
|
8721
|
+
{
|
|
8722
|
+
"kind": "arg",
|
|
8723
|
+
"path": "cluster_offset"
|
|
8724
|
+
}
|
|
8725
|
+
]
|
|
8726
|
+
}
|
|
8727
|
+
},
|
|
8728
|
+
{
|
|
8729
|
+
"name": "arx_node_acc",
|
|
8730
|
+
"pda": {
|
|
8731
|
+
"seeds": [
|
|
8732
|
+
{
|
|
8733
|
+
"kind": "const",
|
|
8734
|
+
"value": [
|
|
8735
|
+
65,
|
|
8736
|
+
114,
|
|
8737
|
+
120,
|
|
8738
|
+
78,
|
|
8739
|
+
111,
|
|
8740
|
+
100,
|
|
8741
|
+
101
|
|
8742
|
+
]
|
|
8743
|
+
},
|
|
8744
|
+
{
|
|
8745
|
+
"kind": "arg",
|
|
8746
|
+
"path": "node_offset"
|
|
8747
|
+
}
|
|
8748
|
+
]
|
|
8749
|
+
}
|
|
8750
|
+
},
|
|
8751
|
+
{
|
|
8752
|
+
"name": "mempool",
|
|
8753
|
+
"pda": {
|
|
8754
|
+
"seeds": [
|
|
8755
|
+
{
|
|
8756
|
+
"kind": "const",
|
|
8757
|
+
"value": [
|
|
8758
|
+
77,
|
|
8759
|
+
101,
|
|
8760
|
+
109,
|
|
8761
|
+
112,
|
|
8762
|
+
111,
|
|
8763
|
+
111,
|
|
8764
|
+
108
|
|
8765
|
+
]
|
|
8766
|
+
},
|
|
8767
|
+
{
|
|
8768
|
+
"kind": "arg",
|
|
8769
|
+
"path": "cluster_offset"
|
|
8770
|
+
}
|
|
8771
|
+
]
|
|
8772
|
+
}
|
|
8773
|
+
}
|
|
8774
|
+
],
|
|
8775
|
+
"args": [
|
|
8776
|
+
{
|
|
8777
|
+
"name": "cluster_offset",
|
|
8778
|
+
"type": "u32"
|
|
8779
|
+
},
|
|
8780
|
+
{
|
|
8781
|
+
"name": "node_offset",
|
|
8782
|
+
"type": "u32"
|
|
8783
|
+
},
|
|
8784
|
+
{
|
|
8785
|
+
"name": "choice",
|
|
8786
|
+
"type": {
|
|
8787
|
+
"defined": {
|
|
8788
|
+
"name": "LeaderChoice"
|
|
8789
|
+
}
|
|
8790
|
+
}
|
|
8791
|
+
}
|
|
8792
|
+
]
|
|
8793
|
+
},
|
|
8103
8794
|
{
|
|
8104
8795
|
"name": "set_mxe_keys",
|
|
8105
8796
|
"discriminator": [
|
|
@@ -8306,51 +8997,238 @@
|
|
|
8306
8997
|
"kind": "arg",
|
|
8307
8998
|
"path": "_mxe_program"
|
|
8308
8999
|
}
|
|
8309
|
-
]
|
|
9000
|
+
]
|
|
9001
|
+
}
|
|
9002
|
+
},
|
|
9003
|
+
{
|
|
9004
|
+
"name": "recovery_cluster_acc",
|
|
9005
|
+
"writable": true,
|
|
9006
|
+
"pda": {
|
|
9007
|
+
"seeds": [
|
|
9008
|
+
{
|
|
9009
|
+
"kind": "const",
|
|
9010
|
+
"value": [
|
|
9011
|
+
82,
|
|
9012
|
+
101,
|
|
9013
|
+
99,
|
|
9014
|
+
111,
|
|
9015
|
+
118,
|
|
9016
|
+
101,
|
|
9017
|
+
114,
|
|
9018
|
+
121,
|
|
9019
|
+
67,
|
|
9020
|
+
108,
|
|
9021
|
+
117,
|
|
9022
|
+
115,
|
|
9023
|
+
116,
|
|
9024
|
+
101,
|
|
9025
|
+
114,
|
|
9026
|
+
65,
|
|
9027
|
+
99,
|
|
9028
|
+
99,
|
|
9029
|
+
111,
|
|
9030
|
+
117,
|
|
9031
|
+
110,
|
|
9032
|
+
116
|
|
9033
|
+
]
|
|
9034
|
+
},
|
|
9035
|
+
{
|
|
9036
|
+
"kind": "arg",
|
|
9037
|
+
"path": "_mxe_program"
|
|
9038
|
+
}
|
|
9039
|
+
]
|
|
9040
|
+
}
|
|
9041
|
+
},
|
|
9042
|
+
{
|
|
9043
|
+
"name": "cluster_acc",
|
|
9044
|
+
"writable": true,
|
|
9045
|
+
"pda": {
|
|
9046
|
+
"seeds": [
|
|
9047
|
+
{
|
|
9048
|
+
"kind": "const",
|
|
9049
|
+
"value": [
|
|
9050
|
+
67,
|
|
9051
|
+
108,
|
|
9052
|
+
117,
|
|
9053
|
+
115,
|
|
9054
|
+
116,
|
|
9055
|
+
101,
|
|
9056
|
+
114
|
|
9057
|
+
]
|
|
9058
|
+
},
|
|
9059
|
+
{
|
|
9060
|
+
"kind": "account",
|
|
9061
|
+
"path": "mxe.cluster",
|
|
9062
|
+
"account": "MXEAccount"
|
|
9063
|
+
}
|
|
9064
|
+
]
|
|
9065
|
+
}
|
|
9066
|
+
}
|
|
9067
|
+
],
|
|
9068
|
+
"args": [
|
|
9069
|
+
{
|
|
9070
|
+
"name": "node_offset",
|
|
9071
|
+
"type": "u32"
|
|
9072
|
+
},
|
|
9073
|
+
{
|
|
9074
|
+
"name": "_mxe_program",
|
|
9075
|
+
"type": "pubkey"
|
|
9076
|
+
},
|
|
9077
|
+
{
|
|
9078
|
+
"name": "nonce",
|
|
9079
|
+
"type": {
|
|
9080
|
+
"array": [
|
|
9081
|
+
"u8",
|
|
9082
|
+
16
|
|
9083
|
+
]
|
|
9084
|
+
}
|
|
9085
|
+
},
|
|
9086
|
+
{
|
|
9087
|
+
"name": "encrypted_mxe_keys",
|
|
9088
|
+
"type": {
|
|
9089
|
+
"array": [
|
|
9090
|
+
{
|
|
9091
|
+
"array": [
|
|
9092
|
+
"u8",
|
|
9093
|
+
32
|
|
9094
|
+
]
|
|
9095
|
+
},
|
|
9096
|
+
13
|
|
9097
|
+
]
|
|
9098
|
+
}
|
|
9099
|
+
},
|
|
9100
|
+
{
|
|
9101
|
+
"name": "key_material_hash",
|
|
9102
|
+
"type": {
|
|
9103
|
+
"array": [
|
|
9104
|
+
"u8",
|
|
9105
|
+
32
|
|
9106
|
+
]
|
|
9107
|
+
}
|
|
9108
|
+
},
|
|
9109
|
+
{
|
|
9110
|
+
"name": "bls_sig",
|
|
9111
|
+
"type": {
|
|
9112
|
+
"array": [
|
|
9113
|
+
"u8",
|
|
9114
|
+
64
|
|
9115
|
+
]
|
|
9116
|
+
}
|
|
9117
|
+
}
|
|
9118
|
+
]
|
|
9119
|
+
},
|
|
9120
|
+
{
|
|
9121
|
+
"name": "set_node_staking",
|
|
9122
|
+
"discriminator": [
|
|
9123
|
+
158,
|
|
9124
|
+
40,
|
|
9125
|
+
109,
|
|
9126
|
+
244,
|
|
9127
|
+
217,
|
|
9128
|
+
195,
|
|
9129
|
+
35,
|
|
9130
|
+
140
|
|
9131
|
+
],
|
|
9132
|
+
"accounts": [
|
|
9133
|
+
{
|
|
9134
|
+
"name": "staking_pool_signer",
|
|
9135
|
+
"docs": [
|
|
9136
|
+
"The `arcium_staking::state::StakingPoolAccount` PDA, signing via CPI. The `seeds`/`bump`",
|
|
9137
|
+
"constraint verifies it's the canonical pool PDA under `ARCIUM_STAKING_ID` (so only the",
|
|
9138
|
+
"staking program can call this)"
|
|
9139
|
+
],
|
|
9140
|
+
"signer": true,
|
|
9141
|
+
"pda": {
|
|
9142
|
+
"seeds": [
|
|
9143
|
+
{
|
|
9144
|
+
"kind": "const",
|
|
9145
|
+
"value": [
|
|
9146
|
+
83,
|
|
9147
|
+
116,
|
|
9148
|
+
97,
|
|
9149
|
+
107,
|
|
9150
|
+
105,
|
|
9151
|
+
110,
|
|
9152
|
+
103,
|
|
9153
|
+
80,
|
|
9154
|
+
111,
|
|
9155
|
+
111,
|
|
9156
|
+
108,
|
|
9157
|
+
65,
|
|
9158
|
+
99,
|
|
9159
|
+
99,
|
|
9160
|
+
111,
|
|
9161
|
+
117,
|
|
9162
|
+
110,
|
|
9163
|
+
116
|
|
9164
|
+
]
|
|
9165
|
+
}
|
|
9166
|
+
],
|
|
9167
|
+
"program": {
|
|
9168
|
+
"kind": "const",
|
|
9169
|
+
"value": [
|
|
9170
|
+
146,
|
|
9171
|
+
110,
|
|
9172
|
+
184,
|
|
9173
|
+
172,
|
|
9174
|
+
179,
|
|
9175
|
+
131,
|
|
9176
|
+
118,
|
|
9177
|
+
35,
|
|
9178
|
+
207,
|
|
9179
|
+
122,
|
|
9180
|
+
30,
|
|
9181
|
+
190,
|
|
9182
|
+
228,
|
|
9183
|
+
134,
|
|
9184
|
+
232,
|
|
9185
|
+
140,
|
|
9186
|
+
222,
|
|
9187
|
+
89,
|
|
9188
|
+
53,
|
|
9189
|
+
150,
|
|
9190
|
+
174,
|
|
9191
|
+
187,
|
|
9192
|
+
151,
|
|
9193
|
+
58,
|
|
9194
|
+
208,
|
|
9195
|
+
108,
|
|
9196
|
+
237,
|
|
9197
|
+
119,
|
|
9198
|
+
97,
|
|
9199
|
+
204,
|
|
9200
|
+
184,
|
|
9201
|
+
186
|
|
9202
|
+
]
|
|
9203
|
+
}
|
|
8310
9204
|
}
|
|
8311
9205
|
},
|
|
8312
9206
|
{
|
|
8313
|
-
"name": "
|
|
9207
|
+
"name": "cluster",
|
|
8314
9208
|
"writable": true,
|
|
8315
9209
|
"pda": {
|
|
8316
9210
|
"seeds": [
|
|
8317
9211
|
{
|
|
8318
9212
|
"kind": "const",
|
|
8319
9213
|
"value": [
|
|
8320
|
-
82,
|
|
8321
|
-
101,
|
|
8322
|
-
99,
|
|
8323
|
-
111,
|
|
8324
|
-
118,
|
|
8325
|
-
101,
|
|
8326
|
-
114,
|
|
8327
|
-
121,
|
|
8328
9214
|
67,
|
|
8329
9215
|
108,
|
|
8330
9216
|
117,
|
|
8331
9217
|
115,
|
|
8332
9218
|
116,
|
|
8333
9219
|
101,
|
|
8334
|
-
114
|
|
8335
|
-
65,
|
|
8336
|
-
99,
|
|
8337
|
-
99,
|
|
8338
|
-
111,
|
|
8339
|
-
117,
|
|
8340
|
-
110,
|
|
8341
|
-
116
|
|
9220
|
+
114
|
|
8342
9221
|
]
|
|
8343
9222
|
},
|
|
8344
9223
|
{
|
|
8345
9224
|
"kind": "arg",
|
|
8346
|
-
"path": "
|
|
9225
|
+
"path": "cluster_offset"
|
|
8347
9226
|
}
|
|
8348
9227
|
]
|
|
8349
9228
|
}
|
|
8350
9229
|
},
|
|
8351
9230
|
{
|
|
8352
|
-
"name": "
|
|
8353
|
-
"writable": true,
|
|
9231
|
+
"name": "clock",
|
|
8354
9232
|
"pda": {
|
|
8355
9233
|
"seeds": [
|
|
8356
9234
|
{
|
|
@@ -8358,17 +9236,17 @@
|
|
|
8358
9236
|
"value": [
|
|
8359
9237
|
67,
|
|
8360
9238
|
108,
|
|
9239
|
+
111,
|
|
9240
|
+
99,
|
|
9241
|
+
107,
|
|
9242
|
+
65,
|
|
9243
|
+
99,
|
|
9244
|
+
99,
|
|
9245
|
+
111,
|
|
8361
9246
|
117,
|
|
8362
|
-
|
|
8363
|
-
116
|
|
8364
|
-
101,
|
|
8365
|
-
114
|
|
9247
|
+
110,
|
|
9248
|
+
116
|
|
8366
9249
|
]
|
|
8367
|
-
},
|
|
8368
|
-
{
|
|
8369
|
-
"kind": "account",
|
|
8370
|
-
"path": "mxe.cluster",
|
|
8371
|
-
"account": "MXEAccount"
|
|
8372
9250
|
}
|
|
8373
9251
|
]
|
|
8374
9252
|
}
|
|
@@ -8376,53 +9254,16 @@
|
|
|
8376
9254
|
],
|
|
8377
9255
|
"args": [
|
|
8378
9256
|
{
|
|
8379
|
-
"name": "
|
|
9257
|
+
"name": "cluster_offset",
|
|
8380
9258
|
"type": "u32"
|
|
8381
9259
|
},
|
|
8382
9260
|
{
|
|
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
|
-
}
|
|
9261
|
+
"name": "node_offset",
|
|
9262
|
+
"type": "u32"
|
|
8417
9263
|
},
|
|
8418
9264
|
{
|
|
8419
|
-
"name": "
|
|
8420
|
-
"type":
|
|
8421
|
-
"array": [
|
|
8422
|
-
"u8",
|
|
8423
|
-
64
|
|
8424
|
-
]
|
|
8425
|
-
}
|
|
9265
|
+
"name": "stake",
|
|
9266
|
+
"type": "u64"
|
|
8426
9267
|
}
|
|
8427
9268
|
]
|
|
8428
9269
|
},
|
|
@@ -9754,6 +10595,11 @@
|
|
|
9754
10595
|
"name": "MaxParallelismReached",
|
|
9755
10596
|
"msg": "Max parallelism reached"
|
|
9756
10597
|
},
|
|
10598
|
+
{
|
|
10599
|
+
"code": 6104,
|
|
10600
|
+
"name": "MempoolAlreadyFullSize",
|
|
10601
|
+
"msg": "Mempool is already at its full allocated size"
|
|
10602
|
+
},
|
|
9757
10603
|
{
|
|
9758
10604
|
"code": 6200,
|
|
9759
10605
|
"name": "InvalidComputationOffset",
|
|
@@ -9929,6 +10775,16 @@
|
|
|
9929
10775
|
"name": "InvalidNodeOffset",
|
|
9930
10776
|
"msg": "Node offset is invalid"
|
|
9931
10777
|
},
|
|
10778
|
+
{
|
|
10779
|
+
"code": 6411,
|
|
10780
|
+
"name": "InvalidStakingPoolSigner",
|
|
10781
|
+
"msg": "The provided staking pool signer is not the staking program's StakingPoolAccount PDA"
|
|
10782
|
+
},
|
|
10783
|
+
{
|
|
10784
|
+
"code": 6412,
|
|
10785
|
+
"name": "InvalidStakingAccount",
|
|
10786
|
+
"msg": "The provided primary stake account is not owned by the staking program or does not match the node's bound staking account"
|
|
10787
|
+
},
|
|
9932
10788
|
{
|
|
9933
10789
|
"code": 6500,
|
|
9934
10790
|
"name": "ClusterFull",
|
|
@@ -9987,7 +10843,7 @@
|
|
|
9987
10843
|
{
|
|
9988
10844
|
"code": 6602,
|
|
9989
10845
|
"name": "HeapFull",
|
|
9990
|
-
"msg": "
|
|
10846
|
+
"msg": "Mempool capacity for the current slot reached - retry next slot or reduce queue rate"
|
|
9991
10847
|
},
|
|
9992
10848
|
{
|
|
9993
10849
|
"code": 6603,
|
|
@@ -10104,6 +10960,11 @@
|
|
|
10104
10960
|
"name": "RecoveryInitAlreadyInitialized",
|
|
10105
10961
|
"msg": "Recovery already initialized"
|
|
10106
10962
|
},
|
|
10963
|
+
{
|
|
10964
|
+
"code": 6626,
|
|
10965
|
+
"name": "InvalidSubsequentIx",
|
|
10966
|
+
"msg": "Subsequent instruction in this transaction is not the expected one"
|
|
10967
|
+
},
|
|
10107
10968
|
{
|
|
10108
10969
|
"code": 6700,
|
|
10109
10970
|
"name": "MxeNotInMigrationState",
|
|
@@ -10228,6 +11089,11 @@
|
|
|
10228
11089
|
"code": 6725,
|
|
10229
11090
|
"name": "CannotCloseMxeDuringMigration",
|
|
10230
11091
|
"msg": "MXE is in migration state, cannot close MXE"
|
|
11092
|
+
},
|
|
11093
|
+
{
|
|
11094
|
+
"code": 6726,
|
|
11095
|
+
"name": "InvalidMigrationAccount",
|
|
11096
|
+
"msg": "Account is not a valid target for this migration (wrong owner or discriminator)"
|
|
10231
11097
|
}
|
|
10232
11098
|
],
|
|
10233
11099
|
"types": [
|
|
@@ -11051,7 +11917,48 @@
|
|
|
11051
11917
|
},
|
|
11052
11918
|
{
|
|
11053
11919
|
"name": "bump",
|
|
11920
|
+
"docs": [
|
|
11921
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
11922
|
+
"as the *final* struct field) so it keeps its original offset right after",
|
|
11923
|
+
"`bls_public_key`. Everything below is appended *after* the bump, which means the byte",
|
|
11924
|
+
"layout of every field up to and including `bump` is identical to the pre-staking",
|
|
11925
|
+
"`Cluster` — old deserializers (including external user programs that read this account)",
|
|
11926
|
+
"decode the original prefix and harmlessly ignore the trailing staking fields."
|
|
11927
|
+
],
|
|
11054
11928
|
"type": "u8"
|
|
11929
|
+
},
|
|
11930
|
+
{
|
|
11931
|
+
"name": "current_epoch_total_rewards",
|
|
11932
|
+
"docs": [
|
|
11933
|
+
"Running total of computation rewards accrued during `rewards_epoch`. Drained to zero",
|
|
11934
|
+
"by `claim_node_fees` when nodes settle via `finalize_epoch_rewards`."
|
|
11935
|
+
],
|
|
11936
|
+
"type": "u64"
|
|
11937
|
+
},
|
|
11938
|
+
{
|
|
11939
|
+
"name": "rewards_epoch",
|
|
11940
|
+
"docs": [
|
|
11941
|
+
"The epoch that `current_epoch_total_rewards` belongs to. If the clock has advanced",
|
|
11942
|
+
"past this epoch and `current_epoch_total_rewards > 0`, the rewards are stale",
|
|
11943
|
+
"(nodes didn't settle in time) — new accruals are silently skipped until nodes",
|
|
11944
|
+
"finalize, which punishes lazy operators."
|
|
11945
|
+
],
|
|
11946
|
+
"type": {
|
|
11947
|
+
"defined": {
|
|
11948
|
+
"name": "Epoch"
|
|
11949
|
+
}
|
|
11950
|
+
}
|
|
11951
|
+
},
|
|
11952
|
+
{
|
|
11953
|
+
"name": "leader_selector",
|
|
11954
|
+
"docs": [
|
|
11955
|
+
"The selector for leader."
|
|
11956
|
+
],
|
|
11957
|
+
"type": {
|
|
11958
|
+
"defined": {
|
|
11959
|
+
"name": "LeaderSelector"
|
|
11960
|
+
}
|
|
11961
|
+
}
|
|
11055
11962
|
}
|
|
11056
11963
|
]
|
|
11057
11964
|
}
|
|
@@ -11585,16 +12492,28 @@
|
|
|
11585
12492
|
{
|
|
11586
12493
|
"name": "priority_fee",
|
|
11587
12494
|
"docs": [
|
|
11588
|
-
"The additional fee to enforce
|
|
12495
|
+
"The additional fee to enforce prioritized execution in the mempool."
|
|
11589
12496
|
],
|
|
11590
12497
|
"type": "u64"
|
|
11591
12498
|
},
|
|
11592
12499
|
{
|
|
11593
|
-
"name": "
|
|
12500
|
+
"name": "callback_cu_limit",
|
|
11594
12501
|
"docs": [
|
|
11595
|
-
"
|
|
12502
|
+
"The compute unit limit to request for the callback transaction(s), i.e. how many CUs the",
|
|
12503
|
+
"node should request via set_compute_unit_limit. 0 means unset, in which case the node uses",
|
|
12504
|
+
"the default compute budget.",
|
|
12505
|
+
"",
|
|
12506
|
+
"This reuses the low 4 bytes of what was previously `output_delivery_fee: u64` (which was",
|
|
12507
|
+
"always 0), so the serialized layout of ExecutionFee is unchanged."
|
|
11596
12508
|
],
|
|
11597
|
-
"type": "
|
|
12509
|
+
"type": "u32"
|
|
12510
|
+
},
|
|
12511
|
+
{
|
|
12512
|
+
"name": "padding",
|
|
12513
|
+
"docs": [
|
|
12514
|
+
"Padding preserving the original 8-byte (u64) layout of the former `output_delivery_fee`."
|
|
12515
|
+
],
|
|
12516
|
+
"type": "u32"
|
|
11598
12517
|
}
|
|
11599
12518
|
]
|
|
11600
12519
|
}
|
|
@@ -11960,6 +12879,113 @@
|
|
|
11960
12879
|
]
|
|
11961
12880
|
}
|
|
11962
12881
|
},
|
|
12882
|
+
{
|
|
12883
|
+
"name": "LeaderChoice",
|
|
12884
|
+
"docs": [
|
|
12885
|
+
"The computation chosen by a node to be executed when the node is leader."
|
|
12886
|
+
],
|
|
12887
|
+
"type": {
|
|
12888
|
+
"kind": "struct",
|
|
12889
|
+
"fields": [
|
|
12890
|
+
{
|
|
12891
|
+
"name": "offset",
|
|
12892
|
+
"docs": [
|
|
12893
|
+
"Computation_offset of the chosen computation."
|
|
12894
|
+
],
|
|
12895
|
+
"type": "u64"
|
|
12896
|
+
},
|
|
12897
|
+
{
|
|
12898
|
+
"name": "slot_idx",
|
|
12899
|
+
"docs": [
|
|
12900
|
+
"The index of the max_heap the computation is in inside the MemPool's Circular Buffer.",
|
|
12901
|
+
"This is the physical index, not the logical one."
|
|
12902
|
+
],
|
|
12903
|
+
"type": "u16"
|
|
12904
|
+
}
|
|
12905
|
+
]
|
|
12906
|
+
}
|
|
12907
|
+
},
|
|
12908
|
+
{
|
|
12909
|
+
"name": "LeaderInfo",
|
|
12910
|
+
"docs": [
|
|
12911
|
+
"The information about a node."
|
|
12912
|
+
],
|
|
12913
|
+
"type": {
|
|
12914
|
+
"kind": "struct",
|
|
12915
|
+
"fields": [
|
|
12916
|
+
{
|
|
12917
|
+
"name": "stake",
|
|
12918
|
+
"docs": [
|
|
12919
|
+
"The node's stake."
|
|
12920
|
+
],
|
|
12921
|
+
"type": "u64"
|
|
12922
|
+
},
|
|
12923
|
+
{
|
|
12924
|
+
"name": "count",
|
|
12925
|
+
"docs": [
|
|
12926
|
+
"The number + 1 of times the node has been chosen as leader in this cycle.",
|
|
12927
|
+
"0 if the stake is unset.",
|
|
12928
|
+
"This way works well for performance."
|
|
12929
|
+
],
|
|
12930
|
+
"type": "u64"
|
|
12931
|
+
},
|
|
12932
|
+
{
|
|
12933
|
+
"name": "last_counter_plus_one",
|
|
12934
|
+
"docs": [
|
|
12935
|
+
"The last time the node has been chosen as leader."
|
|
12936
|
+
],
|
|
12937
|
+
"type": "u64"
|
|
12938
|
+
},
|
|
12939
|
+
{
|
|
12940
|
+
"name": "choice",
|
|
12941
|
+
"docs": [
|
|
12942
|
+
"The choice of that node."
|
|
12943
|
+
],
|
|
12944
|
+
"type": {
|
|
12945
|
+
"defined": {
|
|
12946
|
+
"name": "LeaderChoice"
|
|
12947
|
+
}
|
|
12948
|
+
}
|
|
12949
|
+
}
|
|
12950
|
+
]
|
|
12951
|
+
}
|
|
12952
|
+
},
|
|
12953
|
+
{
|
|
12954
|
+
"name": "LeaderSelector",
|
|
12955
|
+
"docs": [
|
|
12956
|
+
"To select a Leader.",
|
|
12957
|
+
"Uses the greatest divisors method: https://en.wikipedia.org/wiki/D%27Hondt_method"
|
|
12958
|
+
],
|
|
12959
|
+
"type": {
|
|
12960
|
+
"kind": "struct",
|
|
12961
|
+
"fields": [
|
|
12962
|
+
{
|
|
12963
|
+
"name": "staking_epoch",
|
|
12964
|
+
"docs": [
|
|
12965
|
+
"The last epoch the staking was set."
|
|
12966
|
+
],
|
|
12967
|
+
"type": {
|
|
12968
|
+
"defined": {
|
|
12969
|
+
"name": "Epoch"
|
|
12970
|
+
}
|
|
12971
|
+
}
|
|
12972
|
+
},
|
|
12973
|
+
{
|
|
12974
|
+
"name": "info",
|
|
12975
|
+
"docs": [
|
|
12976
|
+
"The information about each node."
|
|
12977
|
+
],
|
|
12978
|
+
"type": {
|
|
12979
|
+
"vec": {
|
|
12980
|
+
"defined": {
|
|
12981
|
+
"name": "LeaderInfo"
|
|
12982
|
+
}
|
|
12983
|
+
}
|
|
12984
|
+
}
|
|
12985
|
+
}
|
|
12986
|
+
]
|
|
12987
|
+
}
|
|
12988
|
+
},
|
|
11963
12989
|
{
|
|
11964
12990
|
"name": "LocalCircuitSource",
|
|
11965
12991
|
"type": {
|
|
@@ -12084,7 +13110,40 @@
|
|
|
12084
13110
|
},
|
|
12085
13111
|
{
|
|
12086
13112
|
"name": "bump",
|
|
13113
|
+
"docs": [
|
|
13114
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
13115
|
+
"as the *final* struct field) so it keeps its original offset right after `status`.",
|
|
13116
|
+
"The recovery-reward fields below are appended *after* the bump, leaving the byte layout",
|
|
13117
|
+
"of every field up to and including `bump` identical to the pre-staking `MXEAccount` —",
|
|
13118
|
+
"old deserializers (including external user programs) decode the original prefix and",
|
|
13119
|
+
"harmlessly ignore the trailing fields."
|
|
13120
|
+
],
|
|
12087
13121
|
"type": "u8"
|
|
13122
|
+
},
|
|
13123
|
+
{
|
|
13124
|
+
"name": "current_epoch_recovery_rewards",
|
|
13125
|
+
"docs": [
|
|
13126
|
+
"Running total of recovery-peer rewards accrued during `recovery_rewards_epoch`.",
|
|
13127
|
+
"Fed by the 20% slice of every computation/failure fee processed on this MXE;",
|
|
13128
|
+
"drained to zero by `claim_recovery_peer_fees` when recovery peers settle via",
|
|
13129
|
+
"`arcium_staking::finalize_recovery_epoch_rewards`. Same stale-epoch guard as",
|
|
13130
|
+
"`Cluster::current_epoch_total_rewards` — if peers don't settle before the epoch",
|
|
13131
|
+
"rolls over, new accruals are silently skipped until the pot is drained."
|
|
13132
|
+
],
|
|
13133
|
+
"type": "u64"
|
|
13134
|
+
},
|
|
13135
|
+
{
|
|
13136
|
+
"name": "recovery_rewards_epoch",
|
|
13137
|
+
"docs": [
|
|
13138
|
+
"Epoch that `current_epoch_recovery_rewards` is attributed to. Compared against the",
|
|
13139
|
+
"executing cluster's `last_updated_epoch` (the same proxy used by cluster rewards) to",
|
|
13140
|
+
"decide whether a new accrual is for the current round or a stale one."
|
|
13141
|
+
],
|
|
13142
|
+
"type": {
|
|
13143
|
+
"defined": {
|
|
13144
|
+
"name": "Epoch"
|
|
13145
|
+
}
|
|
13146
|
+
}
|
|
12088
13147
|
}
|
|
12089
13148
|
]
|
|
12090
13149
|
}
|
|
@@ -12419,9 +13478,7 @@
|
|
|
12419
13478
|
"name": "NodeRef",
|
|
12420
13479
|
"docs": [
|
|
12421
13480
|
"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."
|
|
13481
|
+
"The offset is to derive the Node Account."
|
|
12425
13482
|
],
|
|
12426
13483
|
"type": {
|
|
12427
13484
|
"kind": "struct",
|
|
@@ -12431,11 +13488,22 @@
|
|
|
12431
13488
|
"type": "u32"
|
|
12432
13489
|
},
|
|
12433
13490
|
{
|
|
12434
|
-
"name": "
|
|
13491
|
+
"name": "_padding",
|
|
12435
13492
|
"docs": [
|
|
12436
|
-
"
|
|
13493
|
+
"Reserved padding occupying the 8 bytes that previously held `current_total_rewards: u64`",
|
|
13494
|
+
"(per-node reward tracking, now superseded by the cluster-level",
|
|
13495
|
+
"`current_epoch_total_rewards`). We keep these bytes rather than shrinking `NodeRef`",
|
|
13496
|
+
"because `nodes: Vec<NodeRef>` sits in the *middle* of the `Cluster` struct: removing the",
|
|
13497
|
+
"field would change the encoded element size and desync the borsh decode of every field",
|
|
13498
|
+
"after `nodes` for already-deployed accounts and external deserializers. Do not repurpose",
|
|
13499
|
+
"without a full account migration."
|
|
12437
13500
|
],
|
|
12438
|
-
"type":
|
|
13501
|
+
"type": {
|
|
13502
|
+
"array": [
|
|
13503
|
+
"u8",
|
|
13504
|
+
8
|
|
13505
|
+
]
|
|
13506
|
+
}
|
|
12439
13507
|
},
|
|
12440
13508
|
{
|
|
12441
13509
|
"name": "vote",
|
|
@@ -12873,7 +13941,27 @@
|
|
|
12873
13941
|
},
|
|
12874
13942
|
{
|
|
12875
13943
|
"name": "bump",
|
|
13944
|
+
"docs": [
|
|
13945
|
+
"PDA bump. Declared by hand rather than via the `#[bump]` macro (which appends the bump",
|
|
13946
|
+
"as the *final* struct field) so it keeps its original offset (76) right after",
|
|
13947
|
+
"`peer_offset`. `primary_stake_account` is appended *after* the bump, leaving the byte",
|
|
13948
|
+
"layout of every field up to and including `bump` identical to the pre-staking",
|
|
13949
|
+
"`RecoveryPeerAccount` — old deserializers decode the original prefix and harmlessly",
|
|
13950
|
+
"ignore the trailing field."
|
|
13951
|
+
],
|
|
12876
13952
|
"type": "u8"
|
|
13953
|
+
},
|
|
13954
|
+
{
|
|
13955
|
+
"name": "primary_stake_account",
|
|
13956
|
+
"docs": [
|
|
13957
|
+
"The `PrimaryStakingAccount` (owned by `arcium_staking`) this recovery peer is bound",
|
|
13958
|
+
"to. Enforced at init time via an owner check so every recovery peer has skin in the",
|
|
13959
|
+
"game — the same stake-first model we already apply to `ArxNode`. Stored here so",
|
|
13960
|
+
"downstream instructions (and off-chain consumers) can look up the backing stake",
|
|
13961
|
+
"without re-validating the chain of accounts. Appended after `bump` to preserve the",
|
|
13962
|
+
"legacy on-chain layout (see the `bump` field comment)."
|
|
13963
|
+
],
|
|
13964
|
+
"type": "pubkey"
|
|
12877
13965
|
}
|
|
12878
13966
|
]
|
|
12879
13967
|
}
|