near-kit 0.11.0 → 0.12.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/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export type { AccessKeyView, AccountState, CallOptions, FinalExecutionOutcome, K
12
12
  export { AccessKeyDoesNotExistError, AccountDoesNotExistError, FunctionCallError, GasLimitExceededError, InsufficientBalanceError, InvalidAccountIdError, InvalidKeyError, NearError, NetworkError, SignatureError, TransactionTimeoutError, WalletError, } from "./errors/index.js";
13
13
  export type { LegacyCredential, NearCliCredential, Network, } from "./keys/index.js";
14
14
  export { InMemoryKeyStore, RotatingKeyStore, } from "./keys/index.js";
15
- export type { SandboxOptions } from "./sandbox/index.js";
15
+ export type { SandboxOptions, StateRecord, StateSnapshot, } from "./sandbox/index.js";
16
16
  export { Amount, type ContractCode, createStateInit, deriveAccountId, formatAmount, formatGas, Gas, generateKey, generateNonce, generateSeedPhrase, isDeterministicAccountId, isPrivateKey, isValidAccountId, isValidPublicKey, type PrivateKey, parseAmount, parseGas, parseKey, parseSeedPhrase, type StateInit, type StateInitOptions, serializeStateInit, type VerifyNep413Options, validatePrivateKey, verifyDeterministicAccountId, verifyNep413Signature, } from "./utils/index.js";
17
17
  export { fromHotConnect, fromWalletSelector } from "./wallets/index.js";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,GACR,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,GAAG,EACH,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,GACR,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,GAAG,EACH,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY;AACZ,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EACL,sBAAsB,EAEtB,0BAA0B,EAC1B,0BAA0B,EAE1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAyB1D,SAAS;AACT,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAO1B,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,gBAAgB;AAChB,2FAA2F;AAC3F,mBAAmB;AACnB,sDAAsD;AACtD,0DAA0D;EAC3D,MAAM,iBAAiB,CAAA;AAIxB,YAAY;AACZ,OAAO,EACL,MAAM,EAEN,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,GAAG,EACH,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEhB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EAGf,kBAAkB,EAElB,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY;AACZ,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EACL,sBAAsB,EAEtB,0BAA0B,EAC1B,0BAA0B,EAE1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAyB1D,SAAS;AACT,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAO1B,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,gBAAgB;AAChB,2FAA2F;AAC3F,mBAAmB;AACnB,sDAAsD;AACtD,0DAA0D;EAC3D,MAAM,iBAAiB,CAAA;AAQxB,YAAY;AACZ,OAAO,EACL,MAAM,EAEN,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,GAAG,EACH,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEhB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EAGf,kBAAkB,EAElB,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Sandbox exports
3
3
  */
4
- export type { SandboxOptions } from "./sandbox.js";
5
- export { Sandbox } from "./sandbox.js";
4
+ export type { SandboxOptions, StateRecord, StateSnapshot } from "./sandbox.js";
5
+ export { EMPTY_CODE_HASH, Sandbox } from "./sandbox.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Sandbox exports
3
3
  */
4
- export { Sandbox } from "./sandbox.js";
4
+ export { EMPTY_CODE_HASH, Sandbox } from "./sandbox.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -3,6 +3,57 @@
3
3
  *
4
4
  * Simple, explicit API for running a local NEAR node for testing.
5
5
  */
6
+ /**
7
+ * Default code hash for accounts without deployed contract code.
8
+ * This is a base58-encoded sha256 hash of an empty byte array.
9
+ */
10
+ export declare const EMPTY_CODE_HASH = "11111111111111111111111111111111";
11
+ /**
12
+ * State record from sandbox state dump.
13
+ * Used for patching state and creating snapshots.
14
+ */
15
+ export interface StateRecord {
16
+ Account?: {
17
+ account_id: string;
18
+ account: {
19
+ amount: string;
20
+ locked: string;
21
+ code_hash: string;
22
+ storage_usage: number;
23
+ version?: string;
24
+ };
25
+ };
26
+ AccessKey?: {
27
+ account_id: string;
28
+ public_key: string;
29
+ access_key: {
30
+ nonce: number;
31
+ permission: "FullAccess" | {
32
+ FunctionCall: {
33
+ allowance: string | null;
34
+ receiver_id: string;
35
+ method_names: string[];
36
+ };
37
+ };
38
+ };
39
+ };
40
+ Contract?: {
41
+ account_id: string;
42
+ code: string;
43
+ };
44
+ Data?: {
45
+ account_id: string;
46
+ data_key: string;
47
+ value: string;
48
+ };
49
+ }
50
+ /**
51
+ * State snapshot for restoring sandbox state between tests.
52
+ */
53
+ export interface StateSnapshot {
54
+ records: StateRecord[];
55
+ timestamp: number;
56
+ }
6
57
  export interface SandboxOptions {
7
58
  version?: string;
8
59
  /**
@@ -39,6 +90,9 @@ export declare class Sandbox {
39
90
  };
40
91
  private process;
41
92
  private homeDir;
93
+ private binaryPath;
94
+ private detached;
95
+ private originalGenesisPath;
42
96
  private constructor();
43
97
  /**
44
98
  * Start a new sandbox instance
@@ -56,5 +110,101 @@ export declare class Sandbox {
56
110
  * Kills the sandbox process and removes temporary files.
57
111
  */
58
112
  stop(): Promise<void>;
113
+ /**
114
+ * Patch the state of accounts and contracts in the sandbox.
115
+ *
116
+ * Allows direct modification of blockchain state including account balances,
117
+ * access keys, contract code, and contract storage.
118
+ *
119
+ * Note: The patched state is applied during the next block's processing.
120
+ * This method waits for that block to be produced before returning to
121
+ * ensure subsequent reads see the updated state.
122
+ *
123
+ * @param records - Array of state records to patch
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * await sandbox.patchState([{
128
+ * Account: {
129
+ * account_id: "alice.test.near",
130
+ * account: {
131
+ * amount: "1000000000000000000000000000",
132
+ * locked: "0",
133
+ * code_hash: EMPTY_CODE_HASH,
134
+ * storage_usage: 100,
135
+ * }
136
+ * }
137
+ * }])
138
+ * ```
139
+ */
140
+ patchState(records: StateRecord[]): Promise<void>;
141
+ /**
142
+ * Fast-forward the blockchain by a number of blocks.
143
+ *
144
+ * Advances the sandbox by producing empty blocks, useful for testing
145
+ * time-dependent contract logic without waiting for real blocks.
146
+ *
147
+ * @param numBlocks - Number of blocks to advance (must be positive)
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * await sandbox.fastForward(100)
152
+ * ```
153
+ */
154
+ fastForward(numBlocks: number): Promise<void>;
155
+ /**
156
+ * Dump the current state of the sandbox to a snapshot.
157
+ *
158
+ * Runs the sandbox binary's `view-state dump-state` command which reads
159
+ * state from RocksDB in read-only mode. The snapshot includes all accounts,
160
+ * access keys, contracts, and contract data.
161
+ *
162
+ * @returns The state snapshot
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const snapshot = await sandbox.dumpState()
167
+ * // ... modify state ...
168
+ * await sandbox.restoreState(snapshot)
169
+ * ```
170
+ */
171
+ dumpState(): Promise<StateSnapshot>;
172
+ /**
173
+ * Restore the sandbox state from a previously saved snapshot.
174
+ *
175
+ * Patches the blockchain state to match the snapshot. Useful for
176
+ * running multiple tests against the same initial state.
177
+ *
178
+ * @param snapshot - The state snapshot from `dumpState()`
179
+ */
180
+ restoreState(snapshot: StateSnapshot): Promise<void>;
181
+ /**
182
+ * Save a state snapshot to a file.
183
+ *
184
+ * @returns Path to the saved snapshot file
185
+ */
186
+ saveSnapshot(): Promise<string>;
187
+ /**
188
+ * Load a state snapshot from a file.
189
+ *
190
+ * @param snapshotPath - Path to the snapshot file
191
+ * @returns The loaded state snapshot
192
+ */
193
+ loadSnapshot(snapshotPath: string): Promise<StateSnapshot>;
194
+ /**
195
+ * Restart the sandbox, optionally with modified genesis state.
196
+ *
197
+ * Stops the process, optionally appends snapshot records to genesis,
198
+ * clears the data directory, and restarts. Block height resets to 0.
199
+ *
200
+ * @param snapshot - Optional state snapshot to include in genesis
201
+ */
202
+ restart(snapshot?: StateSnapshot): Promise<void>;
203
+ /**
204
+ * Wait for the next block to be produced.
205
+ * Used internally to ensure state changes are committed to RocksDB.
206
+ */
207
+ private waitForNextBlock;
208
+ private getBlockHeight;
59
209
  }
60
210
  //# sourceMappingURL=sandbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkCH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAEvD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO;IAcP;;;;;;;;OAQG;WACU,KAAK,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDlE;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiC5B"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
@@ -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.10.5";
15
+ const DEFAULT_VERSION = "2.10.7";
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
- constructor(rpcUrl, networkId, rootAccount, homeDir, childProcess) {
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. Read validator key
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
- const pid = this.process.pid;
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "near-kit",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "A simple, intuitive TypeScript library for interacting with NEAR Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -71,12 +71,12 @@
71
71
  }
72
72
  },
73
73
  "devDependencies": {
74
- "@hot-labs/near-connect": "^0.9.0",
74
+ "@hot-labs/near-connect": "^0.10.0",
75
75
  "@near-js/transactions": "^2.5.1",
76
76
  "@near-js/types": "^2.5.1",
77
77
  "@near-wallet-selector/core": "^10.1.1",
78
- "@types/bun": "^1.3.8",
79
- "@types/tar": "^6.1.13",
78
+ "@types/bun": "^1.3.9",
79
+ "@types/tar": "^7.0.87",
80
80
  "@vitest/coverage-v8": "^4.0.18",
81
81
  "@vitest/ui": "^4.0.18",
82
82
  "typescript": "^5.9.3",
@@ -90,7 +90,7 @@
90
90
  "@scure/bip32": "^2.0.1",
91
91
  "@scure/bip39": "^2.0.1",
92
92
  "@zorsh/zorsh": "^0.4.0",
93
- "tar": "^7.5.6",
93
+ "tar": "^7.5.9",
94
94
  "zod": "^4.3.6"
95
95
  }
96
96
  }