@lightprotocol/zk-compression-cli 0.19.0 → 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.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
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
- await (0, index_1.startProver)(flags["prover-port"], !flags["skip-prove-compressed-accounts"], !flags["skip-prove-new-addresses"]);
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.45.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";
@@ -20,8 +20,8 @@ export declare const ANCHOR_VERSION = "0.29.0";
20
20
  export declare const BORSH_VERSION = "0.9.2";
21
21
  export declare const LIGHT_HASHER_VERSION = "1.1.0";
22
22
  export declare const LIGHT_MACROS_VERSION = "1.1.0";
23
- export declare const LIGHT_SDK_VERSION = "0.11.0";
24
- export declare const LIGHT_SDK_MACROS_VERSION = "0.4.0";
23
+ export declare const LIGHT_SDK_VERSION = "0.10.0";
24
+ export declare const LIGHT_SDK_MACROS_VERSION = "0.3.0";
25
25
  export declare const LIGHT_UTILS_VERSION = "1.1.0";
26
26
  export declare const LIGHT_VERIFIER_VERSION = "1.1.0";
27
27
  export declare const SOLANA_SDK_VERSION = "1.18.22";
@@ -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.45.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";
@@ -25,8 +25,8 @@ exports.ANCHOR_VERSION = "0.29.0";
25
25
  exports.BORSH_VERSION = "0.9.2";
26
26
  exports.LIGHT_HASHER_VERSION = "1.1.0";
27
27
  exports.LIGHT_MACROS_VERSION = "1.1.0";
28
- exports.LIGHT_SDK_VERSION = "0.11.0";
29
- exports.LIGHT_SDK_MACROS_VERSION = "0.4.0";
28
+ exports.LIGHT_SDK_VERSION = "0.10.0";
29
+ exports.LIGHT_SDK_MACROS_VERSION = "0.3.0";
30
30
  exports.LIGHT_UTILS_VERSION = "1.1.0";
31
31
  exports.LIGHT_VERIFIER_VERSION = "1.1.0";
32
32
  exports.SOLANA_SDK_VERSION = "1.18.22";
@@ -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, proveCompressedAccounts, proveNewAddresses, checkPhotonVersion, photonDatabaseUrl, limitLedgerSize, }: {
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", proveCompressedAccounts = true, proveNewAddresses = false, checkPhotonVersion = true, photonDatabaseUrl, limitLedgerSize, }) {
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, proveCompressedAccounts, proveNewAddresses);
66
+ await (0, processProverServer_1.startProver)(proverPort, proverRunMode, circuits);
78
67
  }
79
68
  }
80
69
  async function initTestEnvIfNeeded({ additionalPrograms, skipSystemAccounts, indexer = false, prover = false, } = {}) {
@@ -15,18 +15,32 @@ const find_process_1 = tslib_1.__importDefault(require("find-process"));
15
15
  const node_child_process_1 = require("node:child_process");
16
16
  const util_1 = require("util");
17
17
  const axios_1 = tslib_1.__importDefault(require("axios"));
18
- const shellQuote = tslib_1.__importStar(require("shell-quote"));
19
18
  const waitOn = require("wait-on");
20
19
  async function killProcess(processName) {
21
20
  const processList = await (0, find_process_1.default)("name", processName);
22
- const targetProcesses = processList.filter((proc) => proc.cmd.split(" ")[0] === processName);
23
- targetProcesses.forEach((proc) => {
24
- process.kill(proc.pid);
25
- });
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
+ }
26
35
  }
27
36
  async function killProcessByPort(port) {
28
- const portArg = shellQuote.quote([`-i:${port}`]);
29
- await execute(`lsof -t ${portArg} | while read line; do kill -9 $line; done`);
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
43
+ await execute(`lsof -t -i:${port} | while read line; do kill -9 $line; done`);
30
44
  }
31
45
  /**
32
46
  * Executes a command and logs the output to the console.
@@ -1,4 +1,4 @@
1
1
  export declare function killProver(): Promise<void>;
2
- export declare function startProver(proverPort: number, proveCompressedAccounts: boolean, proveNewAddresses: boolean): Promise<void>;
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, proveCompressedAccounts, proveNewAddresses) {
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
- console.log("Starting prover...");
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("Prover started successfully!");
44
+ console.log(`Prover started successfully!`);
35
45
  }
36
46
  function getProverNameByArch() {
37
47
  const platform = process.platform;
@@ -57,24 +57,24 @@
57
57
  "index.js"
58
58
  ]
59
59
  },
60
- "compress-sol": {
60
+ "balance": {
61
61
  "aliases": [],
62
62
  "args": {},
63
63
  "examples": [
64
- "$ light compress-sol --to PublicKey --amount 10"
64
+ "$ light balance --mint=<ADDRESS> --owner=<ADDRESS>"
65
65
  ],
66
66
  "flags": {
67
- "to": {
68
- "description": "Specify the recipient address.",
69
- "name": "to",
67
+ "owner": {
68
+ "description": "Address of the compressed token owner.",
69
+ "name": "owner",
70
70
  "required": true,
71
71
  "hasDynamicHelp": false,
72
72
  "multiple": false,
73
73
  "type": "option"
74
74
  },
75
- "amount": {
76
- "description": "Amount to compress, in lamports.",
77
- "name": "amount",
75
+ "mint": {
76
+ "description": "Mint address of the compressed token account.",
77
+ "name": "mint",
78
78
  "required": true,
79
79
  "hasDynamicHelp": false,
80
80
  "multiple": false,
@@ -83,39 +83,47 @@
83
83
  },
84
84
  "hasDynamicHelp": false,
85
85
  "hiddenAliases": [],
86
- "id": "compress-sol",
86
+ "id": "balance",
87
87
  "pluginAlias": "@lightprotocol/zk-compression-cli",
88
88
  "pluginName": "@lightprotocol/zk-compression-cli",
89
89
  "pluginType": "core",
90
90
  "strict": true,
91
- "summary": "Compress SOL.",
91
+ "summary": "Get balance",
92
92
  "enableJsonFlag": false,
93
93
  "isESM": false,
94
94
  "relativePath": [
95
95
  "dist",
96
96
  "commands",
97
- "compress-sol",
97
+ "balance",
98
98
  "index.js"
99
99
  ]
100
100
  },
101
- "balance": {
101
+ "compress-spl": {
102
102
  "aliases": [],
103
103
  "args": {},
104
104
  "examples": [
105
- "$ light balance --mint=<ADDRESS> --owner=<ADDRESS>"
105
+ "$ light compress-spl --mint PublicKey --to PublicKey --amount 10"
106
106
  ],
107
107
  "flags": {
108
- "owner": {
109
- "description": "Address of the compressed token owner.",
110
- "name": "owner",
108
+ "mint": {
109
+ "description": "Specify the mint address.",
110
+ "name": "mint",
111
111
  "required": true,
112
112
  "hasDynamicHelp": false,
113
113
  "multiple": false,
114
114
  "type": "option"
115
115
  },
116
- "mint": {
117
- "description": "Mint address of the compressed token account.",
118
- "name": "mint",
116
+ "to": {
117
+ "description": "Specify the recipient address (owner of destination compressed token account).",
118
+ "name": "to",
119
+ "required": true,
120
+ "hasDynamicHelp": false,
121
+ "multiple": false,
122
+ "type": "option"
123
+ },
124
+ "amount": {
125
+ "description": "Amount to compress, in tokens.",
126
+ "name": "amount",
119
127
  "required": true,
120
128
  "hasDynamicHelp": false,
121
129
  "multiple": false,
@@ -124,38 +132,30 @@
124
132
  },
125
133
  "hasDynamicHelp": false,
126
134
  "hiddenAliases": [],
127
- "id": "balance",
135
+ "id": "compress-spl",
128
136
  "pluginAlias": "@lightprotocol/zk-compression-cli",
129
137
  "pluginName": "@lightprotocol/zk-compression-cli",
130
138
  "pluginType": "core",
131
139
  "strict": true,
132
- "summary": "Get balance",
140
+ "summary": "Compress SPL tokens.",
133
141
  "enableJsonFlag": false,
134
142
  "isESM": false,
135
143
  "relativePath": [
136
144
  "dist",
137
145
  "commands",
138
- "balance",
146
+ "compress-spl",
139
147
  "index.js"
140
148
  ]
141
149
  },
142
- "compress-spl": {
150
+ "compress-sol": {
143
151
  "aliases": [],
144
152
  "args": {},
145
153
  "examples": [
146
- "$ light compress-spl --mint PublicKey --to PublicKey --amount 10"
154
+ "$ light compress-sol --to PublicKey --amount 10"
147
155
  ],
148
156
  "flags": {
149
- "mint": {
150
- "description": "Specify the mint address.",
151
- "name": "mint",
152
- "required": true,
153
- "hasDynamicHelp": false,
154
- "multiple": false,
155
- "type": "option"
156
- },
157
157
  "to": {
158
- "description": "Specify the recipient address (owner of destination compressed token account).",
158
+ "description": "Specify the recipient address.",
159
159
  "name": "to",
160
160
  "required": true,
161
161
  "hasDynamicHelp": false,
@@ -163,7 +163,7 @@
163
163
  "type": "option"
164
164
  },
165
165
  "amount": {
166
- "description": "Amount to compress, in tokens.",
166
+ "description": "Amount to compress, in lamports.",
167
167
  "name": "amount",
168
168
  "required": true,
169
169
  "hasDynamicHelp": false,
@@ -173,18 +173,18 @@
173
173
  },
174
174
  "hasDynamicHelp": false,
175
175
  "hiddenAliases": [],
176
- "id": "compress-spl",
176
+ "id": "compress-sol",
177
177
  "pluginAlias": "@lightprotocol/zk-compression-cli",
178
178
  "pluginName": "@lightprotocol/zk-compression-cli",
179
179
  "pluginType": "core",
180
180
  "strict": true,
181
- "summary": "Compress SPL tokens.",
181
+ "summary": "Compress SOL.",
182
182
  "enableJsonFlag": false,
183
183
  "isESM": false,
184
184
  "relativePath": [
185
185
  "dist",
186
186
  "commands",
187
- "compress-spl",
187
+ "compress-sol",
188
188
  "index.js"
189
189
  ]
190
190
  },
@@ -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.19.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.19.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",
@@ -31,7 +38,6 @@
31
38
  "@oclif/plugin-plugins": "^5.0.7",
32
39
  "@solana-developers/helpers": "^1.5.1",
33
40
  "@solana/web3.js": "^1.95.3",
34
- "@types/shell-quote": "^1.7.5",
35
41
  "axios": "^1.6.8",
36
42
  "case-anything": "^2.1.13",
37
43
  "cli-progress": "^3.12.0",
@@ -45,9 +51,9 @@
45
51
  "tweetnacl": "^1.0.3",
46
52
  "wait-on": "^7.2.0",
47
53
  "which": "^4.0.0",
48
- "@lightprotocol/compressed-token": "0.14.0",
49
- "@lightprotocol/hasher.rs": "0.2.0",
50
- "@lightprotocol/stateless.js": "0.14.1"
54
+ "@lightprotocol/stateless.js": "0.14.2",
55
+ "@lightprotocol/compressed-token": "0.14.1",
56
+ "@lightprotocol/hasher.rs": "0.2.0"
51
57
  },
52
58
  "devDependencies": {
53
59
  "@oclif/test": "2.3.9",
Binary file