@ckb-firewall/cli 0.1.2 → 0.2.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.
Files changed (71) hide show
  1. package/README.md +23 -67
  2. package/dist/commands/add.d.ts.map +1 -1
  3. package/dist/commands/add.js +23 -15
  4. package/dist/commands/add.js.map +1 -1
  5. package/dist/commands/check.d.ts +9 -0
  6. package/dist/commands/check.d.ts.map +1 -0
  7. package/dist/commands/check.js +84 -0
  8. package/dist/commands/check.js.map +1 -0
  9. package/dist/commands/execute.d.ts.map +1 -1
  10. package/dist/commands/execute.js +112 -17
  11. package/dist/commands/execute.js.map +1 -1
  12. package/dist/commands/export.d.ts +6 -0
  13. package/dist/commands/export.d.ts.map +1 -0
  14. package/dist/commands/export.js +41 -0
  15. package/dist/commands/export.js.map +1 -0
  16. package/dist/commands/import.d.ts +6 -0
  17. package/dist/commands/import.d.ts.map +1 -0
  18. package/dist/commands/import.js +148 -0
  19. package/dist/commands/import.js.map +1 -0
  20. package/dist/commands/inspect.d.ts.map +1 -1
  21. package/dist/commands/inspect.js +30 -7
  22. package/dist/commands/inspect.js.map +1 -1
  23. package/dist/commands/propose.d.ts.map +1 -1
  24. package/dist/commands/propose.js +29 -4
  25. package/dist/commands/propose.js.map +1 -1
  26. package/dist/commands/remove.d.ts.map +1 -1
  27. package/dist/commands/remove.js +23 -15
  28. package/dist/commands/remove.js.map +1 -1
  29. package/dist/commands/sign.d.ts +1 -0
  30. package/dist/commands/sign.d.ts.map +1 -1
  31. package/dist/commands/sign.js +16 -22
  32. package/dist/commands/sign.js.map +1 -1
  33. package/dist/commands/vote.d.ts +1 -1
  34. package/dist/commands/vote.d.ts.map +1 -1
  35. package/dist/commands/vote.js +71 -15
  36. package/dist/commands/vote.js.map +1 -1
  37. package/dist/index.js +34 -34
  38. package/dist/index.js.map +1 -1
  39. package/dist/lib/blkl.d.ts +11 -1
  40. package/dist/lib/blkl.d.ts.map +1 -1
  41. package/dist/lib/blkl.js +95 -5
  42. package/dist/lib/blkl.js.map +1 -1
  43. package/dist/lib/defaults.d.ts +13 -2
  44. package/dist/lib/defaults.d.ts.map +1 -1
  45. package/dist/lib/defaults.js +29 -7
  46. package/dist/lib/defaults.js.map +1 -1
  47. package/dist/lib/placeholder-governance.d.ts +2 -0
  48. package/dist/lib/placeholder-governance.d.ts.map +1 -0
  49. package/dist/lib/placeholder-governance.js +8 -0
  50. package/dist/lib/placeholder-governance.js.map +1 -0
  51. package/dist/lib/proposals.d.ts +5 -1
  52. package/dist/lib/proposals.d.ts.map +1 -1
  53. package/dist/lib/proposals.js +37 -3
  54. package/dist/lib/proposals.js.map +1 -1
  55. package/dist/lib/registry.d.ts +5 -0
  56. package/dist/lib/registry.d.ts.map +1 -0
  57. package/dist/lib/registry.js +24 -0
  58. package/dist/lib/registry.js.map +1 -0
  59. package/dist/lib/rpc.d.ts +2 -2
  60. package/dist/lib/rpc.d.ts.map +1 -1
  61. package/dist/lib/rpc.js +60 -15
  62. package/dist/lib/rpc.js.map +1 -1
  63. package/dist/lib/validator-set.d.ts +7 -0
  64. package/dist/lib/validator-set.d.ts.map +1 -0
  65. package/dist/lib/validator-set.js +78 -0
  66. package/dist/lib/validator-set.js.map +1 -0
  67. package/dist/lib/witness.d.ts +6 -6
  68. package/dist/lib/witness.d.ts.map +1 -1
  69. package/dist/lib/witness.js +16 -10
  70. package/dist/lib/witness.js.map +1 -1
  71. package/package.json +3 -2
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![npm](https://img.shields.io/npm/v/@ckb-firewall/cli)](https://www.npmjs.com/package/@ckb-firewall/cli)
12
12
  ![License](https://img.shields.io/badge/license-MIT-blue.svg)
13
13
 
14
- Command-line tooling for inspecting and governing the [CKB Transaction Firewall](https://github.com/digitaldrreamer/ckb-transaction-firewall) blacklist registry.
14
+ CLI for inspecting and governing the [CKB Transaction Firewall](https://github.com/digitaldrreamer/ckb-transaction-firewall) blacklist registry.
15
15
 
16
16
  Node 20+. ESM only.
17
17
 
@@ -29,91 +29,47 @@ curl -fsSL https://raw.githubusercontent.com/digitaldrreamer/ckb-transaction-fir
29
29
 
30
30
  ## Commands
31
31
 
32
- ### `ckb-firewall inspect`
33
-
34
- Display the current blacklist entries from the live testnet registry cell.
32
+ ### Inspect and check
35
33
 
36
34
  ```bash
35
+ # Show all current entries with status
37
36
  ckb-firewall inspect
38
- ```
39
-
40
- Options: `--rpc-url`, `--registry-tx`, `--registry-index` (defaults point at the canonical testnet cell).
41
-
42
- ---
43
-
44
- ### Quick path — testnet/dev
45
-
46
- These commands produce a signed transaction file ready for `ckb-cli`. They use placeholder governance witnesses and are intended for testnet experimentation and development.
47
-
48
- ```bash
49
- # Add a lock-args to the blacklist
50
- ckb-firewall add --lock-args 0xabc123...
51
37
 
52
- # Remove a lock-args from the blacklist
53
- ckb-firewall remove --lock-args 0xabc123...
38
+ # Check whether a specific address is blacklisted
39
+ ckb-firewall check --lock-args 0xabc123...
54
40
  ```
55
41
 
56
- Both commands are interactive when flags are omitted. Both accept `--sign` to sign and submit in one step via `ckb-cli`.
57
-
58
- ---
59
-
60
- ### Full governance flow
61
-
62
- The full flow creates an auditable, community-reviewed proposal with a 72-hour review window, validator voting, and 3-of-5 multisig signing before anything is executed on-chain.
42
+ ### Governance flow
63
43
 
64
- **1. Create a proposal**
44
+ The auditable path — cryptographically signed votes, 72-hour review window, and on-chain multisig execution.
65
45
 
66
46
  ```bash
47
+ # 1. Create a proposal
67
48
  ckb-firewall propose
68
- ```
69
-
70
- Prompts for action (add/remove), lock args, threat classification, severity, evidence, rationale, and proposer identity. Stores the proposal locally (`~/.ckb-firewall/proposals/`) and prints the proposal ID.
71
-
72
- **2. Vote on proposals**
73
49
 
74
- ```bash
75
- ckb-firewall vote --proposal <id> --vote yes --validator alice
76
- ```
50
+ # 2. Export and share with other participants
51
+ ckb-firewall export --proposal <id> --out proposal.json
77
52
 
78
- Interactive when flags are omitted. Requires a minimum of 3 yes votes before signing is allowed.
53
+ # 3. Each participant imports
54
+ ckb-firewall import proposal.json
79
55
 
80
- **3. List proposals**
56
+ # 4. Each validator votes with their private key
57
+ ckb-firewall vote --proposal <id> --vote yes
58
+ # (prompts for 32-byte private key)
81
59
 
82
- ```bash
60
+ # 5. Track status
83
61
  ckb-firewall proposals
84
- ckb-firewall proposals --status voting
85
- ckb-firewall proposals --status approved
86
- ```
87
62
 
88
- Shows a table with status, vote tally, signature count, and review window countdown.
89
-
90
- **4. Sign an approved proposal**
91
-
92
- ```bash
63
+ # 6. Sign after 72h review window and vote threshold
93
64
  ckb-firewall sign --proposal <id> --signer-index 0
94
- ```
95
-
96
- Prompts for a 32-byte secp256k1 private key (password-masked). Falls back to a deterministic dev key for testnet use. Signing is only allowed after the 72-hour review window has passed and the vote threshold is met.
65
+ # (prompts for 32-byte private key)
97
66
 
98
- **5. Execute on-chain**
99
-
100
- ```bash
101
- ckb-firewall execute --proposal <id>
67
+ # 7. Execute on-chain
68
+ ckb-firewall execute --proposal <id> --tx-out gov_tx.json
102
69
  ```
103
70
 
104
- Builds and writes a governance transaction JSON file. Add `--sign` to sign and submit via `ckb-cli` in one step.
105
-
106
- ---
107
-
108
- ## Testnet defaults
109
-
110
- All commands default to the canonical testnet registry cell. See [`notes/deployments/testnet.registry.json`](https://github.com/digitaldrreamer/ckb-transaction-firewall/blob/main/notes/deployments/testnet.registry.json) for the exact cell outpoint and script identity.
71
+ Proposal state lives in `~/.ckb-firewall/proposals/`. Use `export`/`import` to share between participants `import` merges rather than overwrites.
111
72
 
112
- ## More
73
+ ## Full reference
113
74
 
114
- - [CKB Transaction Firewall](https://github.com/digitaldrreamer/ckb-transaction-firewall) — contracts, TypeScript SDK, Rust SDK, governance docs, testnet deployment
115
- - [Documentation](https://ckb-firewall.drreamer.digital/)
116
- - [CLI quickstart](https://ckb-firewall.drreamer.digital/getting-started/cli/)
117
- - [CLI reference](https://ckb-firewall.drreamer.digital/reference/cli/)
118
- - [Governance](https://ckb-firewall.drreamer.digital/concepts/governance/)
119
- - [Architecture](https://ckb-firewall.drreamer.digital/concepts/architecture/)
75
+ [https://ckb-firewall.drreamer.digital/reference/cli/](https://ckb-firewall.drreamer.digital/reference/cli/)
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AA0DD,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwMhE;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,CAUjD"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AA0DD,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8MhE;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,CAUjD"}
@@ -6,10 +6,11 @@ import ora from "ora";
6
6
  import inquirer from "inquirer";
7
7
  import { parseRegistryPayload } from "@ckb-firewall/sdk";
8
8
  import { getLiveCell } from "../lib/rpc.js";
9
- import { encodeRegistryPayload, insertSorted, bytesToHex, hexToBytes, strip0x, } from "../lib/blkl.js";
10
- import { ckbBlake2b, buildGov1Witness, buildWitnessArgs, placeholderSigners, } from "../lib/witness.js";
9
+ import { encodeRegistryPayload, extractGovernanceHeaderRaw, insertSorted, bytesToHex, hexToBytes, strip0x, } from "../lib/blkl.js";
10
+ import { ckbBlake2b, buildGov1WitnessV2, buildGovernanceSigWitness, buildWitnessArgs, placeholderSigners, } from "../lib/witness.js";
11
11
  import { TESTNET_RPC_URL, TESTNET_REGISTRY_CELL, TESTNET_CONTRACT_OUTPOINTS, SECP256K1_DEP_GROUP, } from "../lib/defaults.js";
12
12
  import { printHints } from "../lib/hints.js";
13
+ import { assertPlaceholderGovernanceAllowed } from "../lib/placeholder-governance.js";
13
14
  function isValidHex(value) {
14
15
  const clean = strip0x(value);
15
16
  return clean.length > 0 && /^[0-9a-fA-F]+$/.test(clean) && clean.length % 2 === 0;
@@ -64,6 +65,13 @@ async function promptExpiresAt() {
64
65
  return ts.trim();
65
66
  }
66
67
  export async function addCommand(opts) {
68
+ try {
69
+ assertPlaceholderGovernanceAllowed("ckb-firewall add");
70
+ }
71
+ catch (err) {
72
+ console.error(logSymbols.error, chalk.red(err instanceof Error ? err.message : String(err)));
73
+ process.exit(1);
74
+ }
67
75
  const rpcUrl = opts.rpcUrl;
68
76
  const txHash = opts.registryTx;
69
77
  const index = Number.parseInt(opts.registryIndex, 10);
@@ -112,7 +120,7 @@ export async function addCommand(opts) {
112
120
  currentPayload = parseRegistryPayload(cell.data);
113
121
  }
114
122
  catch {
115
- console.error(logSymbols.error, chalk.red("The registry cell does not contain a valid BLKL v1 payload."));
123
+ console.error(logSymbols.error, chalk.red("The registry cell does not contain a valid BLKL v2 payload."));
116
124
  console.error(chalk.dim(" Pass --registry-tx and --registry-index to point at the correct cell."));
117
125
  process.exit(1);
118
126
  }
@@ -126,7 +134,8 @@ export async function addCommand(opts) {
126
134
  // ── build new payload ────────────────────────────────────────────────────
127
135
  const newEntries = insertSorted(currentPayload.entries, { identifier: lockArgs, expiresAt });
128
136
  const newPayload = { version: currentPayload.version, entries: newEntries };
129
- const newBlkl = encodeRegistryPayload(newPayload);
137
+ const govHeaderRaw = extractGovernanceHeaderRaw(cell.data);
138
+ const newBlkl = encodeRegistryPayload(newPayload, govHeaderRaw ?? undefined);
130
139
  const oldBlkl = hexToBytes(cell.data);
131
140
  console.log();
132
141
  console.log(chalk.bold("Proposed change:"));
@@ -140,17 +149,9 @@ export async function addCommand(opts) {
140
149
  const voteDigestHash = ckbBlake2b(proposalIdHash);
141
150
  const oldRoot = ckbBlake2b(oldBlkl);
142
151
  const newRoot = ckbBlake2b(newBlkl);
143
- const gov1 = buildGov1Witness({
144
- proposalIdHash,
145
- voteDigestHash,
146
- oldRoot,
147
- newRoot,
148
- signers: placeholderSigners(3),
149
- });
150
- const witnessBytes = buildWitnessArgs({
151
- lock: new Uint8Array(65),
152
- inputType: gov1,
153
- });
152
+ const gov1 = buildGov1WitnessV2({ proposalIdHash, voteDigestHash, oldRoot, newRoot });
153
+ const sigWitness = buildGovernanceSigWitness(placeholderSigners(3));
154
+ const witnessBytes = buildWitnessArgs({ lock: sigWitness, inputType: gov1 });
154
155
  // ── build transaction ────────────────────────────────────────────────────
155
156
  const txJson = {
156
157
  transaction: {
@@ -164,6 +165,13 @@ export async function addCommand(opts) {
164
165
  },
165
166
  dep_type: "code",
166
167
  },
168
+ {
169
+ out_point: {
170
+ tx_hash: TESTNET_CONTRACT_OUTPOINTS.governanceLock.txHash,
171
+ index: `0x${TESTNET_CONTRACT_OUTPOINTS.governanceLock.index.toString(16)}`,
172
+ },
173
+ dep_type: "code",
174
+ },
167
175
  ],
168
176
  header_deps: [],
169
177
  inputs: [
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface CheckOptions {
2
+ lockArgs: string;
3
+ rpcUrl: string;
4
+ registryTx: string;
5
+ registryIndex: string;
6
+ }
7
+ export declare function checkCommand(opts: CheckOptions): Promise<void>;
8
+ export declare function checkDefaults(): Partial<CheckOptions>;
9
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EpE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAMrD"}
@@ -0,0 +1,84 @@
1
+ import chalk from "chalk";
2
+ import logSymbols from "log-symbols";
3
+ import ora from "ora";
4
+ import { parseRegistryPayload } from "@ckb-firewall/sdk";
5
+ import { getLiveCell } from "../lib/rpc.js";
6
+ import { resolveRegistryOutpoint } from "../lib/registry.js";
7
+ import { hexToBytes, strip0x } from "../lib/blkl.js";
8
+ import { TESTNET_REGISTRY_CELL, TESTNET_RPC_URL, } from "../lib/defaults.js";
9
+ export async function checkCommand(opts) {
10
+ const lockArgs = opts.lockArgs?.trim();
11
+ if (!lockArgs) {
12
+ console.error(logSymbols.error, chalk.red("--lock-args is required."));
13
+ process.exit(1);
14
+ }
15
+ const normalized = strip0x(lockArgs);
16
+ if (!/^[0-9a-fA-F]+$/.test(normalized) || normalized.length % 2 !== 0) {
17
+ console.error(logSymbols.error, chalk.red("--lock-args must be a valid even-length hex string (0x-prefixed or bare)."));
18
+ process.exit(1);
19
+ }
20
+ const configuredIndex = Number.parseInt(opts.registryIndex, 10);
21
+ if (!Number.isInteger(configuredIndex) || configuredIndex < 0) {
22
+ console.error(logSymbols.error, chalk.red("--registry-index must be a non-negative integer."));
23
+ process.exit(1);
24
+ }
25
+ const spinner = ora("Fetching registry cell").start();
26
+ let cell;
27
+ let registryTx = opts.registryTx;
28
+ let registryIndex = configuredIndex;
29
+ try {
30
+ ({ txHash: registryTx, index: registryIndex } = await resolveRegistryOutpoint(opts.rpcUrl, opts.registryTx, configuredIndex));
31
+ cell = await getLiveCell(opts.rpcUrl, registryTx, registryIndex);
32
+ spinner.succeed("Registry cell loaded");
33
+ }
34
+ catch (err) {
35
+ spinner.fail("Failed to fetch registry cell");
36
+ console.error(chalk.red(err instanceof Error ? err.message : String(err)));
37
+ process.exit(1);
38
+ }
39
+ let payload;
40
+ try {
41
+ payload = parseRegistryPayload(cell.data);
42
+ }
43
+ catch {
44
+ console.error(logSymbols.error, chalk.red("Registry cell does not contain a valid BLKL payload."));
45
+ process.exit(1);
46
+ }
47
+ const identifierBytes = hexToBytes(lockArgs);
48
+ const nowSec = BigInt(Math.floor(Date.now() / 1000));
49
+ const match = payload.entries.find((e) => {
50
+ const eBytes = hexToBytes(e.identifier);
51
+ if (eBytes.length !== identifierBytes.length)
52
+ return false;
53
+ return eBytes.every((b, i) => b === identifierBytes[i]);
54
+ });
55
+ console.log();
56
+ if (!match) {
57
+ console.log(logSymbols.success, chalk.green(`Not blacklisted: ${chalk.bold(lockArgs)}`));
58
+ console.log(chalk.dim(` Registry: ${registryTx}:${registryIndex} (${payload.entries.length} entries)`));
59
+ process.exit(0);
60
+ }
61
+ const isPermanent = match.expiresAt === 0n;
62
+ const isExpired = !isPermanent && match.expiresAt <= nowSec;
63
+ if (isExpired) {
64
+ console.log(logSymbols.warning, chalk.yellow(`Entry exists but is EXPIRED: ${chalk.bold(lockArgs)}`));
65
+ console.log(chalk.dim(` Expired: ${new Date(Number(match.expiresAt) * 1000).toISOString()}`));
66
+ console.log(chalk.dim(" An expired entry does not block transactions — only active entries do."));
67
+ process.exit(0);
68
+ }
69
+ const expiry = isPermanent
70
+ ? "permanent"
71
+ : `expires ${new Date(Number(match.expiresAt) * 1000).toISOString()}`;
72
+ console.log(logSymbols.error, chalk.red(`BLACKLISTED: ${chalk.bold(lockArgs)}`));
73
+ console.log(chalk.dim(` Status: ${expiry}`));
74
+ console.log(chalk.dim(` Registry: ${registryTx}:${registryIndex}`));
75
+ process.exit(2);
76
+ }
77
+ export function checkDefaults() {
78
+ return {
79
+ rpcUrl: TESTNET_RPC_URL,
80
+ registryTx: TESTNET_REGISTRY_CELL.txHash,
81
+ registryIndex: String(TESTNET_REGISTRY_CELL.index),
82
+ };
83
+ }
84
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuOxE;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CASzD"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsUxE;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CASzD"}
@@ -4,11 +4,14 @@ import chalk from "chalk";
4
4
  import logSymbols from "log-symbols";
5
5
  import ora from "ora";
6
6
  import inquirer from "inquirer";
7
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
7
8
  import { parseRegistryPayload } from "@ckb-firewall/sdk";
8
9
  import { getLiveCell } from "../lib/rpc.js";
9
- import { loadProposal, saveProposal, listProposals, isReviewWindowPassed, isVoteApproved, isReadyToExecute, SIG_THRESHOLD, } from "../lib/proposals.js";
10
- import { encodeRegistryPayload, insertSorted, removeEntry, bytesToHex, hexToBytes, strip0x, } from "../lib/blkl.js";
11
- import { ckbBlake2b, buildGov1Witness, buildWitnessArgs, } from "../lib/witness.js";
10
+ import { resolveRegistryOutpoint } from "../lib/registry.js";
11
+ import { loadProposal, saveProposal, listProposals, isReviewWindowPassed, isVoteApproved, isReadyToExecute, computeVoteDigestHash, voteSigningMessage, signingMessage, SIG_THRESHOLD, } from "../lib/proposals.js";
12
+ import { encodeRegistryPayload, extractGovernanceHeaderRaw, parseGovernanceHeader, insertSorted, removeEntry, bytesToHex, hexToBytes, strip0x, } from "../lib/blkl.js";
13
+ import { verifyMerkleProof } from "../lib/validator-set.js";
14
+ import { ckbBlake2b, buildGov1WitnessV2, buildGovernanceSigWitness, buildWitnessArgs, } from "../lib/witness.js";
12
15
  import { TESTNET_RPC_URL, TESTNET_REGISTRY_CELL, TESTNET_CONTRACT_OUTPOINTS, SECP256K1_DEP_GROUP, } from "../lib/defaults.js";
13
16
  import { printHints } from "../lib/hints.js";
14
17
  export async function executeCommand(opts) {
@@ -56,6 +59,40 @@ export async function executeCommand(opts) {
56
59
  console.log(chalk.dim(` Use: ckb-firewall sign --proposal ${proposal.id}`));
57
60
  process.exit(1);
58
61
  }
62
+ // P0-8: reject if the proposal's expiry has already passed.
63
+ if (proposal.expiresAt !== "0") {
64
+ const expiryMs = Number(proposal.expiresAt) * 1000;
65
+ if (Date.now() >= expiryMs) {
66
+ console.log(logSymbols.error, chalk.red(`Proposal "${proposal.id}" has already expired (${new Date(expiryMs).toISOString()}).`));
67
+ console.log(chalk.dim(" A new proposal must be created for this blacklist entry."));
68
+ process.exit(1);
69
+ }
70
+ }
71
+ // P4-3: verify every vote carries a valid signature from its claimed pubkey.
72
+ for (const v of proposal.votes) {
73
+ const sigBytes = hexToBytes(v.signature);
74
+ if (sigBytes.length !== 65) {
75
+ console.error(logSymbols.error, chalk.red(`Vote from ${v.pubkey.slice(0, 14)}… has invalid signature length.`));
76
+ process.exit(1);
77
+ }
78
+ const msgHash = voteSigningMessage(proposal.proposalIdHash, v.vote, v.timestamp, v.pubkey);
79
+ // Rebuild [recovery_id, r, s] from stored [r, s, recovery_id].
80
+ const sig65 = new Uint8Array(65);
81
+ sig65[0] = sigBytes[64] ?? 0;
82
+ sig65.set(sigBytes.slice(0, 64), 1);
83
+ let recoveredPubkey;
84
+ try {
85
+ recoveredPubkey = bytesToHex(new Uint8Array(secp256k1.recoverPublicKey(sig65, msgHash)));
86
+ }
87
+ catch {
88
+ console.error(logSymbols.error, chalk.red(`Vote from ${v.pubkey.slice(0, 14)}… has unrecoverable signature — proposal may have been tampered.`));
89
+ process.exit(1);
90
+ }
91
+ if (recoveredPubkey !== v.pubkey) {
92
+ console.error(logSymbols.error, chalk.red(`Vote signature does not match pubkey ${v.pubkey.slice(0, 14)}… — proposal may have been tampered.`));
93
+ process.exit(1);
94
+ }
95
+ }
59
96
  // ── fetch current registry cell ──────────────────────────────────────────
60
97
  const registryIndex = Number.parseInt(opts.registryIndex, 10);
61
98
  if (!Number.isInteger(registryIndex) || registryIndex < 0) {
@@ -65,7 +102,8 @@ export async function executeCommand(opts) {
65
102
  const spinner = ora("Fetching current registry cell").start();
66
103
  let cell;
67
104
  try {
68
- cell = await getLiveCell(opts.rpcUrl, opts.registryTx, registryIndex);
105
+ const { txHash, index } = await resolveRegistryOutpoint(opts.rpcUrl, opts.registryTx, registryIndex);
106
+ cell = await getLiveCell(opts.rpcUrl, txHash, index);
69
107
  spinner.succeed("Registry cell loaded");
70
108
  }
71
109
  catch (err) {
@@ -81,8 +119,57 @@ export async function executeCommand(opts) {
81
119
  console.error(logSymbols.error, chalk.red("Registry cell does not contain a valid BLKL payload."));
82
120
  process.exit(1);
83
121
  }
84
- // ── build new BLKL payload ────────────────────────────────────────────────
122
+ // ── verify vote Merkle proofs against on-chain validator set ─────────────
85
123
  const oldBlkl = hexToBytes(cell.data);
124
+ const govHeaderRaw = extractGovernanceHeaderRaw(cell.data);
125
+ const govHeader = govHeaderRaw ? parseGovernanceHeader(govHeaderRaw) : null;
126
+ if (govHeader && govHeader.validatorCount > 0) {
127
+ const rootHex = bytesToHex(govHeader.validatorMerkleRoot);
128
+ for (const v of proposal.votes) {
129
+ if (!Array.isArray(v.merkleProof) || typeof v.merkleLeafIndex !== "number") {
130
+ console.error(logSymbols.error, chalk.red(`Vote from ${v.pubkey.slice(0, 14)}… is missing a Merkle proof — re-cast the vote with the current CLI.`));
131
+ process.exit(1);
132
+ }
133
+ const valid = verifyMerkleProof(rootHex, v.pubkey, v.merkleProof, v.merkleLeafIndex);
134
+ if (!valid) {
135
+ console.error(logSymbols.error, chalk.red(`Vote from ${v.pubkey.slice(0, 14)}… is not in the on-chain validator set.`));
136
+ process.exit(1);
137
+ }
138
+ }
139
+ }
140
+ // C-4: verify governance signer signatures against on-chain pubkeys from governance header.
141
+ if (govHeader && govHeader.pubkeys.length > 0) {
142
+ const msgHash = signingMessage(proposal);
143
+ for (const s of proposal.signatures) {
144
+ if (s.signerIndex >= govHeader.pubkeys.length) {
145
+ console.error(logSymbols.error, chalk.red(`Signer index ${s.signerIndex} is out of range for the on-chain governance committee (${govHeader.pubkeys.length} signers).`));
146
+ process.exit(1);
147
+ }
148
+ const sigBytes = hexToBytes(s.signature);
149
+ if (sigBytes.length !== 65) {
150
+ console.error(logSymbols.error, chalk.red(`Governance signature from signer ${s.signerIndex} has invalid length.`));
151
+ process.exit(1);
152
+ }
153
+ // Rebuild [recovery_id, r, s] from stored [r, s, recovery_id].
154
+ const sig65 = new Uint8Array(65);
155
+ sig65[0] = sigBytes[64] ?? 0;
156
+ sig65.set(sigBytes.slice(0, 64), 1);
157
+ let recoveredPubkey;
158
+ try {
159
+ recoveredPubkey = bytesToHex(new Uint8Array(secp256k1.recoverPublicKey(sig65, msgHash)));
160
+ }
161
+ catch {
162
+ console.error(logSymbols.error, chalk.red(`Governance signature from signer ${s.signerIndex} is unrecoverable.`));
163
+ process.exit(1);
164
+ }
165
+ const expectedPubkey = bytesToHex(govHeader.pubkeys[s.signerIndex]);
166
+ if (recoveredPubkey !== expectedPubkey) {
167
+ console.error(logSymbols.error, chalk.red(`Governance signature from signer ${s.signerIndex} does not match the on-chain pubkey — proposal may have been tampered.`));
168
+ process.exit(1);
169
+ }
170
+ }
171
+ }
172
+ // ── build new BLKL payload ────────────────────────────────────────────────
86
173
  let newEntries;
87
174
  if (proposal.action === "add") {
88
175
  if (currentPayload.entries.some((e) => strip0x(e.identifier).toLowerCase() === strip0x(proposal.lockArgs).toLowerCase())) {
@@ -102,8 +189,16 @@ export async function executeCommand(opts) {
102
189
  }
103
190
  }
104
191
  const newPayload = { version: currentPayload.version, entries: newEntries };
105
- const newBlkl = encodeRegistryPayload(newPayload);
192
+ const newBlkl = encodeRegistryPayload(newPayload, govHeaderRaw ?? undefined);
106
193
  // ── build GOV1 witness with real signatures ───────────────────────────────
194
+ // P0-2: recompute voteDigestHash from votes and verify it matches the stored value.
195
+ const recomputedVoteDigest = computeVoteDigestHash(proposal.votes);
196
+ if (recomputedVoteDigest !== proposal.voteDigestHash) {
197
+ console.error(logSymbols.error, chalk.red("Vote digest hash mismatch — proposal votes may have been tampered."));
198
+ console.error(chalk.dim(` Stored: ${proposal.voteDigestHash}`));
199
+ console.error(chalk.dim(` Recomputed: ${recomputedVoteDigest}`));
200
+ process.exit(1);
201
+ }
107
202
  const proposalIdBytes = hexToBytes(proposal.proposalIdHash);
108
203
  const voteDigestBytes = hexToBytes(proposal.voteDigestHash);
109
204
  const oldRoot = ckbBlake2b(oldBlkl);
@@ -112,17 +207,10 @@ export async function executeCommand(opts) {
112
207
  index: s.signerIndex,
113
208
  sig: hexToBytes(s.signature),
114
209
  }));
115
- const gov1 = buildGov1Witness({
116
- proposalIdHash: proposalIdBytes,
117
- voteDigestHash: voteDigestBytes,
118
- oldRoot,
119
- newRoot,
120
- signers,
121
- });
122
- const witnessBytes = buildWitnessArgs({
123
- lock: new Uint8Array(65),
124
- inputType: gov1,
125
- });
210
+ // v2: GOV1 binding in input_type, signer entries in lock field.
211
+ const gov1 = buildGov1WitnessV2({ proposalIdHash: proposalIdBytes, voteDigestHash: voteDigestBytes, oldRoot, newRoot });
212
+ const sigWitness = buildGovernanceSigWitness(signers);
213
+ const witnessBytes = buildWitnessArgs({ lock: sigWitness, inputType: gov1 });
126
214
  // ── summary ───────────────────────────────────────────────────────────────
127
215
  console.log();
128
216
  console.log(chalk.bold("Executing proposal:"), proposal.id);
@@ -144,6 +232,13 @@ export async function executeCommand(opts) {
144
232
  },
145
233
  dep_type: "code",
146
234
  },
235
+ {
236
+ out_point: {
237
+ tx_hash: TESTNET_CONTRACT_OUTPOINTS.governanceLock.txHash,
238
+ index: `0x${TESTNET_CONTRACT_OUTPOINTS.governanceLock.index.toString(16)}`,
239
+ },
240
+ dep_type: "code",
241
+ },
147
242
  ],
148
243
  header_deps: [],
149
244
  inputs: [
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface ExportOptions {
2
+ proposal?: string;
3
+ out?: string;
4
+ }
5
+ export declare function exportCommand(opts: ExportOptions): Promise<void>;
6
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCtE"}