near-kit 0.11.0 → 0.13.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/dist/core/schema.js +3 -3
- package/dist/core/schema.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sandbox/index.d.ts +2 -2
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +1 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/sandbox.d.ts +150 -0
- package/dist/sandbox/sandbox.d.ts.map +1 -1
- package/dist/sandbox/sandbox.js +448 -27
- package/dist/sandbox/sandbox.js.map +1 -1
- package/dist/utils/gas.d.ts +2 -1
- package/dist/utils/gas.d.ts.map +1 -1
- package/dist/utils/gas.js +3 -2
- package/dist/utils/gas.js.map +1 -1
- package/dist/wallets/adapters.d.ts +16 -9
- package/dist/wallets/adapters.d.ts.map +1 -1
- package/dist/wallets/adapters.js +25 -18
- package/dist/wallets/adapters.js.map +1 -1
- package/dist/wallets/index.d.ts +4 -4
- package/dist/wallets/index.d.ts.map +1 -1
- package/dist/wallets/index.js +1 -1
- package/dist/wallets/index.js.map +1 -1
- package/dist/wallets/types.d.ts +53 -25
- package/dist/wallets/types.d.ts.map +1 -1
- package/dist/wallets/types.js +1 -1
- package/package.json +14 -14
package/dist/sandbox/sandbox.js
CHANGED
|
@@ -5,19 +5,24 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { spawn } from "node:child_process";
|
|
7
7
|
import fs from "node:fs";
|
|
8
|
-
import { mkdir, mkdtemp, readFile, rm } from "node:fs/promises";
|
|
8
|
+
import { copyFile, mkdir, mkdtemp, readFile, rm, writeFile, } from "node:fs/promises";
|
|
9
9
|
import { createServer } from "node:net";
|
|
10
10
|
import os from "node:os";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import { Readable } from "node:stream";
|
|
13
13
|
import { pipeline } from "node:stream/promises";
|
|
14
14
|
import * as tar from "tar";
|
|
15
|
-
const DEFAULT_VERSION = "2.
|
|
15
|
+
const DEFAULT_VERSION = "2.11.1";
|
|
16
16
|
const BINARY_NAME = "near-sandbox";
|
|
17
17
|
const ARCHIVE_NAME = "near-sandbox.tar.gz";
|
|
18
18
|
const DOWNLOAD_BASE = "https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore";
|
|
19
19
|
const STARTUP_TIMEOUT = 60000;
|
|
20
20
|
const DOWNLOAD_TIMEOUT = 120000;
|
|
21
|
+
/**
|
|
22
|
+
* Default code hash for accounts without deployed contract code.
|
|
23
|
+
* This is a base58-encoded sha256 hash of an empty byte array.
|
|
24
|
+
*/
|
|
25
|
+
export const EMPTY_CODE_HASH = "11111111111111111111111111111111";
|
|
21
26
|
/**
|
|
22
27
|
* NEAR Sandbox instance
|
|
23
28
|
*
|
|
@@ -37,12 +42,18 @@ export class Sandbox {
|
|
|
37
42
|
rootAccount;
|
|
38
43
|
process;
|
|
39
44
|
homeDir;
|
|
40
|
-
|
|
45
|
+
binaryPath;
|
|
46
|
+
detached;
|
|
47
|
+
originalGenesisPath;
|
|
48
|
+
constructor(rpcUrl, networkId, rootAccount, homeDir, childProcess, binaryPath, detached) {
|
|
41
49
|
this.rpcUrl = rpcUrl;
|
|
42
50
|
this.networkId = networkId;
|
|
43
51
|
this.rootAccount = rootAccount;
|
|
44
52
|
this.homeDir = homeDir;
|
|
45
53
|
this.process = childProcess;
|
|
54
|
+
this.binaryPath = binaryPath;
|
|
55
|
+
this.detached = detached;
|
|
56
|
+
this.originalGenesisPath = path.join(homeDir, "genesis.original.json");
|
|
46
57
|
}
|
|
47
58
|
/**
|
|
48
59
|
* Start a new sandbox instance
|
|
@@ -62,7 +73,11 @@ export class Sandbox {
|
|
|
62
73
|
const homeDir = await mkdtemp(path.join(os.tmpdir(), "near-sandbox-"));
|
|
63
74
|
// 3. Initialize sandbox
|
|
64
75
|
await runInit(binaryPath, homeDir);
|
|
65
|
-
// 4.
|
|
76
|
+
// 4. Back up original genesis for clean restarts
|
|
77
|
+
const genesisPath = path.join(homeDir, "genesis.json");
|
|
78
|
+
const originalGenesisPath = path.join(homeDir, "genesis.original.json");
|
|
79
|
+
await copyFile(genesisPath, originalGenesisPath);
|
|
80
|
+
// 5. Read validator key
|
|
66
81
|
const validatorKey = await loadValidatorKey(homeDir);
|
|
67
82
|
const rootAccount = {
|
|
68
83
|
id: validatorKey.account_id,
|
|
@@ -93,7 +108,7 @@ export class Sandbox {
|
|
|
93
108
|
const rpcUrl = `http://127.0.0.1:${port}`;
|
|
94
109
|
// 6. Wait for RPC to be ready
|
|
95
110
|
await waitForReady(rpcUrl);
|
|
96
|
-
return new Sandbox(rpcUrl, "localnet", rootAccount, homeDir, childProcess);
|
|
111
|
+
return new Sandbox(rpcUrl, "localnet", rootAccount, homeDir, childProcess, binaryPath, detached);
|
|
97
112
|
}
|
|
98
113
|
/**
|
|
99
114
|
* Stop the sandbox and clean up
|
|
@@ -102,28 +117,7 @@ export class Sandbox {
|
|
|
102
117
|
*/
|
|
103
118
|
async stop() {
|
|
104
119
|
if (this.process?.pid) {
|
|
105
|
-
|
|
106
|
-
try {
|
|
107
|
-
// Try to kill process group first (for detached processes)
|
|
108
|
-
process.kill(-pid, "SIGTERM");
|
|
109
|
-
await sleep(100);
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
// Try direct kill
|
|
113
|
-
try {
|
|
114
|
-
process.kill(pid, "SIGTERM");
|
|
115
|
-
await sleep(100);
|
|
116
|
-
}
|
|
117
|
-
catch {
|
|
118
|
-
// Try SIGKILL as last resort
|
|
119
|
-
try {
|
|
120
|
-
process.kill(pid, "SIGKILL");
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
// Process already dead
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
120
|
+
await killProcess(this.process);
|
|
127
121
|
this.process = undefined;
|
|
128
122
|
}
|
|
129
123
|
// Clean up temporary directory
|
|
@@ -134,6 +128,320 @@ export class Sandbox {
|
|
|
134
128
|
// Ignore cleanup errors
|
|
135
129
|
}
|
|
136
130
|
}
|
|
131
|
+
// ==================== Sandbox-specific RPC Methods ====================
|
|
132
|
+
/**
|
|
133
|
+
* Patch the state of accounts and contracts in the sandbox.
|
|
134
|
+
*
|
|
135
|
+
* Allows direct modification of blockchain state including account balances,
|
|
136
|
+
* access keys, contract code, and contract storage.
|
|
137
|
+
*
|
|
138
|
+
* Note: The patched state is applied during the next block's processing.
|
|
139
|
+
* This method waits for that block to be produced before returning to
|
|
140
|
+
* ensure subsequent reads see the updated state.
|
|
141
|
+
*
|
|
142
|
+
* @param records - Array of state records to patch
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* await sandbox.patchState([{
|
|
147
|
+
* Account: {
|
|
148
|
+
* account_id: "alice.test.near",
|
|
149
|
+
* account: {
|
|
150
|
+
* amount: "1000000000000000000000000000",
|
|
151
|
+
* locked: "0",
|
|
152
|
+
* code_hash: EMPTY_CODE_HASH,
|
|
153
|
+
* storage_usage: 100,
|
|
154
|
+
* }
|
|
155
|
+
* }
|
|
156
|
+
* }])
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
async patchState(records) {
|
|
160
|
+
const response = await fetch(this.rpcUrl, {
|
|
161
|
+
method: "POST",
|
|
162
|
+
headers: { "Content-Type": "application/json" },
|
|
163
|
+
body: JSON.stringify({
|
|
164
|
+
jsonrpc: "2.0",
|
|
165
|
+
id: "patch-state",
|
|
166
|
+
method: "sandbox_patch_state",
|
|
167
|
+
params: { records },
|
|
168
|
+
}),
|
|
169
|
+
});
|
|
170
|
+
if (!response.ok) {
|
|
171
|
+
throw new Error(`Failed to patch state: ${response.status} ${response.statusText}`);
|
|
172
|
+
}
|
|
173
|
+
const data = (await response.json());
|
|
174
|
+
if (data.error) {
|
|
175
|
+
throw new Error(`Failed to patch state: ${data.error.message}`);
|
|
176
|
+
}
|
|
177
|
+
// sandbox_patch_state returns when the patch is dequeued from memory,
|
|
178
|
+
// but before the block containing the patch is fully processed and
|
|
179
|
+
// committed to RocksDB. Wait for a new block to ensure the patched
|
|
180
|
+
// state is visible to subsequent queries.
|
|
181
|
+
await this.waitForNextBlock();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Fast-forward the blockchain by a number of blocks.
|
|
185
|
+
*
|
|
186
|
+
* Advances the sandbox by producing empty blocks, useful for testing
|
|
187
|
+
* time-dependent contract logic without waiting for real blocks.
|
|
188
|
+
*
|
|
189
|
+
* @param numBlocks - Number of blocks to advance (must be positive)
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* await sandbox.fastForward(100)
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
async fastForward(numBlocks) {
|
|
197
|
+
if (!Number.isFinite(numBlocks) ||
|
|
198
|
+
!Number.isInteger(numBlocks) ||
|
|
199
|
+
numBlocks <= 0) {
|
|
200
|
+
throw new Error("numBlocks must be a positive integer");
|
|
201
|
+
}
|
|
202
|
+
const heightBefore = await this.getBlockHeight();
|
|
203
|
+
const response = await fetch(this.rpcUrl, {
|
|
204
|
+
method: "POST",
|
|
205
|
+
headers: { "Content-Type": "application/json" },
|
|
206
|
+
body: JSON.stringify({
|
|
207
|
+
jsonrpc: "2.0",
|
|
208
|
+
id: "fast-forward",
|
|
209
|
+
method: "sandbox_fast_forward",
|
|
210
|
+
params: { delta_height: numBlocks },
|
|
211
|
+
}),
|
|
212
|
+
});
|
|
213
|
+
if (!response.ok) {
|
|
214
|
+
throw new Error(`Failed to fast forward: ${response.status} ${response.statusText}`);
|
|
215
|
+
}
|
|
216
|
+
const data = (await response.json());
|
|
217
|
+
if (data.error) {
|
|
218
|
+
throw new Error(`Failed to fast forward: ${data.error.message}`);
|
|
219
|
+
}
|
|
220
|
+
// The RPC may return before all blocks are fully produced.
|
|
221
|
+
// Poll until the block height reaches the target.
|
|
222
|
+
const targetHeight = heightBefore + numBlocks;
|
|
223
|
+
const start = Date.now();
|
|
224
|
+
const timeoutMs = Math.max(30000, numBlocks * 100);
|
|
225
|
+
while (Date.now() - start < timeoutMs) {
|
|
226
|
+
const height = await this.getBlockHeight();
|
|
227
|
+
if (height >= targetHeight) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
await sleep(200);
|
|
231
|
+
}
|
|
232
|
+
const finalHeight = await this.getBlockHeight();
|
|
233
|
+
if (finalHeight < targetHeight) {
|
|
234
|
+
throw new Error(`Fast forward did not reach target height ${targetHeight} (currently at ${finalHeight})`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Dump the current state of the sandbox to a snapshot.
|
|
239
|
+
*
|
|
240
|
+
* Runs the sandbox binary's `view-state dump-state` command which reads
|
|
241
|
+
* state from RocksDB in read-only mode. The snapshot includes all accounts,
|
|
242
|
+
* access keys, contracts, and contract data.
|
|
243
|
+
*
|
|
244
|
+
* @returns The state snapshot
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* const snapshot = await sandbox.dumpState()
|
|
249
|
+
* // ... modify state ...
|
|
250
|
+
* await sandbox.restoreState(snapshot)
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
async dumpState() {
|
|
254
|
+
// Wait for a new block so all pending state changes are committed to
|
|
255
|
+
// RocksDB before the dump process opens it in read-only mode.
|
|
256
|
+
await this.waitForNextBlock();
|
|
257
|
+
await runCommand(this.binaryPath, this.homeDir, [
|
|
258
|
+
"view-state",
|
|
259
|
+
"dump-state",
|
|
260
|
+
]);
|
|
261
|
+
const outputPath = path.join(this.homeDir, "output.json");
|
|
262
|
+
const data = await readFile(outputPath, "utf8");
|
|
263
|
+
const parsed = JSON.parse(data);
|
|
264
|
+
return {
|
|
265
|
+
records: parsed.records || [],
|
|
266
|
+
timestamp: Date.now(),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Restore the sandbox state from a previously saved snapshot.
|
|
271
|
+
*
|
|
272
|
+
* Patches the blockchain state to match the snapshot. Useful for
|
|
273
|
+
* running multiple tests against the same initial state.
|
|
274
|
+
*
|
|
275
|
+
* @param snapshot - The state snapshot from `dumpState()`
|
|
276
|
+
*/
|
|
277
|
+
async restoreState(snapshot) {
|
|
278
|
+
await this.patchState(snapshot.records);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Save a state snapshot to a file.
|
|
282
|
+
*
|
|
283
|
+
* @returns Path to the saved snapshot file
|
|
284
|
+
*/
|
|
285
|
+
async saveSnapshot() {
|
|
286
|
+
const snapshotDir = path.join(this.homeDir, "snapshots");
|
|
287
|
+
await mkdir(snapshotDir, { recursive: true });
|
|
288
|
+
const snapshotPath = path.join(snapshotDir, `snapshot-${Date.now()}.json`);
|
|
289
|
+
// Wait for a new block so all pending state changes are committed
|
|
290
|
+
await this.waitForNextBlock();
|
|
291
|
+
await runCommand(this.binaryPath, this.homeDir, [
|
|
292
|
+
"view-state",
|
|
293
|
+
"dump-state",
|
|
294
|
+
]);
|
|
295
|
+
const outputPath = path.join(this.homeDir, "output.json");
|
|
296
|
+
await copyFile(outputPath, snapshotPath);
|
|
297
|
+
return snapshotPath;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Load a state snapshot from a file.
|
|
301
|
+
*
|
|
302
|
+
* @param snapshotPath - Path to the snapshot file
|
|
303
|
+
* @returns The loaded state snapshot
|
|
304
|
+
*/
|
|
305
|
+
async loadSnapshot(snapshotPath) {
|
|
306
|
+
const data = await readFile(snapshotPath, "utf8");
|
|
307
|
+
const parsed = JSON.parse(data);
|
|
308
|
+
return {
|
|
309
|
+
records: parsed.records,
|
|
310
|
+
timestamp: Date.now(),
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Restart the sandbox, optionally with modified genesis state.
|
|
315
|
+
*
|
|
316
|
+
* Stops the process, optionally appends snapshot records to genesis,
|
|
317
|
+
* clears the data directory, and restarts. Block height resets to 0.
|
|
318
|
+
*
|
|
319
|
+
* @param snapshot - Optional state snapshot to include in genesis
|
|
320
|
+
*/
|
|
321
|
+
async restart(snapshot) {
|
|
322
|
+
if (!this.process?.pid) {
|
|
323
|
+
throw new Error("Sandbox is not running");
|
|
324
|
+
}
|
|
325
|
+
const port = new URL(this.rpcUrl).port;
|
|
326
|
+
// Kill the process and wait for it to fully exit before touching the data dir
|
|
327
|
+
await killProcess(this.process);
|
|
328
|
+
this.process = undefined;
|
|
329
|
+
const genesisPath = path.join(this.homeDir, "genesis.json");
|
|
330
|
+
if (snapshot && snapshot.records.length > 0) {
|
|
331
|
+
// Restore original genesis before merging snapshot records,
|
|
332
|
+
// so previous restart(snapshot) calls don't accumulate.
|
|
333
|
+
await copyFile(this.originalGenesisPath, genesisPath);
|
|
334
|
+
const genesisData = await readFile(genesisPath, "utf8");
|
|
335
|
+
const genesis = JSON.parse(genesisData);
|
|
336
|
+
const existingRecords = genesis.records || [];
|
|
337
|
+
// Build a map of snapshot records keyed by account_id:type for deduplication.
|
|
338
|
+
// Snapshot records override any existing genesis record for the same account.
|
|
339
|
+
const snapshotAccountMap = new Map();
|
|
340
|
+
for (const record of snapshot.records) {
|
|
341
|
+
const accountId = getRecordAccountId(record);
|
|
342
|
+
const recordType = getRecordType(record);
|
|
343
|
+
if (accountId && recordType) {
|
|
344
|
+
snapshotAccountMap.set(`${accountId}:${recordType}`, record);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
// Filter out existing records that would be duplicated by the snapshot
|
|
348
|
+
const filteredExisting = existingRecords.filter((record) => {
|
|
349
|
+
const accountId = getRecordAccountId(record);
|
|
350
|
+
const recordType = getRecordType(record);
|
|
351
|
+
if (!accountId || !recordType)
|
|
352
|
+
return true;
|
|
353
|
+
return !snapshotAccountMap.has(`${accountId}:${recordType}`);
|
|
354
|
+
});
|
|
355
|
+
genesis.records = [...filteredExisting, ...snapshot.records];
|
|
356
|
+
// Recalculate total supply from all Account records
|
|
357
|
+
let totalSupply = 0n;
|
|
358
|
+
for (const record of genesis.records) {
|
|
359
|
+
if (record.Account) {
|
|
360
|
+
totalSupply += BigInt(record.Account.account.amount);
|
|
361
|
+
totalSupply += BigInt(record.Account.account.locked);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
genesis.total_supply = totalSupply.toString();
|
|
365
|
+
await writeFile(genesisPath, JSON.stringify(genesis, null, 2));
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
// No snapshot — restore the original genesis so previous
|
|
369
|
+
// restart(snapshot) calls don't leak into this clean restart.
|
|
370
|
+
await copyFile(this.originalGenesisPath, genesisPath);
|
|
371
|
+
}
|
|
372
|
+
// Clean up data directory so the node starts fresh
|
|
373
|
+
const dataDir = path.join(this.homeDir, "data");
|
|
374
|
+
await rm(dataDir, { recursive: true, force: true });
|
|
375
|
+
// Restart with the same ports
|
|
376
|
+
const networkPort = await findAvailablePort();
|
|
377
|
+
const childProcess = spawn(this.binaryPath, [
|
|
378
|
+
"--home",
|
|
379
|
+
this.homeDir,
|
|
380
|
+
"run",
|
|
381
|
+
"--rpc-addr",
|
|
382
|
+
`0.0.0.0:${port}`,
|
|
383
|
+
"--network-addr",
|
|
384
|
+
`0.0.0.0:${networkPort}`,
|
|
385
|
+
], {
|
|
386
|
+
detached: this.detached,
|
|
387
|
+
stdio: this.detached ? "ignore" : "pipe",
|
|
388
|
+
});
|
|
389
|
+
if (!childProcess.pid) {
|
|
390
|
+
throw new Error("Failed to restart sandbox: no PID");
|
|
391
|
+
}
|
|
392
|
+
// Capture stderr for error reporting if startup fails
|
|
393
|
+
let stderrOutput = "";
|
|
394
|
+
childProcess.stderr?.on("data", (data) => {
|
|
395
|
+
stderrOutput += data.toString();
|
|
396
|
+
});
|
|
397
|
+
if (this.detached) {
|
|
398
|
+
childProcess.unref();
|
|
399
|
+
}
|
|
400
|
+
this.process = childProcess;
|
|
401
|
+
try {
|
|
402
|
+
await waitForReady(this.rpcUrl);
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
// Include stderr in the error message for debugging
|
|
406
|
+
if (stderrOutput) {
|
|
407
|
+
throw new Error(`${error instanceof Error ? error.message : error}\nSandbox stderr:\n${stderrOutput.slice(-2000)}`);
|
|
408
|
+
}
|
|
409
|
+
throw error;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Wait for the next block to be produced.
|
|
414
|
+
* Used internally to ensure state changes are committed to RocksDB.
|
|
415
|
+
*/
|
|
416
|
+
async waitForNextBlock(timeoutMs = 10000) {
|
|
417
|
+
const currentHeight = await this.getBlockHeight();
|
|
418
|
+
const start = Date.now();
|
|
419
|
+
while (Date.now() - start < timeoutMs) {
|
|
420
|
+
await sleep(100);
|
|
421
|
+
const height = await this.getBlockHeight();
|
|
422
|
+
if (height > currentHeight) {
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
throw new Error(`Timed out waiting for next block after ${timeoutMs}ms (stuck at height ${currentHeight})`);
|
|
427
|
+
}
|
|
428
|
+
async getBlockHeight() {
|
|
429
|
+
const response = await fetch(this.rpcUrl, {
|
|
430
|
+
method: "POST",
|
|
431
|
+
headers: { "Content-Type": "application/json" },
|
|
432
|
+
body: JSON.stringify({
|
|
433
|
+
jsonrpc: "2.0",
|
|
434
|
+
id: "status",
|
|
435
|
+
method: "status",
|
|
436
|
+
params: [],
|
|
437
|
+
}),
|
|
438
|
+
});
|
|
439
|
+
if (!response.ok) {
|
|
440
|
+
throw new Error(`Failed to get status: ${response.status}`);
|
|
441
|
+
}
|
|
442
|
+
const data = (await response.json());
|
|
443
|
+
return data.result?.sync_info?.latest_block_height ?? 0;
|
|
444
|
+
}
|
|
137
445
|
}
|
|
138
446
|
// ==================== Helper Functions ====================
|
|
139
447
|
/**
|
|
@@ -276,6 +584,33 @@ async function runInit(binaryPath, homeDir) {
|
|
|
276
584
|
child.on("error", reject);
|
|
277
585
|
});
|
|
278
586
|
}
|
|
587
|
+
/**
|
|
588
|
+
* Run a sandbox CLI command (e.g. view-state dump-state).
|
|
589
|
+
* @internal
|
|
590
|
+
*/
|
|
591
|
+
async function runCommand(binaryPath, homeDir, args) {
|
|
592
|
+
const fullArgs = ["--home", homeDir, ...args];
|
|
593
|
+
return new Promise((resolve, reject) => {
|
|
594
|
+
const child = spawn(binaryPath, fullArgs, { stdio: "pipe" });
|
|
595
|
+
let stdout = "";
|
|
596
|
+
let stderr = "";
|
|
597
|
+
child.stdout?.on("data", (data) => {
|
|
598
|
+
stdout += data.toString();
|
|
599
|
+
});
|
|
600
|
+
child.stderr?.on("data", (data) => {
|
|
601
|
+
stderr += data.toString();
|
|
602
|
+
});
|
|
603
|
+
child.on("close", (code) => {
|
|
604
|
+
if (code === 0) {
|
|
605
|
+
resolve(stdout);
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
reject(new Error(`Sandbox command failed with code ${code}: ${stderr}`));
|
|
609
|
+
}
|
|
610
|
+
});
|
|
611
|
+
child.on("error", reject);
|
|
612
|
+
});
|
|
613
|
+
}
|
|
279
614
|
/**
|
|
280
615
|
* Load validator key from sandbox home directory.
|
|
281
616
|
* @internal
|
|
@@ -360,4 +695,90 @@ async function waitForReady(rpcUrl, timeout = STARTUP_TIMEOUT) {
|
|
|
360
695
|
function sleep(ms) {
|
|
361
696
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
362
697
|
}
|
|
698
|
+
/**
|
|
699
|
+
* Get the account_id from a state record regardless of variant.
|
|
700
|
+
* @internal
|
|
701
|
+
*/
|
|
702
|
+
function getRecordAccountId(record) {
|
|
703
|
+
if (record.Account)
|
|
704
|
+
return record.Account.account_id;
|
|
705
|
+
if (record.AccessKey)
|
|
706
|
+
return record.AccessKey.account_id;
|
|
707
|
+
if (record.Contract)
|
|
708
|
+
return record.Contract.account_id;
|
|
709
|
+
if (record.Data)
|
|
710
|
+
return record.Data.account_id;
|
|
711
|
+
return undefined;
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* Get the variant type name of a state record.
|
|
715
|
+
* @internal
|
|
716
|
+
*/
|
|
717
|
+
function getRecordType(record) {
|
|
718
|
+
if (record.Account)
|
|
719
|
+
return "Account";
|
|
720
|
+
if (record.AccessKey)
|
|
721
|
+
return "AccessKey";
|
|
722
|
+
if (record.Contract)
|
|
723
|
+
return "Contract";
|
|
724
|
+
if (record.Data)
|
|
725
|
+
return "Data";
|
|
726
|
+
return undefined;
|
|
727
|
+
}
|
|
728
|
+
/**
|
|
729
|
+
* Kill a sandbox child process and wait for it to fully exit.
|
|
730
|
+
*
|
|
731
|
+
* Sends SIGTERM to the process group first, then SIGKILL if it doesn't
|
|
732
|
+
* exit within 2 seconds. Waits for the process to actually exit before
|
|
733
|
+
* returning, ensuring file handles (e.g. RocksDB) are released.
|
|
734
|
+
* @internal
|
|
735
|
+
*/
|
|
736
|
+
async function killProcess(child) {
|
|
737
|
+
const pid = child.pid;
|
|
738
|
+
if (!pid)
|
|
739
|
+
return;
|
|
740
|
+
// Short-circuit if the process has already exited
|
|
741
|
+
if (child.exitCode !== null || child.signalCode !== null) {
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
const exitPromise = new Promise((resolve) => {
|
|
745
|
+
child.once("exit", () => resolve());
|
|
746
|
+
child.once("error", () => resolve());
|
|
747
|
+
});
|
|
748
|
+
// Try SIGTERM to process group first (graceful shutdown)
|
|
749
|
+
try {
|
|
750
|
+
process.kill(-pid, "SIGTERM");
|
|
751
|
+
}
|
|
752
|
+
catch {
|
|
753
|
+
try {
|
|
754
|
+
process.kill(pid, "SIGTERM");
|
|
755
|
+
}
|
|
756
|
+
catch {
|
|
757
|
+
// Already dead
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
// Wait up to 2s for graceful exit, then SIGKILL
|
|
762
|
+
const killTimeout = setTimeout(() => {
|
|
763
|
+
try {
|
|
764
|
+
process.kill(-pid, "SIGKILL");
|
|
765
|
+
}
|
|
766
|
+
catch {
|
|
767
|
+
try {
|
|
768
|
+
process.kill(pid, "SIGKILL");
|
|
769
|
+
}
|
|
770
|
+
catch {
|
|
771
|
+
// Already dead
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
}, 2000);
|
|
775
|
+
// Hard timeout fallback to prevent hanging indefinitely
|
|
776
|
+
const hardTimeout = setTimeout(() => { }, 5000);
|
|
777
|
+
await Promise.race([
|
|
778
|
+
exitPromise,
|
|
779
|
+
new Promise((resolve) => setTimeout(resolve, 5000)),
|
|
780
|
+
]);
|
|
781
|
+
clearTimeout(killTimeout);
|
|
782
|
+
clearTimeout(hardTimeout);
|
|
783
|
+
}
|
|
363
784
|
//# sourceMappingURL=sandbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/gas.d.ts
CHANGED
|
@@ -70,7 +70,8 @@ export declare function toGas(tgas: number): string;
|
|
|
70
70
|
* exceeds Number.MAX_SAFE_INTEGER (~9007 TGas) or when it has more than
|
|
71
71
|
* approximately 15–17 significant digits (for example, many fractional digits),
|
|
72
72
|
* even if the whole part is within the safe integer range. For typical NEAR gas
|
|
73
|
-
* limits (
|
|
73
|
+
* limits (~1000 Tgas, i.e. 1 PGas max) without excessive decimal precision, this
|
|
74
|
+
* is not a concern. This API still expects gas amounts to be expressed in Tgas units.
|
|
74
75
|
* For applications requiring arbitrary precision, use formatGas(), which returns
|
|
75
76
|
* a formatted string.
|
|
76
77
|
*
|
package/dist/utils/gas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,QAAQ,GAChB,GAAG,MAAM,OAAO,GAChB,GAAG,MAAM,IAAI,MAAM,OAAO,GAC1B,GAAG,MAAM,EAAE,CAAA;AAEf;;;;;;GAMG;AACH,eAAO,MAAM,GAAG;IACd;;;OAGG;2BACS,MAAM,GAAG,GAAG,MAAM,EAAE,KAAG,GAAG,MAAM,OAAO;IAInD;;OAEG;sBACmB,GAAG,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,QAAQ,GAChB,GAAG,MAAM,OAAO,GAChB,GAAG,MAAM,IAAI,MAAM,OAAO,GAC1B,GAAG,MAAM,EAAE,CAAA;AAEf;;;;;;GAMG;AACH,eAAO,MAAM,GAAG;IACd;;;OAGG;2BACS,MAAM,GAAG,GAAG,MAAM,EAAE,KAAG,GAAG,MAAM,OAAO;IAInD;;OAEG;sBACmB,GAAG,MAAM,OAAO;kBAClB,GAAG,MAAM,OAAO;CAC5B,CAAA;AA0BV;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAwBvD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CAkCrE;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAenD"}
|
package/dist/utils/gas.js
CHANGED
|
@@ -29,7 +29,7 @@ export const Gas = {
|
|
|
29
29
|
* Common gas amounts.
|
|
30
30
|
*/
|
|
31
31
|
DEFAULT: "30 Tgas",
|
|
32
|
-
MAX: "
|
|
32
|
+
MAX: "1000 Tgas",
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* Internal: Parse TGas value string to raw gas units using string manipulation.
|
|
@@ -137,7 +137,8 @@ export function toGas(tgas) {
|
|
|
137
137
|
* exceeds Number.MAX_SAFE_INTEGER (~9007 TGas) or when it has more than
|
|
138
138
|
* approximately 15–17 significant digits (for example, many fractional digits),
|
|
139
139
|
* even if the whole part is within the safe integer range. For typical NEAR gas
|
|
140
|
-
* limits (
|
|
140
|
+
* limits (~1000 Tgas, i.e. 1 PGas max) without excessive decimal precision, this
|
|
141
|
+
* is not a concern. This API still expects gas amounts to be expressed in Tgas units.
|
|
141
142
|
* For applications requiring arbitrary precision, use formatGas(), which returns
|
|
142
143
|
* a formatted string.
|
|
143
144
|
*
|
package/dist/utils/gas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,4CAA4C;AAC5C,MAAM,aAAa,GAAG,EAAE,CAAA;AAmBxB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB;;;OAGG;IACH,IAAI,CAAC,KAA2B;QAC9B,OAAO,GAAG,KAAK,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,OAAO,EAAE,SAA6B;IACtC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,4CAA4C;AAC5C,MAAM,aAAa,GAAG,EAAE,CAAA;AAmBxB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB;;;OAGG;IACH,IAAI,CAAC,KAA2B;QAC9B,OAAO,GAAG,KAAK,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,OAAO,EAAE,SAA6B;IACtC,GAAG,EAAE,WAA+B;CAC5B,CAAA;AAEV;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAa;IACtC,8EAA8E;IAC9E,gEAAgE;IAChE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,wCAAwC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IACjC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC;SAC1B,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;IAE9B,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAElE,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAsB;IAC7C,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAE7B,2CAA2C;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,mDAAmD;QACnD,0GAA0G;QAC1G,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAA;IACzC,CAAC;IAED,0DAA0D;IAC1D,uDAAuD;IACvD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,iBAAiB;IACjB,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,KAAK;QAC9B,uCAAuC;QACvC,6CAA6C,CAChD,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAoB,EAAE,SAAS,GAAG,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1D,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,CAAA;IACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IAEtC,IAAI,MAAc,CAAA;IAElB,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;QAClD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAEhD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,wDAAwD;YACxD,4DAA4D;YAC5D,wFAAwF;YACxF,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAA;YAC1D,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO,GAAG,MAAM,OAAO,CAAA;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,uDAAuD;IACvD,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,GAAoB;IACzC,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1D,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,CAAA;IACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IAEtC,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAChE,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAA;IAE5C,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AACtC,CAAC"}
|