@arcium-hq/client 0.6.5 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/index.cjs +209 -78
- package/build/index.d.ts +157 -66
- package/build/index.mjs +208 -80
- package/package.json +1 -1
package/README.md
CHANGED
package/build/index.cjs
CHANGED
|
@@ -1809,7 +1809,7 @@ function createPacker(fields, typeName = 'Packer') {
|
|
|
1809
1809
|
var address = "Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ";
|
|
1810
1810
|
var metadata = {
|
|
1811
1811
|
name: "arcium",
|
|
1812
|
-
version: "0.6.
|
|
1812
|
+
version: "0.6.6",
|
|
1813
1813
|
spec: "0.1.0",
|
|
1814
1814
|
description: "The Arcium program"
|
|
1815
1815
|
};
|
|
@@ -4065,6 +4065,29 @@ var instructions = [
|
|
|
4065
4065
|
]
|
|
4066
4066
|
}
|
|
4067
4067
|
},
|
|
4068
|
+
{
|
|
4069
|
+
name: "cluster_acc",
|
|
4070
|
+
pda: {
|
|
4071
|
+
seeds: [
|
|
4072
|
+
{
|
|
4073
|
+
kind: "const",
|
|
4074
|
+
value: [
|
|
4075
|
+
67,
|
|
4076
|
+
108,
|
|
4077
|
+
117,
|
|
4078
|
+
115,
|
|
4079
|
+
116,
|
|
4080
|
+
101,
|
|
4081
|
+
114
|
|
4082
|
+
]
|
|
4083
|
+
},
|
|
4084
|
+
{
|
|
4085
|
+
kind: "arg",
|
|
4086
|
+
path: "cluster_offset"
|
|
4087
|
+
}
|
|
4088
|
+
]
|
|
4089
|
+
}
|
|
4090
|
+
},
|
|
4068
4091
|
{
|
|
4069
4092
|
name: "executing_pool",
|
|
4070
4093
|
writable: true,
|
|
@@ -4153,6 +4176,17 @@ var instructions = [
|
|
|
4153
4176
|
{
|
|
4154
4177
|
name: "callback_transaction_index",
|
|
4155
4178
|
type: "u8"
|
|
4179
|
+
},
|
|
4180
|
+
{
|
|
4181
|
+
name: "bls_sig",
|
|
4182
|
+
type: {
|
|
4183
|
+
option: {
|
|
4184
|
+
array: [
|
|
4185
|
+
"u8",
|
|
4186
|
+
64
|
|
4187
|
+
]
|
|
4188
|
+
}
|
|
4189
|
+
}
|
|
4156
4190
|
}
|
|
4157
4191
|
]
|
|
4158
4192
|
},
|
|
@@ -5244,6 +5278,17 @@ var instructions = [
|
|
|
5244
5278
|
]
|
|
5245
5279
|
}
|
|
5246
5280
|
},
|
|
5281
|
+
{
|
|
5282
|
+
name: "address_lookup_table",
|
|
5283
|
+
docs: [
|
|
5284
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
5285
|
+
],
|
|
5286
|
+
writable: true
|
|
5287
|
+
},
|
|
5288
|
+
{
|
|
5289
|
+
name: "lut_program",
|
|
5290
|
+
address: "AddressLookupTab1e1111111111111111111111111"
|
|
5291
|
+
},
|
|
5247
5292
|
{
|
|
5248
5293
|
name: "comp_def_acc",
|
|
5249
5294
|
writable: true,
|
|
@@ -5358,6 +5403,11 @@ var instructions = [
|
|
|
5358
5403
|
224
|
|
5359
5404
|
],
|
|
5360
5405
|
accounts: [
|
|
5406
|
+
{
|
|
5407
|
+
name: "authority",
|
|
5408
|
+
writable: true,
|
|
5409
|
+
signer: true
|
|
5410
|
+
},
|
|
5361
5411
|
{
|
|
5362
5412
|
name: "payer",
|
|
5363
5413
|
writable: true,
|
|
@@ -6155,6 +6205,17 @@ var instructions = [
|
|
|
6155
6205
|
]
|
|
6156
6206
|
}
|
|
6157
6207
|
},
|
|
6208
|
+
{
|
|
6209
|
+
name: "address_lookup_table",
|
|
6210
|
+
docs: [
|
|
6211
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
6212
|
+
],
|
|
6213
|
+
writable: true
|
|
6214
|
+
},
|
|
6215
|
+
{
|
|
6216
|
+
name: "lut_program",
|
|
6217
|
+
address: "AddressLookupTab1e1111111111111111111111111"
|
|
6218
|
+
},
|
|
6158
6219
|
{
|
|
6159
6220
|
name: "clock",
|
|
6160
6221
|
writable: true,
|
|
@@ -7137,12 +7198,6 @@ var instructions = [
|
|
|
7137
7198
|
name: "mxe_program",
|
|
7138
7199
|
type: "pubkey"
|
|
7139
7200
|
},
|
|
7140
|
-
{
|
|
7141
|
-
name: "callback_url",
|
|
7142
|
-
type: {
|
|
7143
|
-
option: "string"
|
|
7144
|
-
}
|
|
7145
|
-
},
|
|
7146
7201
|
{
|
|
7147
7202
|
name: "custom_callback_instructions",
|
|
7148
7203
|
type: {
|
|
@@ -7533,16 +7588,16 @@ var instructions = [
|
|
|
7533
7588
|
]
|
|
7534
7589
|
},
|
|
7535
7590
|
{
|
|
7536
|
-
name: "
|
|
7591
|
+
name: "reclaim_failure_rent_idempotent",
|
|
7537
7592
|
discriminator: [
|
|
7538
|
-
|
|
7539
|
-
|
|
7540
|
-
|
|
7541
|
-
|
|
7542
|
-
|
|
7543
|
-
|
|
7544
|
-
|
|
7545
|
-
|
|
7593
|
+
138,
|
|
7594
|
+
13,
|
|
7595
|
+
253,
|
|
7596
|
+
191,
|
|
7597
|
+
226,
|
|
7598
|
+
239,
|
|
7599
|
+
246,
|
|
7600
|
+
10
|
|
7546
7601
|
],
|
|
7547
7602
|
accounts: [
|
|
7548
7603
|
{
|
|
@@ -7550,51 +7605,19 @@ var instructions = [
|
|
|
7550
7605
|
writable: true,
|
|
7551
7606
|
signer: true
|
|
7552
7607
|
},
|
|
7608
|
+
{
|
|
7609
|
+
name: "recipient",
|
|
7610
|
+
docs: [
|
|
7611
|
+
"failure PDA"
|
|
7612
|
+
],
|
|
7613
|
+
writable: true
|
|
7614
|
+
},
|
|
7553
7615
|
{
|
|
7554
7616
|
name: "failure_acc",
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
|
|
7559
|
-
kind: "const",
|
|
7560
|
-
value: [
|
|
7561
|
-
70,
|
|
7562
|
-
97,
|
|
7563
|
-
105,
|
|
7564
|
-
108,
|
|
7565
|
-
117,
|
|
7566
|
-
114,
|
|
7567
|
-
101,
|
|
7568
|
-
67,
|
|
7569
|
-
108,
|
|
7570
|
-
97,
|
|
7571
|
-
105,
|
|
7572
|
-
109,
|
|
7573
|
-
65,
|
|
7574
|
-
99,
|
|
7575
|
-
99,
|
|
7576
|
-
111,
|
|
7577
|
-
117,
|
|
7578
|
-
110,
|
|
7579
|
-
116,
|
|
7580
|
-
72,
|
|
7581
|
-
101,
|
|
7582
|
-
97,
|
|
7583
|
-
100,
|
|
7584
|
-
101,
|
|
7585
|
-
114
|
|
7586
|
-
]
|
|
7587
|
-
},
|
|
7588
|
-
{
|
|
7589
|
-
kind: "arg",
|
|
7590
|
-
path: "mxe_program"
|
|
7591
|
-
},
|
|
7592
|
-
{
|
|
7593
|
-
kind: "arg",
|
|
7594
|
-
path: "comp_offset"
|
|
7595
|
-
}
|
|
7596
|
-
]
|
|
7597
|
-
}
|
|
7617
|
+
docs: [
|
|
7618
|
+
"the checks and close by hand in the instruction handler."
|
|
7619
|
+
],
|
|
7620
|
+
writable: true
|
|
7598
7621
|
}
|
|
7599
7622
|
],
|
|
7600
7623
|
args: [
|
|
@@ -9691,6 +9714,19 @@ var events = [
|
|
|
9691
9714
|
186
|
|
9692
9715
|
]
|
|
9693
9716
|
},
|
|
9717
|
+
{
|
|
9718
|
+
name: "KeyRecoveryEvent",
|
|
9719
|
+
discriminator: [
|
|
9720
|
+
83,
|
|
9721
|
+
147,
|
|
9722
|
+
226,
|
|
9723
|
+
153,
|
|
9724
|
+
39,
|
|
9725
|
+
242,
|
|
9726
|
+
109,
|
|
9727
|
+
254
|
|
9728
|
+
]
|
|
9729
|
+
},
|
|
9694
9730
|
{
|
|
9695
9731
|
name: "QueueComputationEvent",
|
|
9696
9732
|
discriminator: [
|
|
@@ -9831,6 +9867,11 @@ var errors = [
|
|
|
9831
9867
|
name: "InvalidCallbackIndex",
|
|
9832
9868
|
msg: "Invalid callback transaction index"
|
|
9833
9869
|
},
|
|
9870
|
+
{
|
|
9871
|
+
code: 6212,
|
|
9872
|
+
name: "MultiTxCallbacksDisabled",
|
|
9873
|
+
msg: "Multi-transaction callbacks disabled"
|
|
9874
|
+
},
|
|
9834
9875
|
{
|
|
9835
9876
|
code: 6300,
|
|
9836
9877
|
name: "ComputationDefinitionNotCompleted",
|
|
@@ -10150,6 +10191,11 @@ var errors = [
|
|
|
10150
10191
|
code: 6715,
|
|
10151
10192
|
name: "ArithmeticOverflow",
|
|
10152
10193
|
msg: "Arithmetic overflow"
|
|
10194
|
+
},
|
|
10195
|
+
{
|
|
10196
|
+
code: 6716,
|
|
10197
|
+
name: "MxeInRecoveryState",
|
|
10198
|
+
msg: "MXE is in recovery state, cannot queue new computations"
|
|
10153
10199
|
}
|
|
10154
10200
|
];
|
|
10155
10201
|
var types = [
|
|
@@ -10992,12 +11038,6 @@ var types = [
|
|
|
10992
11038
|
}
|
|
10993
11039
|
}
|
|
10994
11040
|
},
|
|
10995
|
-
{
|
|
10996
|
-
name: "callback_url",
|
|
10997
|
-
type: {
|
|
10998
|
-
option: "string"
|
|
10999
|
-
}
|
|
11000
|
-
},
|
|
11001
11041
|
{
|
|
11002
11042
|
name: "custom_callback_instructions",
|
|
11003
11043
|
type: {
|
|
@@ -11477,6 +11517,26 @@ var types = [
|
|
|
11477
11517
|
]
|
|
11478
11518
|
}
|
|
11479
11519
|
},
|
|
11520
|
+
{
|
|
11521
|
+
name: "KeyRecoveryEvent",
|
|
11522
|
+
type: {
|
|
11523
|
+
kind: "struct",
|
|
11524
|
+
fields: [
|
|
11525
|
+
{
|
|
11526
|
+
name: "computation_offset",
|
|
11527
|
+
type: "u64"
|
|
11528
|
+
},
|
|
11529
|
+
{
|
|
11530
|
+
name: "mxe_program_id",
|
|
11531
|
+
type: "pubkey"
|
|
11532
|
+
},
|
|
11533
|
+
{
|
|
11534
|
+
name: "backup_mxe_program_id",
|
|
11535
|
+
type: "pubkey"
|
|
11536
|
+
}
|
|
11537
|
+
]
|
|
11538
|
+
}
|
|
11539
|
+
},
|
|
11480
11540
|
{
|
|
11481
11541
|
name: "LargeExecPool",
|
|
11482
11542
|
serialization: "bytemuckunsafe",
|
|
@@ -13055,6 +13115,11 @@ const RECOVERY_CLUSTER_ACC_SEED = 'RecoveryClusterAccount';
|
|
|
13055
13115
|
* @constant {string}
|
|
13056
13116
|
*/
|
|
13057
13117
|
const MXE_RECOVERY_ACC_SEED = 'MxeRecoveryAccount';
|
|
13118
|
+
/**
|
|
13119
|
+
* Seed for ComputationDefinitionRaw PDA
|
|
13120
|
+
* @constant {string}
|
|
13121
|
+
*/
|
|
13122
|
+
const RAW_CIRCUIT_ACC_SEED = 'ComputationDefinitionRaw';
|
|
13058
13123
|
/**
|
|
13059
13124
|
* Maximum number of bytes that can be reallocated per instruction.
|
|
13060
13125
|
* @constant {number}
|
|
@@ -13214,6 +13279,32 @@ function getMxeRecoveryAccAddress(backupMxeProgramId, originalMxeProgramId) {
|
|
|
13214
13279
|
];
|
|
13215
13280
|
return generateArciumPDAFrom(seeds)[0];
|
|
13216
13281
|
}
|
|
13282
|
+
/**
|
|
13283
|
+
* Derives the raw circuit account address for a given computation definition and index.
|
|
13284
|
+
* @param compDefPubkey - The public key of the computation definition account.
|
|
13285
|
+
* @param rawCircuitIndex - The index of the raw circuit account (0-based).
|
|
13286
|
+
* @returns The derived raw circuit account public key.
|
|
13287
|
+
*/
|
|
13288
|
+
function getRawCircuitAccAddress(compDefPubkey, rawCircuitIndex) {
|
|
13289
|
+
const seeds = [
|
|
13290
|
+
Buffer.from(RAW_CIRCUIT_ACC_SEED),
|
|
13291
|
+
compDefPubkey.toBuffer(),
|
|
13292
|
+
Buffer.from([rawCircuitIndex]),
|
|
13293
|
+
];
|
|
13294
|
+
return generateArciumPDAFrom(seeds)[0];
|
|
13295
|
+
}
|
|
13296
|
+
/**
|
|
13297
|
+
* Derives the address lookup table address for an MXE program.
|
|
13298
|
+
* @param mxeProgramId - The public key of the MXE program.
|
|
13299
|
+
* @param lutIndex - The index of the lookup table (defaults to 0).
|
|
13300
|
+
* @returns The derived address lookup table public key.
|
|
13301
|
+
*/
|
|
13302
|
+
function getLookupTableAddress(mxeProgramId, lutIndex = 0) {
|
|
13303
|
+
const mxeAccount = getMXEAccAddress(mxeProgramId);
|
|
13304
|
+
const lutIndexBuffer = new anchor__namespace.BN(lutIndex).toArrayLike(Buffer, 'le', 8);
|
|
13305
|
+
const seeds = [mxeAccount.toBuffer(), lutIndexBuffer];
|
|
13306
|
+
return web3_js.PublicKey.findProgramAddressSync(seeds, web3_js.AddressLookupTableProgram.programId)[0];
|
|
13307
|
+
}
|
|
13217
13308
|
/**
|
|
13218
13309
|
* Generates a program-derived address (PDA) from the provided seeds and the Arcium program ID.
|
|
13219
13310
|
* @param seeds - An array of Buffer seeds used for PDA derivation.
|
|
@@ -13466,6 +13557,21 @@ async function getMXEPublicKey(provider, mxeProgramId) {
|
|
|
13466
13557
|
async function getMXEArcisEd25519VerifyingKey(provider, mxeProgramId) {
|
|
13467
13558
|
return getMXEUtilityKey(provider, mxeProgramId, 'ed25519VerifyingKey');
|
|
13468
13559
|
}
|
|
13560
|
+
/**
|
|
13561
|
+
* Determines the current state of a circuit based on its on-chain configuration.
|
|
13562
|
+
* @internal Called internally by `uploadCircuit` - most users don't need this directly.
|
|
13563
|
+
* @param circuitSource - The circuitSource field from ComputationDefinitionAccount.
|
|
13564
|
+
* @returns The current state of the circuit.
|
|
13565
|
+
*/
|
|
13566
|
+
function getCircuitState(circuitSource) {
|
|
13567
|
+
if (!('onChain' in circuitSource) || !circuitSource.onChain) {
|
|
13568
|
+
return 'Offchain';
|
|
13569
|
+
}
|
|
13570
|
+
if (circuitSource.onChain[0].isCompleted) {
|
|
13571
|
+
return 'OnchainFinalized';
|
|
13572
|
+
}
|
|
13573
|
+
return 'OnchainPending';
|
|
13574
|
+
}
|
|
13469
13575
|
/**
|
|
13470
13576
|
* Uploads a circuit to the blockchain, splitting it into multiple accounts if necessary.
|
|
13471
13577
|
* @param provider - The Anchor provider to use for transactions.
|
|
@@ -13477,10 +13583,17 @@ async function getMXEArcisEd25519VerifyingKey(provider, mxeProgramId) {
|
|
|
13477
13583
|
* @returns An array of transaction signatures for all upload and finalize transactions.
|
|
13478
13584
|
*/
|
|
13479
13585
|
async function uploadCircuit(provider, circuitName, mxeProgramId, rawCircuit, logging = true, chunkSize = 500) {
|
|
13480
|
-
// 9 = 8-byte discriminator + 1-byte bump for ComputationDefinitionRaw account
|
|
13481
|
-
const numAccs = Math.ceil(rawCircuit.length / (MAX_ACCOUNT_SIZE - 9));
|
|
13482
13586
|
const compDefAccInfo = getCompDefAccInfo(circuitName, mxeProgramId);
|
|
13483
13587
|
const program = getArciumProgram(provider);
|
|
13588
|
+
const compDefAcc = await program.account.computationDefinitionAccount.fetch(compDefAccInfo.pubkey);
|
|
13589
|
+
// Type assertion at boundary where Anchor's fetch() returns the account data
|
|
13590
|
+
const state = getCircuitState(compDefAcc.circuitSource);
|
|
13591
|
+
if (state !== 'OnchainPending') {
|
|
13592
|
+
optionalLog(logging, `Circuit ${circuitName} skipped: ${state}`);
|
|
13593
|
+
return [];
|
|
13594
|
+
}
|
|
13595
|
+
// 9 = 8-byte discriminator + 1-byte bump for ComputationDefinitionRaw account
|
|
13596
|
+
const numAccs = Math.ceil(rawCircuit.length / (MAX_ACCOUNT_SIZE - 9));
|
|
13484
13597
|
const sigs = [];
|
|
13485
13598
|
const uploadPromises = [];
|
|
13486
13599
|
for (let i = 0; i < numAccs; i++) {
|
|
@@ -13523,15 +13636,26 @@ async function buildFinalizeCompDefTx(provider, compDefOffset, mxeProgramId) {
|
|
|
13523
13636
|
.transaction();
|
|
13524
13637
|
}
|
|
13525
13638
|
async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitIndex, compDefAccInfo, mxeProgramId, shouldLog = true, chunkSize = 500) {
|
|
13639
|
+
const rawCircuitPda = getRawCircuitAccAddress(compDefAccInfo.pubkey, rawCircuitIndex);
|
|
13640
|
+
const existingAcc = await provider.connection.getAccountInfo(rawCircuitPda);
|
|
13641
|
+
// Skip entirely if account exists with correct size (pre-seeded at genesis or already uploaded)
|
|
13642
|
+
// Account layout: 8-byte discriminator + 1-byte bump + circuit data
|
|
13643
|
+
const requiredAccountSize = rawCircuitPart.length + 9;
|
|
13644
|
+
if (existingAcc !== null && existingAcc.data.length >= requiredAccountSize) {
|
|
13645
|
+
optionalLog(shouldLog, `Raw circuit acc ${rawCircuitIndex} already exists with sufficient size, skipping`);
|
|
13646
|
+
return [];
|
|
13647
|
+
}
|
|
13526
13648
|
const sigs = [];
|
|
13527
|
-
|
|
13528
|
-
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
|
|
13649
|
+
if (existingAcc === null) {
|
|
13650
|
+
const initTx = await program.methods
|
|
13651
|
+
.initRawCircuitAcc(compDefAccInfo.offset, mxeProgramId, rawCircuitIndex)
|
|
13652
|
+
.accounts({
|
|
13653
|
+
signer: provider.publicKey,
|
|
13654
|
+
})
|
|
13655
|
+
.rpc();
|
|
13656
|
+
optionalLog(shouldLog, `Initiated raw circuit acc with raw circuit index ${rawCircuitIndex}`);
|
|
13657
|
+
sigs.push(initTx);
|
|
13658
|
+
}
|
|
13535
13659
|
if (rawCircuitPart.length > MAX_REALLOC_PER_IX) {
|
|
13536
13660
|
// We only need to add size if the init didn't already make us big enough
|
|
13537
13661
|
const nonAsyncTxCount = Math.ceil(rawCircuitPart.length / (MAX_REALLOC_PER_IX * MAX_EMBIGGEN_IX_PER_TX));
|
|
@@ -13556,8 +13680,10 @@ async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitI
|
|
|
13556
13680
|
const blockInfo = await provider.connection.getLatestBlockhash();
|
|
13557
13681
|
for (let i = 0; i < remainingTxCount; i += chunkSize) {
|
|
13558
13682
|
optionalLog(shouldLog, `Sending chunk ${i / chunkSize + 1} of ${Math.ceil(remainingTxCount / chunkSize)}`);
|
|
13559
|
-
|
|
13560
|
-
const
|
|
13683
|
+
// Array to hold promises for the current chunk
|
|
13684
|
+
const chunkPromises = [];
|
|
13685
|
+
// Handle the last chunk
|
|
13686
|
+
const currentChunkSize = Math.min(chunkSize, remainingTxCount - i);
|
|
13561
13687
|
for (let j = 0; j < currentChunkSize; j++) {
|
|
13562
13688
|
const offset = MAX_UPLOAD_PER_TX_BYTES * (i + j);
|
|
13563
13689
|
// eslint-disable-next-line no-await-in-loop
|
|
@@ -13567,7 +13693,8 @@ async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitI
|
|
|
13567
13693
|
// Wait for the current chunk to complete before proceeding
|
|
13568
13694
|
// eslint-disable-next-line no-await-in-loop
|
|
13569
13695
|
const chunkResults = await Promise.all(chunkPromises);
|
|
13570
|
-
|
|
13696
|
+
// Add the results of the current chunk to the main array
|
|
13697
|
+
remainingTxs.push(...chunkResults);
|
|
13571
13698
|
optionalLog(shouldLog, `Done sending chunk ${i / chunkSize + 1} of ${Math.ceil(remainingTxCount / chunkSize)}`);
|
|
13572
13699
|
}
|
|
13573
13700
|
return sigs.concat(remainingTxs);
|
|
@@ -13817,6 +13944,7 @@ async function initMxePart2(provider, clusterOffset, mxeProgramId, recoveryPeers
|
|
|
13817
13944
|
mxeProgram: mxeProgramId,
|
|
13818
13945
|
poolAccount: getFeePoolAccAddress(),
|
|
13819
13946
|
mxeAuthority: mxeAuthority ?? provider.publicKey,
|
|
13947
|
+
addressLookupTable: getLookupTableAddress(mxeProgramId),
|
|
13820
13948
|
})
|
|
13821
13949
|
.transaction();
|
|
13822
13950
|
return signAndSendWithBlockhash(provider, tx, await provider.connection.getLatestBlockhash({ commitment: 'confirmed' }));
|
|
@@ -13913,6 +14041,7 @@ exports.getArciumEnv = getArciumEnv;
|
|
|
13913
14041
|
exports.getArciumProgram = getArciumProgram;
|
|
13914
14042
|
exports.getArciumProgramId = getArciumProgramId;
|
|
13915
14043
|
exports.getArxNodeAccAddress = getArxNodeAccAddress;
|
|
14044
|
+
exports.getCircuitState = getCircuitState;
|
|
13916
14045
|
exports.getClockAccAddress = getClockAccAddress;
|
|
13917
14046
|
exports.getClusterAccAddress = getClusterAccAddress;
|
|
13918
14047
|
exports.getCompDefAccAddress = getCompDefAccAddress;
|
|
@@ -13922,6 +14051,7 @@ exports.getComputationsInMempool = getComputationsInMempool;
|
|
|
13922
14051
|
exports.getExecutingPoolAccAddress = getExecutingPoolAccAddress;
|
|
13923
14052
|
exports.getExecutingPoolAccInfo = getExecutingPoolAccInfo;
|
|
13924
14053
|
exports.getFeePoolAccAddress = getFeePoolAccAddress;
|
|
14054
|
+
exports.getLookupTableAddress = getLookupTableAddress;
|
|
13925
14055
|
exports.getMXEAccAddress = getMXEAccAddress;
|
|
13926
14056
|
exports.getMXEArcisEd25519VerifyingKey = getMXEArcisEd25519VerifyingKey;
|
|
13927
14057
|
exports.getMXEPublicKey = getMXEPublicKey;
|
|
@@ -13929,6 +14059,7 @@ exports.getMempoolAccAddress = getMempoolAccAddress;
|
|
|
13929
14059
|
exports.getMempoolAccInfo = getMempoolAccInfo;
|
|
13930
14060
|
exports.getMempoolPriorityFeeStats = getMempoolPriorityFeeStats;
|
|
13931
14061
|
exports.getMxeRecoveryAccAddress = getMxeRecoveryAccAddress;
|
|
14062
|
+
exports.getRawCircuitAccAddress = getRawCircuitAccAddress;
|
|
13932
14063
|
exports.getRecoveryClusterAccAddress = getRecoveryClusterAccAddress;
|
|
13933
14064
|
exports.initKeyRecoveryExecution = initKeyRecoveryExecution;
|
|
13934
14065
|
exports.initMxePart1 = initMxePart1;
|
package/build/index.d.ts
CHANGED
|
@@ -456,7 +456,7 @@ type Arcium = {
|
|
|
456
456
|
"address": "Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ";
|
|
457
457
|
"metadata": {
|
|
458
458
|
"name": "arcium";
|
|
459
|
-
"version": "0.6.
|
|
459
|
+
"version": "0.6.6";
|
|
460
460
|
"spec": "0.1.0";
|
|
461
461
|
"description": "The Arcium program";
|
|
462
462
|
};
|
|
@@ -2711,6 +2711,29 @@ type Arcium = {
|
|
|
2711
2711
|
];
|
|
2712
2712
|
};
|
|
2713
2713
|
},
|
|
2714
|
+
{
|
|
2715
|
+
"name": "clusterAcc";
|
|
2716
|
+
"pda": {
|
|
2717
|
+
"seeds": [
|
|
2718
|
+
{
|
|
2719
|
+
"kind": "const";
|
|
2720
|
+
"value": [
|
|
2721
|
+
67,
|
|
2722
|
+
108,
|
|
2723
|
+
117,
|
|
2724
|
+
115,
|
|
2725
|
+
116,
|
|
2726
|
+
101,
|
|
2727
|
+
114
|
|
2728
|
+
];
|
|
2729
|
+
},
|
|
2730
|
+
{
|
|
2731
|
+
"kind": "arg";
|
|
2732
|
+
"path": "clusterOffset";
|
|
2733
|
+
}
|
|
2734
|
+
];
|
|
2735
|
+
};
|
|
2736
|
+
},
|
|
2714
2737
|
{
|
|
2715
2738
|
"name": "executingPool";
|
|
2716
2739
|
"writable": true;
|
|
@@ -2799,6 +2822,17 @@ type Arcium = {
|
|
|
2799
2822
|
{
|
|
2800
2823
|
"name": "callbackTransactionIndex";
|
|
2801
2824
|
"type": "u8";
|
|
2825
|
+
},
|
|
2826
|
+
{
|
|
2827
|
+
"name": "blsSig";
|
|
2828
|
+
"type": {
|
|
2829
|
+
"option": {
|
|
2830
|
+
"array": [
|
|
2831
|
+
"u8",
|
|
2832
|
+
64
|
|
2833
|
+
];
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2802
2836
|
}
|
|
2803
2837
|
];
|
|
2804
2838
|
},
|
|
@@ -3890,6 +3924,17 @@ type Arcium = {
|
|
|
3890
3924
|
];
|
|
3891
3925
|
};
|
|
3892
3926
|
},
|
|
3927
|
+
{
|
|
3928
|
+
"name": "addressLookupTable";
|
|
3929
|
+
"docs": [
|
|
3930
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
3931
|
+
];
|
|
3932
|
+
"writable": true;
|
|
3933
|
+
},
|
|
3934
|
+
{
|
|
3935
|
+
"name": "lutProgram";
|
|
3936
|
+
"address": "AddressLookupTab1e1111111111111111111111111";
|
|
3937
|
+
},
|
|
3893
3938
|
{
|
|
3894
3939
|
"name": "compDefAcc";
|
|
3895
3940
|
"writable": true;
|
|
@@ -4004,6 +4049,11 @@ type Arcium = {
|
|
|
4004
4049
|
224
|
|
4005
4050
|
];
|
|
4006
4051
|
"accounts": [
|
|
4052
|
+
{
|
|
4053
|
+
"name": "authority";
|
|
4054
|
+
"writable": true;
|
|
4055
|
+
"signer": true;
|
|
4056
|
+
},
|
|
4007
4057
|
{
|
|
4008
4058
|
"name": "payer";
|
|
4009
4059
|
"writable": true;
|
|
@@ -4800,6 +4850,17 @@ type Arcium = {
|
|
|
4800
4850
|
];
|
|
4801
4851
|
};
|
|
4802
4852
|
},
|
|
4853
|
+
{
|
|
4854
|
+
"name": "addressLookupTable";
|
|
4855
|
+
"docs": [
|
|
4856
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
4857
|
+
];
|
|
4858
|
+
"writable": true;
|
|
4859
|
+
},
|
|
4860
|
+
{
|
|
4861
|
+
"name": "lutProgram";
|
|
4862
|
+
"address": "AddressLookupTab1e1111111111111111111111111";
|
|
4863
|
+
},
|
|
4803
4864
|
{
|
|
4804
4865
|
"name": "clock";
|
|
4805
4866
|
"writable": true;
|
|
@@ -5782,12 +5843,6 @@ type Arcium = {
|
|
|
5782
5843
|
"name": "mxeProgram";
|
|
5783
5844
|
"type": "pubkey";
|
|
5784
5845
|
},
|
|
5785
|
-
{
|
|
5786
|
-
"name": "callbackUrl";
|
|
5787
|
-
"type": {
|
|
5788
|
-
"option": "string";
|
|
5789
|
-
};
|
|
5790
|
-
},
|
|
5791
5846
|
{
|
|
5792
5847
|
"name": "customCallbackInstructions";
|
|
5793
5848
|
"type": {
|
|
@@ -6178,16 +6233,16 @@ type Arcium = {
|
|
|
6178
6233
|
];
|
|
6179
6234
|
},
|
|
6180
6235
|
{
|
|
6181
|
-
"name": "
|
|
6236
|
+
"name": "reclaimFailureRentIdempotent";
|
|
6182
6237
|
"discriminator": [
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
|
|
6187
|
-
|
|
6188
|
-
|
|
6189
|
-
|
|
6190
|
-
|
|
6238
|
+
138,
|
|
6239
|
+
13,
|
|
6240
|
+
253,
|
|
6241
|
+
191,
|
|
6242
|
+
226,
|
|
6243
|
+
239,
|
|
6244
|
+
246,
|
|
6245
|
+
10
|
|
6191
6246
|
];
|
|
6192
6247
|
"accounts": [
|
|
6193
6248
|
{
|
|
@@ -6195,51 +6250,19 @@ type Arcium = {
|
|
|
6195
6250
|
"writable": true;
|
|
6196
6251
|
"signer": true;
|
|
6197
6252
|
},
|
|
6253
|
+
{
|
|
6254
|
+
"name": "recipient";
|
|
6255
|
+
"docs": [
|
|
6256
|
+
"failure PDA"
|
|
6257
|
+
];
|
|
6258
|
+
"writable": true;
|
|
6259
|
+
},
|
|
6198
6260
|
{
|
|
6199
6261
|
"name": "failureAcc";
|
|
6262
|
+
"docs": [
|
|
6263
|
+
"the checks and close by hand in the instruction handler."
|
|
6264
|
+
];
|
|
6200
6265
|
"writable": true;
|
|
6201
|
-
"pda": {
|
|
6202
|
-
"seeds": [
|
|
6203
|
-
{
|
|
6204
|
-
"kind": "const";
|
|
6205
|
-
"value": [
|
|
6206
|
-
70,
|
|
6207
|
-
97,
|
|
6208
|
-
105,
|
|
6209
|
-
108,
|
|
6210
|
-
117,
|
|
6211
|
-
114,
|
|
6212
|
-
101,
|
|
6213
|
-
67,
|
|
6214
|
-
108,
|
|
6215
|
-
97,
|
|
6216
|
-
105,
|
|
6217
|
-
109,
|
|
6218
|
-
65,
|
|
6219
|
-
99,
|
|
6220
|
-
99,
|
|
6221
|
-
111,
|
|
6222
|
-
117,
|
|
6223
|
-
110,
|
|
6224
|
-
116,
|
|
6225
|
-
72,
|
|
6226
|
-
101,
|
|
6227
|
-
97,
|
|
6228
|
-
100,
|
|
6229
|
-
101,
|
|
6230
|
-
114
|
|
6231
|
-
];
|
|
6232
|
-
},
|
|
6233
|
-
{
|
|
6234
|
-
"kind": "arg";
|
|
6235
|
-
"path": "mxeProgram";
|
|
6236
|
-
},
|
|
6237
|
-
{
|
|
6238
|
-
"kind": "arg";
|
|
6239
|
-
"path": "compOffset";
|
|
6240
|
-
}
|
|
6241
|
-
];
|
|
6242
|
-
};
|
|
6243
6266
|
}
|
|
6244
6267
|
];
|
|
6245
6268
|
"args": [
|
|
@@ -8335,6 +8358,19 @@ type Arcium = {
|
|
|
8335
8358
|
186
|
|
8336
8359
|
];
|
|
8337
8360
|
},
|
|
8361
|
+
{
|
|
8362
|
+
"name": "keyRecoveryEvent";
|
|
8363
|
+
"discriminator": [
|
|
8364
|
+
83,
|
|
8365
|
+
147,
|
|
8366
|
+
226,
|
|
8367
|
+
153,
|
|
8368
|
+
39,
|
|
8369
|
+
242,
|
|
8370
|
+
109,
|
|
8371
|
+
254
|
|
8372
|
+
];
|
|
8373
|
+
},
|
|
8338
8374
|
{
|
|
8339
8375
|
"name": "queueComputationEvent";
|
|
8340
8376
|
"discriminator": [
|
|
@@ -8475,6 +8511,11 @@ type Arcium = {
|
|
|
8475
8511
|
"name": "invalidCallbackIndex";
|
|
8476
8512
|
"msg": "Invalid callback transaction index";
|
|
8477
8513
|
},
|
|
8514
|
+
{
|
|
8515
|
+
"code": 6212;
|
|
8516
|
+
"name": "multiTxCallbacksDisabled";
|
|
8517
|
+
"msg": "Multi-transaction callbacks disabled";
|
|
8518
|
+
},
|
|
8478
8519
|
{
|
|
8479
8520
|
"code": 6300;
|
|
8480
8521
|
"name": "computationDefinitionNotCompleted";
|
|
@@ -8794,6 +8835,11 @@ type Arcium = {
|
|
|
8794
8835
|
"code": 6715;
|
|
8795
8836
|
"name": "arithmeticOverflow";
|
|
8796
8837
|
"msg": "Arithmetic overflow";
|
|
8838
|
+
},
|
|
8839
|
+
{
|
|
8840
|
+
"code": 6716;
|
|
8841
|
+
"name": "mxeInRecoveryState";
|
|
8842
|
+
"msg": "MXE is in recovery state, cannot queue new computations";
|
|
8797
8843
|
}
|
|
8798
8844
|
];
|
|
8799
8845
|
"types": [
|
|
@@ -9636,12 +9682,6 @@ type Arcium = {
|
|
|
9636
9682
|
};
|
|
9637
9683
|
};
|
|
9638
9684
|
},
|
|
9639
|
-
{
|
|
9640
|
-
"name": "callbackUrl";
|
|
9641
|
-
"type": {
|
|
9642
|
-
"option": "string";
|
|
9643
|
-
};
|
|
9644
|
-
},
|
|
9645
9685
|
{
|
|
9646
9686
|
"name": "customCallbackInstructions";
|
|
9647
9687
|
"type": {
|
|
@@ -10121,6 +10161,26 @@ type Arcium = {
|
|
|
10121
10161
|
];
|
|
10122
10162
|
};
|
|
10123
10163
|
},
|
|
10164
|
+
{
|
|
10165
|
+
"name": "keyRecoveryEvent";
|
|
10166
|
+
"type": {
|
|
10167
|
+
"kind": "struct";
|
|
10168
|
+
"fields": [
|
|
10169
|
+
{
|
|
10170
|
+
"name": "computationOffset";
|
|
10171
|
+
"type": "u64";
|
|
10172
|
+
},
|
|
10173
|
+
{
|
|
10174
|
+
"name": "mxeProgramId";
|
|
10175
|
+
"type": "pubkey";
|
|
10176
|
+
},
|
|
10177
|
+
{
|
|
10178
|
+
"name": "backupMxeProgramId";
|
|
10179
|
+
"type": "pubkey";
|
|
10180
|
+
}
|
|
10181
|
+
];
|
|
10182
|
+
};
|
|
10183
|
+
},
|
|
10124
10184
|
{
|
|
10125
10185
|
"name": "largeExecPool";
|
|
10126
10186
|
"serialization": "bytemuckunsafe";
|
|
@@ -11655,6 +11715,11 @@ type MempoolAccount = anchor.IdlTypes<Arcium>['tinyMempool'] | anchor.IdlTypes<A
|
|
|
11655
11715
|
* - Large: 100 parallel computations
|
|
11656
11716
|
*/
|
|
11657
11717
|
type ExecutingPoolAccount = anchor.IdlTypes<Arcium>['tinyExecPool'] | anchor.IdlTypes<Arcium>['smallExecPool'] | anchor.IdlTypes<Arcium>['mediumExecPool'] | anchor.IdlTypes<Arcium>['largeExecPool'];
|
|
11718
|
+
/**
|
|
11719
|
+
* IDL-generated type for circuit source location.
|
|
11720
|
+
* Discriminated union with variants: local, onChain, offChain.
|
|
11721
|
+
*/
|
|
11722
|
+
type CircuitSource = anchor.IdlTypes<Arcium>['circuitSource'];
|
|
11658
11723
|
/**
|
|
11659
11724
|
* Fetches and decodes the mempool account info for any mempool account size.
|
|
11660
11725
|
* @param provider - The Anchor provider to use for fetching accounts.
|
|
@@ -11715,6 +11780,18 @@ declare function getMXEPublicKey(provider: AnchorProvider, mxeProgramId: anchor.
|
|
|
11715
11780
|
* @returns The MXE's arcis ed25519 verifying key as a Uint8Array, or null if not set.
|
|
11716
11781
|
*/
|
|
11717
11782
|
declare function getMXEArcisEd25519VerifyingKey(provider: AnchorProvider, mxeProgramId: anchor.web3.PublicKey): Promise<Uint8Array | null>;
|
|
11783
|
+
/**
|
|
11784
|
+
* Represents the current state of a circuit's on-chain presence.
|
|
11785
|
+
* @internal Used by `uploadCircuit` - most users don't need this directly.
|
|
11786
|
+
*/
|
|
11787
|
+
type CircuitState = 'OnchainPending' | 'OnchainFinalized' | 'Offchain';
|
|
11788
|
+
/**
|
|
11789
|
+
* Determines the current state of a circuit based on its on-chain configuration.
|
|
11790
|
+
* @internal Called internally by `uploadCircuit` - most users don't need this directly.
|
|
11791
|
+
* @param circuitSource - The circuitSource field from ComputationDefinitionAccount.
|
|
11792
|
+
* @returns The current state of the circuit.
|
|
11793
|
+
*/
|
|
11794
|
+
declare function getCircuitState(circuitSource: CircuitSource): CircuitState;
|
|
11718
11795
|
/**
|
|
11719
11796
|
* Uploads a circuit to the blockchain, splitting it into multiple accounts if necessary.
|
|
11720
11797
|
* @param provider - The Anchor provider to use for transactions.
|
|
@@ -11919,6 +11996,20 @@ declare function getRecoveryClusterAccAddress(mxeProgramId: PublicKey): PublicKe
|
|
|
11919
11996
|
* @returns The derived MXE recovery account public key.
|
|
11920
11997
|
*/
|
|
11921
11998
|
declare function getMxeRecoveryAccAddress(backupMxeProgramId: PublicKey, originalMxeProgramId: PublicKey): PublicKey;
|
|
11999
|
+
/**
|
|
12000
|
+
* Derives the raw circuit account address for a given computation definition and index.
|
|
12001
|
+
* @param compDefPubkey - The public key of the computation definition account.
|
|
12002
|
+
* @param rawCircuitIndex - The index of the raw circuit account (0-based).
|
|
12003
|
+
* @returns The derived raw circuit account public key.
|
|
12004
|
+
*/
|
|
12005
|
+
declare function getRawCircuitAccAddress(compDefPubkey: PublicKey, rawCircuitIndex: number): PublicKey;
|
|
12006
|
+
/**
|
|
12007
|
+
* Derives the address lookup table address for an MXE program.
|
|
12008
|
+
* @param mxeProgramId - The public key of the MXE program.
|
|
12009
|
+
* @param lutIndex - The index of the lookup table (defaults to 0).
|
|
12010
|
+
* @returns The derived address lookup table public key.
|
|
12011
|
+
*/
|
|
12012
|
+
declare function getLookupTableAddress(mxeProgramId: PublicKey, lutIndex?: number): PublicKey;
|
|
11922
12013
|
|
|
11923
|
-
export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, createPacker, deserializeLE, finalizeKeyRecoveryExecution, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRecoveryClusterAccAddress, initKeyRecoveryExecution, initMxePart1, initMxePart2, isNullRef, positiveModulo, queueKeyRecoveryInit, randMatrix, recoverMxe, serializeLE, sha256, submitKeyRecoveryShare, toVec, uploadCircuit };
|
|
11924
|
-
export type { Arcium as ArciumIdlType, ArciumLocalEnv, ComputationErrorType, ComputationReference, ExecutingPoolAccount, FieldInfo, FpField, MempoolAccount, MempoolPriorityFeeStats, Packer };
|
|
12014
|
+
export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, createPacker, deserializeLE, finalizeKeyRecoveryExecution, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getCircuitState, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getLookupTableAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRawCircuitAccAddress, getRecoveryClusterAccAddress, initKeyRecoveryExecution, initMxePart1, initMxePart2, isNullRef, positiveModulo, queueKeyRecoveryInit, randMatrix, recoverMxe, serializeLE, sha256, submitKeyRecoveryShare, toVec, uploadCircuit };
|
|
12015
|
+
export type { Arcium as ArciumIdlType, ArciumLocalEnv, CircuitSource, CircuitState, ComputationErrorType, ComputationReference, ExecutingPoolAccount, FieldInfo, FpField, MempoolAccount, MempoolPriorityFeeStats, Packer };
|
package/build/index.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { Program, EventManager } from '@coral-xyz/anchor';
|
|
|
8
8
|
import { randomBytes as randomBytes$1 } from '@noble/hashes/utils';
|
|
9
9
|
import { twistedEdwards } from '@noble/curves/abstract/edwards';
|
|
10
10
|
import fs from 'fs';
|
|
11
|
-
import { PublicKey } from '@solana/web3.js';
|
|
11
|
+
import { PublicKey, AddressLookupTableProgram } from '@solana/web3.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Scalar field prime modulus for Curve25519: 2^252 + 27742317777372353535851937790883648493
|
|
@@ -1790,7 +1790,7 @@ function createPacker(fields, typeName = 'Packer') {
|
|
|
1790
1790
|
var address = "Arcj82pX7HxYKLR92qvgZUAd7vGS1k4hQvAFcPATFdEQ";
|
|
1791
1791
|
var metadata = {
|
|
1792
1792
|
name: "arcium",
|
|
1793
|
-
version: "0.6.
|
|
1793
|
+
version: "0.6.6",
|
|
1794
1794
|
spec: "0.1.0",
|
|
1795
1795
|
description: "The Arcium program"
|
|
1796
1796
|
};
|
|
@@ -4046,6 +4046,29 @@ var instructions = [
|
|
|
4046
4046
|
]
|
|
4047
4047
|
}
|
|
4048
4048
|
},
|
|
4049
|
+
{
|
|
4050
|
+
name: "cluster_acc",
|
|
4051
|
+
pda: {
|
|
4052
|
+
seeds: [
|
|
4053
|
+
{
|
|
4054
|
+
kind: "const",
|
|
4055
|
+
value: [
|
|
4056
|
+
67,
|
|
4057
|
+
108,
|
|
4058
|
+
117,
|
|
4059
|
+
115,
|
|
4060
|
+
116,
|
|
4061
|
+
101,
|
|
4062
|
+
114
|
|
4063
|
+
]
|
|
4064
|
+
},
|
|
4065
|
+
{
|
|
4066
|
+
kind: "arg",
|
|
4067
|
+
path: "cluster_offset"
|
|
4068
|
+
}
|
|
4069
|
+
]
|
|
4070
|
+
}
|
|
4071
|
+
},
|
|
4049
4072
|
{
|
|
4050
4073
|
name: "executing_pool",
|
|
4051
4074
|
writable: true,
|
|
@@ -4134,6 +4157,17 @@ var instructions = [
|
|
|
4134
4157
|
{
|
|
4135
4158
|
name: "callback_transaction_index",
|
|
4136
4159
|
type: "u8"
|
|
4160
|
+
},
|
|
4161
|
+
{
|
|
4162
|
+
name: "bls_sig",
|
|
4163
|
+
type: {
|
|
4164
|
+
option: {
|
|
4165
|
+
array: [
|
|
4166
|
+
"u8",
|
|
4167
|
+
64
|
|
4168
|
+
]
|
|
4169
|
+
}
|
|
4170
|
+
}
|
|
4137
4171
|
}
|
|
4138
4172
|
]
|
|
4139
4173
|
},
|
|
@@ -5225,6 +5259,17 @@ var instructions = [
|
|
|
5225
5259
|
]
|
|
5226
5260
|
}
|
|
5227
5261
|
},
|
|
5262
|
+
{
|
|
5263
|
+
name: "address_lookup_table",
|
|
5264
|
+
docs: [
|
|
5265
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
5266
|
+
],
|
|
5267
|
+
writable: true
|
|
5268
|
+
},
|
|
5269
|
+
{
|
|
5270
|
+
name: "lut_program",
|
|
5271
|
+
address: "AddressLookupTab1e1111111111111111111111111"
|
|
5272
|
+
},
|
|
5228
5273
|
{
|
|
5229
5274
|
name: "comp_def_acc",
|
|
5230
5275
|
writable: true,
|
|
@@ -5339,6 +5384,11 @@ var instructions = [
|
|
|
5339
5384
|
224
|
|
5340
5385
|
],
|
|
5341
5386
|
accounts: [
|
|
5387
|
+
{
|
|
5388
|
+
name: "authority",
|
|
5389
|
+
writable: true,
|
|
5390
|
+
signer: true
|
|
5391
|
+
},
|
|
5342
5392
|
{
|
|
5343
5393
|
name: "payer",
|
|
5344
5394
|
writable: true,
|
|
@@ -6136,6 +6186,17 @@ var instructions = [
|
|
|
6136
6186
|
]
|
|
6137
6187
|
}
|
|
6138
6188
|
},
|
|
6189
|
+
{
|
|
6190
|
+
name: "address_lookup_table",
|
|
6191
|
+
docs: [
|
|
6192
|
+
"Seeds are checked in the CPI to LUT program, so no need to check them here."
|
|
6193
|
+
],
|
|
6194
|
+
writable: true
|
|
6195
|
+
},
|
|
6196
|
+
{
|
|
6197
|
+
name: "lut_program",
|
|
6198
|
+
address: "AddressLookupTab1e1111111111111111111111111"
|
|
6199
|
+
},
|
|
6139
6200
|
{
|
|
6140
6201
|
name: "clock",
|
|
6141
6202
|
writable: true,
|
|
@@ -7118,12 +7179,6 @@ var instructions = [
|
|
|
7118
7179
|
name: "mxe_program",
|
|
7119
7180
|
type: "pubkey"
|
|
7120
7181
|
},
|
|
7121
|
-
{
|
|
7122
|
-
name: "callback_url",
|
|
7123
|
-
type: {
|
|
7124
|
-
option: "string"
|
|
7125
|
-
}
|
|
7126
|
-
},
|
|
7127
7182
|
{
|
|
7128
7183
|
name: "custom_callback_instructions",
|
|
7129
7184
|
type: {
|
|
@@ -7514,16 +7569,16 @@ var instructions = [
|
|
|
7514
7569
|
]
|
|
7515
7570
|
},
|
|
7516
7571
|
{
|
|
7517
|
-
name: "
|
|
7572
|
+
name: "reclaim_failure_rent_idempotent",
|
|
7518
7573
|
discriminator: [
|
|
7519
|
-
|
|
7520
|
-
|
|
7521
|
-
|
|
7522
|
-
|
|
7523
|
-
|
|
7524
|
-
|
|
7525
|
-
|
|
7526
|
-
|
|
7574
|
+
138,
|
|
7575
|
+
13,
|
|
7576
|
+
253,
|
|
7577
|
+
191,
|
|
7578
|
+
226,
|
|
7579
|
+
239,
|
|
7580
|
+
246,
|
|
7581
|
+
10
|
|
7527
7582
|
],
|
|
7528
7583
|
accounts: [
|
|
7529
7584
|
{
|
|
@@ -7531,51 +7586,19 @@ var instructions = [
|
|
|
7531
7586
|
writable: true,
|
|
7532
7587
|
signer: true
|
|
7533
7588
|
},
|
|
7589
|
+
{
|
|
7590
|
+
name: "recipient",
|
|
7591
|
+
docs: [
|
|
7592
|
+
"failure PDA"
|
|
7593
|
+
],
|
|
7594
|
+
writable: true
|
|
7595
|
+
},
|
|
7534
7596
|
{
|
|
7535
7597
|
name: "failure_acc",
|
|
7536
|
-
|
|
7537
|
-
|
|
7538
|
-
|
|
7539
|
-
|
|
7540
|
-
kind: "const",
|
|
7541
|
-
value: [
|
|
7542
|
-
70,
|
|
7543
|
-
97,
|
|
7544
|
-
105,
|
|
7545
|
-
108,
|
|
7546
|
-
117,
|
|
7547
|
-
114,
|
|
7548
|
-
101,
|
|
7549
|
-
67,
|
|
7550
|
-
108,
|
|
7551
|
-
97,
|
|
7552
|
-
105,
|
|
7553
|
-
109,
|
|
7554
|
-
65,
|
|
7555
|
-
99,
|
|
7556
|
-
99,
|
|
7557
|
-
111,
|
|
7558
|
-
117,
|
|
7559
|
-
110,
|
|
7560
|
-
116,
|
|
7561
|
-
72,
|
|
7562
|
-
101,
|
|
7563
|
-
97,
|
|
7564
|
-
100,
|
|
7565
|
-
101,
|
|
7566
|
-
114
|
|
7567
|
-
]
|
|
7568
|
-
},
|
|
7569
|
-
{
|
|
7570
|
-
kind: "arg",
|
|
7571
|
-
path: "mxe_program"
|
|
7572
|
-
},
|
|
7573
|
-
{
|
|
7574
|
-
kind: "arg",
|
|
7575
|
-
path: "comp_offset"
|
|
7576
|
-
}
|
|
7577
|
-
]
|
|
7578
|
-
}
|
|
7598
|
+
docs: [
|
|
7599
|
+
"the checks and close by hand in the instruction handler."
|
|
7600
|
+
],
|
|
7601
|
+
writable: true
|
|
7579
7602
|
}
|
|
7580
7603
|
],
|
|
7581
7604
|
args: [
|
|
@@ -9672,6 +9695,19 @@ var events = [
|
|
|
9672
9695
|
186
|
|
9673
9696
|
]
|
|
9674
9697
|
},
|
|
9698
|
+
{
|
|
9699
|
+
name: "KeyRecoveryEvent",
|
|
9700
|
+
discriminator: [
|
|
9701
|
+
83,
|
|
9702
|
+
147,
|
|
9703
|
+
226,
|
|
9704
|
+
153,
|
|
9705
|
+
39,
|
|
9706
|
+
242,
|
|
9707
|
+
109,
|
|
9708
|
+
254
|
|
9709
|
+
]
|
|
9710
|
+
},
|
|
9675
9711
|
{
|
|
9676
9712
|
name: "QueueComputationEvent",
|
|
9677
9713
|
discriminator: [
|
|
@@ -9812,6 +9848,11 @@ var errors = [
|
|
|
9812
9848
|
name: "InvalidCallbackIndex",
|
|
9813
9849
|
msg: "Invalid callback transaction index"
|
|
9814
9850
|
},
|
|
9851
|
+
{
|
|
9852
|
+
code: 6212,
|
|
9853
|
+
name: "MultiTxCallbacksDisabled",
|
|
9854
|
+
msg: "Multi-transaction callbacks disabled"
|
|
9855
|
+
},
|
|
9815
9856
|
{
|
|
9816
9857
|
code: 6300,
|
|
9817
9858
|
name: "ComputationDefinitionNotCompleted",
|
|
@@ -10131,6 +10172,11 @@ var errors = [
|
|
|
10131
10172
|
code: 6715,
|
|
10132
10173
|
name: "ArithmeticOverflow",
|
|
10133
10174
|
msg: "Arithmetic overflow"
|
|
10175
|
+
},
|
|
10176
|
+
{
|
|
10177
|
+
code: 6716,
|
|
10178
|
+
name: "MxeInRecoveryState",
|
|
10179
|
+
msg: "MXE is in recovery state, cannot queue new computations"
|
|
10134
10180
|
}
|
|
10135
10181
|
];
|
|
10136
10182
|
var types = [
|
|
@@ -10973,12 +11019,6 @@ var types = [
|
|
|
10973
11019
|
}
|
|
10974
11020
|
}
|
|
10975
11021
|
},
|
|
10976
|
-
{
|
|
10977
|
-
name: "callback_url",
|
|
10978
|
-
type: {
|
|
10979
|
-
option: "string"
|
|
10980
|
-
}
|
|
10981
|
-
},
|
|
10982
11022
|
{
|
|
10983
11023
|
name: "custom_callback_instructions",
|
|
10984
11024
|
type: {
|
|
@@ -11458,6 +11498,26 @@ var types = [
|
|
|
11458
11498
|
]
|
|
11459
11499
|
}
|
|
11460
11500
|
},
|
|
11501
|
+
{
|
|
11502
|
+
name: "KeyRecoveryEvent",
|
|
11503
|
+
type: {
|
|
11504
|
+
kind: "struct",
|
|
11505
|
+
fields: [
|
|
11506
|
+
{
|
|
11507
|
+
name: "computation_offset",
|
|
11508
|
+
type: "u64"
|
|
11509
|
+
},
|
|
11510
|
+
{
|
|
11511
|
+
name: "mxe_program_id",
|
|
11512
|
+
type: "pubkey"
|
|
11513
|
+
},
|
|
11514
|
+
{
|
|
11515
|
+
name: "backup_mxe_program_id",
|
|
11516
|
+
type: "pubkey"
|
|
11517
|
+
}
|
|
11518
|
+
]
|
|
11519
|
+
}
|
|
11520
|
+
},
|
|
11461
11521
|
{
|
|
11462
11522
|
name: "LargeExecPool",
|
|
11463
11523
|
serialization: "bytemuckunsafe",
|
|
@@ -13036,6 +13096,11 @@ const RECOVERY_CLUSTER_ACC_SEED = 'RecoveryClusterAccount';
|
|
|
13036
13096
|
* @constant {string}
|
|
13037
13097
|
*/
|
|
13038
13098
|
const MXE_RECOVERY_ACC_SEED = 'MxeRecoveryAccount';
|
|
13099
|
+
/**
|
|
13100
|
+
* Seed for ComputationDefinitionRaw PDA
|
|
13101
|
+
* @constant {string}
|
|
13102
|
+
*/
|
|
13103
|
+
const RAW_CIRCUIT_ACC_SEED = 'ComputationDefinitionRaw';
|
|
13039
13104
|
/**
|
|
13040
13105
|
* Maximum number of bytes that can be reallocated per instruction.
|
|
13041
13106
|
* @constant {number}
|
|
@@ -13195,6 +13260,32 @@ function getMxeRecoveryAccAddress(backupMxeProgramId, originalMxeProgramId) {
|
|
|
13195
13260
|
];
|
|
13196
13261
|
return generateArciumPDAFrom(seeds)[0];
|
|
13197
13262
|
}
|
|
13263
|
+
/**
|
|
13264
|
+
* Derives the raw circuit account address for a given computation definition and index.
|
|
13265
|
+
* @param compDefPubkey - The public key of the computation definition account.
|
|
13266
|
+
* @param rawCircuitIndex - The index of the raw circuit account (0-based).
|
|
13267
|
+
* @returns The derived raw circuit account public key.
|
|
13268
|
+
*/
|
|
13269
|
+
function getRawCircuitAccAddress(compDefPubkey, rawCircuitIndex) {
|
|
13270
|
+
const seeds = [
|
|
13271
|
+
Buffer.from(RAW_CIRCUIT_ACC_SEED),
|
|
13272
|
+
compDefPubkey.toBuffer(),
|
|
13273
|
+
Buffer.from([rawCircuitIndex]),
|
|
13274
|
+
];
|
|
13275
|
+
return generateArciumPDAFrom(seeds)[0];
|
|
13276
|
+
}
|
|
13277
|
+
/**
|
|
13278
|
+
* Derives the address lookup table address for an MXE program.
|
|
13279
|
+
* @param mxeProgramId - The public key of the MXE program.
|
|
13280
|
+
* @param lutIndex - The index of the lookup table (defaults to 0).
|
|
13281
|
+
* @returns The derived address lookup table public key.
|
|
13282
|
+
*/
|
|
13283
|
+
function getLookupTableAddress(mxeProgramId, lutIndex = 0) {
|
|
13284
|
+
const mxeAccount = getMXEAccAddress(mxeProgramId);
|
|
13285
|
+
const lutIndexBuffer = new anchor.BN(lutIndex).toArrayLike(Buffer, 'le', 8);
|
|
13286
|
+
const seeds = [mxeAccount.toBuffer(), lutIndexBuffer];
|
|
13287
|
+
return PublicKey.findProgramAddressSync(seeds, AddressLookupTableProgram.programId)[0];
|
|
13288
|
+
}
|
|
13198
13289
|
/**
|
|
13199
13290
|
* Generates a program-derived address (PDA) from the provided seeds and the Arcium program ID.
|
|
13200
13291
|
* @param seeds - An array of Buffer seeds used for PDA derivation.
|
|
@@ -13447,6 +13538,21 @@ async function getMXEPublicKey(provider, mxeProgramId) {
|
|
|
13447
13538
|
async function getMXEArcisEd25519VerifyingKey(provider, mxeProgramId) {
|
|
13448
13539
|
return getMXEUtilityKey(provider, mxeProgramId, 'ed25519VerifyingKey');
|
|
13449
13540
|
}
|
|
13541
|
+
/**
|
|
13542
|
+
* Determines the current state of a circuit based on its on-chain configuration.
|
|
13543
|
+
* @internal Called internally by `uploadCircuit` - most users don't need this directly.
|
|
13544
|
+
* @param circuitSource - The circuitSource field from ComputationDefinitionAccount.
|
|
13545
|
+
* @returns The current state of the circuit.
|
|
13546
|
+
*/
|
|
13547
|
+
function getCircuitState(circuitSource) {
|
|
13548
|
+
if (!('onChain' in circuitSource) || !circuitSource.onChain) {
|
|
13549
|
+
return 'Offchain';
|
|
13550
|
+
}
|
|
13551
|
+
if (circuitSource.onChain[0].isCompleted) {
|
|
13552
|
+
return 'OnchainFinalized';
|
|
13553
|
+
}
|
|
13554
|
+
return 'OnchainPending';
|
|
13555
|
+
}
|
|
13450
13556
|
/**
|
|
13451
13557
|
* Uploads a circuit to the blockchain, splitting it into multiple accounts if necessary.
|
|
13452
13558
|
* @param provider - The Anchor provider to use for transactions.
|
|
@@ -13458,10 +13564,17 @@ async function getMXEArcisEd25519VerifyingKey(provider, mxeProgramId) {
|
|
|
13458
13564
|
* @returns An array of transaction signatures for all upload and finalize transactions.
|
|
13459
13565
|
*/
|
|
13460
13566
|
async function uploadCircuit(provider, circuitName, mxeProgramId, rawCircuit, logging = true, chunkSize = 500) {
|
|
13461
|
-
// 9 = 8-byte discriminator + 1-byte bump for ComputationDefinitionRaw account
|
|
13462
|
-
const numAccs = Math.ceil(rawCircuit.length / (MAX_ACCOUNT_SIZE - 9));
|
|
13463
13567
|
const compDefAccInfo = getCompDefAccInfo(circuitName, mxeProgramId);
|
|
13464
13568
|
const program = getArciumProgram(provider);
|
|
13569
|
+
const compDefAcc = await program.account.computationDefinitionAccount.fetch(compDefAccInfo.pubkey);
|
|
13570
|
+
// Type assertion at boundary where Anchor's fetch() returns the account data
|
|
13571
|
+
const state = getCircuitState(compDefAcc.circuitSource);
|
|
13572
|
+
if (state !== 'OnchainPending') {
|
|
13573
|
+
optionalLog(logging, `Circuit ${circuitName} skipped: ${state}`);
|
|
13574
|
+
return [];
|
|
13575
|
+
}
|
|
13576
|
+
// 9 = 8-byte discriminator + 1-byte bump for ComputationDefinitionRaw account
|
|
13577
|
+
const numAccs = Math.ceil(rawCircuit.length / (MAX_ACCOUNT_SIZE - 9));
|
|
13465
13578
|
const sigs = [];
|
|
13466
13579
|
const uploadPromises = [];
|
|
13467
13580
|
for (let i = 0; i < numAccs; i++) {
|
|
@@ -13504,15 +13617,26 @@ async function buildFinalizeCompDefTx(provider, compDefOffset, mxeProgramId) {
|
|
|
13504
13617
|
.transaction();
|
|
13505
13618
|
}
|
|
13506
13619
|
async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitIndex, compDefAccInfo, mxeProgramId, shouldLog = true, chunkSize = 500) {
|
|
13620
|
+
const rawCircuitPda = getRawCircuitAccAddress(compDefAccInfo.pubkey, rawCircuitIndex);
|
|
13621
|
+
const existingAcc = await provider.connection.getAccountInfo(rawCircuitPda);
|
|
13622
|
+
// Skip entirely if account exists with correct size (pre-seeded at genesis or already uploaded)
|
|
13623
|
+
// Account layout: 8-byte discriminator + 1-byte bump + circuit data
|
|
13624
|
+
const requiredAccountSize = rawCircuitPart.length + 9;
|
|
13625
|
+
if (existingAcc !== null && existingAcc.data.length >= requiredAccountSize) {
|
|
13626
|
+
optionalLog(shouldLog, `Raw circuit acc ${rawCircuitIndex} already exists with sufficient size, skipping`);
|
|
13627
|
+
return [];
|
|
13628
|
+
}
|
|
13507
13629
|
const sigs = [];
|
|
13508
|
-
|
|
13509
|
-
|
|
13510
|
-
|
|
13511
|
-
|
|
13512
|
-
|
|
13513
|
-
|
|
13514
|
-
|
|
13515
|
-
|
|
13630
|
+
if (existingAcc === null) {
|
|
13631
|
+
const initTx = await program.methods
|
|
13632
|
+
.initRawCircuitAcc(compDefAccInfo.offset, mxeProgramId, rawCircuitIndex)
|
|
13633
|
+
.accounts({
|
|
13634
|
+
signer: provider.publicKey,
|
|
13635
|
+
})
|
|
13636
|
+
.rpc();
|
|
13637
|
+
optionalLog(shouldLog, `Initiated raw circuit acc with raw circuit index ${rawCircuitIndex}`);
|
|
13638
|
+
sigs.push(initTx);
|
|
13639
|
+
}
|
|
13516
13640
|
if (rawCircuitPart.length > MAX_REALLOC_PER_IX) {
|
|
13517
13641
|
// We only need to add size if the init didn't already make us big enough
|
|
13518
13642
|
const nonAsyncTxCount = Math.ceil(rawCircuitPart.length / (MAX_REALLOC_PER_IX * MAX_EMBIGGEN_IX_PER_TX));
|
|
@@ -13537,8 +13661,10 @@ async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitI
|
|
|
13537
13661
|
const blockInfo = await provider.connection.getLatestBlockhash();
|
|
13538
13662
|
for (let i = 0; i < remainingTxCount; i += chunkSize) {
|
|
13539
13663
|
optionalLog(shouldLog, `Sending chunk ${i / chunkSize + 1} of ${Math.ceil(remainingTxCount / chunkSize)}`);
|
|
13540
|
-
|
|
13541
|
-
const
|
|
13664
|
+
// Array to hold promises for the current chunk
|
|
13665
|
+
const chunkPromises = [];
|
|
13666
|
+
// Handle the last chunk
|
|
13667
|
+
const currentChunkSize = Math.min(chunkSize, remainingTxCount - i);
|
|
13542
13668
|
for (let j = 0; j < currentChunkSize; j++) {
|
|
13543
13669
|
const offset = MAX_UPLOAD_PER_TX_BYTES * (i + j);
|
|
13544
13670
|
// eslint-disable-next-line no-await-in-loop
|
|
@@ -13548,7 +13674,8 @@ async function uploadToCircuitAcc(provider, program, rawCircuitPart, rawCircuitI
|
|
|
13548
13674
|
// Wait for the current chunk to complete before proceeding
|
|
13549
13675
|
// eslint-disable-next-line no-await-in-loop
|
|
13550
13676
|
const chunkResults = await Promise.all(chunkPromises);
|
|
13551
|
-
|
|
13677
|
+
// Add the results of the current chunk to the main array
|
|
13678
|
+
remainingTxs.push(...chunkResults);
|
|
13552
13679
|
optionalLog(shouldLog, `Done sending chunk ${i / chunkSize + 1} of ${Math.ceil(remainingTxCount / chunkSize)}`);
|
|
13553
13680
|
}
|
|
13554
13681
|
return sigs.concat(remainingTxs);
|
|
@@ -13798,6 +13925,7 @@ async function initMxePart2(provider, clusterOffset, mxeProgramId, recoveryPeers
|
|
|
13798
13925
|
mxeProgram: mxeProgramId,
|
|
13799
13926
|
poolAccount: getFeePoolAccAddress(),
|
|
13800
13927
|
mxeAuthority: mxeAuthority ?? provider.publicKey,
|
|
13928
|
+
addressLookupTable: getLookupTableAddress(mxeProgramId),
|
|
13801
13929
|
})
|
|
13802
13930
|
.transaction();
|
|
13803
13931
|
return signAndSendWithBlockhash(provider, tx, await provider.connection.getLatestBlockhash({ commitment: 'confirmed' }));
|
|
@@ -13861,4 +13989,4 @@ async function awaitEvent(eventListener, eventName, eventCheck, commitment = 'co
|
|
|
13861
13989
|
return { event: foundEvent[0], sig: foundEvent[1] };
|
|
13862
13990
|
}
|
|
13863
13991
|
|
|
13864
|
-
export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, createPacker, deserializeLE, finalizeKeyRecoveryExecution, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRecoveryClusterAccAddress, initKeyRecoveryExecution, initMxePart1, initMxePart2, isNullRef, positiveModulo, queueKeyRecoveryInit, randMatrix, recoverMxe, serializeLE, sha256, submitKeyRecoveryShare, toVec, uploadCircuit };
|
|
13992
|
+
export { ARCIUM_ADDR, ARCIUM_IDL, Aes128Cipher, Aes192Cipher, Aes256Cipher, ArcisModule, ArcisType, ArcisValueField, CSplRescueCipher, CURVE25519_BASE_FIELD, CURVE25519_SCALAR_FIELD, CURVE25519_SCALAR_FIELD_MODULUS, IntegerInfo, Matrix, RescueCipher, RescueDesc, RescuePrimeHash, arcisEd25519, awaitComputationFinalization, buildFinalizeCompDefTx, createPacker, deserializeLE, finalizeKeyRecoveryExecution, generateRandomFieldElem, getArciumAccountBaseSeed, getArciumEnv, getArciumProgram, getArciumProgramId, getArxNodeAccAddress, getCircuitState, getClockAccAddress, getClusterAccAddress, getCompDefAccAddress, getCompDefAccOffset, getComputationAccAddress, getComputationsInMempool, getExecutingPoolAccAddress, getExecutingPoolAccInfo, getFeePoolAccAddress, getLookupTableAddress, getMXEAccAddress, getMXEArcisEd25519VerifyingKey, getMXEPublicKey, getMempoolAccAddress, getMempoolAccInfo, getMempoolPriorityFeeStats, getMxeRecoveryAccAddress, getRawCircuitAccAddress, getRecoveryClusterAccAddress, initKeyRecoveryExecution, initMxePart1, initMxePart2, isNullRef, positiveModulo, queueKeyRecoveryInit, randMatrix, recoverMxe, serializeLE, sha256, submitKeyRecoveryShare, toVec, uploadCircuit };
|