@lightprotocol/zk-compression-cli 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/accounts/address_merkle_tree_C83cpRN6oaafjNgMQJvaYgAz592EP5wunKvbokeTKPLn.json +1 -1
- package/accounts/address_merkle_tree_queue_HNjtNrjt6irUPYEgxhx2Vcs42koK9fxzm3aFLHVaaRWz.json +1 -1
- package/accounts/cpi_context_Bvux5m7rMGXJfjNCKUXHaRMcVJCiDe6iWu8ANj8kpwu5.json +1 -0
- package/accounts/governance_authority_pda_8KEKiyAMugpKq9XCGzx81UtTBuytByW8arm9EaBVpD5k.json +1 -0
- package/accounts/group_pda_5e3BWAnQAgpNdANLnMQp45MgUy7gQtZcwYkWv3MwgdZR.json +1 -0
- package/accounts/merkle_tree_pubkey_5bdFnXU47QjzGpzHfXnxcEi5WXyxzEAZzd1vrE39bf1W.json +1 -1
- package/accounts/nullifier_queue_pubkey_44J4oDXpjPAbzHCSc24q7NEiPekss4sAbLd8ka4gd9CZ.json +1 -1
- package/accounts/registered_forester_epoch_pda_DFiGEbaz75wSdqy9bpeWacqLWrqAwWBfqh4iSYtejiwK.json +1 -0
- package/accounts/registered_program_pda_ApB3ASTFzS1RrccrB1cnNDPAAWrm1X4KSeNh2G3qSaxx.json +1 -0
- package/accounts/registered_registry_program_pda_CYAHAD4k1MExp219NfV9scN9GWzrMLhLpWqouwbvbVNo.json +1 -0
- package/bin/account_compression.so +0 -0
- package/bin/forester +0 -0
- package/bin/forester.toml +10 -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/approve-and-mint-to/index.js +1 -5
- package/dist/commands/balance/index.js +1 -5
- package/dist/commands/compress-sol/index.js +1 -4
- package/dist/commands/compress-spl/index.js +1 -5
- package/dist/commands/config/config.d.ts +2 -0
- package/dist/commands/config/config.js +34 -6
- package/dist/commands/create-mint/index.d.ts +2 -2
- package/dist/commands/create-mint/index.js +8 -12
- package/dist/commands/decompress-sol/index.js +1 -4
- package/dist/commands/decompress-spl/index.js +2 -6
- package/dist/commands/mint-to/index.js +1 -5
- package/dist/commands/register-mint/index.d.ts +0 -3
- package/dist/commands/register-mint/index.js +1 -16
- package/dist/commands/start-prover/index.d.ts +1 -0
- package/dist/commands/start-prover/index.js +6 -1
- package/dist/commands/test-validator/index.d.ts +6 -0
- package/dist/commands/test-validator/index.js +42 -5
- package/dist/commands/transfer/index.js +1 -5
- package/dist/utils/constants.d.ts +6 -1
- package/dist/utils/constants.js +7 -2
- package/dist/utils/initTestEnv.d.ts +17 -4
- package/dist/utils/initTestEnv.js +40 -19
- package/dist/utils/process.d.ts +1 -1
- package/dist/utils/process.js +11 -5
- package/dist/utils/processForester.d.ts +3 -0
- package/dist/utils/processForester.js +25 -0
- package/dist/utils/processPhotonIndexer.d.ts +1 -1
- package/dist/utils/processPhotonIndexer.js +10 -3
- package/dist/utils/processProverServer.d.ts +1 -1
- package/dist/utils/processProverServer.js +4 -3
- package/dist/utils/utils.d.ts +6 -0
- package/dist/utils/utils.js +20 -1
- package/oclif.manifest.json +190 -108
- package/package.json +27 -8
- package/accounts/governance_authority_pda_3MtrKu5Mjgh3JqeE5PeRzw2Ld28XjFgbbph67E6UERSx.json +0 -1
- package/accounts/group_pda_Edo2YjXU5eE17CejPBkupPgFLcYuAX47pGZmM7s2hAkj.json +0 -1
- package/accounts/registered_program_pda_ytwwVWhQUMoTKdirKmvEW5xCRVr4B2dJZnToiHtE2L2.json +0 -1
- package/bin/light_compressed_pda.so +0 -0
package/accounts/registered_forester_epoch_pda_DFiGEbaz75wSdqy9bpeWacqLWrqAwWBfqh4iSYtejiwK.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pubkey":"DFiGEbaz75wSdqy9bpeWacqLWrqAwWBfqh4iSYtejiwK","account":{"lamports":1336320,"data":["cYUIcLQlc8/MuMIVdedaPnWzorVHJCIvMcPXWnMDRUrSS6K/PzOqzAAAAAAAAAAAAAAAAAAAAAD//////////w==","base64"],"owner":"7Z9Yuy3HkBCc2Wf3xzMGnz6qpV4n7ciwcoEMGKqhAnj1","executable":false,"rentEpoch":18446744073709551615,"space":64}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pubkey":"ApB3ASTFzS1RrccrB1cnNDPAAWrm1X4KSeNh2G3qSaxx","account":{"lamports":1392000,"data":["H/u06wN0MgTu+iPYo1pSSKfRxOPSrVn/jhTHlpDXPaQiL7Xk4pnQEUTrtCxUndCuTHWuG6/5ieleDg7YJM2TD6PALIN/JL5g","base64"],"owner":"CbjvJc1SNx1aav8tU49dJGHu8EUdzQJSMtkjDmV8miqK","executable":false,"rentEpoch":18446744073709551615,"space":72}}
|
package/accounts/registered_registry_program_pda_CYAHAD4k1MExp219NfV9scN9GWzrMLhLpWqouwbvbVNo.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pubkey":"CYAHAD4k1MExp219NfV9scN9GWzrMLhLpWqouwbvbVNo","account":{"lamports":1392000,"data":["H/u06wN0MgRhYmAOilpSTP7F6CHMQ+2LZHO7pHMfpBX2CaLT4xRgwETrtCxUndCuTHWuG6/5ieleDg7YJM2TD6PALIN/JL5g","base64"],"owner":"CbjvJc1SNx1aav8tU49dJGHu8EUdzQJSMtkjDmV8miqK","executable":false,"rentEpoch":18446744073709551615,"space":72}}
|
|
Binary file
|
package/bin/forester
ADDED
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
PAYER = [17, 34, 231, 31, 83, 147, 93, 173, 61, 164, 25, 0, 204, 82, 234, 91, 202, 187, 228, 110, 146,
|
|
2
|
+
97, 112, 131, 180, 164, 96, 220, 57, 207, 65, 107, 2, 99, 226, 251, 88, 66, 92, 33, 25, 216,
|
|
3
|
+
211, 185, 112, 203, 212, 238, 105, 144, 72, 121, 176, 253, 106, 168, 115, 158, 154, 188, 62,
|
|
4
|
+
255, 166, 81]
|
|
5
|
+
|
|
6
|
+
STATE_MERKLE_TREE_PUBKEY = "5bdFnXU47QjzGpzHfXnxcEi5WXyxzEAZzd1vrE39bf1W"
|
|
7
|
+
NULLIFIER_QUEUE_PUBKEY = "44J4oDXpjPAbzHCSc24q7NEiPekss4sAbLd8ka4gd9CZ"
|
|
8
|
+
REGISTRY_PUBKEY = "7Z9Yuy3HkBCc2Wf3xzMGnz6qpV4n7ciwcoEMGKqhAnj1"
|
|
9
|
+
ADDRESS_MERKLE_TREE_PUBKEY = "C83cpRN6oaafjNgMQJvaYgAz592EP5wunKvbokeTKPLn"
|
|
10
|
+
ADDRESS_MERKLE_TREE_QUEUE_PUBKEY = "HNjtNrjt6irUPYEgxhx2Vcs42koK9fxzm3aFLHVaaRWz"
|
|
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
|
|
@@ -5,8 +5,6 @@ const utils_1 = require("../../utils/utils");
|
|
|
5
5
|
const helpers_1 = require("@solana-developers/helpers");
|
|
6
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
7
7
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
8
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
8
|
class ApproveAndMintToCommand extends core_1.Command {
|
|
11
9
|
async run() {
|
|
12
10
|
const { flags } = await this.parse(ApproveAndMintToCommand);
|
|
@@ -26,9 +24,7 @@ class ApproveAndMintToCommand extends core_1.Command {
|
|
|
26
24
|
if (flags["mint-authority"] !== undefined) {
|
|
27
25
|
mintAuthority = await (0, helpers_1.getKeypairFromFile)(flags["mint-authority"]);
|
|
28
26
|
}
|
|
29
|
-
const
|
|
30
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
31
|
-
const txId = await (0, compressed_token_1.approveAndMintTo)(rpc, payer, mintPublicKey, toPublicKey, mintAuthority, amount);
|
|
27
|
+
const txId = await (0, compressed_token_1.approveAndMintTo)((0, utils_1.rpc)(), payer, mintPublicKey, toPublicKey, mintAuthority, amount);
|
|
32
28
|
loader.stop(false);
|
|
33
29
|
console.log("\x1b[1mMint tx:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
34
30
|
console.log("approve-and-mint-to successful");
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const core_1 = require("@oclif/core");
|
|
4
4
|
const utils_1 = require("../../utils/utils");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
7
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
8
6
|
class BalanceCommand extends core_1.Command {
|
|
9
7
|
async run() {
|
|
10
8
|
const { flags } = await this.parse(BalanceCommand);
|
|
@@ -13,9 +11,7 @@ class BalanceCommand extends core_1.Command {
|
|
|
13
11
|
try {
|
|
14
12
|
const refMint = new web3_js_1.PublicKey(flags["mint"]);
|
|
15
13
|
const refOwner = new web3_js_1.PublicKey(flags["owner"]);
|
|
16
|
-
const
|
|
17
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
18
|
-
const tokenAccounts = await rpc.getCompressedTokenAccountsByOwner(refOwner, { mint: refMint });
|
|
14
|
+
const tokenAccounts = await (0, utils_1.rpc)().getCompressedTokenAccountsByOwner(refOwner, { mint: refMint });
|
|
19
15
|
loader.stop(false);
|
|
20
16
|
if (tokenAccounts.length === 0) {
|
|
21
17
|
console.log("No token accounts found");
|
|
@@ -4,7 +4,6 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const utils_1 = require("../../utils/utils");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
7
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
8
7
|
class CompressSolCommand extends core_1.Command {
|
|
9
8
|
async run() {
|
|
10
9
|
const { flags } = await this.parse(CompressSolCommand);
|
|
@@ -19,9 +18,7 @@ class CompressSolCommand extends core_1.Command {
|
|
|
19
18
|
try {
|
|
20
19
|
const toPublicKey = new web3_js_1.PublicKey(to);
|
|
21
20
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
22
|
-
|
|
23
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
24
|
-
txId = await (0, stateless_js_1.compress)(rpc, payer, amount, toPublicKey);
|
|
21
|
+
txId = await (0, stateless_js_1.compress)((0, utils_1.rpc)(), payer, amount, toPublicKey);
|
|
25
22
|
loader.stop(false);
|
|
26
23
|
console.log("\x1b[32mtxId:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
27
24
|
console.log("compress-sol successful");
|
|
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const core_1 = require("@oclif/core");
|
|
4
4
|
const utils_1 = require("../../utils/utils");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
7
6
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
8
7
|
const spl_token_1 = require("@solana/spl-token");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
8
|
/// TODO: add ability to compress from non-fee payer
|
|
11
9
|
class CompressSplCommand extends core_1.Command {
|
|
12
10
|
async run() {
|
|
@@ -24,11 +22,9 @@ class CompressSplCommand extends core_1.Command {
|
|
|
24
22
|
const toPublicKey = new web3_js_1.PublicKey(to);
|
|
25
23
|
const mintPublicKey = new web3_js_1.PublicKey(mint);
|
|
26
24
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
27
|
-
const lightWasm = await hasher_rs_1.WasmFactory.getInstance();
|
|
28
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
29
25
|
/// TODO: add explicit check that the ata is valid
|
|
30
26
|
const sourceAta = (0, spl_token_1.getAssociatedTokenAddressSync)(mintPublicKey, payer.publicKey);
|
|
31
|
-
txId = await (0, compressed_token_1.compress)(rpc, payer, mintPublicKey, amount, payer, sourceAta, toPublicKey);
|
|
27
|
+
txId = await (0, compressed_token_1.compress)((0, utils_1.rpc)(), payer, mintPublicKey, amount, payer, sourceAta, toPublicKey);
|
|
32
28
|
loader.stop(false);
|
|
33
29
|
console.log("\x1b[32mtxId:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
34
30
|
console.log("compress-spl successful");
|
|
@@ -4,6 +4,8 @@ declare class ConfigCommand extends Command {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
solanaRpcUrl: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
indexerUrl: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
proverUrl: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
9
|
get: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
10
|
};
|
|
9
11
|
run(): Promise<void>;
|
|
@@ -5,7 +5,7 @@ const utils_1 = require("../../utils/utils");
|
|
|
5
5
|
class ConfigCommand extends core_1.Command {
|
|
6
6
|
async run() {
|
|
7
7
|
const { flags } = await this.parse(ConfigCommand);
|
|
8
|
-
const { solanaRpcUrl, get } = flags;
|
|
8
|
+
const { solanaRpcUrl, indexerUrl, proverUrl, get } = flags;
|
|
9
9
|
try {
|
|
10
10
|
const config = (0, utils_1.getConfig)();
|
|
11
11
|
if (get) {
|
|
@@ -24,6 +24,22 @@ class ConfigCommand extends core_1.Command {
|
|
|
24
24
|
this.error(`\nInvalid URL format`);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
if (indexerUrl) {
|
|
28
|
+
if ((0, utils_1.isValidURL)(indexerUrl)) {
|
|
29
|
+
config.indexerUrl = indexerUrl;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.error(`\nInvalid URL format`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (proverUrl) {
|
|
36
|
+
if ((0, utils_1.isValidURL)(proverUrl)) {
|
|
37
|
+
config.proverUrl = proverUrl;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.error(`\nInvalid URL format`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
27
43
|
(0, utils_1.setConfig)(config);
|
|
28
44
|
this.log("\nConfiguration values updated successfully \x1b[32m✔\x1b[0m");
|
|
29
45
|
loader.stop(false);
|
|
@@ -41,21 +57,33 @@ ConfigCommand.examples = [
|
|
|
41
57
|
];
|
|
42
58
|
ConfigCommand.flags = {
|
|
43
59
|
solanaRpcUrl: core_1.Flags.string({
|
|
44
|
-
|
|
45
|
-
|
|
60
|
+
description: "Solana RPC url",
|
|
61
|
+
}),
|
|
62
|
+
indexerUrl: core_1.Flags.string({
|
|
63
|
+
description: "Indexer url",
|
|
64
|
+
}),
|
|
65
|
+
proverUrl: core_1.Flags.string({
|
|
66
|
+
description: "Prover url",
|
|
46
67
|
}),
|
|
47
68
|
get: core_1.Flags.boolean({
|
|
48
|
-
|
|
49
|
-
description: "Gets the current config values.",
|
|
69
|
+
description: "Gets the current config values",
|
|
50
70
|
required: false,
|
|
51
71
|
}),
|
|
52
72
|
};
|
|
53
73
|
function logConfig(config) {
|
|
54
74
|
const tableData = [];
|
|
55
75
|
tableData.push({
|
|
56
|
-
name: "
|
|
76
|
+
name: "Solana RPC URL",
|
|
57
77
|
value: config.solanaRpcUrl,
|
|
58
78
|
});
|
|
79
|
+
tableData.push({
|
|
80
|
+
name: "Indexer URL",
|
|
81
|
+
value: config.indexerUrl,
|
|
82
|
+
});
|
|
83
|
+
tableData.push({
|
|
84
|
+
name: "Prover URL",
|
|
85
|
+
value: config.proverUrl,
|
|
86
|
+
});
|
|
59
87
|
// space
|
|
60
88
|
tableData.push({
|
|
61
89
|
name: "",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "@oclif/core";
|
|
2
|
-
import {
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
3
|
declare class CreateMintCommand extends Command {
|
|
4
4
|
static summary: string;
|
|
5
5
|
static examples: string[];
|
|
@@ -12,6 +12,6 @@ declare class CreateMintCommand extends Command {
|
|
|
12
12
|
run(): Promise<void>;
|
|
13
13
|
getMintDecimals(flags: any): number;
|
|
14
14
|
private getMintKeypair;
|
|
15
|
-
getMintAuthority(flags: any,
|
|
15
|
+
getMintAuthority(flags: any, feePayer: PublicKey): Promise<PublicKey>;
|
|
16
16
|
}
|
|
17
17
|
export default CreateMintCommand;
|
|
@@ -4,8 +4,7 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const helpers_1 = require("@solana-developers/helpers");
|
|
5
5
|
const utils_1 = require("../../utils/utils");
|
|
6
6
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
7
|
-
const
|
|
8
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
9
8
|
const DEFAULT_DECIMAL_COUNT = 9;
|
|
10
9
|
class CreateMintCommand extends core_1.Command {
|
|
11
10
|
async run() {
|
|
@@ -16,10 +15,8 @@ class CreateMintCommand extends core_1.Command {
|
|
|
16
15
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
17
16
|
const mintDecimals = this.getMintDecimals(flags);
|
|
18
17
|
const mintKeypair = await this.getMintKeypair(flags);
|
|
19
|
-
const mintAuthority = await this.getMintAuthority(flags, payer);
|
|
20
|
-
const
|
|
21
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
22
|
-
const { mint, transactionSignature } = await (0, compressed_token_1.createMint)(rpc, payer, mintAuthority, mintDecimals, mintKeypair);
|
|
18
|
+
const mintAuthority = await this.getMintAuthority(flags, payer.publicKey);
|
|
19
|
+
const { mint, transactionSignature } = await (0, compressed_token_1.createMint)((0, utils_1.rpc)(), payer, mintAuthority, mintDecimals, mintKeypair);
|
|
23
20
|
loader.stop(false);
|
|
24
21
|
console.log("\x1b[1mMint public key:\x1b[0m ", mint.toBase58());
|
|
25
22
|
console.log("\x1b[1mMint tx:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", transactionSignature, "custom"));
|
|
@@ -37,13 +34,12 @@ class CreateMintCommand extends core_1.Command {
|
|
|
37
34
|
if (!mintKeypairFilePath) {
|
|
38
35
|
return undefined;
|
|
39
36
|
}
|
|
40
|
-
|
|
41
|
-
return keypair;
|
|
37
|
+
return await (0, helpers_1.getKeypairFromFile)(mintKeypairFilePath);
|
|
42
38
|
}
|
|
43
|
-
async getMintAuthority(flags,
|
|
39
|
+
async getMintAuthority(flags, feePayer) {
|
|
44
40
|
return flags["mint-authority"]
|
|
45
|
-
?
|
|
46
|
-
:
|
|
41
|
+
? new web3_js_1.PublicKey(flags["mint-authority"])
|
|
42
|
+
: feePayer;
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
CreateMintCommand.summary = "Create a new compressed token mint";
|
|
@@ -54,7 +50,7 @@ CreateMintCommand.flags = {
|
|
|
54
50
|
required: false,
|
|
55
51
|
}),
|
|
56
52
|
"mint-authority": core_1.Flags.string({
|
|
57
|
-
description: "
|
|
53
|
+
description: "Address of the mint authority. Defaults to the fee payer",
|
|
58
54
|
required: false,
|
|
59
55
|
}),
|
|
60
56
|
"mint-decimals": core_1.Flags.integer({
|
|
@@ -4,7 +4,6 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const utils_1 = require("../../utils/utils");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
7
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
8
7
|
class DecompressSolCommand extends core_1.Command {
|
|
9
8
|
async run() {
|
|
10
9
|
const { flags } = await this.parse(DecompressSolCommand);
|
|
@@ -18,9 +17,7 @@ class DecompressSolCommand extends core_1.Command {
|
|
|
18
17
|
try {
|
|
19
18
|
const toPublicKey = new web3_js_1.PublicKey(to);
|
|
20
19
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
21
|
-
const
|
|
22
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
23
|
-
const txId = await (0, stateless_js_1.decompress)(rpc, payer, amount, toPublicKey);
|
|
20
|
+
const txId = await (0, stateless_js_1.decompress)((0, utils_1.rpc)(), payer, amount, toPublicKey);
|
|
24
21
|
loader.stop(false);
|
|
25
22
|
console.log("\x1b[32mdecompress-sol:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
26
23
|
console.log("decompress-sol successful");
|
|
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const core_1 = require("@oclif/core");
|
|
4
4
|
const utils_1 = require("../../utils/utils");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
7
6
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
8
7
|
const spl_token_1 = require("@solana/spl-token");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
8
|
/// TODO: add ability to decompress from non-fee payer
|
|
11
9
|
class DecompressSplCommand extends core_1.Command {
|
|
12
10
|
async run() {
|
|
@@ -24,10 +22,8 @@ class DecompressSplCommand extends core_1.Command {
|
|
|
24
22
|
const toPublicKey = new web3_js_1.PublicKey(to);
|
|
25
23
|
const mintPublicKey = new web3_js_1.PublicKey(mint);
|
|
26
24
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
const recipientAta = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(rpc, payer, mintPublicKey, toPublicKey);
|
|
30
|
-
txId = await (0, compressed_token_1.decompress)(rpc, payer, mintPublicKey, amount, payer, recipientAta.address);
|
|
25
|
+
const recipientAta = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)((0, utils_1.rpc)(), payer, mintPublicKey, toPublicKey);
|
|
26
|
+
txId = await (0, compressed_token_1.decompress)((0, utils_1.rpc)(), payer, mintPublicKey, amount, payer, recipientAta.address);
|
|
31
27
|
loader.stop(false);
|
|
32
28
|
console.log("\x1b[32mtxId:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
33
29
|
console.log("decompress-spl successful");
|
|
@@ -5,8 +5,6 @@ const utils_1 = require("../../utils/utils");
|
|
|
5
5
|
const helpers_1 = require("@solana-developers/helpers");
|
|
6
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
7
7
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
8
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
8
|
class MintToCommand extends core_1.Command {
|
|
11
9
|
async run() {
|
|
12
10
|
const { flags } = await this.parse(MintToCommand);
|
|
@@ -26,9 +24,7 @@ class MintToCommand extends core_1.Command {
|
|
|
26
24
|
if (flags["mint-authority"] !== undefined) {
|
|
27
25
|
mintAuthority = await (0, helpers_1.getKeypairFromFile)(flags["mint-authority"]);
|
|
28
26
|
}
|
|
29
|
-
const
|
|
30
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
31
|
-
const txId = await (0, compressed_token_1.mintTo)(rpc, payer, mintPublicKey, toPublicKey, mintAuthority, amount);
|
|
27
|
+
const txId = await (0, compressed_token_1.mintTo)((0, utils_1.rpc)(), payer, mintPublicKey, toPublicKey, mintAuthority, amount);
|
|
32
28
|
loader.stop(false);
|
|
33
29
|
console.log("\x1b[1mMint tx:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
34
30
|
console.log("mint-to successful");
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { Command } from "@oclif/core";
|
|
2
|
-
import { Keypair } from "@solana/web3.js";
|
|
3
2
|
declare class RegisterMintCommand extends Command {
|
|
4
3
|
static summary: string;
|
|
5
4
|
static examples: string[];
|
|
6
5
|
static flags: {
|
|
7
6
|
mint: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
-
"mint-authority": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
7
|
};
|
|
10
8
|
static args: {};
|
|
11
9
|
run(): Promise<void>;
|
|
12
|
-
getMintAuthority(flags: any, payer: Keypair): Promise<Keypair>;
|
|
13
10
|
}
|
|
14
11
|
export default RegisterMintCommand;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const core_1 = require("@oclif/core");
|
|
4
|
-
const helpers_1 = require("@solana-developers/helpers");
|
|
5
4
|
const utils_1 = require("../../utils/utils");
|
|
6
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
8
6
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
7
|
class RegisterMintCommand extends core_1.Command {
|
|
11
8
|
async run() {
|
|
12
9
|
const { flags } = await this.parse(RegisterMintCommand);
|
|
@@ -15,10 +12,7 @@ class RegisterMintCommand extends core_1.Command {
|
|
|
15
12
|
try {
|
|
16
13
|
const payer = (0, utils_1.defaultSolanaWalletKeypair)();
|
|
17
14
|
const mintAddress = new web3_js_1.PublicKey(flags.mint);
|
|
18
|
-
const
|
|
19
|
-
const lightWasm = await hasher_rs_1.WasmFactory.getInstance();
|
|
20
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
21
|
-
const txId = await (0, compressed_token_1.registerMint)(rpc, payer, mintAuthority, mintAddress);
|
|
15
|
+
const txId = await (0, compressed_token_1.registerMint)((0, utils_1.rpc)(), payer, mintAddress);
|
|
22
16
|
loader.stop(false);
|
|
23
17
|
console.log("\x1b[1mMint public key:\x1b[0m ", mintAddress.toBase58());
|
|
24
18
|
console.log("\x1b[1mMint tx:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
@@ -28,11 +22,6 @@ class RegisterMintCommand extends core_1.Command {
|
|
|
28
22
|
this.error(`Failed to register-mint!\n${error}`);
|
|
29
23
|
}
|
|
30
24
|
}
|
|
31
|
-
async getMintAuthority(flags, payer) {
|
|
32
|
-
return flags["mint-authority"]
|
|
33
|
-
? await (0, helpers_1.getKeypairFromFile)(flags["mint-authority"])
|
|
34
|
-
: payer;
|
|
35
|
-
}
|
|
36
25
|
}
|
|
37
26
|
RegisterMintCommand.summary = "Register an existing mint with the CompressedToken program";
|
|
38
27
|
RegisterMintCommand.examples = ["$ light register-mint --mint-decimals 5"];
|
|
@@ -41,10 +30,6 @@ RegisterMintCommand.flags = {
|
|
|
41
30
|
description: "Provide a base58 encoded mint address to register",
|
|
42
31
|
required: true,
|
|
43
32
|
}),
|
|
44
|
-
"mint-authority": core_1.Flags.string({
|
|
45
|
-
description: "Specify a path to the mint authority keypair file. Defaults to your default local solana wallet file path",
|
|
46
|
-
required: false,
|
|
47
|
-
}),
|
|
48
33
|
};
|
|
49
34
|
RegisterMintCommand.args = {};
|
|
50
35
|
exports.default = RegisterMintCommand;
|
|
@@ -5,6 +5,7 @@ declare class StartProver extends Command {
|
|
|
5
5
|
static flags: {
|
|
6
6
|
"skip-prove-compressed-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
"skip-prove-new-addresses": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
"prover-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
9
|
};
|
|
9
10
|
run(): Promise<void>;
|
|
10
11
|
}
|
|
@@ -10,7 +10,7 @@ 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["skip-prove-compressed-accounts"], !flags["skip-prove-new-addresses"]);
|
|
13
|
+
await (0, index_1.startProver)(flags["prover-port"], !flags["skip-prove-compressed-accounts"], !flags["skip-prove-new-addresses"]);
|
|
14
14
|
this.log("\nSetup tasks completed successfully \x1b[32m✔\x1b[0m");
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -26,5 +26,10 @@ StartProver.flags = {
|
|
|
26
26
|
default: false,
|
|
27
27
|
char: "n",
|
|
28
28
|
}),
|
|
29
|
+
"prover-port": core_1.Flags.integer({
|
|
30
|
+
description: "Enable Light Prover server on this port.",
|
|
31
|
+
required: false,
|
|
32
|
+
default: 3001,
|
|
33
|
+
}),
|
|
29
34
|
};
|
|
30
35
|
exports.default = StartProver;
|
|
@@ -5,11 +5,17 @@ declare class SetupCommand extends Command {
|
|
|
5
5
|
static flags: {
|
|
6
6
|
"skip-indexer": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
"skip-prover": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
"skip-forester": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
9
|
"skip-system-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
10
|
"prove-compressed-accounts": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
"prove-new-addresses": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
"relax-indexer-version-constraint": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
13
|
"indexer-db-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
"rpc-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
"indexer-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
"prover-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
"limit-ledger-size": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
"gossip-host": import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
19
|
};
|
|
14
20
|
run(): Promise<void>;
|
|
15
21
|
}
|
|
@@ -12,13 +12,19 @@ class SetupCommand extends core_1.Command {
|
|
|
12
12
|
const loader = new index_1.CustomLoader("Performing setup tasks...\n");
|
|
13
13
|
loader.start();
|
|
14
14
|
await (0, initTestEnv_1.initTestEnv)({
|
|
15
|
-
|
|
15
|
+
checkPhotonVersion: !flags["relax-indexer-version-constraint"],
|
|
16
|
+
forester: !flags["skip-forester"],
|
|
16
17
|
indexer: !flags["skip-indexer"],
|
|
17
|
-
|
|
18
|
+
limitLedgerSize: flags["limit-ledger-size"],
|
|
19
|
+
photonDatabaseUrl: flags["indexer-db-url"],
|
|
20
|
+
rpcPort: flags["rpc-port"],
|
|
21
|
+
gossipHost: flags["gossip-host"],
|
|
22
|
+
indexerPort: flags["indexer-port"],
|
|
23
|
+
proverPort: flags["prover-port"],
|
|
18
24
|
proveCompressedAccounts: flags["prove-compressed-accounts"],
|
|
19
25
|
proveNewAddresses: flags["prove-new-addresses"],
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
prover: !flags["skip-prover"],
|
|
27
|
+
skipSystemAccounts: flags["skip-system-accounts"],
|
|
22
28
|
});
|
|
23
29
|
this.log("\nSetup tasks completed successfully \x1b[32m✔\x1b[0m");
|
|
24
30
|
}
|
|
@@ -33,6 +39,10 @@ SetupCommand.flags = {
|
|
|
33
39
|
description: "Runs a test validator without starting a new prover service.",
|
|
34
40
|
default: false,
|
|
35
41
|
}),
|
|
42
|
+
"skip-forester": core_1.Flags.boolean({
|
|
43
|
+
description: "Runs a test validator without starting a new forester service.",
|
|
44
|
+
default: false,
|
|
45
|
+
}),
|
|
36
46
|
"skip-system-accounts": core_1.Flags.boolean({
|
|
37
47
|
description: "Runs a test validator without initialized light system accounts.",
|
|
38
48
|
default: false,
|
|
@@ -44,7 +54,7 @@ SetupCommand.flags = {
|
|
|
44
54
|
}),
|
|
45
55
|
"prove-new-addresses": core_1.Flags.boolean({
|
|
46
56
|
description: "Enable proving of new addresses.",
|
|
47
|
-
default:
|
|
57
|
+
default: true,
|
|
48
58
|
exclusive: ["skip-prover"],
|
|
49
59
|
}),
|
|
50
60
|
"relax-indexer-version-constraint": core_1.Flags.boolean({
|
|
@@ -57,5 +67,32 @@ SetupCommand.flags = {
|
|
|
57
67
|
required: false,
|
|
58
68
|
exclusive: ["skip-indexer"],
|
|
59
69
|
}),
|
|
70
|
+
"rpc-port": core_1.Flags.integer({
|
|
71
|
+
description: "Enable JSON RPC on this port, and the next port for the RPC websocket.",
|
|
72
|
+
required: false,
|
|
73
|
+
default: 8899,
|
|
74
|
+
}),
|
|
75
|
+
"indexer-port": core_1.Flags.integer({
|
|
76
|
+
description: "Enable Photon indexer on this port.",
|
|
77
|
+
required: false,
|
|
78
|
+
default: 8784,
|
|
79
|
+
exclusive: ["skip-indexer"],
|
|
80
|
+
}),
|
|
81
|
+
"prover-port": core_1.Flags.integer({
|
|
82
|
+
description: "Enable Light Prover server on this port.",
|
|
83
|
+
required: false,
|
|
84
|
+
default: 3001,
|
|
85
|
+
exclusive: ["skip-prover"],
|
|
86
|
+
}),
|
|
87
|
+
"limit-ledger-size": core_1.Flags.integer({
|
|
88
|
+
description: "Keep this amount of shreds in root slots.",
|
|
89
|
+
required: false,
|
|
90
|
+
default: 10000,
|
|
91
|
+
}),
|
|
92
|
+
"gossip-host": core_1.Flags.string({
|
|
93
|
+
description: "Gossip DNS name or IP address for the validator to advertise in gossip.",
|
|
94
|
+
required: false,
|
|
95
|
+
default: "127.0.0.1",
|
|
96
|
+
}),
|
|
60
97
|
};
|
|
61
98
|
exports.default = SetupCommand;
|
|
@@ -5,8 +5,6 @@ const utils_1 = require("../../utils/utils");
|
|
|
5
5
|
const compressed_token_1 = require("@lightprotocol/compressed-token");
|
|
6
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
7
7
|
const helpers_1 = require("@solana-developers/helpers");
|
|
8
|
-
const stateless_js_1 = require("@lightprotocol/stateless.js");
|
|
9
|
-
const hasher_rs_1 = require("@lightprotocol/hasher.rs");
|
|
10
8
|
class TransferCommand extends core_1.Command {
|
|
11
9
|
async run() {
|
|
12
10
|
const { flags } = await this.parse(TransferCommand);
|
|
@@ -25,9 +23,7 @@ class TransferCommand extends core_1.Command {
|
|
|
25
23
|
if (flags["fee-payer"] !== undefined) {
|
|
26
24
|
payer = await (0, helpers_1.getKeypairFromFile)(flags["fee-payer"]);
|
|
27
25
|
}
|
|
28
|
-
const
|
|
29
|
-
const rpc = await (0, stateless_js_1.getTestRpc)(lightWasm);
|
|
30
|
-
const txId = await (0, compressed_token_1.transfer)(rpc, payer, mintPublicKey, amount, payer, toPublicKey);
|
|
26
|
+
const txId = await (0, compressed_token_1.transfer)((0, utils_1.rpc)(), payer, mintPublicKey, amount, payer, toPublicKey);
|
|
31
27
|
loader.stop(false);
|
|
32
28
|
console.log("\x1b[1mTransfer tx:\x1b[0m ", (0, utils_1.generateSolanaTransactionURL)("tx", txId, "custom"));
|
|
33
29
|
console.log("transfer successful");
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export declare const SPL_NOOP_PROGRAM_TAG = "spl-noop-v0.2.0";
|
|
2
2
|
export declare const LIGHT_MERKLE_TREE_PROGRAM_TAG = "light-merkle-tree-program-v0.3.1";
|
|
3
|
+
export declare const LIGHT_ACCOUNT_COMPRESSION_TAG = "account-compression-v0.3.5";
|
|
4
|
+
export declare const LIGHT_SYSTEM_PROGRAM_TAG = "light-system-program-v0.3.4";
|
|
5
|
+
export declare const LIGHT_REGISTRY_TAG = "light-registry-v0.3.4";
|
|
6
|
+
export declare const LIGHT_COMPRESSED_TOKEN_TAG = "light-compressed-token-v0.3.4";
|
|
3
7
|
export declare const CONFIG_PATH = "/.config/light/";
|
|
4
8
|
export declare const CONFIG_FILE_NAME = "config.json";
|
|
5
9
|
export declare const DEFAULT_CONFIG: {
|
|
@@ -9,6 +13,7 @@ export declare const CARGO_GENERATE_TAG = "v0.18.4";
|
|
|
9
13
|
export declare const SOLANA_VALIDATOR_PROCESS_NAME = "solana-test-validator";
|
|
10
14
|
export declare const LIGHT_PROVER_PROCESS_NAME = "light-prover";
|
|
11
15
|
export declare const INDEXER_PROCESS_NAME = "photon";
|
|
12
|
-
export declare const
|
|
16
|
+
export declare const FORESTER_PROCESS_NAME = "forester";
|
|
17
|
+
export declare const PHOTON_VERSION = "0.26.0";
|
|
13
18
|
export declare const LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = "LIGHT_PROTOCOL_PROGRAMS_DIR";
|
|
14
19
|
export declare const BASE_PATH = "../../bin/";
|
package/dist/utils/constants.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BASE_PATH = exports.LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = exports.PHOTON_VERSION = exports.INDEXER_PROCESS_NAME = exports.LIGHT_PROVER_PROCESS_NAME = exports.SOLANA_VALIDATOR_PROCESS_NAME = exports.CARGO_GENERATE_TAG = exports.DEFAULT_CONFIG = exports.CONFIG_FILE_NAME = exports.CONFIG_PATH = exports.LIGHT_MERKLE_TREE_PROGRAM_TAG = exports.SPL_NOOP_PROGRAM_TAG = void 0;
|
|
3
|
+
exports.BASE_PATH = exports.LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = exports.PHOTON_VERSION = exports.FORESTER_PROCESS_NAME = exports.INDEXER_PROCESS_NAME = exports.LIGHT_PROVER_PROCESS_NAME = exports.SOLANA_VALIDATOR_PROCESS_NAME = exports.CARGO_GENERATE_TAG = exports.DEFAULT_CONFIG = exports.CONFIG_FILE_NAME = exports.CONFIG_PATH = exports.LIGHT_COMPRESSED_TOKEN_TAG = exports.LIGHT_REGISTRY_TAG = exports.LIGHT_SYSTEM_PROGRAM_TAG = exports.LIGHT_ACCOUNT_COMPRESSION_TAG = exports.LIGHT_MERKLE_TREE_PROGRAM_TAG = exports.SPL_NOOP_PROGRAM_TAG = void 0;
|
|
4
4
|
exports.SPL_NOOP_PROGRAM_TAG = "spl-noop-v0.2.0";
|
|
5
5
|
exports.LIGHT_MERKLE_TREE_PROGRAM_TAG = "light-merkle-tree-program-v0.3.1";
|
|
6
|
+
exports.LIGHT_ACCOUNT_COMPRESSION_TAG = "account-compression-v0.3.5";
|
|
7
|
+
exports.LIGHT_SYSTEM_PROGRAM_TAG = "light-system-program-v0.3.4";
|
|
8
|
+
exports.LIGHT_REGISTRY_TAG = "light-registry-v0.3.4";
|
|
9
|
+
exports.LIGHT_COMPRESSED_TOKEN_TAG = "light-compressed-token-v0.3.4";
|
|
6
10
|
exports.CONFIG_PATH = "/.config/light/";
|
|
7
11
|
exports.CONFIG_FILE_NAME = "config.json";
|
|
8
12
|
exports.DEFAULT_CONFIG = {
|
|
@@ -14,6 +18,7 @@ exports.CARGO_GENERATE_TAG = "v0.18.4";
|
|
|
14
18
|
exports.SOLANA_VALIDATOR_PROCESS_NAME = "solana-test-validator";
|
|
15
19
|
exports.LIGHT_PROVER_PROCESS_NAME = "light-prover";
|
|
16
20
|
exports.INDEXER_PROCESS_NAME = "photon";
|
|
17
|
-
exports.
|
|
21
|
+
exports.FORESTER_PROCESS_NAME = "forester";
|
|
22
|
+
exports.PHOTON_VERSION = "0.26.0";
|
|
18
23
|
exports.LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = "LIGHT_PROTOCOL_PROGRAMS_DIR";
|
|
19
24
|
exports.BASE_PATH = "../../bin/";
|