@aztec/aztec-node 0.8.13 → 0.9.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.
@@ -5,8 +5,9 @@ import { AztecNodeConfig } from './config.js';
5
5
  export declare const createMemDown: () => MemDown<any, any>;
6
6
  export declare const createLevelDown: (path: string) => LevelDown;
7
7
  /**
8
- * Opens the database for the aztec node.
8
+ * Opens the database for the aztec node. If a data directory is specified, then this attempts to create it.
9
9
  * @param config - The configuration to be used by the aztec node.
10
+ * @throws If `config.dataDirectory` is set and the directory cannot be created.
10
11
  * @returns The database for the aztec node.
11
12
  */
12
13
  export declare function openDb(config: AztecNodeConfig): Promise<LevelUp>;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/aztec-node/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,aAAa,yBAAgD,CAAC;AAC3E,eAAO,MAAM,eAAe,SAAU,MAAM,cAA0C,CAAC;AAevF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/aztec-node/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAsB,MAAM,SAAS,CAAC;AAItD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,aAAa,yBAAgD,CAAC;AAC3E,eAAO,MAAM,eAAe,SAAU,MAAM,cAA0C,CAAC;AAevF;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBtE"}
@@ -1,21 +1,32 @@
1
1
  import { default as leveldown } from 'leveldown';
2
2
  import { default as levelup } from 'levelup';
3
3
  import { default as memdown } from 'memdown';
4
+ import { mkdir } from 'node:fs/promises';
4
5
  import { join } from 'node:path';
5
6
  export const createMemDown = () => memdown();
6
7
  export const createLevelDown = (path) => leveldown(path);
7
8
  const DB_SUBDIR = 'aztec-node';
8
9
  const NODE_METADATA_KEY = '@@aztec_node_metadata';
9
10
  /**
10
- * Opens the database for the aztec node.
11
+ * Opens the database for the aztec node. If a data directory is specified, then this attempts to create it.
11
12
  * @param config - The configuration to be used by the aztec node.
13
+ * @throws If `config.dataDirectory` is set and the directory cannot be created.
12
14
  * @returns The database for the aztec node.
13
15
  */
14
16
  export async function openDb(config) {
15
17
  const nodeMetadata = {
16
18
  rollupContractAddress: config.l1Contracts.rollupAddress.toString(),
17
19
  };
18
- const db = levelup(config.dataDirectory ? createLevelDown(join(config.dataDirectory, DB_SUBDIR)) : createMemDown());
20
+ let db;
21
+ if (config.dataDirectory) {
22
+ const dbDir = join(config.dataDirectory, DB_SUBDIR);
23
+ // this throws if we don't have permissions to create the directory
24
+ await mkdir(dbDir, { recursive: true });
25
+ db = levelup(createLevelDown(dbDir));
26
+ }
27
+ else {
28
+ db = levelup(createMemDown());
29
+ }
19
30
  const prevNodeMetadata = await getNodeMetadata(db);
20
31
  // if the rollup addresses are different, wipe the local database and start over
21
32
  if (nodeMetadata.rollupContractAddress !== prevNodeMetadata.rollupContractAddress) {
@@ -40,4 +51,4 @@ async function getNodeMetadata(db) {
40
51
  };
41
52
  }
42
53
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxJQUFJLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQVcsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQVcsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSWpDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBRSxPQUFlLEVBQXVCLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBRSxTQUFpQixDQUFDLElBQUksQ0FBYyxDQUFDO0FBRXZGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztBQUMvQixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBWWxEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxNQUF1QjtJQUNsRCxNQUFNLFlBQVksR0FBaUI7UUFDakMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO0tBQ25FLENBQUM7SUFFRixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEgsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVuRCxnRkFBZ0Y7SUFDaEYsSUFBSSxZQUFZLENBQUMscUJBQXFCLEtBQUssZ0JBQWdCLENBQUMscUJBQXFCLEVBQUU7UUFDakYsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDbEI7SUFFRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQVc7SUFDeEMsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFXLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDNUM7SUFBQyxNQUFNO1FBQ04sT0FBTztZQUNMLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztLQUNIO0FBQ0gsQ0FBQyJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxJQUFJLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQVcsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQVcsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUUsT0FBZSxFQUF1QixDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUUsU0FBaUIsQ0FBQyxJQUFJLENBQWMsQ0FBQztBQUV2RixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUM7QUFDL0IsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQVlsRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLE1BQXVCO0lBQ2xELE1BQU0sWUFBWSxHQUFpQjtRQUNqQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7S0FDbkUsQ0FBQztJQUVGLElBQUksRUFBVyxDQUFDO0lBRWhCLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRCxtRUFBbUU7UUFDbkUsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUN0QztTQUFNO1FBQ0wsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVuRCxnRkFBZ0Y7SUFDaEYsSUFBSSxZQUFZLENBQUMscUJBQXFCLEtBQUssZ0JBQWdCLENBQUMscUJBQXFCLEVBQUU7UUFDakYsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDbEI7SUFFRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQVc7SUFDeEMsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFXLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDNUM7SUFBQyxNQUFNO1FBQ04sT0FBTztZQUNMLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztLQUNIO0FBQ0gsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/aztec-node",
3
- "version": "0.8.13",
3
+ "version": "0.9.0",
4
4
  "main": "dest/index.js",
5
5
  "type": "module",
6
6
  "exports": "./dest/index.js",
@@ -33,16 +33,16 @@
33
33
  "rootDir": "./src"
34
34
  },
35
35
  "dependencies": {
36
- "@aztec/archiver": "0.8.13",
37
- "@aztec/circuits.js": "0.8.13",
38
- "@aztec/ethereum": "0.8.13",
39
- "@aztec/foundation": "0.8.13",
40
- "@aztec/l1-artifacts": "0.8.13",
41
- "@aztec/merkle-tree": "0.8.13",
42
- "@aztec/p2p": "0.8.13",
43
- "@aztec/sequencer-client": "0.8.13",
44
- "@aztec/types": "0.8.13",
45
- "@aztec/world-state": "0.8.13",
36
+ "@aztec/archiver": "0.9.0",
37
+ "@aztec/circuits.js": "0.9.0",
38
+ "@aztec/ethereum": "0.9.0",
39
+ "@aztec/foundation": "0.9.0",
40
+ "@aztec/l1-artifacts": "0.9.0",
41
+ "@aztec/merkle-tree": "0.9.0",
42
+ "@aztec/p2p": "0.9.0",
43
+ "@aztec/sequencer-client": "0.9.0",
44
+ "@aztec/types": "0.9.0",
45
+ "@aztec/world-state": "0.9.0",
46
46
  "koa": "^2.14.2",
47
47
  "koa-router": "^12.0.0",
48
48
  "levelup": "^5.1.1",
@@ -1,6 +1,7 @@
1
1
  import { LevelDown, default as leveldown } from 'leveldown';
2
2
  import { LevelUp, default as levelup } from 'levelup';
3
3
  import { MemDown, default as memdown } from 'memdown';
4
+ import { mkdir } from 'node:fs/promises';
4
5
  import { join } from 'node:path';
5
6
 
6
7
  import { AztecNodeConfig } from './config.js';
@@ -22,8 +23,9 @@ type NodeMetadata = {
22
23
  };
23
24
 
24
25
  /**
25
- * Opens the database for the aztec node.
26
+ * Opens the database for the aztec node. If a data directory is specified, then this attempts to create it.
26
27
  * @param config - The configuration to be used by the aztec node.
28
+ * @throws If `config.dataDirectory` is set and the directory cannot be created.
27
29
  * @returns The database for the aztec node.
28
30
  */
29
31
  export async function openDb(config: AztecNodeConfig): Promise<LevelUp> {
@@ -31,7 +33,17 @@ export async function openDb(config: AztecNodeConfig): Promise<LevelUp> {
31
33
  rollupContractAddress: config.l1Contracts.rollupAddress.toString(),
32
34
  };
33
35
 
34
- const db = levelup(config.dataDirectory ? createLevelDown(join(config.dataDirectory, DB_SUBDIR)) : createMemDown());
36
+ let db: LevelUp;
37
+
38
+ if (config.dataDirectory) {
39
+ const dbDir = join(config.dataDirectory, DB_SUBDIR);
40
+ // this throws if we don't have permissions to create the directory
41
+ await mkdir(dbDir, { recursive: true });
42
+ db = levelup(createLevelDown(dbDir));
43
+ } else {
44
+ db = levelup(createMemDown());
45
+ }
46
+
35
47
  const prevNodeMetadata = await getNodeMetadata(db);
36
48
 
37
49
  // if the rollup addresses are different, wipe the local database and start over