@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.
- package/README.md +11 -6
- package/dist/commands/anchor.d.ts +23 -0
- package/dist/commands/anchor.d.ts.map +1 -0
- package/dist/commands/anchor.js +412 -0
- package/dist/commands/anchor.js.map +1 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +59 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/execute.d.ts +9 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +394 -229
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +15 -48
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +32 -0
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/proposals.d.ts.map +1 -1
- package/dist/commands/proposals.js +2 -4
- package/dist/commands/proposals.js.map +1 -1
- package/dist/commands/propose.d.ts +5 -0
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +91 -7
- package/dist/commands/propose.js.map +1 -1
- package/dist/commands/reclaim.d.ts +18 -0
- package/dist/commands/reclaim.d.ts.map +1 -0
- package/dist/commands/reclaim.js +214 -0
- package/dist/commands/reclaim.js.map +1 -0
- package/dist/commands/sign.d.ts.map +1 -1
- package/dist/commands/sign.js +40 -94
- package/dist/commands/sign.js.map +1 -1
- package/dist/commands/vote.d.ts +2 -0
- package/dist/commands/vote.d.ts.map +1 -1
- package/dist/commands/vote.js +31 -25
- package/dist/commands/vote.js.map +1 -1
- package/dist/index.js +91 -16
- package/dist/index.js.map +1 -1
- package/dist/lib/blkl.d.ts +17 -2
- package/dist/lib/blkl.d.ts.map +1 -1
- package/dist/lib/blkl.js +133 -17
- package/dist/lib/blkl.js.map +1 -1
- package/dist/lib/capacity.d.ts +12 -0
- package/dist/lib/capacity.d.ts.map +1 -0
- package/dist/lib/capacity.js +18 -0
- package/dist/lib/capacity.js.map +1 -0
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +35 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/defaults.d.ts +19 -0
- package/dist/lib/defaults.d.ts.map +1 -1
- package/dist/lib/defaults.js +34 -7
- package/dist/lib/defaults.js.map +1 -1
- package/dist/lib/governance-v4.d.ts +39 -0
- package/dist/lib/governance-v4.d.ts.map +1 -0
- package/dist/lib/governance-v4.js +194 -0
- package/dist/lib/governance-v4.js.map +1 -0
- package/dist/lib/gui-bundle.html +485 -316
- package/dist/lib/gui-server.d.ts.map +1 -1
- package/dist/lib/gui-server.js +300 -246
- package/dist/lib/gui-server.js.map +1 -1
- package/dist/lib/hints.d.ts +1 -1
- package/dist/lib/hints.d.ts.map +1 -1
- package/dist/lib/hints.js +3 -9
- package/dist/lib/hints.js.map +1 -1
- package/dist/lib/proposals.d.ts +17 -9
- package/dist/lib/proposals.d.ts.map +1 -1
- package/dist/lib/proposals.js +4 -26
- package/dist/lib/proposals.js.map +1 -1
- package/dist/lib/rpc.d.ts +5 -0
- package/dist/lib/rpc.d.ts.map +1 -1
- package/dist/lib/rpc.js +21 -0
- package/dist/lib/rpc.js.map +1 -1
- package/dist/lib/treasury-status.d.ts +28 -0
- package/dist/lib/treasury-status.d.ts.map +1 -0
- package/dist/lib/treasury-status.js +70 -0
- package/dist/lib/treasury-status.js.map +1 -0
- package/dist/lib/treasury.d.ts +15 -0
- package/dist/lib/treasury.d.ts.map +1 -0
- package/dist/lib/treasury.js +62 -0
- package/dist/lib/treasury.js.map +1 -0
- package/dist/lib/tx-deps.d.ts +9 -0
- package/dist/lib/tx-deps.d.ts.map +1 -0
- package/dist/lib/tx-deps.js +15 -0
- package/dist/lib/tx-deps.js.map +1 -0
- package/dist/lib/witness.d.ts +13 -11
- package/dist/lib/witness.d.ts.map +1 -1
- package/dist/lib/witness.js +85 -48
- package/dist/lib/witness.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/vote.js
CHANGED
|
@@ -61,15 +61,21 @@ export async function voteCommand(opts) {
|
|
|
61
61
|
process.exit(1);
|
|
62
62
|
}
|
|
63
63
|
// ── private key → pubkey ─────────────────────────────────────────────────
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
//
|
|
95
|
-
//
|
|
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:
|
|
107
|
-
console.error(chalk.dim("
|
|
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.
|
|
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)]
|
|
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
|
|
181
|
-
console.log(` Next: ${chalk.dim(`ckb-firewall
|
|
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;
|
|
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;AAY7C,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,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5B,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;YAC1D;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,sCAAsC;gBAC/C,IAAI,EAAE,GAAG;aACV;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,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,yFAAyF;IACzF,wFAAwF;IACxF,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,wFAAwF,CACzF,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC,CAAC;gBAC3H,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC,CAAC;QACzI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,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,uFAAuF;IACvF,sEAAsE;IACtE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7G,yEAAyE;IACzE,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,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,uDAAuD,CAAC,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,mCAAmC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,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"}
|
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(
|
|
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
|
-
// ──
|
|
91
|
-
const
|
|
100
|
+
// ── anchor proposal cell ─────────────────────────────────────────────────────
|
|
101
|
+
const anchorDefs = anchorDefaults();
|
|
92
102
|
program
|
|
93
|
-
.command("
|
|
94
|
-
.description("
|
|
95
|
-
.
|
|
96
|
-
.option("--
|
|
97
|
-
.option("--
|
|
98
|
-
.option("--registry-
|
|
99
|
-
.option("--
|
|
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
|
|
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
|
|
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("--
|
|
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":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/blkl.d.ts
CHANGED
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
import type { RegistryEntry, RegistryPayload } from "@ckb-firewall/sdk";
|
|
2
2
|
export interface GovernanceHeader {
|
|
3
|
-
|
|
3
|
+
/** Minimum number of validator yes-votes required to execute. */
|
|
4
4
|
threshold: number;
|
|
5
|
-
|
|
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[];
|
package/dist/lib/blkl.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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++] =
|
|
25
|
-
buf[off++] =
|
|
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
|
-
//
|
|
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
|
-
|
|
122
|
+
const version = raw[0];
|
|
123
|
+
if (version !== 0x01 && version !== 0x02 && version !== 0x03)
|
|
42
124
|
return null;
|
|
43
|
-
const
|
|
125
|
+
const legacySignerCount = raw[1]; // bytes to skip; not used for authorization
|
|
44
126
|
const threshold = raw[2];
|
|
45
|
-
const pubkeysEnd = 3 +
|
|
46
|
-
|
|
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
|
-
|
|
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 {
|
package/dist/lib/blkl.js.map
CHANGED
|
@@ -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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"}
|