@magicblock-labs/ephemeral-validator 0.2.0 → 0.2.2
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/local-dumps/5hBR571xnXppuCPveTrctfTU7tJLSN94nq7kv7FRK5Tc.json +0 -0
- package/bin/local-dumps/7JrkjmZPprHwtuvtuGTXp9hwfGYFAQLnLeFM52kqAgXg.json +0 -0
- package/bin/local-dumps/Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh.json +0 -0
- package/bin/local-dumps/EpJnX7ueXk7fKojBymqmVuCuwyhDQsYcLVL1XMsBbvDX.json +0 -0
- package/bin/local-dumps/F72HqCR8nwYsVyeVd38pgKkjXmXFzVAM8rjZZsXWbdE.json +0 -0
- package/bin/local-dumps/mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev.json +0 -0
- package/ephemeralValidator.js +10 -6
- package/mbTestValidator.js +111 -0
- package/package.json +9 -8
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/ephemeralValidator.js
CHANGED
|
@@ -32,10 +32,8 @@ function getExePath() {
|
|
|
32
32
|
throw new Error(`Couldn't find application binary inside node_modules for ${os}-${(0, os_1.arch)()}, expected location: ${binaryName}`);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
const ephemeralValidator = (0, child_process_1.spawn)(location, args, { stdio: "inherit" });
|
|
38
|
-
ephemeralValidator.on("exit", (code, signal) => {
|
|
35
|
+
function runWithForwardedExit(child) {
|
|
36
|
+
child.on("exit", (code, signal) => {
|
|
39
37
|
process.on("exit", () => {
|
|
40
38
|
if (signal) {
|
|
41
39
|
process.kill(process.pid, signal);
|
|
@@ -46,10 +44,15 @@ function runEphemeralValidator(location) {
|
|
|
46
44
|
});
|
|
47
45
|
});
|
|
48
46
|
process.on("SIGINT", () => {
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
child.kill("SIGINT");
|
|
48
|
+
child.kill("SIGTERM");
|
|
51
49
|
});
|
|
52
50
|
}
|
|
51
|
+
function runEphemeralValidator(location) {
|
|
52
|
+
const args = process.argv.slice(2);
|
|
53
|
+
const ephemeralValidator = (0, child_process_1.spawn)(location, args, { stdio: "inherit" });
|
|
54
|
+
runWithForwardedExit(ephemeralValidator);
|
|
55
|
+
}
|
|
53
56
|
function tryPackageEphemeralValidator() {
|
|
54
57
|
try {
|
|
55
58
|
const path = getExePath();
|
|
@@ -88,4 +91,5 @@ function trySystemEphemeralValidator() {
|
|
|
88
91
|
}
|
|
89
92
|
runEphemeralValidator(absoluteBinaryPath);
|
|
90
93
|
}
|
|
94
|
+
// If the first argument is our special command, run the test validator and exit.
|
|
91
95
|
tryPackageEphemeralValidator() || trySystemEphemeralValidator();
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
const child_process_1 = require("child_process");
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const fs = __importStar(require("fs"));
|
|
30
|
+
function runWithForwardedExit(child) {
|
|
31
|
+
child.on("exit", (code, signal) => {
|
|
32
|
+
process.on("exit", () => {
|
|
33
|
+
if (signal) {
|
|
34
|
+
process.kill(process.pid, signal);
|
|
35
|
+
}
|
|
36
|
+
else if (code !== null) {
|
|
37
|
+
process.exit(code);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
process.on("SIGINT", () => {
|
|
42
|
+
child.kill("SIGINT");
|
|
43
|
+
child.kill("SIGTERM");
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function dumpsDir() {
|
|
47
|
+
// Compiled js lives in lib/, source in package root. We want <package-root>/bin/local-dumps
|
|
48
|
+
const libDir = __dirname;
|
|
49
|
+
const root = path.resolve(libDir, "..");
|
|
50
|
+
return path.join(root, "ephemeral-validator", "bin", "local-dumps");
|
|
51
|
+
}
|
|
52
|
+
function runMbTestValidator() {
|
|
53
|
+
const exe = "solana-test-validator";
|
|
54
|
+
const dumps = dumpsDir();
|
|
55
|
+
const p = (name) => path.join(dumps, name);
|
|
56
|
+
const args = [
|
|
57
|
+
// programs
|
|
58
|
+
"--bpf-program",
|
|
59
|
+
"DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh",
|
|
60
|
+
p("DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh.so"),
|
|
61
|
+
"--bpf-program",
|
|
62
|
+
"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",
|
|
63
|
+
p("noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV.so"),
|
|
64
|
+
"--bpf-program",
|
|
65
|
+
"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz",
|
|
66
|
+
p("Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz.so"),
|
|
67
|
+
"--bpf-program",
|
|
68
|
+
"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",
|
|
69
|
+
p("noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV.so"),
|
|
70
|
+
// accounts
|
|
71
|
+
"--account",
|
|
72
|
+
"mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev",
|
|
73
|
+
p("mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev.json"),
|
|
74
|
+
"--account",
|
|
75
|
+
"EpJnX7ueXk7fKojBymqmVuCuwyhDQsYcLVL1XMsBbvDX",
|
|
76
|
+
p("EpJnX7ueXk7fKojBymqmVuCuwyhDQsYcLVL1XMsBbvDX.json"),
|
|
77
|
+
"--account",
|
|
78
|
+
"7JrkjmZPprHwtuvtuGTXp9hwfGYFAQLnLeFM52kqAgXg",
|
|
79
|
+
p("7JrkjmZPprHwtuvtuGTXp9hwfGYFAQLnLeFM52kqAgXg.json"),
|
|
80
|
+
"--account",
|
|
81
|
+
"Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh",
|
|
82
|
+
p("Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh.json"),
|
|
83
|
+
"--account",
|
|
84
|
+
"5hBR571xnXppuCPveTrctfTU7tJLSN94nq7kv7FRK5Tc",
|
|
85
|
+
p("5hBR571xnXppuCPveTrctfTU7tJLSN94nq7kv7FRK5Tc.json"),
|
|
86
|
+
"--account",
|
|
87
|
+
"F72HqCR8nwYsVyeVd38pgKkjXmXFzVAM8rjZZsXWbdE",
|
|
88
|
+
p("F72HqCR8nwYsVyeVd38pgKkjXmXFzVAM8rjZZsXWbdE.json"),
|
|
89
|
+
];
|
|
90
|
+
const expectedFiles = [
|
|
91
|
+
"DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh.so",
|
|
92
|
+
"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV.so",
|
|
93
|
+
"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz.so",
|
|
94
|
+
"mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev.json",
|
|
95
|
+
"EpJnX7ueXk7fKojBymqmVuCuwyhDQsYcLVL1XMsBbvDX.json",
|
|
96
|
+
"7JrkjmZPprHwtuvtuGTXp9hwfGYFAQLnLeFM52kqAgXg.json",
|
|
97
|
+
"Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh.json",
|
|
98
|
+
"5hBR571xnXppuCPveTrctfTU7tJLSN94nq7kv7FRK5Tc.json",
|
|
99
|
+
"F72HqCR8nwYsVyeVd38pgKkjXmXFzVAM8rjZZsXWbdE.json",
|
|
100
|
+
];
|
|
101
|
+
const missingFiles = expectedFiles
|
|
102
|
+
.map((f) => p(f))
|
|
103
|
+
.filter((full) => !fs.existsSync(full));
|
|
104
|
+
if (missingFiles.length > 0) {
|
|
105
|
+
console.warn("Warning: missing local dumps files:\n" + missingFiles.join("\n"));
|
|
106
|
+
}
|
|
107
|
+
const extraArgs = process.argv.slice(2);
|
|
108
|
+
const child = (0, child_process_1.spawn)(exe, [...args, ...extraArgs], { stdio: "inherit" });
|
|
109
|
+
runWithForwardedExit(child);
|
|
110
|
+
}
|
|
111
|
+
runMbTestValidator();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magicblock-labs/ephemeral-validator",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "MagicBlock Ephemeral Validator",
|
|
5
5
|
"homepage": "https://github.com/magicblock-labs/ephemeral-validator#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "Business Source License 1.1",
|
|
14
14
|
"bin": {
|
|
15
|
-
"ephemeral-validator": "ephemeralValidator.js"
|
|
15
|
+
"ephemeral-validator": "ephemeralValidator.js",
|
|
16
|
+
"mb-test-validator": "mbTestValidator.js"
|
|
16
17
|
},
|
|
17
18
|
"scripts": {
|
|
18
19
|
"typecheck": "tsc --noEmit",
|
|
19
20
|
"lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check ",
|
|
20
21
|
"lint:fix": "node_modules/.bin/prettier */*.js \"*/**/*{.js,.ts}\" -w",
|
|
21
|
-
"build": "tsc",
|
|
22
|
+
"build": "tsc && bash scripts/fetch-local-dumps.sh",
|
|
22
23
|
"dev": "yarn build && node lib/index.js"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
@@ -27,11 +28,11 @@
|
|
|
27
28
|
"typescript": "^4.9.4"
|
|
28
29
|
},
|
|
29
30
|
"optionalDependencies": {
|
|
30
|
-
"@magicblock-labs/ephemeral-validator-darwin-arm64": "0.2.
|
|
31
|
-
"@magicblock-labs/ephemeral-validator-darwin-x64": "0.2.
|
|
32
|
-
"@magicblock-labs/ephemeral-validator-linux-arm64": "0.2.
|
|
33
|
-
"@magicblock-labs/ephemeral-validator-linux-x64": "0.2.
|
|
34
|
-
"@magicblock-labs/ephemeral-validator-windows-x64": "0.2.
|
|
31
|
+
"@magicblock-labs/ephemeral-validator-darwin-arm64": "0.2.2",
|
|
32
|
+
"@magicblock-labs/ephemeral-validator-darwin-x64": "0.2.2",
|
|
33
|
+
"@magicblock-labs/ephemeral-validator-linux-arm64": "0.2.2",
|
|
34
|
+
"@magicblock-labs/ephemeral-validator-linux-x64": "0.2.2",
|
|
35
|
+
"@magicblock-labs/ephemeral-validator-windows-x64": "0.2.2"
|
|
35
36
|
},
|
|
36
37
|
"publishConfig": {
|
|
37
38
|
"access": "public"
|