@ckb-firewall/cli 0.4.0 → 0.5.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 (92) hide show
  1. package/README.md +11 -6
  2. package/dist/commands/anchor.d.ts +23 -0
  3. package/dist/commands/anchor.d.ts.map +1 -0
  4. package/dist/commands/anchor.js +412 -0
  5. package/dist/commands/anchor.js.map +1 -0
  6. package/dist/commands/config.d.ts +4 -0
  7. package/dist/commands/config.d.ts.map +1 -0
  8. package/dist/commands/config.js +59 -0
  9. package/dist/commands/config.js.map +1 -0
  10. package/dist/commands/execute.d.ts +9 -1
  11. package/dist/commands/execute.d.ts.map +1 -1
  12. package/dist/commands/execute.js +394 -229
  13. package/dist/commands/execute.js.map +1 -1
  14. package/dist/commands/import.d.ts.map +1 -1
  15. package/dist/commands/import.js +15 -48
  16. package/dist/commands/import.js.map +1 -1
  17. package/dist/commands/inspect.d.ts.map +1 -1
  18. package/dist/commands/inspect.js +32 -0
  19. package/dist/commands/inspect.js.map +1 -1
  20. package/dist/commands/proposals.d.ts.map +1 -1
  21. package/dist/commands/proposals.js +2 -4
  22. package/dist/commands/proposals.js.map +1 -1
  23. package/dist/commands/propose.d.ts +5 -0
  24. package/dist/commands/propose.d.ts.map +1 -1
  25. package/dist/commands/propose.js +91 -7
  26. package/dist/commands/propose.js.map +1 -1
  27. package/dist/commands/reclaim.d.ts +18 -0
  28. package/dist/commands/reclaim.d.ts.map +1 -0
  29. package/dist/commands/reclaim.js +214 -0
  30. package/dist/commands/reclaim.js.map +1 -0
  31. package/dist/commands/sign.d.ts.map +1 -1
  32. package/dist/commands/sign.js +40 -94
  33. package/dist/commands/sign.js.map +1 -1
  34. package/dist/commands/vote.d.ts +2 -0
  35. package/dist/commands/vote.d.ts.map +1 -1
  36. package/dist/commands/vote.js +31 -25
  37. package/dist/commands/vote.js.map +1 -1
  38. package/dist/index.js +91 -16
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/blkl.d.ts +17 -2
  41. package/dist/lib/blkl.d.ts.map +1 -1
  42. package/dist/lib/blkl.js +133 -17
  43. package/dist/lib/blkl.js.map +1 -1
  44. package/dist/lib/capacity.d.ts +12 -0
  45. package/dist/lib/capacity.d.ts.map +1 -0
  46. package/dist/lib/capacity.js +18 -0
  47. package/dist/lib/capacity.js.map +1 -0
  48. package/dist/lib/config.d.ts +7 -0
  49. package/dist/lib/config.d.ts.map +1 -0
  50. package/dist/lib/config.js +35 -0
  51. package/dist/lib/config.js.map +1 -0
  52. package/dist/lib/defaults.d.ts +19 -0
  53. package/dist/lib/defaults.d.ts.map +1 -1
  54. package/dist/lib/defaults.js +34 -7
  55. package/dist/lib/defaults.js.map +1 -1
  56. package/dist/lib/governance-v4.d.ts +39 -0
  57. package/dist/lib/governance-v4.d.ts.map +1 -0
  58. package/dist/lib/governance-v4.js +194 -0
  59. package/dist/lib/governance-v4.js.map +1 -0
  60. package/dist/lib/gui-bundle.html +485 -316
  61. package/dist/lib/gui-server.d.ts.map +1 -1
  62. package/dist/lib/gui-server.js +300 -246
  63. package/dist/lib/gui-server.js.map +1 -1
  64. package/dist/lib/hints.d.ts +1 -1
  65. package/dist/lib/hints.d.ts.map +1 -1
  66. package/dist/lib/hints.js +3 -9
  67. package/dist/lib/hints.js.map +1 -1
  68. package/dist/lib/proposals.d.ts +17 -9
  69. package/dist/lib/proposals.d.ts.map +1 -1
  70. package/dist/lib/proposals.js +4 -26
  71. package/dist/lib/proposals.js.map +1 -1
  72. package/dist/lib/rpc.d.ts +5 -0
  73. package/dist/lib/rpc.d.ts.map +1 -1
  74. package/dist/lib/rpc.js +21 -0
  75. package/dist/lib/rpc.js.map +1 -1
  76. package/dist/lib/treasury-status.d.ts +28 -0
  77. package/dist/lib/treasury-status.d.ts.map +1 -0
  78. package/dist/lib/treasury-status.js +70 -0
  79. package/dist/lib/treasury-status.js.map +1 -0
  80. package/dist/lib/treasury.d.ts +15 -0
  81. package/dist/lib/treasury.d.ts.map +1 -0
  82. package/dist/lib/treasury.js +62 -0
  83. package/dist/lib/treasury.js.map +1 -0
  84. package/dist/lib/tx-deps.d.ts +9 -0
  85. package/dist/lib/tx-deps.d.ts.map +1 -0
  86. package/dist/lib/tx-deps.js +15 -0
  87. package/dist/lib/tx-deps.js.map +1 -0
  88. package/dist/lib/witness.d.ts +13 -11
  89. package/dist/lib/witness.d.ts.map +1 -1
  90. package/dist/lib/witness.js +85 -48
  91. package/dist/lib/witness.js.map +1 -1
  92. package/package.json +1 -1
@@ -61,15 +61,21 @@ export async function voteCommand(opts) {
61
61
  process.exit(1);
62
62
  }
63
63
  // ── private key → pubkey ─────────────────────────────────────────────────
64
- console.log();
65
- const { keyInput } = await inquirer.prompt([
66
- {
67
- type: "password",
68
- name: "keyInput",
69
- message: "Validator private key (32-byte hex):",
70
- mask: "*",
71
- },
72
- ]);
64
+ let keyInput;
65
+ if (opts.privateKey?.trim()) {
66
+ keyInput = opts.privateKey.trim();
67
+ }
68
+ else {
69
+ console.log();
70
+ ({ keyInput } = await inquirer.prompt([
71
+ {
72
+ type: "password",
73
+ name: "keyInput",
74
+ message: "Validator private key (32-byte hex):",
75
+ mask: "*",
76
+ },
77
+ ]));
78
+ }
73
79
  if (!keyInput.trim()) {
74
80
  console.error(logSymbols.error, chalk.red("A private key is required."));
75
81
  process.exit(1);
@@ -91,8 +97,9 @@ export async function voteCommand(opts) {
91
97
  process.exit(1);
92
98
  }
93
99
  const { proof: merkleProof, leafIndex: merkleLeafIndex } = merkleResult;
94
- // Verify the local validator set matches the on-chain Merkle root so votes won't be
95
- // silently rejected at execution time if the validator set has rotated.
100
+ // On-chain Merkle root check is mandatory. A vote recorded against a stale or wrong
101
+ // validator set will be rejected at execute time, so we must confirm on-chain state now.
102
+ // Network failure is not safe to ignore — fail hard rather than record an invalid vote.
96
103
  const localRoot = computeMerkleRoot(validatorSet);
97
104
  try {
98
105
  const registryIndexInt = Number.parseInt(opts.registryIndex, 10);
@@ -103,15 +110,19 @@ export async function voteCommand(opts) {
103
110
  if (govHeader && govHeader.validatorCount > 0) {
104
111
  const onChainRoot = bytesToHex(govHeader.validatorMerkleRoot);
105
112
  if (onChainRoot.toLowerCase() !== localRoot.toLowerCase()) {
106
- console.error(logSymbols.error, chalk.red("Validator set mismatch: local TESTNET_GOVERNANCE_PUBKEYS do not match the on-chain Merkle root."));
107
- console.error(chalk.dim(" This vote will be rejected at execution time. Update to the current validator set."));
113
+ console.error(logSymbols.error, chalk.red("Validator set mismatch: your governance pubkeys do not match the on-chain Merkle root."));
114
+ console.error(chalk.dim(" The validator set may have been rotated. Update your local governance pubkeys before voting."));
108
115
  privateKeyBytes.fill(0);
109
116
  process.exit(1);
110
117
  }
111
118
  }
112
119
  }
113
- catch {
114
- console.log(chalk.dim(" Note: could not verify on-chain validator set network unavailable, proceeding with local check."));
120
+ catch (err) {
121
+ console.error(logSymbols.error, chalk.red("Cannot reach the CKB node — on-chain validator set verification is required before voting."));
122
+ console.error(chalk.dim(` RPC: ${opts.rpcUrl}`));
123
+ console.error(chalk.dim(` ${err instanceof Error ? err.message : String(err)}`));
124
+ privateKeyBytes.fill(0);
125
+ process.exit(1);
115
126
  }
116
127
  // Duplicate check by pubkey.
117
128
  if (proposal.votes.some((v) => v.pubkey.toLowerCase() === pubkey.toLowerCase())) {
@@ -149,21 +160,16 @@ export async function voteCommand(opts) {
149
160
  // ── sign vote ────────────────────────────────────────────────────────────
150
161
  const timestamp = new Date().toISOString();
151
162
  const msgHash = voteSigningMessage(proposal.proposalIdHash, vote, timestamp, pubkey);
163
+ // prehash:false — msgHash is already blake2b; skip noble/curves' internal sha256 step.
152
164
  // format:"recovered" returns Uint8Array[recovery_id(1), r(32), s(32)]
153
- const sigRaw = secp256k1.sign(msgHash, privateKeyBytes, { lowS: true, format: "recovered" });
154
- // Store as [r(32), s(32), recovery_id(1)] matches ProposalSignature convention
165
+ const sigRaw = secp256k1.sign(msgHash, privateKeyBytes, { lowS: true, prehash: false, format: "recovered" });
166
+ // Store as [r(32), s(32), recovery_id(1)] for the on-chain vote witness.
155
167
  const sigBytes = new Uint8Array(65);
156
168
  sigBytes.set(sigRaw.slice(1), 0);
157
169
  sigBytes[64] = sigRaw[0] ?? 0;
158
170
  privateKeyBytes.fill(0); // zero key material immediately after use
159
171
  const signature = bytesToHex(sigBytes);
160
172
  // ── record vote ──────────────────────────────────────────────────────────
161
- // Block new votes once signing has started — adding a vote would change voteDigestHash
162
- // and invalidate any signatures already collected.
163
- if (proposal.signatures.length > 0) {
164
- console.error(logSymbols.error, chalk.red("Cannot record vote — signing has already begun. Adding a vote would invalidate existing signatures."));
165
- process.exit(1);
166
- }
167
173
  proposal.votes.push({ pubkey, vote, timestamp, signature, merkleLeafIndex, merkleProof });
168
174
  proposal.voteDigestHash = computeVoteDigestHash(proposal.votes);
169
175
  const yesCount = countYes(proposal.votes);
@@ -177,8 +183,8 @@ export async function voteCommand(opts) {
177
183
  console.log(` Yes votes: ${yesCount}/${VOTE_THRESHOLD} required`);
178
184
  if (approved) {
179
185
  console.log();
180
- console.log(logSymbols.success, chalk.green("Vote threshold met — proposal approved for signing."));
181
- console.log(` Next: ${chalk.dim(`ckb-firewall sign --proposal ${proposal.id}`)}`);
186
+ console.log(logSymbols.success, chalk.green("Vote threshold met — proposal approved for execution."));
187
+ console.log(` Next: ${chalk.dim(`ckb-firewall execute --proposal ${proposal.id}`)}`);
182
188
  }
183
189
  else {
184
190
  console.log(` Need ${VOTE_THRESHOLD - yesCount} more yes vote(s).`);
@@ -1 +1 @@
1
- {"version":3,"file":"vote.js","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,qBAAqB,CAAC,MAAM;QACxC,aAAa,EAAE,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QACtC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB;IACjD,4EAA4E;IAE5E,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAC9D,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;YAC3D;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,6BAA6B;gBACtC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,cAAc,OAAO;oBAC/I,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QACH,UAAU,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,4EAA4E;IAE5E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;QAC/D;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,GAAG;SACV;KACF,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB;IACzF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvD,yDAAyD;IACzD,MAAM,YAAY,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,YAAa,CAAC;IAEzE,oFAAoF;IACpF,wEAAwE;IACxE,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACxG,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,IAAI,SAAS,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1D,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CACvC,iGAAiG,CAClG,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC,CAAC;gBACjH,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qGAAqG,CAAC,CAAC,CAAC;IAChI,CAAC;IAED,6BAA6B;IAC7B,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC9H,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,4EAA4E;IAE5E,IAAI,IAAgB,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,cAAc,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAyB;YAC/D;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,KAAK,EAAE;oBACrD,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,IAAI,EAAE;oBAClD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;iBACtC;aACF;SACF,CAAC,CAAC;QACH,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;IAED,4EAA4E;IAE5E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAErF,sEAAsE;IACtE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7F,iFAAiF;IACjF,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;IAEnE,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEvC,4EAA4E;IAE5E,uFAAuF;IACvF,mDAAmD;IACnD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CACvC,qGAAqG,CACtG,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1F,QAAQ,CAAC,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,IAAI,cAAc,WAAW,CAAC,CAAC;IAEnE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,gCAAgC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,cAAc,GAAG,QAAQ,oBAAoB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"vote.js","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,16 +1,21 @@
1
1
  #!/usr/bin/env node
2
+ import { createRequire } from "node:module";
2
3
  import { program } from "commander";
3
4
  import cfonts from "cfonts";
5
+ const _require = createRequire(import.meta.url);
6
+ const _version = _require("../package.json").version;
4
7
  import { inspectCommand, inspectDefaults } from "./commands/inspect.js";
5
8
  import { proposeCommand } from "./commands/propose.js";
6
9
  import { proposalsCommand } from "./commands/proposals.js";
7
10
  import { voteCommand, voteDefaults } from "./commands/vote.js";
8
- import { signCommand, signDefaults } from "./commands/sign.js";
9
11
  import { executeCommand, executeDefaults } from "./commands/execute.js";
10
12
  import { exportCommand } from "./commands/export.js";
11
13
  import { importCommand } from "./commands/import.js";
12
14
  import { checkCommand, checkDefaults } from "./commands/check.js";
13
15
  import { guiCommand } from "./commands/gui.js";
16
+ import { anchorCommand, anchorDefaults } from "./commands/anchor.js";
17
+ import { reclaimCommand, reclaimDefaults } from "./commands/reclaim.js";
18
+ import { configCommand } from "./commands/config.js";
14
19
  function printBanner() {
15
20
  cfonts.say("CKB FIREWALL|CLI", {
16
21
  font: "block",
@@ -26,7 +31,7 @@ function printBanner() {
26
31
  program
27
32
  .name("ckb-firewall")
28
33
  .description("Manage the CKB Transaction Firewall blacklist registry")
29
- .version("0.3.1")
34
+ .version(_version)
30
35
  .addHelpCommand(false);
31
36
  // ── inspect ──────────────────────────────────────────────────────────────────
32
37
  const inspectDefs = inspectDefaults();
@@ -55,7 +60,7 @@ program
55
60
  program
56
61
  .command("propose")
57
62
  .description("Create a governance proposal (72h review + voting + signing + on-chain execution)")
58
- .option("--action <add|remove>", "Proposal action")
63
+ .option("--action <add|remove|set-treasury>", "Proposal action")
59
64
  .option("--lock-args <hex>", "Lock args to add or remove")
60
65
  .option("--expires-at <timestamp>", "Expiry timestamp (add only, 0 = never)")
61
66
  .option("--evidence <text>", "Evidence URL, tx hash, or description")
@@ -63,6 +68,10 @@ program
63
68
  .option("--severity <level>", "Severity: critical|high|medium|low")
64
69
  .option("--rationale <text>", "Impact statement and rationale")
65
70
  .option("--proposer <name>", "Your name or identifier")
71
+ .option("--treasury-lock-code-hash <hash>", "Treasury lock script code hash for set-treasury proposals")
72
+ .option("--treasury-lock-hash-type <type>", "Treasury lock script hash type for set-treasury proposals")
73
+ .option("--treasury-lock-args <hex>", "Treasury lock script args for set-treasury proposals")
74
+ .option("--review-delay-ms <ms>", "Override the on-chain review delay in ms (testnet/drill only)")
66
75
  .action(async (opts) => {
67
76
  await proposeCommand(opts);
68
77
  });
@@ -84,37 +93,95 @@ program
84
93
  .option("--rpc-url <url>", "CKB node RPC URL", voteDefs.rpcUrl)
85
94
  .option("--registry-tx <hash>", "Registry cell tx hash", voteDefs.registryTx)
86
95
  .option("--registry-index <n>", "Registry cell output index", voteDefs.registryIndex)
96
+ .option("--private-key <hex>", "Validator private key hex (non-interactive use)")
87
97
  .action(async (opts) => {
88
98
  await voteCommand(opts);
89
99
  });
90
- // ── sign ──────────────────────────────────────────────────────────────────────
91
- const signDefs = signDefaults();
100
+ // ── anchor proposal cell ─────────────────────────────────────────────────────
101
+ const anchorDefs = anchorDefaults();
92
102
  program
93
- .command("sign")
94
- .description("Sign an approved proposal as a governance signer (secp256k1)")
95
- .option("--proposal <id>", "Proposal ID or hash")
96
- .option("--signer-index <n>", "Your signer index in the governance set")
97
- .option("--rpc-url <url>", "CKB node RPC URL", signDefs.rpcUrl)
98
- .option("--registry-tx <hash>", "Registry cell tx hash", signDefs.registryTx)
99
- .option("--registry-index <n>", "Registry cell output index", signDefs.registryIndex)
103
+ .command("anchor")
104
+ .description("Build or submit the GOV1 v4 PBLK proposal cell")
105
+ .requiredOption("--proposal <id>", "Proposal ID or hash")
106
+ .option("--rpc-url <url>", "CKB node RPC URL", anchorDefs.rpcUrl)
107
+ .option("--registry-tx <hash>", "Registry cell tx hash", anchorDefs.registryTx)
108
+ .option("--registry-index <n>", "Registry cell output index", anchorDefs.registryIndex)
109
+ .option("--to-address <address>", "Address that will receive and later spend the proposal cell")
110
+ .option("--from-account <address>", "Funding account for ckb-cli wallet transfer")
111
+ .option("--capacity <ckb>", "Proposal cell capacity in CKB", anchorDefs.capacity)
112
+ .option("--fee-rate <shannons>", "ckb-cli transfer fee rate", anchorDefs.feeRate)
113
+ .option("--privkey-path <file>", "Private key file for non-interactive ckb-cli transfer")
114
+ .option("--output-index <n>", "Expected proposal-cell output index when submitting", "0")
115
+ .option("--proposal-tx <hash>", "Already-submitted proposal cell tx hash to store on the proposal")
116
+ .option("--proposal-index <n>", "Already-submitted proposal cell output index to store on the proposal")
117
+ .option("--proposal-anchor-code-tx <hash>", "Proposal-anchor type script code cell tx hash for treasury-backed anchors", anchorDefs.proposalAnchorCodeTx)
118
+ .option("--proposal-anchor-code-index <n>", "Proposal-anchor type script code cell output index for treasury-backed anchors", anchorDefs.proposalAnchorCodeIndex)
119
+ .option("--treasury-cell <tx-hash:index>", "Treasury input cell for typed anchor creation; repeatable", (value, previous) => {
120
+ previous.push(value);
121
+ return previous;
122
+ }, [])
123
+ .option("--treasury-lock-dep <tx-hash:index[:code|dep_group]>", "Extra cell dep required by the treasury lock script; repeatable", (value, previous) => {
124
+ previous.push(value);
125
+ return previous;
126
+ }, [])
127
+ .option("--tx-out <file>", "Write typed treasury anchor tx JSON to this file", anchorDefs.txOut)
128
+ .option("--submit", "Submit the anchor transaction instead of only printing/writing instructions")
100
129
  .action(async (opts) => {
101
- await signCommand(opts);
130
+ await anchorCommand(opts);
102
131
  });
103
132
  // ── execute ───────────────────────────────────────────────────────────────────
104
133
  const execDefs = executeDefaults();
105
134
  program
106
135
  .command("execute")
107
- .description("Execute an approved, signed proposal — builds and submits the governance tx")
136
+ .description("Execute an approved validator-voted proposal — builds and submits the governance tx")
108
137
  .option("--proposal <id>", "Proposal ID or hash")
138
+ .option("--ready", "Find and execute all proposals with votes complete and review window passed")
109
139
  .option("--rpc-url <url>", "CKB node RPC URL", execDefs.rpcUrl)
110
140
  .option("--registry-tx <hash>", "Registry cell tx hash", execDefs.registryTx)
111
141
  .option("--registry-index <n>", "Registry cell output index", execDefs.registryIndex)
142
+ .option("--proposal-tx <hash>", "PBLK proposal cell tx hash")
143
+ .option("--proposal-index <n>", "PBLK proposal cell output index")
144
+ .option("--proposal-anchor-code-tx <hash>", "Proposal-anchor type script code cell tx hash", execDefs.proposalAnchorCodeTx)
145
+ .option("--proposal-anchor-code-index <n>", "Proposal-anchor type script code cell output index", execDefs.proposalAnchorCodeIndex)
146
+ .option("--treasury-cell <tx-hash:index>", "Treasury input cell for registry growth; repeatable", (value, previous) => {
147
+ previous.push(value);
148
+ return previous;
149
+ }, [])
150
+ .option("--treasury-lock-dep <tx-hash:index[:code|dep_group]>", "Extra cell dep required by the treasury lock script; repeatable", (value, previous) => {
151
+ previous.push(value);
152
+ return previous;
153
+ }, [])
112
154
  .option("--tx-out <file>", "Write tx JSON to this file", execDefs.txOut)
113
- .option("--sign", "Sign and submit via ckb-cli")
114
- .option("--from-account <address>", "Governance account for ckb-cli signing", execDefs.fromAccount)
155
+ .option("--sign", "Sign and submit interactively via ckb-cli wallet")
156
+ .option("--privkey-path <file>", "Treasury private key file for non-interactive signing and submission")
157
+ .option("--from-account <address>", "Fee-payer/proposal-cell owner account for ckb-cli signing", execDefs.fromAccount)
115
158
  .action(async (opts) => {
116
159
  await executeCommand(opts);
117
160
  });
161
+ // ── reclaim proposal anchor ──────────────────────────────────────────────────
162
+ const reclaimDefs = reclaimDefaults();
163
+ program
164
+ .command("reclaim")
165
+ .description("Reclaim a rejected or abandoned treasury-funded PBLK proposal anchor")
166
+ .requiredOption("--proposal <id>", "Proposal ID or hash")
167
+ .option("--rpc-url <url>", "CKB node RPC URL", reclaimDefs.rpcUrl)
168
+ .option("--registry-tx <hash>", "Registry cell tx hash", reclaimDefs.registryTx)
169
+ .option("--registry-index <n>", "Registry cell output index", reclaimDefs.registryIndex)
170
+ .option("--proposal-tx <hash>", "PBLK proposal cell tx hash")
171
+ .option("--proposal-index <n>", "PBLK proposal cell output index")
172
+ .option("--proposal-anchor-code-tx <hash>", "Proposal-anchor type script code cell tx hash", reclaimDefs.proposalAnchorCodeTx)
173
+ .option("--proposal-anchor-code-index <n>", "Proposal-anchor type script code cell output index", reclaimDefs.proposalAnchorCodeIndex)
174
+ .option("--treasury-lock-dep <tx-hash:index[:code|dep_group]>", "Extra cell dep required by the treasury lock script; repeatable", (value, previous) => {
175
+ previous.push(value);
176
+ return previous;
177
+ }, [])
178
+ .option("--tx-out <file>", "Write tx JSON to this file", reclaimDefs.txOut)
179
+ .option("--sign", "Sign and submit via ckb-cli")
180
+ .option("--from-account <address>", "Treasury account for ckb-cli signing", reclaimDefs.fromAccount)
181
+ .option("--force", "Allow reclaim even if the local proposal status is still executable")
182
+ .action(async (opts) => {
183
+ await reclaimCommand(opts);
184
+ });
118
185
  // ── export ────────────────────────────────────────────────────────────────────
119
186
  program
120
187
  .command("export")
@@ -142,6 +209,14 @@ program
142
209
  .action(async (opts) => {
143
210
  await guiCommand(opts);
144
211
  });
212
+ // ── config ────────────────────────────────────────────────────────────────────
213
+ program
214
+ .command("config")
215
+ .description("View or set persistent CLI defaults (proposer name, etc.)")
216
+ .option("--proposer <name>", "Set default proposer name for governance proposals")
217
+ .action(async (opts) => {
218
+ await configCommand(opts);
219
+ });
145
220
  // Show banner on bare invocation before help prints.
146
221
  if (process.argv.length <= 2)
147
222
  printBanner();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,31 @@
1
1
  import type { RegistryEntry, RegistryPayload } from "@ckb-firewall/sdk";
2
2
  export interface GovernanceHeader {
3
- signerCount: number;
3
+ /** Minimum number of validator yes-votes required to execute. */
4
4
  threshold: number;
5
- pubkeys: Uint8Array[];
5
+ /** Number of validators in the authorized set. */
6
6
  validatorCount: number;
7
+ /** Merkle root of the ordered validator public key set. */
7
8
  validatorMerkleRoot: Uint8Array;
9
+ treasuryLockHash?: Uint8Array;
10
+ treasuryLockScript?: {
11
+ code_hash: string;
12
+ hash_type: string;
13
+ args: string;
14
+ };
8
15
  }
9
16
  export declare function strip0x(hex: string): string;
10
17
  export declare function hexToBytes(hex: string): Uint8Array;
11
18
  export declare function bytesToHex(bytes: Uint8Array): string;
19
+ export declare function scriptToMoleculeBytes(script: {
20
+ code_hash?: string;
21
+ codeHash?: string;
22
+ hash_type?: string;
23
+ hashType?: string;
24
+ args: string;
25
+ }): Uint8Array;
12
26
  export declare function encodeGovernanceHeader(h: GovernanceHeader): Uint8Array;
13
27
  export declare function parseGovernanceHeader(raw: Uint8Array): GovernanceHeader | null;
28
+ export declare function governanceTreasuryLockHash(header: GovernanceHeader | null | undefined): Uint8Array | undefined;
14
29
  export declare function extractGovernanceHeaderRaw(hex: string): Uint8Array | null;
15
30
  export declare function encodeRegistryPayload(payload: RegistryPayload, governanceHeaderRaw?: Uint8Array): Uint8Array;
16
31
  export declare function insertSorted(entries: RegistryEntry[], newEntry: RegistryEntry): RegistryEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"blkl.d.ts","sourceRoot":"","sources":["../../src/lib/blkl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,UAAU,CAAC;CACjC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAUlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAetE;AAID,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAe9E;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAUzE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAE,UAAU,GAAG,UAAU,CAiD5G;AAWD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,aAAa,GACtB,aAAa,EAAE,CAOjB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAKjB"}
1
+ {"version":3,"file":"blkl.d.ts","sourceRoot":"","sources":["../../src/lib/blkl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKxE,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,mBAAmB,EAAE,UAAU,CAAC;IAChC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,kBAAkB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAUlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAiCxJ;AAwBD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU,CA4BtE;AAYD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CA+B9E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAU9G;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAUzE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAE,UAAU,GAAG,UAAU,CAiD5G;AAWD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,aAAa,GACtB,aAAa,EAAE,CAOjB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAKjB"}
package/dist/lib/blkl.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { blake2b } from "@noble/hashes/blake2b";
2
+ const CKB_PERSONALIZATION = new TextEncoder().encode("ckb-default-hash");
1
3
  export function strip0x(hex) {
2
4
  return hex.startsWith("0x") ? hex.slice(2) : hex;
3
5
  }
@@ -17,41 +19,155 @@ export function bytesToHex(bytes) {
17
19
  .map((b) => b.toString(16).padStart(2, "0"))
18
20
  .join("")}`;
19
21
  }
22
+ export function scriptToMoleculeBytes(script) {
23
+ const codeHash = hexToBytes(script.code_hash ?? script.codeHash ?? "");
24
+ if (codeHash.length !== 32) {
25
+ throw new Error(`Script code_hash must be 32 bytes, got ${codeHash.length}`);
26
+ }
27
+ const hashTypeRaw = script.hash_type ?? script.hashType;
28
+ const hashType = hashTypeRaw === "data" ? 0x00
29
+ : hashTypeRaw === "type" ? 0x01
30
+ : hashTypeRaw === "data1" ? 0x02
31
+ : hashTypeRaw?.startsWith("0x") ? Number.parseInt(hashTypeRaw, 16)
32
+ : Number(hashTypeRaw);
33
+ if (!Number.isInteger(hashType) || hashType < 0 || hashType > 0xff) {
34
+ throw new Error(`Invalid script hash_type: ${hashTypeRaw}`);
35
+ }
36
+ const args = hexToBytes(script.args);
37
+ const argsBytesLen = 4 + args.length;
38
+ const total = 16 + 32 + 1 + argsBytesLen;
39
+ const out = new Uint8Array(total);
40
+ const putU32 = (off, value) => {
41
+ out[off] = value & 0xff;
42
+ out[off + 1] = (value >> 8) & 0xff;
43
+ out[off + 2] = (value >> 16) & 0xff;
44
+ out[off + 3] = (value >> 24) & 0xff;
45
+ };
46
+ putU32(0, total);
47
+ putU32(4, 16);
48
+ putU32(8, 48);
49
+ putU32(12, 49);
50
+ out.set(codeHash, 16);
51
+ out[48] = hashType;
52
+ putU32(49, args.length);
53
+ out.set(args, 53);
54
+ return out;
55
+ }
56
+ function moleculeBytesToScript(raw) {
57
+ if (raw.length < 53)
58
+ return null;
59
+ const u32 = (off) => raw[off] |
60
+ (raw[off + 1] << 8) |
61
+ (raw[off + 2] << 16) |
62
+ (raw[off + 3] << 24);
63
+ if (u32(0) !== raw.length || u32(4) !== 16 || u32(8) !== 48 || u32(12) !== 49)
64
+ return null;
65
+ const argsLen = u32(49);
66
+ if (53 + argsLen !== raw.length)
67
+ return null;
68
+ const hashTypeByte = raw[48];
69
+ const hashType = hashTypeByte === 0x00 ? "data"
70
+ : hashTypeByte === 0x01 ? "type"
71
+ : hashTypeByte === 0x02 ? "data1"
72
+ : `0x${hashTypeByte.toString(16)}`;
73
+ return {
74
+ code_hash: bytesToHex(raw.slice(16, 48)),
75
+ hash_type: hashType,
76
+ args: bytesToHex(raw.slice(53)),
77
+ };
78
+ }
20
79
  export function encodeGovernanceHeader(h) {
21
- const size = 1 + 1 + 1 + 33 * h.pubkeys.length + 2 + 32;
80
+ const treasuryScriptBytes = h.treasuryLockScript ? scriptToMoleculeBytes(h.treasuryLockScript) : undefined;
81
+ const version = treasuryScriptBytes ? 0x03 : h.treasuryLockHash ? 0x02 : 0x01;
82
+ // Legacy signer_count slot is always 0. On-chain authorization uses validator votes, not
83
+ // a separate multisig signer set. The governance-lock reads this byte only to skip past it.
84
+ const size = 1 + 1 + 1 + 2 + 32
85
+ + (h.treasuryLockHash && !treasuryScriptBytes ? 32 : 0)
86
+ + (treasuryScriptBytes ? 2 + treasuryScriptBytes.length : 0);
22
87
  const buf = new Uint8Array(size);
23
88
  let off = 0;
24
- buf[off++] = 0x01; // governance header version
25
- buf[off++] = h.signerCount;
89
+ buf[off++] = version;
90
+ buf[off++] = 0; // legacy signer_count — always 0 (no multisig signer set)
26
91
  buf[off++] = h.threshold;
27
- for (const pk of h.pubkeys) {
28
- buf.set(pk, off);
29
- off += 33;
30
- }
31
92
  buf[off++] = h.validatorCount & 0xff;
32
93
  buf[off++] = (h.validatorCount >> 8) & 0xff;
33
94
  buf.set(h.validatorMerkleRoot, off);
95
+ off += 32;
96
+ if (treasuryScriptBytes) {
97
+ buf[off++] = treasuryScriptBytes.length & 0xff;
98
+ buf[off++] = (treasuryScriptBytes.length >> 8) & 0xff;
99
+ buf.set(treasuryScriptBytes, off);
100
+ }
101
+ else if (h.treasuryLockHash) {
102
+ if (h.treasuryLockHash.length !== 32) {
103
+ throw new Error(`treasuryLockHash must be 32 bytes, got ${h.treasuryLockHash.length}`);
104
+ }
105
+ buf.set(h.treasuryLockHash, off);
106
+ }
34
107
  return buf;
35
108
  }
36
109
  // Parses a raw governance header byte slice into a GovernanceHeader.
37
- // Format: gh_version(1) | signer_count(1) | threshold(1) | [pubkey(33)]×N | validator_count(2 LE) | merkle_root(32)
110
+ //
111
+ // Wire format (all versions):
112
+ // gh_version(1) | legacy_signer_count(1) | threshold(1) | [legacy_pubkey(33)]×N
113
+ // | validator_count(2 LE) | validator_merkle_root(32)
114
+ // v2 suffix: treasury_lock_hash(32)
115
+ // v3 suffix: treasury_lock_script_len(2 LE) | treasury_lock_script(Molecule Script)
116
+ //
117
+ // The legacy_signer_count/pubkey block is preserved for wire-format compatibility with older
118
+ // on-chain cells but is not used for authorization. New cells always write signer_count=0.
38
119
  export function parseGovernanceHeader(raw) {
39
120
  if (raw.length < 3)
40
121
  return null;
41
- if (raw[0] !== 0x01)
122
+ const version = raw[0];
123
+ if (version !== 0x01 && version !== 0x02 && version !== 0x03)
42
124
  return null;
43
- const signerCount = raw[1];
125
+ const legacySignerCount = raw[1]; // bytes to skip; not used for authorization
44
126
  const threshold = raw[2];
45
- const pubkeysEnd = 3 + signerCount * 33;
46
- if (raw.length < pubkeysEnd + 2 + 32)
127
+ const pubkeysEnd = 3 + legacySignerCount * 33; // skip legacy pubkey block
128
+ const baseEnd = pubkeysEnd + 2 + 32;
129
+ if (raw.length < baseEnd)
47
130
  return null;
48
- const pubkeys = [];
49
- for (let i = 0; i < signerCount; i++) {
50
- pubkeys.push(raw.slice(3 + i * 33, 3 + (i + 1) * 33));
51
- }
52
131
  const validatorCount = raw[pubkeysEnd] | (raw[pubkeysEnd + 1] << 8);
53
132
  const validatorMerkleRoot = raw.slice(pubkeysEnd + 2, pubkeysEnd + 2 + 32);
54
- return { signerCount, threshold, pubkeys, validatorCount, validatorMerkleRoot };
133
+ let treasuryLockHash = version === 0x02 ? raw.slice(baseEnd, baseEnd + 32) : undefined;
134
+ if (version === 0x02 && treasuryLockHash?.length !== 32)
135
+ return null;
136
+ let treasuryLockScript;
137
+ if (version === 0x03) {
138
+ if (baseEnd + 2 > raw.length)
139
+ return null;
140
+ const scriptLen = raw[baseEnd] | (raw[baseEnd + 1] << 8);
141
+ const scriptStart = baseEnd + 2;
142
+ const scriptEnd = scriptStart + scriptLen;
143
+ if (scriptEnd !== raw.length)
144
+ return null;
145
+ const scriptBytes = raw.slice(scriptStart, scriptEnd);
146
+ const parsed = moleculeBytesToScript(scriptBytes);
147
+ if (!parsed)
148
+ return null;
149
+ treasuryLockScript = parsed;
150
+ treasuryLockHash = undefined;
151
+ }
152
+ const header = { threshold, validatorCount, validatorMerkleRoot };
153
+ if (treasuryLockHash)
154
+ header.treasuryLockHash = treasuryLockHash;
155
+ if (treasuryLockScript)
156
+ header.treasuryLockScript = treasuryLockScript;
157
+ return header;
158
+ }
159
+ export function governanceTreasuryLockHash(header) {
160
+ if (!header)
161
+ return undefined;
162
+ if (header.treasuryLockHash)
163
+ return header.treasuryLockHash;
164
+ if (header.treasuryLockScript) {
165
+ return blake2b(scriptToMoleculeBytes(header.treasuryLockScript), {
166
+ personalization: CKB_PERSONALIZATION,
167
+ dkLen: 32,
168
+ });
169
+ }
170
+ return undefined;
55
171
  }
56
172
  export function extractGovernanceHeaderRaw(hex) {
57
173
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"blkl.js","sourceRoot":"","sources":["../../src/lib/blkl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blkl.js","sourceRoot":"","sources":["../../src/lib/blkl.ts"],"names":[],"mappings":"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"}