web3ql-client 1.2.0 → 1.2.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.
@@ -152,5 +152,25 @@ export declare class EncryptedTableClient {
152
152
  listOwnerRecords(addr: string, start?: bigint, limit?: bigint): Promise<string[]>;
153
153
  /** Total number of records written by `addr` (including deleted). */
154
154
  ownerRecordCount(addr: string): Promise<bigint>;
155
+ /**
156
+ * Add an address to this table's writer allowlist.
157
+ * Only takes effect when restrictedWrites = true.
158
+ * Only the table owner can call this.
159
+ */
160
+ addTableWriter(writer: string): Promise<ethers.TransactionReceipt>;
161
+ /**
162
+ * Remove an address from this table's writer allowlist.
163
+ */
164
+ removeTableWriter(writer: string): Promise<ethers.TransactionReceipt>;
165
+ /**
166
+ * Toggle restricted write mode.
167
+ * false (default) — open/public table, anyone can write.
168
+ * true — only allowlisted writers can write.
169
+ */
170
+ setRestrictedWrites(restricted: boolean): Promise<ethers.TransactionReceipt>;
171
+ /** Check whether an address is in the writer allowlist. */
172
+ isTableWriter(writer: string): Promise<boolean>;
173
+ /** Check whether this table has restricted writes enabled. */
174
+ isRestrictedWrites(): Promise<boolean>;
155
175
  }
156
176
  //# sourceMappingURL=table-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-client.d.ts","sourceRoot":"","sources":["../../src/table-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-client.d.ts","sourceRoot":"","sources":["../../src/table-client.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,12 @@ const TABLE_ABI = [
61
61
  'function getActiveOwnerRecords(address addr, uint256 start, uint256 limit) external view returns (bytes32[] memory)',
62
62
  // table metadata
63
63
  'function tableName() external view returns (string memory)',
64
+ // table-level write access control
65
+ 'function addTableWriter(address writer) external',
66
+ 'function removeTableWriter(address writer) external',
67
+ 'function setRestrictedWrites(bool restricted) external',
68
+ 'function tableWriters(address writer) external view returns (bool)',
69
+ 'function restrictedWrites() external view returns (bool)',
64
70
  ];
65
71
  // ─────────────────────────────────────────────────────────────
66
72
  // EncryptedTableClient
@@ -275,6 +281,40 @@ export class EncryptedTableClient {
275
281
  async ownerRecordCount(addr) {
276
282
  return this.c.ownerRecordCount(addr);
277
283
  }
284
+ // ── Table-level write access control ───────────────────────
285
+ /**
286
+ * Add an address to this table's writer allowlist.
287
+ * Only takes effect when restrictedWrites = true.
288
+ * Only the table owner can call this.
289
+ */
290
+ async addTableWriter(writer) {
291
+ const tx = await this.c.addTableWriter(writer);
292
+ return tx.wait();
293
+ }
294
+ /**
295
+ * Remove an address from this table's writer allowlist.
296
+ */
297
+ async removeTableWriter(writer) {
298
+ const tx = await this.c.removeTableWriter(writer);
299
+ return tx.wait();
300
+ }
301
+ /**
302
+ * Toggle restricted write mode.
303
+ * false (default) — open/public table, anyone can write.
304
+ * true — only allowlisted writers can write.
305
+ */
306
+ async setRestrictedWrites(restricted) {
307
+ const tx = await this.c.setRestrictedWrites(restricted);
308
+ return tx.wait();
309
+ }
310
+ /** Check whether an address is in the writer allowlist. */
311
+ async isTableWriter(writer) {
312
+ return this.c.tableWriters(writer);
313
+ }
314
+ /** Check whether this table has restricted writes enabled. */
315
+ async isRestrictedWrites() {
316
+ return this.c.restrictedWrites();
317
+ }
278
318
  }
279
319
  // ─────────────────────────────────────────────────────────────
280
320
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"table-client.js","sourceRoot":"","sources":["../../src/table-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-client.js","sourceRoot":"","sources":["../../src/table-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,36 +1,44 @@
1
1
  {
2
2
  "name": "web3ql-client",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Web3QL client SDK — end-to-end encrypted SQL-like storage on Celo. NaCl encryption, UUPS proxy contracts, full TypeScript. Includes CLI.",
5
- "keywords": ["web3", "sql", "encrypted-storage", "celo", "nacl", "e2e-encryption", "cli"],
5
+ "keywords": [
6
+ "web3",
7
+ "sql",
8
+ "encrypted-storage",
9
+ "celo",
10
+ "nacl",
11
+ "e2e-encryption",
12
+ "cli"
13
+ ],
6
14
  "license": "MIT",
7
15
  "type": "module",
8
- "main": "./dist/src/index.js",
9
- "types": "./dist/src/index.d.ts",
16
+ "main": "./dist/src/index.js",
17
+ "types": "./dist/src/index.d.ts",
10
18
  "exports": {
11
19
  ".": {
12
20
  "import": "./dist/src/index.js",
13
- "types": "./dist/src/index.d.ts"
21
+ "types": "./dist/src/index.d.ts"
14
22
  }
15
23
  },
16
24
  "bin": {
17
25
  "web3ql": "./dist/src/cli.js"
18
26
  },
19
27
  "scripts": {
20
- "build": "tsc",
21
- "dev": "tsc --watch",
22
- "clean": "rm -rf dist",
23
- "cli": "node ./dist/src/cli.js"
28
+ "build": "tsc",
29
+ "dev": "tsc --watch",
30
+ "clean": "rm -rf dist",
31
+ "cli": "node ./dist/src/cli.js"
24
32
  },
25
33
  "dependencies": {
26
- "@noble/hashes": "^1.4.0",
34
+ "@noble/hashes": "^1.4.0",
27
35
  "@dotenvx/dotenvx": "^1.0.0",
28
- "ethers": "^6.13.1",
29
- "tweetnacl": "^1.0.3"
36
+ "ethers": "^6.13.1",
37
+ "tweetnacl": "^1.0.3"
30
38
  },
31
39
  "devDependencies": {
32
- "@types/node": "^20.14.10",
33
- "typescript": "^5.5.3"
40
+ "@types/node": "^20.14.10",
41
+ "typescript": "^5.5.3"
34
42
  },
35
43
  "engines": {
36
44
  "node": ">=20.0.0"
@@ -83,6 +83,12 @@ const TABLE_ABI = [
83
83
  'function getActiveOwnerRecords(address addr, uint256 start, uint256 limit) external view returns (bytes32[] memory)',
84
84
  // table metadata
85
85
  'function tableName() external view returns (string memory)',
86
+ // table-level write access control
87
+ 'function addTableWriter(address writer) external',
88
+ 'function removeTableWriter(address writer) external',
89
+ 'function setRestrictedWrites(bool restricted) external',
90
+ 'function tableWriters(address writer) external view returns (bool)',
91
+ 'function restrictedWrites() external view returns (bool)',
86
92
  ] as const;
87
93
 
88
94
  // ─────────────────────────────────────────────────────────────
@@ -376,6 +382,46 @@ export class EncryptedTableClient {
376
382
  async ownerRecordCount(addr: string): Promise<bigint> {
377
383
  return this.c.ownerRecordCount(addr) as Promise<bigint>;
378
384
  }
385
+
386
+ // ── Table-level write access control ───────────────────────
387
+
388
+ /**
389
+ * Add an address to this table's writer allowlist.
390
+ * Only takes effect when restrictedWrites = true.
391
+ * Only the table owner can call this.
392
+ */
393
+ async addTableWriter(writer: string): Promise<ethers.TransactionReceipt> {
394
+ const tx = await this.c.addTableWriter(writer);
395
+ return tx.wait();
396
+ }
397
+
398
+ /**
399
+ * Remove an address from this table's writer allowlist.
400
+ */
401
+ async removeTableWriter(writer: string): Promise<ethers.TransactionReceipt> {
402
+ const tx = await this.c.removeTableWriter(writer);
403
+ return tx.wait();
404
+ }
405
+
406
+ /**
407
+ * Toggle restricted write mode.
408
+ * false (default) — open/public table, anyone can write.
409
+ * true — only allowlisted writers can write.
410
+ */
411
+ async setRestrictedWrites(restricted: boolean): Promise<ethers.TransactionReceipt> {
412
+ const tx = await this.c.setRestrictedWrites(restricted);
413
+ return tx.wait();
414
+ }
415
+
416
+ /** Check whether an address is in the writer allowlist. */
417
+ async isTableWriter(writer: string): Promise<boolean> {
418
+ return this.c.tableWriters(writer) as Promise<boolean>;
419
+ }
420
+
421
+ /** Check whether this table has restricted writes enabled. */
422
+ async isRestrictedWrites(): Promise<boolean> {
423
+ return this.c.restrictedWrites() as Promise<boolean>;
424
+ }
379
425
  }
380
426
 
381
427
  // ─────────────────────────────────────────────────────────────