@lightprotocol/zk-compression-cli 0.18.1 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/account_compression.so +0 -0
- package/bin/forester +0 -0
- package/bin/forester.toml +15 -0
- package/bin/light_compressed_token.so +0 -0
- package/bin/light_registry.so +0 -0
- package/bin/light_system_program.so +0 -0
- package/bin/prover-darwin-arm64 +0 -0
- package/bin/prover-darwin-x64 +0 -0
- package/bin/prover-linux-arm64 +0 -0
- package/bin/prover-linux-x64 +0 -0
- package/bin/prover-windows-arm64.exe +0 -0
- package/bin/prover-windows-x64.exe +0 -0
- package/dist/commands/start-prover/index.d.ts +2 -2
- package/dist/commands/start-prover/index.js +26 -11
- package/dist/commands/test-validator/index.d.ts +2 -2
- package/dist/commands/test-validator/index.js +29 -12
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/initTestEnv.d.ts +3 -3
- package/dist/utils/initTestEnv.js +2 -13
- package/dist/utils/process.js +20 -4
- package/dist/utils/processProverServer.d.ts +1 -1
- package/dist/utils/processProverServer.js +20 -10
- package/oclif.manifest.json +204 -164
- package/package.json +11 -4
|
Binary file
|
package/bin/forester
ADDED
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
CU_LIMIT=1_000_000
|
|
2
|
+
RPC_POOL_SIZE=20
|
|
3
|
+
MAX_RETRIES=5
|
|
4
|
+
RETRY_DELAY=1000
|
|
5
|
+
RETRY_TIMEOUT=120_000
|
|
6
|
+
INDEXER_BATCH_SIZE=50
|
|
7
|
+
INDEXER_MAX_CONCURRENT_BATCHES=50
|
|
8
|
+
TRANSACTION_BATCH_SIZE=1
|
|
9
|
+
TRANSACTION_MAX_CONCURRENT_BATCHES=50
|
|
10
|
+
SLOT_UPDATE_INTERVAL_SECONDS=30
|
|
11
|
+
TREE_DISCOVERY_INTERVAL_SECONDS=5
|
|
12
|
+
STATE_QUEUE_START_INDEX=0
|
|
13
|
+
STATE_QUEUE_LENGTH=28807
|
|
14
|
+
ADDRESS_QUEUE_START_INDEX=0
|
|
15
|
+
ADDRESS_QUEUE_LENGTH=28807
|
|
Binary file
|
package/bin/light_registry.so
CHANGED
|
Binary file
|
|
Binary file
|
package/bin/prover-darwin-arm64
CHANGED
|
Binary file
|
package/bin/prover-darwin-x64
CHANGED
|
Binary file
|
package/bin/prover-linux-arm64
CHANGED
|
Binary file
|
package/bin/prover-linux-x64
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -3,9 +3,9 @@ declare class StartProver extends Command {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
protected finally(_: Error | undefined): Promise<any>;
|
|
5
5
|
static flags: {
|
|
6
|
-
"skip-prove-compressed-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
|
-
"skip-prove-new-addresses": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
6
|
"prover-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
"run-mode": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
circuit: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
9
|
};
|
|
10
10
|
run(): Promise<void>;
|
|
11
11
|
}
|
|
@@ -10,26 +10,41 @@ class StartProver extends core_1.Command {
|
|
|
10
10
|
const { flags } = await this.parse(StartProver);
|
|
11
11
|
const loader = new index_1.CustomLoader("Performing setup tasks...\n");
|
|
12
12
|
loader.start();
|
|
13
|
-
|
|
13
|
+
if (!flags["run-mode"] && !flags["circuit"]) {
|
|
14
|
+
this.log("Please specify --run-mode or --circuit.");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
await (0, index_1.startProver)(flags["prover-port"], flags["run-mode"], flags["circuit"]);
|
|
14
18
|
this.log("\nSetup tasks completed successfully \x1b[32m✔\x1b[0m");
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
StartProver.description = "Start gnark prover";
|
|
18
22
|
StartProver.flags = {
|
|
19
|
-
"skip-prove-compressed-accounts": core_1.Flags.boolean({
|
|
20
|
-
description: "Skip proving of compressed accounts.",
|
|
21
|
-
default: false,
|
|
22
|
-
char: "c",
|
|
23
|
-
}),
|
|
24
|
-
"skip-prove-new-addresses": core_1.Flags.boolean({
|
|
25
|
-
description: "Skip proving of new addresses.",
|
|
26
|
-
default: false,
|
|
27
|
-
char: "n",
|
|
28
|
-
}),
|
|
29
23
|
"prover-port": core_1.Flags.integer({
|
|
30
24
|
description: "Enable Light Prover server on this port.",
|
|
31
25
|
required: false,
|
|
32
26
|
default: 3001,
|
|
33
27
|
}),
|
|
28
|
+
"run-mode": core_1.Flags.string({
|
|
29
|
+
description: "Specify the running mode (forester, forester-test, rpc, full, or full-test)",
|
|
30
|
+
options: ["rpc", "forester", "forester-test", "full", "full-test"],
|
|
31
|
+
required: false,
|
|
32
|
+
}),
|
|
33
|
+
circuit: core_1.Flags.string({
|
|
34
|
+
description: "Specify individual circuits to enable.",
|
|
35
|
+
options: [
|
|
36
|
+
"inclusion",
|
|
37
|
+
"non-inclusion",
|
|
38
|
+
"combined",
|
|
39
|
+
"append-with-proofs",
|
|
40
|
+
"append-with-subtrees",
|
|
41
|
+
"update",
|
|
42
|
+
"append-with-proofs-test",
|
|
43
|
+
"append-with-subtrees-test",
|
|
44
|
+
"update-test",
|
|
45
|
+
],
|
|
46
|
+
multiple: true,
|
|
47
|
+
required: false,
|
|
48
|
+
}),
|
|
34
49
|
};
|
|
35
50
|
exports.default = StartProver;
|
|
@@ -6,13 +6,13 @@ declare class SetupCommand extends Command {
|
|
|
6
6
|
"skip-indexer": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
"skip-prover": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
8
|
"skip-system-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
-
"prove-compressed-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
-
"prove-new-addresses": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
9
|
"relax-indexer-version-constraint": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
10
|
"indexer-db-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
11
|
"rpc-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
12
|
"indexer-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
13
|
"prover-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
"prover-run-mode": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
circuit: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
16
|
"limit-ledger-size": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
17
|
"gossip-host": import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
18
|
stop: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -28,10 +28,10 @@ class SetupCommand extends core_1.Command {
|
|
|
28
28
|
gossipHost: flags["gossip-host"],
|
|
29
29
|
indexerPort: flags["indexer-port"],
|
|
30
30
|
proverPort: flags["prover-port"],
|
|
31
|
-
proveCompressedAccounts: flags["prove-compressed-accounts"],
|
|
32
|
-
proveNewAddresses: flags["prove-new-addresses"],
|
|
33
31
|
prover: !flags["skip-prover"],
|
|
34
32
|
skipSystemAccounts: flags["skip-system-accounts"],
|
|
33
|
+
proverRunMode: flags["prover-run-mode"],
|
|
34
|
+
circuits: flags["circuit"],
|
|
35
35
|
});
|
|
36
36
|
this.log("\nSetup tasks completed successfully \x1b[32m✔\x1b[0m");
|
|
37
37
|
}
|
|
@@ -51,16 +51,6 @@ SetupCommand.flags = {
|
|
|
51
51
|
description: "Runs a test validator without initialized light system accounts.",
|
|
52
52
|
default: false,
|
|
53
53
|
}),
|
|
54
|
-
"prove-compressed-accounts": core_1.Flags.boolean({
|
|
55
|
-
description: "Enable proving of compressed accounts.",
|
|
56
|
-
default: true,
|
|
57
|
-
exclusive: ["skip-prover"],
|
|
58
|
-
}),
|
|
59
|
-
"prove-new-addresses": core_1.Flags.boolean({
|
|
60
|
-
description: "Enable proving of new addresses.",
|
|
61
|
-
default: true,
|
|
62
|
-
exclusive: ["skip-prover"],
|
|
63
|
-
}),
|
|
64
54
|
"relax-indexer-version-constraint": core_1.Flags.boolean({
|
|
65
55
|
description: "Disables indexer version check. Only use if you know what you are doing.",
|
|
66
56
|
default: false,
|
|
@@ -88,6 +78,33 @@ SetupCommand.flags = {
|
|
|
88
78
|
default: 3001,
|
|
89
79
|
exclusive: ["skip-prover"],
|
|
90
80
|
}),
|
|
81
|
+
"prover-run-mode": core_1.Flags.string({
|
|
82
|
+
description: "Specify the running mode for the prover (forester, forester-test, rpc, or full)",
|
|
83
|
+
options: [
|
|
84
|
+
"rpc",
|
|
85
|
+
"forester",
|
|
86
|
+
"forester-test",
|
|
87
|
+
"full",
|
|
88
|
+
"full-test",
|
|
89
|
+
],
|
|
90
|
+
required: false,
|
|
91
|
+
exclusive: ["skip-prover"],
|
|
92
|
+
}),
|
|
93
|
+
circuit: core_1.Flags.string({
|
|
94
|
+
description: "Specify individual circuits to enable.",
|
|
95
|
+
options: [
|
|
96
|
+
"inclusion",
|
|
97
|
+
"non-inclusion",
|
|
98
|
+
"combined",
|
|
99
|
+
"append",
|
|
100
|
+
"update",
|
|
101
|
+
"append-test",
|
|
102
|
+
"update-test",
|
|
103
|
+
],
|
|
104
|
+
multiple: true,
|
|
105
|
+
required: false,
|
|
106
|
+
exclusive: ["skip-prover"],
|
|
107
|
+
}),
|
|
91
108
|
"limit-ledger-size": core_1.Flags.integer({
|
|
92
109
|
description: "Keep this amount of shreds in root slots.",
|
|
93
110
|
required: false,
|
|
@@ -12,7 +12,7 @@ export declare const CARGO_GENERATE_TAG = "v0.18.4";
|
|
|
12
12
|
export declare const SOLANA_VALIDATOR_PROCESS_NAME = "solana-test-validator";
|
|
13
13
|
export declare const LIGHT_PROVER_PROCESS_NAME = "light-prover";
|
|
14
14
|
export declare const INDEXER_PROCESS_NAME = "photon";
|
|
15
|
-
export declare const PHOTON_VERSION = "0.
|
|
15
|
+
export declare const PHOTON_VERSION = "0.46.0";
|
|
16
16
|
export declare const LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = "LIGHT_PROTOCOL_PROGRAMS_DIR";
|
|
17
17
|
export declare const BASE_PATH = "../../bin/";
|
|
18
18
|
export declare const PROGRAM_ID = "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS";
|
package/dist/utils/constants.js
CHANGED
|
@@ -17,7 +17,7 @@ exports.CARGO_GENERATE_TAG = "v0.18.4";
|
|
|
17
17
|
exports.SOLANA_VALIDATOR_PROCESS_NAME = "solana-test-validator";
|
|
18
18
|
exports.LIGHT_PROVER_PROCESS_NAME = "light-prover";
|
|
19
19
|
exports.INDEXER_PROCESS_NAME = "photon";
|
|
20
|
-
exports.PHOTON_VERSION = "0.
|
|
20
|
+
exports.PHOTON_VERSION = "0.46.0";
|
|
21
21
|
exports.LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = "LIGHT_PROTOCOL_PROGRAMS_DIR";
|
|
22
22
|
exports.BASE_PATH = "../../bin/";
|
|
23
23
|
exports.PROGRAM_ID = "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS";
|
|
@@ -2,7 +2,7 @@ export declare function stopTestEnv(options: {
|
|
|
2
2
|
indexer: boolean;
|
|
3
3
|
prover: boolean;
|
|
4
4
|
}): Promise<void>;
|
|
5
|
-
export declare function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer, prover, rpcPort, indexerPort, proverPort, gossipHost,
|
|
5
|
+
export declare function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer, prover, rpcPort, indexerPort, proverPort, gossipHost, checkPhotonVersion, photonDatabaseUrl, limitLedgerSize, proverRunMode, circuits, }: {
|
|
6
6
|
additionalPrograms?: {
|
|
7
7
|
address: string;
|
|
8
8
|
path: string;
|
|
@@ -14,11 +14,11 @@ export declare function initTestEnv({ additionalPrograms, skipSystemAccounts, in
|
|
|
14
14
|
indexerPort?: number;
|
|
15
15
|
proverPort?: number;
|
|
16
16
|
gossipHost?: string;
|
|
17
|
-
proveCompressedAccounts?: boolean;
|
|
18
|
-
proveNewAddresses?: boolean;
|
|
19
17
|
checkPhotonVersion?: boolean;
|
|
20
18
|
photonDatabaseUrl?: string;
|
|
21
19
|
limitLedgerSize?: number;
|
|
20
|
+
proverRunMode?: "inclusion" | "non-inclusion" | "forester" | "forester-test" | "rpc" | "full" | "full-test";
|
|
21
|
+
circuits?: string[];
|
|
22
22
|
}): Promise<void>;
|
|
23
23
|
export declare function initTestEnvIfNeeded({ additionalPrograms, skipSystemAccounts, indexer, prover, }?: {
|
|
24
24
|
additionalPrograms?: {
|
|
@@ -9,7 +9,6 @@ exports.getSolanaArgs = getSolanaArgs;
|
|
|
9
9
|
exports.startTestValidator = startTestValidator;
|
|
10
10
|
exports.killTestValidator = killTestValidator;
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
13
12
|
const utils_1 = require("./utils");
|
|
14
13
|
const constants_1 = require("./constants");
|
|
15
14
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
@@ -43,16 +42,7 @@ async function stopTestEnv(options) {
|
|
|
43
42
|
await Promise.all(killPromises);
|
|
44
43
|
console.log("All specified processes and validator stopped.");
|
|
45
44
|
}
|
|
46
|
-
async function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer = true, prover = true, rpcPort = 8899, indexerPort = 8784, proverPort = 3001, gossipHost = "127.0.0.1",
|
|
47
|
-
const initAccounts = async () => {
|
|
48
|
-
const anchorProvider = await (0, utils_1.setAnchorProvider)();
|
|
49
|
-
const payer = await (0, utils_1.getPayer)();
|
|
50
|
-
await (0, stateless_js_1.airdropSol)({
|
|
51
|
-
connection: anchorProvider.connection,
|
|
52
|
-
lamports: 100e9,
|
|
53
|
-
recipientPublicKey: payer.publicKey,
|
|
54
|
-
});
|
|
55
|
-
};
|
|
45
|
+
async function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer = true, prover = true, rpcPort = 8899, indexerPort = 8784, proverPort = 3001, gossipHost = "127.0.0.1", checkPhotonVersion = true, photonDatabaseUrl, limitLedgerSize, proverRunMode, circuits, }) {
|
|
56
46
|
// We cannot await this promise directly because it will hang the process
|
|
57
47
|
startTestValidator({
|
|
58
48
|
additionalPrograms,
|
|
@@ -63,7 +53,6 @@ async function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer = t
|
|
|
63
53
|
});
|
|
64
54
|
await (0, process_1.waitForServers)([{ port: rpcPort, path: "/health" }]);
|
|
65
55
|
await (0, process_1.confirmServerStability)(`http://127.0.0.1:${rpcPort}/health`);
|
|
66
|
-
await initAccounts();
|
|
67
56
|
if (indexer) {
|
|
68
57
|
const config = (0, utils_1.getConfig)();
|
|
69
58
|
config.indexerUrl = `http://127.0.0.1:${indexerPort}`;
|
|
@@ -74,7 +63,7 @@ async function initTestEnv({ additionalPrograms, skipSystemAccounts, indexer = t
|
|
|
74
63
|
const config = (0, utils_1.getConfig)();
|
|
75
64
|
config.proverUrl = `http://127.0.0.1:${proverPort}`;
|
|
76
65
|
(0, utils_1.setConfig)(config);
|
|
77
|
-
await (0, processProverServer_1.startProver)(proverPort,
|
|
66
|
+
await (0, processProverServer_1.startProver)(proverPort, proverRunMode, circuits);
|
|
78
67
|
}
|
|
79
68
|
}
|
|
80
69
|
async function initTestEnvIfNeeded({ additionalPrograms, skipSystemAccounts, indexer = false, prover = false, } = {}) {
|
package/dist/utils/process.js
CHANGED
|
@@ -18,12 +18,28 @@ const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
|
18
18
|
const waitOn = require("wait-on");
|
|
19
19
|
async function killProcess(processName) {
|
|
20
20
|
const processList = await (0, find_process_1.default)("name", processName);
|
|
21
|
-
const targetProcesses = processList.filter((proc) => proc.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const targetProcesses = processList.filter((proc) => proc.name.includes(processName) || proc.cmd.includes(processName));
|
|
22
|
+
for (const proc of targetProcesses) {
|
|
23
|
+
try {
|
|
24
|
+
process.kill(proc.pid, "SIGKILL");
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error(`Failed to kill process ${proc.pid}: ${error}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Double-check if processes are still running
|
|
31
|
+
const remainingProcesses = await (0, find_process_1.default)("name", processName);
|
|
32
|
+
if (remainingProcesses.length > 0) {
|
|
33
|
+
console.warn(`Warning: ${remainingProcesses.length} processes still running after kill attempt`);
|
|
34
|
+
}
|
|
25
35
|
}
|
|
26
36
|
async function killProcessByPort(port) {
|
|
37
|
+
if (port < 0) {
|
|
38
|
+
throw new Error("Value must be non-negative");
|
|
39
|
+
}
|
|
40
|
+
// NOTE(vadorovsky): The lint error in this case doesn't make sense. `port`
|
|
41
|
+
// is a harmless number.
|
|
42
|
+
// codeql [js/shell-command-constructed-from-input]: warning
|
|
27
43
|
await execute(`lsof -t -i:${port} | while read line; do kill -9 $line; done`);
|
|
28
44
|
}
|
|
29
45
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function killProver(): Promise<void>;
|
|
2
|
-
export declare function startProver(proverPort: number,
|
|
2
|
+
export declare function startProver(proverPort: number, runMode: string | undefined, circuits?: string[] | undefined): Promise<void>;
|
|
3
3
|
export declare function getProverNameByArch(): string;
|
|
4
4
|
export declare function getProverPathByArch(): string;
|
|
@@ -11,27 +11,37 @@ const constants_1 = require("./constants");
|
|
|
11
11
|
const KEYS_DIR = "proving-keys/";
|
|
12
12
|
async function killProver() {
|
|
13
13
|
await (0, process_1.killProcess)(getProverNameByArch());
|
|
14
|
-
// Temporary fix for the case when prover is instantiated via prover.sh:
|
|
15
14
|
await (0, process_1.killProcess)(constants_1.LIGHT_PROVER_PROCESS_NAME);
|
|
16
15
|
}
|
|
17
|
-
async function startProver(proverPort,
|
|
18
|
-
if (!proveCompressedAccounts && !proveNewAddresses) {
|
|
19
|
-
console.log("No flags provided. Please provide at least one flag to start the prover.");
|
|
20
|
-
process.exit(1);
|
|
21
|
-
}
|
|
16
|
+
async function startProver(proverPort, runMode, circuits = []) {
|
|
22
17
|
console.log("Kill existing prover process...");
|
|
23
18
|
await killProver();
|
|
24
19
|
await (0, process_1.killProcessByPort)(proverPort);
|
|
25
20
|
const keysDir = path_1.default.join(__dirname, "../..", "bin", KEYS_DIR);
|
|
26
21
|
const args = ["start"];
|
|
27
|
-
args.push(`--inclusion=${proveCompressedAccounts ? "true" : "false"}`);
|
|
28
|
-
args.push(`--non-inclusion=${proveNewAddresses ? "true" : "false"}`);
|
|
29
22
|
args.push("--keys-dir", keysDir);
|
|
30
23
|
args.push("--prover-address", `0.0.0.0:${proverPort}`);
|
|
31
|
-
|
|
24
|
+
if (runMode != null) {
|
|
25
|
+
args.push("--run-mode", runMode);
|
|
26
|
+
}
|
|
27
|
+
for (const circuit of circuits) {
|
|
28
|
+
console.log(`Adding circuit: ${circuit}`);
|
|
29
|
+
args.push("--circuit", circuit);
|
|
30
|
+
}
|
|
31
|
+
if (runMode != null) {
|
|
32
|
+
console.log(`Starting prover in ${runMode} mode...`);
|
|
33
|
+
}
|
|
34
|
+
else if (circuits && circuits.length > 0) {
|
|
35
|
+
console.log(`Starting prover with circuits: ${circuits.join(", ")}...`);
|
|
36
|
+
}
|
|
37
|
+
if ((!circuits || circuits.length === 0) && runMode == null) {
|
|
38
|
+
runMode = "rpc";
|
|
39
|
+
args.push("--run-mode", runMode);
|
|
40
|
+
console.log(`Starting prover with fallback ${runMode} mode...`);
|
|
41
|
+
}
|
|
32
42
|
(0, process_1.spawnBinary)(getProverPathByArch(), args);
|
|
33
43
|
await (0, process_1.waitForServers)([{ port: proverPort, path: "/" }]);
|
|
34
|
-
console.log(
|
|
44
|
+
console.log(`Prover started successfully!`);
|
|
35
45
|
}
|
|
36
46
|
function getProverNameByArch() {
|
|
37
47
|
const platform = process.platform;
|
package/oclif.manifest.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
-
"
|
|
3
|
+
"approve-and-mint-to": {
|
|
4
4
|
"aliases": [],
|
|
5
5
|
"args": {},
|
|
6
6
|
"examples": [
|
|
7
|
-
"$ light
|
|
7
|
+
"$ light approve-and-mint-to --mint PublicKey --to PublicKey --amount 1000"
|
|
8
8
|
],
|
|
9
9
|
"flags": {
|
|
10
|
+
"mint-authority": {
|
|
11
|
+
"description": "Specify the filepath of the mint authority keypair. Defaults to your local solana wallet.",
|
|
12
|
+
"name": "mint-authority",
|
|
13
|
+
"required": false,
|
|
14
|
+
"hasDynamicHelp": false,
|
|
15
|
+
"multiple": false,
|
|
16
|
+
"type": "option"
|
|
17
|
+
},
|
|
10
18
|
"mint": {
|
|
11
19
|
"description": "Specify the mint address.",
|
|
12
20
|
"name": "mint",
|
|
@@ -16,7 +24,7 @@
|
|
|
16
24
|
"type": "option"
|
|
17
25
|
},
|
|
18
26
|
"to": {
|
|
19
|
-
"description": "Specify the recipient address
|
|
27
|
+
"description": "Specify the recipient address.",
|
|
20
28
|
"name": "to",
|
|
21
29
|
"required": true,
|
|
22
30
|
"hasDynamicHelp": false,
|
|
@@ -24,7 +32,7 @@
|
|
|
24
32
|
"type": "option"
|
|
25
33
|
},
|
|
26
34
|
"amount": {
|
|
27
|
-
"description": "Amount to
|
|
35
|
+
"description": "Amount to mint, in tokens.",
|
|
28
36
|
"name": "amount",
|
|
29
37
|
"required": true,
|
|
30
38
|
"hasDynamicHelp": false,
|
|
@@ -34,155 +42,130 @@
|
|
|
34
42
|
},
|
|
35
43
|
"hasDynamicHelp": false,
|
|
36
44
|
"hiddenAliases": [],
|
|
37
|
-
"id": "
|
|
45
|
+
"id": "approve-and-mint-to",
|
|
38
46
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
39
47
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
40
48
|
"pluginType": "core",
|
|
41
49
|
"strict": true,
|
|
42
|
-
"summary": "
|
|
50
|
+
"summary": "Mint tokens to a compressed account via external mint authority",
|
|
43
51
|
"enableJsonFlag": false,
|
|
44
52
|
"isESM": false,
|
|
45
53
|
"relativePath": [
|
|
46
54
|
"dist",
|
|
47
55
|
"commands",
|
|
48
|
-
"
|
|
56
|
+
"approve-and-mint-to",
|
|
49
57
|
"index.js"
|
|
50
58
|
]
|
|
51
59
|
},
|
|
52
|
-
"
|
|
60
|
+
"balance": {
|
|
53
61
|
"aliases": [],
|
|
54
62
|
"args": {},
|
|
55
|
-
"description": "Initialize or update the configuration values. The default config path is ~/.config/light/config.json you can set up a custom path with an environment variable export LIGHT_PROTOCOL_CONFIG=path/to/config.json",
|
|
56
63
|
"examples": [
|
|
57
|
-
"$ light
|
|
64
|
+
"$ light balance --mint=<ADDRESS> --owner=<ADDRESS>"
|
|
58
65
|
],
|
|
59
66
|
"flags": {
|
|
60
|
-
"
|
|
61
|
-
"description": "
|
|
62
|
-
"name": "
|
|
63
|
-
"
|
|
64
|
-
"multiple": false,
|
|
65
|
-
"type": "option"
|
|
66
|
-
},
|
|
67
|
-
"indexerUrl": {
|
|
68
|
-
"description": "Indexer url",
|
|
69
|
-
"name": "indexerUrl",
|
|
67
|
+
"owner": {
|
|
68
|
+
"description": "Address of the compressed token owner.",
|
|
69
|
+
"name": "owner",
|
|
70
|
+
"required": true,
|
|
70
71
|
"hasDynamicHelp": false,
|
|
71
72
|
"multiple": false,
|
|
72
73
|
"type": "option"
|
|
73
74
|
},
|
|
74
|
-
"
|
|
75
|
-
"description": "
|
|
76
|
-
"name": "
|
|
75
|
+
"mint": {
|
|
76
|
+
"description": "Mint address of the compressed token account.",
|
|
77
|
+
"name": "mint",
|
|
78
|
+
"required": true,
|
|
77
79
|
"hasDynamicHelp": false,
|
|
78
80
|
"multiple": false,
|
|
79
81
|
"type": "option"
|
|
80
|
-
},
|
|
81
|
-
"get": {
|
|
82
|
-
"description": "Gets the current config values",
|
|
83
|
-
"name": "get",
|
|
84
|
-
"required": false,
|
|
85
|
-
"allowNo": false,
|
|
86
|
-
"type": "boolean"
|
|
87
82
|
}
|
|
88
83
|
},
|
|
89
84
|
"hasDynamicHelp": false,
|
|
90
85
|
"hiddenAliases": [],
|
|
91
|
-
"id": "
|
|
86
|
+
"id": "balance",
|
|
92
87
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
93
88
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
94
89
|
"pluginType": "core",
|
|
95
90
|
"strict": true,
|
|
91
|
+
"summary": "Get balance",
|
|
96
92
|
"enableJsonFlag": false,
|
|
97
93
|
"isESM": false,
|
|
98
94
|
"relativePath": [
|
|
99
95
|
"dist",
|
|
100
96
|
"commands",
|
|
101
|
-
"
|
|
97
|
+
"balance",
|
|
102
98
|
"index.js"
|
|
103
99
|
]
|
|
104
100
|
},
|
|
105
|
-
"
|
|
101
|
+
"compress-spl": {
|
|
106
102
|
"aliases": [],
|
|
107
103
|
"args": {},
|
|
108
|
-
"description": "Initialize or update the configuration values. The default config path is ~/.config/light/config.json you can set up a custom path with an environment variable export LIGHT_PROTOCOL_CONFIG=path/to/config.json",
|
|
109
104
|
"examples": [
|
|
110
|
-
"$ light
|
|
105
|
+
"$ light compress-spl --mint PublicKey --to PublicKey --amount 10"
|
|
111
106
|
],
|
|
112
107
|
"flags": {
|
|
113
|
-
"
|
|
114
|
-
"description": "
|
|
115
|
-
"name": "
|
|
108
|
+
"mint": {
|
|
109
|
+
"description": "Specify the mint address.",
|
|
110
|
+
"name": "mint",
|
|
111
|
+
"required": true,
|
|
116
112
|
"hasDynamicHelp": false,
|
|
117
113
|
"multiple": false,
|
|
118
114
|
"type": "option"
|
|
119
115
|
},
|
|
120
|
-
"
|
|
121
|
-
"description": "
|
|
122
|
-
"name": "
|
|
116
|
+
"to": {
|
|
117
|
+
"description": "Specify the recipient address (owner of destination compressed token account).",
|
|
118
|
+
"name": "to",
|
|
119
|
+
"required": true,
|
|
123
120
|
"hasDynamicHelp": false,
|
|
124
121
|
"multiple": false,
|
|
125
122
|
"type": "option"
|
|
126
123
|
},
|
|
127
|
-
"
|
|
128
|
-
"description": "
|
|
129
|
-
"name": "
|
|
124
|
+
"amount": {
|
|
125
|
+
"description": "Amount to compress, in tokens.",
|
|
126
|
+
"name": "amount",
|
|
127
|
+
"required": true,
|
|
130
128
|
"hasDynamicHelp": false,
|
|
131
129
|
"multiple": false,
|
|
132
130
|
"type": "option"
|
|
133
|
-
},
|
|
134
|
-
"get": {
|
|
135
|
-
"description": "Gets the current config values",
|
|
136
|
-
"name": "get",
|
|
137
|
-
"required": false,
|
|
138
|
-
"allowNo": false,
|
|
139
|
-
"type": "boolean"
|
|
140
131
|
}
|
|
141
132
|
},
|
|
142
133
|
"hasDynamicHelp": false,
|
|
143
134
|
"hiddenAliases": [],
|
|
144
|
-
"id": "
|
|
135
|
+
"id": "compress-spl",
|
|
145
136
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
146
137
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
147
138
|
"pluginType": "core",
|
|
148
139
|
"strict": true,
|
|
140
|
+
"summary": "Compress SPL tokens.",
|
|
149
141
|
"enableJsonFlag": false,
|
|
150
142
|
"isESM": false,
|
|
151
143
|
"relativePath": [
|
|
152
144
|
"dist",
|
|
153
145
|
"commands",
|
|
154
|
-
"
|
|
146
|
+
"compress-spl",
|
|
155
147
|
"index.js"
|
|
156
148
|
]
|
|
157
149
|
},
|
|
158
|
-
"
|
|
150
|
+
"compress-sol": {
|
|
159
151
|
"aliases": [],
|
|
160
152
|
"args": {},
|
|
161
153
|
"examples": [
|
|
162
|
-
"$ light
|
|
154
|
+
"$ light compress-sol --to PublicKey --amount 10"
|
|
163
155
|
],
|
|
164
156
|
"flags": {
|
|
165
|
-
"
|
|
166
|
-
"description": "
|
|
167
|
-
"name": "
|
|
168
|
-
"required":
|
|
169
|
-
"hasDynamicHelp": false,
|
|
170
|
-
"multiple": false,
|
|
171
|
-
"type": "option"
|
|
172
|
-
},
|
|
173
|
-
"mint-authority": {
|
|
174
|
-
"description": "Address of the mint authority. Defaults to the fee payer",
|
|
175
|
-
"name": "mint-authority",
|
|
176
|
-
"required": false,
|
|
157
|
+
"to": {
|
|
158
|
+
"description": "Specify the recipient address.",
|
|
159
|
+
"name": "to",
|
|
160
|
+
"required": true,
|
|
177
161
|
"hasDynamicHelp": false,
|
|
178
162
|
"multiple": false,
|
|
179
163
|
"type": "option"
|
|
180
164
|
},
|
|
181
|
-
"
|
|
182
|
-
"description": "
|
|
183
|
-
"name": "
|
|
184
|
-
"required":
|
|
185
|
-
"default": 9,
|
|
165
|
+
"amount": {
|
|
166
|
+
"description": "Amount to compress, in lamports.",
|
|
167
|
+
"name": "amount",
|
|
168
|
+
"required": true,
|
|
186
169
|
"hasDynamicHelp": false,
|
|
187
170
|
"multiple": false,
|
|
188
171
|
"type": "option"
|
|
@@ -190,40 +173,49 @@
|
|
|
190
173
|
},
|
|
191
174
|
"hasDynamicHelp": false,
|
|
192
175
|
"hiddenAliases": [],
|
|
193
|
-
"id": "
|
|
176
|
+
"id": "compress-sol",
|
|
194
177
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
195
178
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
196
179
|
"pluginType": "core",
|
|
197
180
|
"strict": true,
|
|
198
|
-
"summary": "
|
|
181
|
+
"summary": "Compress SOL.",
|
|
199
182
|
"enableJsonFlag": false,
|
|
200
183
|
"isESM": false,
|
|
201
184
|
"relativePath": [
|
|
202
185
|
"dist",
|
|
203
186
|
"commands",
|
|
204
|
-
"
|
|
187
|
+
"compress-sol",
|
|
205
188
|
"index.js"
|
|
206
189
|
]
|
|
207
190
|
},
|
|
208
|
-
"
|
|
191
|
+
"create-mint": {
|
|
209
192
|
"aliases": [],
|
|
210
193
|
"args": {},
|
|
211
194
|
"examples": [
|
|
212
|
-
"$ light
|
|
195
|
+
"$ light create-mint --mint-decimals 5"
|
|
213
196
|
],
|
|
214
197
|
"flags": {
|
|
215
|
-
"
|
|
216
|
-
"description": "
|
|
217
|
-
"name": "
|
|
218
|
-
"required":
|
|
198
|
+
"mint-keypair": {
|
|
199
|
+
"description": "Provide a path to a mint keypair file. Defaults to a random keypair",
|
|
200
|
+
"name": "mint-keypair",
|
|
201
|
+
"required": false,
|
|
219
202
|
"hasDynamicHelp": false,
|
|
220
203
|
"multiple": false,
|
|
221
204
|
"type": "option"
|
|
222
205
|
},
|
|
223
|
-
"mint": {
|
|
224
|
-
"description": "
|
|
225
|
-
"name": "mint",
|
|
226
|
-
"required":
|
|
206
|
+
"mint-authority": {
|
|
207
|
+
"description": "Address of the mint authority. Defaults to the fee payer",
|
|
208
|
+
"name": "mint-authority",
|
|
209
|
+
"required": false,
|
|
210
|
+
"hasDynamicHelp": false,
|
|
211
|
+
"multiple": false,
|
|
212
|
+
"type": "option"
|
|
213
|
+
},
|
|
214
|
+
"mint-decimals": {
|
|
215
|
+
"description": "Number of base 10 digits to the right of the decimal place [default: 9]",
|
|
216
|
+
"name": "mint-decimals",
|
|
217
|
+
"required": false,
|
|
218
|
+
"default": 9,
|
|
227
219
|
"hasDynamicHelp": false,
|
|
228
220
|
"multiple": false,
|
|
229
221
|
"type": "option"
|
|
@@ -231,18 +223,18 @@
|
|
|
231
223
|
},
|
|
232
224
|
"hasDynamicHelp": false,
|
|
233
225
|
"hiddenAliases": [],
|
|
234
|
-
"id": "
|
|
226
|
+
"id": "create-mint",
|
|
235
227
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
236
228
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
237
229
|
"pluginType": "core",
|
|
238
230
|
"strict": true,
|
|
239
|
-
"summary": "
|
|
231
|
+
"summary": "Create a new compressed token mint",
|
|
240
232
|
"enableJsonFlag": false,
|
|
241
233
|
"isESM": false,
|
|
242
234
|
"relativePath": [
|
|
243
235
|
"dist",
|
|
244
236
|
"commands",
|
|
245
|
-
"
|
|
237
|
+
"create-mint",
|
|
246
238
|
"index.js"
|
|
247
239
|
]
|
|
248
240
|
},
|
|
@@ -279,109 +271,117 @@
|
|
|
279
271
|
"index.js"
|
|
280
272
|
]
|
|
281
273
|
},
|
|
282
|
-
"
|
|
274
|
+
"config:config": {
|
|
283
275
|
"aliases": [],
|
|
284
276
|
"args": {},
|
|
277
|
+
"description": "Initialize or update the configuration values. The default config path is ~/.config/light/config.json you can set up a custom path with an environment variable export LIGHT_PROTOCOL_CONFIG=path/to/config.json",
|
|
285
278
|
"examples": [
|
|
286
|
-
"$ light
|
|
279
|
+
"$ light config --solanaRpcUrl https://solana-api.example.com"
|
|
287
280
|
],
|
|
288
281
|
"flags": {
|
|
289
|
-
"
|
|
290
|
-
"description": "
|
|
291
|
-
"name": "
|
|
292
|
-
"required": false,
|
|
282
|
+
"solanaRpcUrl": {
|
|
283
|
+
"description": "Solana RPC url",
|
|
284
|
+
"name": "solanaRpcUrl",
|
|
293
285
|
"hasDynamicHelp": false,
|
|
294
286
|
"multiple": false,
|
|
295
287
|
"type": "option"
|
|
296
288
|
},
|
|
297
|
-
"
|
|
298
|
-
"description": "
|
|
299
|
-
"name": "
|
|
300
|
-
"required": true,
|
|
289
|
+
"indexerUrl": {
|
|
290
|
+
"description": "Indexer url",
|
|
291
|
+
"name": "indexerUrl",
|
|
301
292
|
"hasDynamicHelp": false,
|
|
302
293
|
"multiple": false,
|
|
303
294
|
"type": "option"
|
|
304
295
|
},
|
|
305
|
-
"
|
|
306
|
-
"description": "
|
|
307
|
-
"name": "
|
|
308
|
-
"required": true,
|
|
296
|
+
"proverUrl": {
|
|
297
|
+
"description": "Prover url",
|
|
298
|
+
"name": "proverUrl",
|
|
309
299
|
"hasDynamicHelp": false,
|
|
310
300
|
"multiple": false,
|
|
311
301
|
"type": "option"
|
|
312
302
|
},
|
|
313
|
-
"
|
|
314
|
-
"description": "
|
|
315
|
-
"name": "
|
|
316
|
-
"required":
|
|
317
|
-
"
|
|
318
|
-
"
|
|
319
|
-
"type": "option"
|
|
303
|
+
"get": {
|
|
304
|
+
"description": "Gets the current config values",
|
|
305
|
+
"name": "get",
|
|
306
|
+
"required": false,
|
|
307
|
+
"allowNo": false,
|
|
308
|
+
"type": "boolean"
|
|
320
309
|
}
|
|
321
310
|
},
|
|
322
311
|
"hasDynamicHelp": false,
|
|
323
312
|
"hiddenAliases": [],
|
|
324
|
-
"id": "
|
|
313
|
+
"id": "config:config",
|
|
325
314
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
326
315
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
327
316
|
"pluginType": "core",
|
|
328
317
|
"strict": true,
|
|
329
|
-
"summary": "Mint tokens to a compressed account via external mint authority",
|
|
330
318
|
"enableJsonFlag": false,
|
|
331
319
|
"isESM": false,
|
|
332
320
|
"relativePath": [
|
|
333
321
|
"dist",
|
|
334
322
|
"commands",
|
|
335
|
-
"
|
|
323
|
+
"config",
|
|
336
324
|
"index.js"
|
|
337
325
|
]
|
|
338
326
|
},
|
|
339
|
-
"
|
|
327
|
+
"config": {
|
|
340
328
|
"aliases": [],
|
|
341
329
|
"args": {},
|
|
330
|
+
"description": "Initialize or update the configuration values. The default config path is ~/.config/light/config.json you can set up a custom path with an environment variable export LIGHT_PROTOCOL_CONFIG=path/to/config.json",
|
|
342
331
|
"examples": [
|
|
343
|
-
"$ light
|
|
332
|
+
"$ light config --solanaRpcUrl https://solana-api.example.com"
|
|
344
333
|
],
|
|
345
334
|
"flags": {
|
|
346
|
-
"
|
|
347
|
-
"description": "
|
|
348
|
-
"name": "
|
|
349
|
-
"required": true,
|
|
335
|
+
"solanaRpcUrl": {
|
|
336
|
+
"description": "Solana RPC url",
|
|
337
|
+
"name": "solanaRpcUrl",
|
|
350
338
|
"hasDynamicHelp": false,
|
|
351
339
|
"multiple": false,
|
|
352
340
|
"type": "option"
|
|
353
341
|
},
|
|
354
|
-
"
|
|
355
|
-
"description": "
|
|
356
|
-
"name": "
|
|
357
|
-
"required": true,
|
|
342
|
+
"indexerUrl": {
|
|
343
|
+
"description": "Indexer url",
|
|
344
|
+
"name": "indexerUrl",
|
|
358
345
|
"hasDynamicHelp": false,
|
|
359
346
|
"multiple": false,
|
|
360
347
|
"type": "option"
|
|
348
|
+
},
|
|
349
|
+
"proverUrl": {
|
|
350
|
+
"description": "Prover url",
|
|
351
|
+
"name": "proverUrl",
|
|
352
|
+
"hasDynamicHelp": false,
|
|
353
|
+
"multiple": false,
|
|
354
|
+
"type": "option"
|
|
355
|
+
},
|
|
356
|
+
"get": {
|
|
357
|
+
"description": "Gets the current config values",
|
|
358
|
+
"name": "get",
|
|
359
|
+
"required": false,
|
|
360
|
+
"allowNo": false,
|
|
361
|
+
"type": "boolean"
|
|
361
362
|
}
|
|
362
363
|
},
|
|
363
364
|
"hasDynamicHelp": false,
|
|
364
365
|
"hiddenAliases": [],
|
|
365
|
-
"id": "
|
|
366
|
+
"id": "config",
|
|
366
367
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
367
368
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
368
369
|
"pluginType": "core",
|
|
369
370
|
"strict": true,
|
|
370
|
-
"summary": "Decompress SOL.",
|
|
371
371
|
"enableJsonFlag": false,
|
|
372
372
|
"isESM": false,
|
|
373
373
|
"relativePath": [
|
|
374
374
|
"dist",
|
|
375
375
|
"commands",
|
|
376
|
-
"
|
|
376
|
+
"config",
|
|
377
377
|
"index.js"
|
|
378
378
|
]
|
|
379
379
|
},
|
|
380
|
-
"
|
|
380
|
+
"decompress-sol": {
|
|
381
381
|
"aliases": [],
|
|
382
382
|
"args": {},
|
|
383
383
|
"examples": [
|
|
384
|
-
"$ light
|
|
384
|
+
"$ light decompress-sol --to PublicKey --amount 10"
|
|
385
385
|
],
|
|
386
386
|
"flags": {
|
|
387
387
|
"to": {
|
|
@@ -393,7 +393,7 @@
|
|
|
393
393
|
"type": "option"
|
|
394
394
|
},
|
|
395
395
|
"amount": {
|
|
396
|
-
"description": "Amount to
|
|
396
|
+
"description": "Amount to decompress, in lamports.",
|
|
397
397
|
"name": "amount",
|
|
398
398
|
"required": true,
|
|
399
399
|
"hasDynamicHelp": false,
|
|
@@ -403,18 +403,18 @@
|
|
|
403
403
|
},
|
|
404
404
|
"hasDynamicHelp": false,
|
|
405
405
|
"hiddenAliases": [],
|
|
406
|
-
"id": "
|
|
406
|
+
"id": "decompress-sol",
|
|
407
407
|
"pluginAlias": "@lightprotocol/zk-compression-cli",
|
|
408
408
|
"pluginName": "@lightprotocol/zk-compression-cli",
|
|
409
409
|
"pluginType": "core",
|
|
410
410
|
"strict": true,
|
|
411
|
-
"summary": "
|
|
411
|
+
"summary": "Decompress SOL.",
|
|
412
412
|
"enableJsonFlag": false,
|
|
413
413
|
"isESM": false,
|
|
414
414
|
"relativePath": [
|
|
415
415
|
"dist",
|
|
416
416
|
"commands",
|
|
417
|
-
"
|
|
417
|
+
"decompress-sol",
|
|
418
418
|
"index.js"
|
|
419
419
|
]
|
|
420
420
|
},
|
|
@@ -597,20 +597,6 @@
|
|
|
597
597
|
"args": {},
|
|
598
598
|
"description": "Start gnark prover",
|
|
599
599
|
"flags": {
|
|
600
|
-
"skip-prove-compressed-accounts": {
|
|
601
|
-
"char": "c",
|
|
602
|
-
"description": "Skip proving of compressed accounts.",
|
|
603
|
-
"name": "skip-prove-compressed-accounts",
|
|
604
|
-
"allowNo": false,
|
|
605
|
-
"type": "boolean"
|
|
606
|
-
},
|
|
607
|
-
"skip-prove-new-addresses": {
|
|
608
|
-
"char": "n",
|
|
609
|
-
"description": "Skip proving of new addresses.",
|
|
610
|
-
"name": "skip-prove-new-addresses",
|
|
611
|
-
"allowNo": false,
|
|
612
|
-
"type": "boolean"
|
|
613
|
-
},
|
|
614
600
|
"prover-port": {
|
|
615
601
|
"description": "Enable Light Prover server on this port.",
|
|
616
602
|
"name": "prover-port",
|
|
@@ -619,6 +605,40 @@
|
|
|
619
605
|
"hasDynamicHelp": false,
|
|
620
606
|
"multiple": false,
|
|
621
607
|
"type": "option"
|
|
608
|
+
},
|
|
609
|
+
"run-mode": {
|
|
610
|
+
"description": "Specify the running mode (forester, forester-test, rpc, full, or full-test)",
|
|
611
|
+
"name": "run-mode",
|
|
612
|
+
"required": false,
|
|
613
|
+
"hasDynamicHelp": false,
|
|
614
|
+
"multiple": false,
|
|
615
|
+
"options": [
|
|
616
|
+
"rpc",
|
|
617
|
+
"forester",
|
|
618
|
+
"forester-test",
|
|
619
|
+
"full",
|
|
620
|
+
"full-test"
|
|
621
|
+
],
|
|
622
|
+
"type": "option"
|
|
623
|
+
},
|
|
624
|
+
"circuit": {
|
|
625
|
+
"description": "Specify individual circuits to enable.",
|
|
626
|
+
"name": "circuit",
|
|
627
|
+
"required": false,
|
|
628
|
+
"hasDynamicHelp": false,
|
|
629
|
+
"multiple": true,
|
|
630
|
+
"options": [
|
|
631
|
+
"inclusion",
|
|
632
|
+
"non-inclusion",
|
|
633
|
+
"combined",
|
|
634
|
+
"append-with-proofs",
|
|
635
|
+
"append-with-subtrees",
|
|
636
|
+
"update",
|
|
637
|
+
"append-with-proofs-test",
|
|
638
|
+
"append-with-subtrees-test",
|
|
639
|
+
"update-test"
|
|
640
|
+
],
|
|
641
|
+
"type": "option"
|
|
622
642
|
}
|
|
623
643
|
},
|
|
624
644
|
"hasDynamicHelp": false,
|
|
@@ -660,24 +680,6 @@
|
|
|
660
680
|
"allowNo": false,
|
|
661
681
|
"type": "boolean"
|
|
662
682
|
},
|
|
663
|
-
"prove-compressed-accounts": {
|
|
664
|
-
"description": "Enable proving of compressed accounts.",
|
|
665
|
-
"exclusive": [
|
|
666
|
-
"skip-prover"
|
|
667
|
-
],
|
|
668
|
-
"name": "prove-compressed-accounts",
|
|
669
|
-
"allowNo": false,
|
|
670
|
-
"type": "boolean"
|
|
671
|
-
},
|
|
672
|
-
"prove-new-addresses": {
|
|
673
|
-
"description": "Enable proving of new addresses.",
|
|
674
|
-
"exclusive": [
|
|
675
|
-
"skip-prover"
|
|
676
|
-
],
|
|
677
|
-
"name": "prove-new-addresses",
|
|
678
|
-
"allowNo": false,
|
|
679
|
-
"type": "boolean"
|
|
680
|
-
},
|
|
681
683
|
"relax-indexer-version-constraint": {
|
|
682
684
|
"description": "Disables indexer version check. Only use if you know what you are doing.",
|
|
683
685
|
"exclusive": [
|
|
@@ -731,6 +733,44 @@
|
|
|
731
733
|
"multiple": false,
|
|
732
734
|
"type": "option"
|
|
733
735
|
},
|
|
736
|
+
"prover-run-mode": {
|
|
737
|
+
"description": "Specify the running mode for the prover (forester, forester-test, rpc, or full)",
|
|
738
|
+
"exclusive": [
|
|
739
|
+
"skip-prover"
|
|
740
|
+
],
|
|
741
|
+
"name": "prover-run-mode",
|
|
742
|
+
"required": false,
|
|
743
|
+
"hasDynamicHelp": false,
|
|
744
|
+
"multiple": false,
|
|
745
|
+
"options": [
|
|
746
|
+
"rpc",
|
|
747
|
+
"forester",
|
|
748
|
+
"forester-test",
|
|
749
|
+
"full",
|
|
750
|
+
"full-test"
|
|
751
|
+
],
|
|
752
|
+
"type": "option"
|
|
753
|
+
},
|
|
754
|
+
"circuit": {
|
|
755
|
+
"description": "Specify individual circuits to enable.",
|
|
756
|
+
"exclusive": [
|
|
757
|
+
"skip-prover"
|
|
758
|
+
],
|
|
759
|
+
"name": "circuit",
|
|
760
|
+
"required": false,
|
|
761
|
+
"hasDynamicHelp": false,
|
|
762
|
+
"multiple": true,
|
|
763
|
+
"options": [
|
|
764
|
+
"inclusion",
|
|
765
|
+
"non-inclusion",
|
|
766
|
+
"combined",
|
|
767
|
+
"append",
|
|
768
|
+
"update",
|
|
769
|
+
"append-test",
|
|
770
|
+
"update-test"
|
|
771
|
+
],
|
|
772
|
+
"type": "option"
|
|
773
|
+
},
|
|
734
774
|
"limit-ledger-size": {
|
|
735
775
|
"description": "Keep this amount of shreds in root slots.",
|
|
736
776
|
"name": "limit-ledger-size",
|
|
@@ -831,5 +871,5 @@
|
|
|
831
871
|
]
|
|
832
872
|
}
|
|
833
873
|
},
|
|
834
|
-
"version": "0.
|
|
874
|
+
"version": "0.19.1"
|
|
835
875
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightprotocol/zk-compression-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "ZK Compression: Secure Scaling on Solana",
|
|
5
5
|
"maintainers": [
|
|
6
6
|
{
|
|
@@ -20,7 +20,14 @@
|
|
|
20
20
|
"/test_bin",
|
|
21
21
|
"./config.json",
|
|
22
22
|
"/npm-shrinkwrap.json",
|
|
23
|
-
"/oclif.manifest.json"
|
|
23
|
+
"/oclif.manifest.json",
|
|
24
|
+
"!bin/proving-keys/append-with-proofs_26_10.key",
|
|
25
|
+
"!bin/proving-keys/append-with-proofs_26_10.vkey",
|
|
26
|
+
"!bin/proving-keys/append-with-subtrees_26_10.key",
|
|
27
|
+
"!bin/proving-keys/append-with-subtrees_26_10.vkey",
|
|
28
|
+
"!bin/proving-keys/update_26_10.key",
|
|
29
|
+
"!bin/proving-keys/update_26_10.vkey",
|
|
30
|
+
"!bin/cargo-generate"
|
|
24
31
|
],
|
|
25
32
|
"dependencies": {
|
|
26
33
|
"@coral-xyz/anchor": "0.29.0",
|
|
@@ -44,8 +51,8 @@
|
|
|
44
51
|
"tweetnacl": "^1.0.3",
|
|
45
52
|
"wait-on": "^7.2.0",
|
|
46
53
|
"which": "^4.0.0",
|
|
47
|
-
"@lightprotocol/
|
|
48
|
-
"@lightprotocol/
|
|
54
|
+
"@lightprotocol/stateless.js": "0.14.2",
|
|
55
|
+
"@lightprotocol/compressed-token": "0.14.1",
|
|
49
56
|
"@lightprotocol/hasher.rs": "0.2.0"
|
|
50
57
|
},
|
|
51
58
|
"devDependencies": {
|