@ckb-firewall/cli 0.3.1 → 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 (102) 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/gui.d.ts +6 -0
  15. package/dist/commands/gui.d.ts.map +1 -0
  16. package/dist/commands/gui.js +112 -0
  17. package/dist/commands/gui.js.map +1 -0
  18. package/dist/commands/import.d.ts.map +1 -1
  19. package/dist/commands/import.js +15 -48
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/inspect.d.ts.map +1 -1
  22. package/dist/commands/inspect.js +32 -0
  23. package/dist/commands/inspect.js.map +1 -1
  24. package/dist/commands/proposals.d.ts.map +1 -1
  25. package/dist/commands/proposals.js +2 -4
  26. package/dist/commands/proposals.js.map +1 -1
  27. package/dist/commands/propose.d.ts +5 -0
  28. package/dist/commands/propose.d.ts.map +1 -1
  29. package/dist/commands/propose.js +91 -7
  30. package/dist/commands/propose.js.map +1 -1
  31. package/dist/commands/reclaim.d.ts +18 -0
  32. package/dist/commands/reclaim.d.ts.map +1 -0
  33. package/dist/commands/reclaim.js +214 -0
  34. package/dist/commands/reclaim.js.map +1 -0
  35. package/dist/commands/sign.d.ts.map +1 -1
  36. package/dist/commands/sign.js +40 -94
  37. package/dist/commands/sign.js.map +1 -1
  38. package/dist/commands/vote.d.ts +2 -0
  39. package/dist/commands/vote.d.ts.map +1 -1
  40. package/dist/commands/vote.js +31 -25
  41. package/dist/commands/vote.js.map +1 -1
  42. package/dist/index.js +101 -16
  43. package/dist/index.js.map +1 -1
  44. package/dist/lib/Transaction Firewall.html +201 -0
  45. package/dist/lib/blkl.d.ts +17 -2
  46. package/dist/lib/blkl.d.ts.map +1 -1
  47. package/dist/lib/blkl.js +133 -17
  48. package/dist/lib/blkl.js.map +1 -1
  49. package/dist/lib/capacity.d.ts +12 -0
  50. package/dist/lib/capacity.d.ts.map +1 -0
  51. package/dist/lib/capacity.js +18 -0
  52. package/dist/lib/capacity.js.map +1 -0
  53. package/dist/lib/config.d.ts +7 -0
  54. package/dist/lib/config.d.ts.map +1 -0
  55. package/dist/lib/config.js +35 -0
  56. package/dist/lib/config.js.map +1 -0
  57. package/dist/lib/defaults.d.ts +19 -0
  58. package/dist/lib/defaults.d.ts.map +1 -1
  59. package/dist/lib/defaults.js +34 -7
  60. package/dist/lib/defaults.js.map +1 -1
  61. package/dist/lib/governance-v4.d.ts +39 -0
  62. package/dist/lib/governance-v4.d.ts.map +1 -0
  63. package/dist/lib/governance-v4.js +194 -0
  64. package/dist/lib/governance-v4.js.map +1 -0
  65. package/dist/lib/gui-bundle.html +4266 -0
  66. package/dist/lib/gui-server.d.ts +12 -0
  67. package/dist/lib/gui-server.d.ts.map +1 -0
  68. package/dist/lib/gui-server.js +1634 -0
  69. package/dist/lib/gui-server.js.map +1 -0
  70. package/dist/lib/hints.d.ts +1 -1
  71. package/dist/lib/hints.d.ts.map +1 -1
  72. package/dist/lib/hints.js +3 -9
  73. package/dist/lib/hints.js.map +1 -1
  74. package/dist/lib/portless.d.ts +41 -0
  75. package/dist/lib/portless.d.ts.map +1 -0
  76. package/dist/lib/portless.js +194 -0
  77. package/dist/lib/portless.js.map +1 -0
  78. package/dist/lib/proposals.d.ts +17 -9
  79. package/dist/lib/proposals.d.ts.map +1 -1
  80. package/dist/lib/proposals.js +4 -26
  81. package/dist/lib/proposals.js.map +1 -1
  82. package/dist/lib/rpc.d.ts +5 -0
  83. package/dist/lib/rpc.d.ts.map +1 -1
  84. package/dist/lib/rpc.js +21 -0
  85. package/dist/lib/rpc.js.map +1 -1
  86. package/dist/lib/treasury-status.d.ts +28 -0
  87. package/dist/lib/treasury-status.d.ts.map +1 -0
  88. package/dist/lib/treasury-status.js +70 -0
  89. package/dist/lib/treasury-status.js.map +1 -0
  90. package/dist/lib/treasury.d.ts +15 -0
  91. package/dist/lib/treasury.d.ts.map +1 -0
  92. package/dist/lib/treasury.js +62 -0
  93. package/dist/lib/treasury.js.map +1 -0
  94. package/dist/lib/tx-deps.d.ts +9 -0
  95. package/dist/lib/tx-deps.d.ts.map +1 -0
  96. package/dist/lib/tx-deps.js +15 -0
  97. package/dist/lib/tx-deps.js.map +1 -0
  98. package/dist/lib/witness.d.ts +13 -11
  99. package/dist/lib/witness.d.ts.map +1 -1
  100. package/dist/lib/witness.js +85 -48
  101. package/dist/lib/witness.js.map +1 -1
  102. package/package.json +2 -2
@@ -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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"}
@@ -0,0 +1,12 @@
1
+ export declare function parseCapacity(capacity: string): bigint;
2
+ export declare function hexCapacity(value: bigint): string;
3
+ export declare function occupiedCapacityShannons(cell: {
4
+ lock: {
5
+ args: string;
6
+ };
7
+ type: {
8
+ args: string;
9
+ } | null;
10
+ data: string | Uint8Array;
11
+ }): bigint;
12
+ //# sourceMappingURL=capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../../src/lib/capacity.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAID,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3B,GAAG,MAAM,CAMT"}
@@ -0,0 +1,18 @@
1
+ import { hexToBytes } from "./blkl.js";
2
+ const SHANNONS_PER_CKB = 100000000n;
3
+ export function parseCapacity(capacity) {
4
+ return BigInt(capacity);
5
+ }
6
+ export function hexCapacity(value) {
7
+ return `0x${value.toString(16)}`;
8
+ }
9
+ // CKB occupied capacity: 8 (capacity field) + data + (32 code_hash + 1 hash_type + args) per script.
10
+ // This matches the CKB consensus formula — no molecule headers or table prefixes.
11
+ export function occupiedCapacityShannons(cell) {
12
+ const lockArgsLen = hexToBytes(cell.lock.args).length;
13
+ const typeArgsLen = cell.type ? hexToBytes(cell.type.args).length : 0;
14
+ const dataBytes = typeof cell.data === "string" ? hexToBytes(cell.data) : cell.data;
15
+ const occupiedBytes = 8 + dataBytes.length + (33 + lockArgsLen) + (cell.type ? 33 + typeArgsLen : 0);
16
+ return BigInt(occupiedBytes) * SHANNONS_PER_CKB;
17
+ }
18
+ //# sourceMappingURL=capacity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.js","sourceRoot":"","sources":["../../src/lib/capacity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,gBAAgB,GAAG,UAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,qGAAqG;AACrG,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,IAIxC;IACC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpF,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC;AAClD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface CliConfig {
2
+ proposerName?: string;
3
+ }
4
+ export declare function getConfigPath(): string;
5
+ export declare function loadConfig(): CliConfig;
6
+ export declare function saveConfig(config: CliConfig): void;
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,SAAS,CActC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQlD"}
@@ -0,0 +1,35 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ export function getConfigPath() {
5
+ return join(homedir(), ".ckb-firewall", "config.json");
6
+ }
7
+ export function loadConfig() {
8
+ const path = getConfigPath();
9
+ if (!existsSync(path))
10
+ return {};
11
+ try {
12
+ const raw = JSON.parse(readFileSync(path, "utf8"));
13
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw))
14
+ return {};
15
+ const config = {};
16
+ if (typeof raw.proposerName === "string") {
17
+ config.proposerName = raw.proposerName;
18
+ }
19
+ return config;
20
+ }
21
+ catch {
22
+ return {};
23
+ }
24
+ }
25
+ export function saveConfig(config) {
26
+ const path = getConfigPath();
27
+ try {
28
+ mkdirSync(dirname(path), { recursive: true });
29
+ writeFileSync(path, JSON.stringify(config, null, 2) + "\n", "utf8");
30
+ }
31
+ catch (err) {
32
+ throw new Error(`Failed to write config file at ${path}: ${err instanceof Error ? err.message : String(err)}`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,OAAQ,GAA+B,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACtE,MAAM,CAAC,YAAY,GAAI,GAA+B,CAAC,YAAsB,CAAC;QAChF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;AACH,CAAC"}
@@ -5,6 +5,7 @@ export declare const TESTNET_REGISTRY_CELL: {
5
5
  txHash: string;
6
6
  index: number;
7
7
  };
8
+ export declare const TESTNET_TREASURY_DONATION_ADDRESS = "ckt1qzpf4txhkw8vwtycyy5vjru0jv6q5wk3cwd8w22nzsz4e2sge9h7jq546h5gm2ln9m6ehs5j68ujthe0z72g77z9m2jw2te5hq0myugugzyaany9q7kaky2wxhp29c4wjscgnqegsjqcl3avdh3u8wxd4e4py8dwlf3";
8
9
  export declare const TESTNET_CONTRACT_OUTPOINTS: {
9
10
  firewallLock: {
10
11
  txHash: string;
@@ -18,11 +19,29 @@ export declare const TESTNET_CONTRACT_OUTPOINTS: {
18
19
  txHash: string;
19
20
  index: number;
20
21
  };
22
+ proposalAnchor: {
23
+ txHash: string;
24
+ index: number;
25
+ };
21
26
  spawnAwareSecp256k1: {
22
27
  txHash: string;
23
28
  index: number;
24
29
  };
25
30
  };
31
+ export declare const TESTNET_GOVERNANCE_LOCK_SCRIPT: {
32
+ code_hash: string;
33
+ hash_type: "type";
34
+ args: string;
35
+ };
36
+ export declare const TESTNET_TREASURY_LOCK_SCRIPT: {
37
+ code_hash: string;
38
+ hash_type: "data1";
39
+ args: string;
40
+ };
41
+ export declare const TESTNET_TREASURY_LOCK_DEP: {
42
+ txHash: string;
43
+ index: number;
44
+ };
26
45
  export declare const SECP256K1_DEP_GROUP: {
27
46
  txHash: string;
28
47
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAIzD,eAAO,MAAM,qBAAqB,EAAE,gBAOnC,CAAC;AAGF,eAAO,MAAM,qBAAqB;;;CAIjC,CAAC;AAGF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;CAqBtC,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;CAI/B,CAAC;AAKF,eAAO,MAAM,0BAA0B,EAAE,UAAU,EAMlD,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAQpD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAkBjE"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAIzD,eAAO,MAAM,qBAAqB,EAAE,gBAOnC,CAAC;AAGF,eAAO,MAAM,qBAAqB;;;CAIjC,CAAC;AAEF,eAAO,MAAM,iCAAiC,4KAC6H,CAAC;AAG5K,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;CA0BtC,CAAC;AAKF,eAAO,MAAM,8BAA8B;;;;CAI1C,CAAC;AAKF,eAAO,MAAM,4BAA4B;;;;CAKxC,CAAC;AAGF,eAAO,MAAM,yBAAyB;;;CAGrC,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;CAI/B,CAAC;AAKF,eAAO,MAAM,0BAA0B,EAAE,UAAU,EAMlD,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAQpD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAkBjE"}
@@ -3,28 +3,33 @@ export const TESTNET_RPC_URL = "https://testnet.ckb.dev";
3
3
  // v2 registry spec: matches registry cell dep by type_id_value (bytes 34..66 of 66-byte v2 type args).
4
4
  // Survives governance-lock upgrades — update only typeIdValue if the registry cell is re-bootstrapped.
5
5
  export const TESTNET_REGISTRY_SPEC = {
6
- codeHash: "0x5812b3f0f68ded4d61e8f12117caa011f295dbe88a29c07b86c9caec14bd6c55",
6
+ codeHash: "0x493f1700508125b0e281b8fb1d168b03bd5ef71480399dd59221224901a9cd09",
7
7
  hashType: "type",
8
- typeIdValue: "0xc70a072cdfb7d25a5e92d27a47f9c8a0f30513de683e56e16d55ae30775f3951",
8
+ typeIdValue: "0x9be0ad6e4e5039a64d9725ff037057c16ef59f126e3bdd9841b802f0e0a112fe",
9
9
  required: true,
10
10
  };
11
11
  // Live registry cell outpoint on testnet. Moves after each governance update.
12
12
  export const TESTNET_REGISTRY_CELL = {
13
- txHash: "0x685dc49bfe466a198a01abd94117f5fe7dd79f28570d6ceba744616d7aa51eb4",
13
+ txHash: "0xa3dcb46fdeb92735e7f9f0393811a8541b71e275e8f713e62ea35f59746c78a8",
14
14
  index: 0,
15
15
  };
16
- // Deployed contract binary cells (2026-05-26 deployment).
16
+ export const TESTNET_TREASURY_DONATION_ADDRESS = "ckt1qzpf4txhkw8vwtycyy5vjru0jv6q5wk3cwd8w22nzsz4e2sge9h7jq546h5gm2ln9m6ehs5j68ujthe0z72g77z9m2jw2te5hq0myugugzyaany9q7kaky2wxhp29c4wjscgnqegsjqcl3avdh3u8wxd4e4py8dwlf3";
17
+ // Deployed contract binary cells (treasury-enabled registry redeployed 2026-05-31).
17
18
  export const TESTNET_CONTRACT_OUTPOINTS = {
18
19
  firewallLock: {
19
20
  txHash: "0x128193cc2d547b224ccf10a6e299cb0749c633c5f9354ff5a9a5fd3e894318d2",
20
21
  index: 0,
21
22
  },
22
23
  blacklistRegistry: {
23
- txHash: "0x410864a6815cec51cbc3a86dfe5cf7c1ff62f1c56648ea0a0bdb2feeb6831973",
24
- index: 1,
24
+ txHash: "0xa165e5af82538c072caaee87ae5b919ad89ca2448d66daf9a29092b5ad87294d",
25
+ index: 0,
25
26
  },
26
27
  governanceLock: {
27
- txHash: "0x410864a6815cec51cbc3a86dfe5cf7c1ff62f1c56648ea0a0bdb2feeb6831973",
28
+ txHash: "0x5033e680435bc7ef2255767cfd46b355ab1bc6dcda5ec01e38ef0d29119ad711",
29
+ index: 0,
30
+ },
31
+ proposalAnchor: {
32
+ txHash: "0x0daff588f0053bdf34d4c2eebaf2c092f70192cdd4a2d1dd95aee07ce100dea9",
28
33
  index: 0,
29
34
  },
30
35
  spawnAwareSecp256k1: {
@@ -32,6 +37,28 @@ export const TESTNET_CONTRACT_OUTPOINTS = {
32
37
  index: 0,
33
38
  },
34
39
  };
40
+ // Governance-lock script — use as the lock for proposal cells so any validator can execute
41
+ // without the treasury private key. The lock is validated by the GOV1 witness already
42
+ // present in every execute TX.
43
+ export const TESTNET_GOVERNANCE_LOCK_SCRIPT = {
44
+ code_hash: "0x95d5e88dabf32ef59bc292d1f925df2f17948f7845daa4e52f34b81fb2711c40",
45
+ hash_type: "type",
46
+ args: "0x01",
47
+ };
48
+ // Treasury-lock script — autonomous pool that allows anyone to create proposal-anchor
49
+ // cells without a private key. Args encode which governance-lock and proposal-anchor
50
+ // type IDs are authorised. code hash = blake2b(binary), hash_type = data1.
51
+ export const TESTNET_TREASURY_LOCK_SCRIPT = {
52
+ code_hash: "0x829aacd7b38ec72c982128c90f8f93340a3ad1c39a77295314055caa08c96fe9",
53
+ hash_type: "data1",
54
+ // governance_lock_type_id(32) | proposal_anchor_type_id(32)
55
+ args: "0x95d5e88dabf32ef59bc292d1f925df2f17948f7845daa4e52f34b81fb2711c4089decc8507addb114e35c2a2e2ae943089832884818fc7ac6de3c3b8cdae6a12",
56
+ };
57
+ // Cell dep for the treasury-lock code cell.
58
+ export const TESTNET_TREASURY_LOCK_DEP = {
59
+ txHash: "0xbc918dda15b2e43aa308a554872a0e966d26fa14d7f0f4362871bfed4a53c3ff",
60
+ index: 0,
61
+ };
35
62
  // secp256k1 dep group used by ckb-cli for fee-payer signing.
36
63
  export const SECP256K1_DEP_GROUP = {
37
64
  txHash: "0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37",
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAEzD,uGAAuG;AACvG,uGAAuG;AACvG,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,QAAQ,EACN,oEAAoE;IACtE,QAAQ,EAAE,MAAM;IAChB,WAAW,EACT,oEAAoE;IACtE,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EACJ,oEAAoE;IACtE,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY,EAAE;QACZ,MAAM,EACJ,oEAAoE;QACtE,KAAK,EAAE,CAAC;KACT;IACD,iBAAiB,EAAE;QACjB,MAAM,EACJ,oEAAoE;QACtE,KAAK,EAAE,CAAC;KACT;IACD,cAAc,EAAE;QACd,MAAM,EACJ,oEAAoE;QACtE,KAAK,EAAE,CAAC;KACT;IACD,mBAAmB,EAAE;QACnB,MAAM,EACJ,oEAAoE;QACtE,KAAK,EAAE,CAAC;KACT;CACF,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EACJ,oEAAoE;IACtE,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,yEAAyE;AACzE,0EAA0E;AAC1E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,0BAA0B,GAAiB;IACtD,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtN,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtN,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtN,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtN,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACvN,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD,uFAAuF;AACvF,8FAA8F;AAC9F,MAAM,qBAAqB,GAAiB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7E,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CACnC,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,cAAc,CAAC,IAAI,CACjB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACrE,CACF,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC;YACtC,kFAAkF;YAClF,uFAAuF;YACvF,wEAAwE;YACxE,+DAA+D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { RegistryPayload } from "@ckb-firewall/sdk";
2
+ import { type LiveCell } from "./rpc.js";
3
+ import { type GovernanceHeader } from "./blkl.js";
4
+ import { type Proposal } from "./proposals.js";
5
+ export interface RegistryStateForProposal {
6
+ cell: LiveCell;
7
+ currentPayload: RegistryPayload;
8
+ newEntryCount: number;
9
+ governanceHeaderRaw: Uint8Array;
10
+ governanceHeader: GovernanceHeader | null;
11
+ oldBlkl: Uint8Array;
12
+ newBlkl: Uint8Array;
13
+ oldRoot: Uint8Array;
14
+ newRoot: Uint8Array;
15
+ registryTypeIdValue: Uint8Array;
16
+ }
17
+ export declare function parseRegistryTypeIdValue(typeArgs: string): Uint8Array;
18
+ export declare function encodeProposalCellData(proposal: Proposal, registryTypeIdValue: Uint8Array): Uint8Array;
19
+ export declare function proposalCellDataHash(proposal: Proposal, registryTypeIdValue: Uint8Array): Uint8Array;
20
+ export declare function reviewDelayMs(proposal: Proposal): bigint;
21
+ export declare function loadRegistryStateForProposal(rpcUrl: string, registryTx: string, registryIndex: number, proposal: Proposal): Promise<RegistryStateForProposal>;
22
+ export declare function proposalV4Fields(proposal: Proposal, registryTypeIdValue: Uint8Array): {
23
+ proposalData: Uint8Array;
24
+ proposalDataHash: Uint8Array;
25
+ reviewDelayMs: bigint;
26
+ };
27
+ export declare function assertProposalCellMatches(proposal: Proposal, proposalCellData: string, registryTypeIdValue: Uint8Array): Uint8Array;
28
+ export declare function encodeProposalAnchorTypeArgs(params: {
29
+ registryTypeIdValue: Uint8Array;
30
+ treasuryLockHash: Uint8Array;
31
+ reclaimDelayMs: bigint;
32
+ }): Uint8Array;
33
+ export declare function assertProposalAnchorTypeMatches(params: {
34
+ proposalCellType: LiveCell["type"];
35
+ registryTypeIdValue: Uint8Array;
36
+ governanceHeader: GovernanceHeader | null;
37
+ reclaimDelayMs: bigint;
38
+ }): void;
39
+ //# sourceMappingURL=governance-v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance-v4.d.ts","sourceRoot":"","sources":["../../src/lib/governance-v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAYL,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,UAAU,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,mBAAmB,EAAE,UAAU,CAAC;CACjC;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAMrE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,GAAG,UAAU,CA4CtG;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,GAAG,UAAU,CAEpG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAExD;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,wBAAwB,CAAC,CAkEnC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,GAAG;IACrF,YAAY,EAAE,UAAU,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB,CAOA;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,GAAG,UAAU,CAUnI;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,mBAAmB,EAAE,UAAU,CAAC;IAChC,gBAAgB,EAAE,UAAU,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAoBb;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,mBAAmB,EAAE,UAAU,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,IAAI,CAkBP"}