@ckb-ccc/core 0.0.7-alpha.2 → 0.0.8-alpha.4

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 (35) hide show
  1. package/README.md +6 -4
  2. package/dist/ckb/script.js +2 -2
  3. package/dist/ckb/transaction.js +2 -2
  4. package/dist/client/client.d.ts +1 -0
  5. package/dist/client/client.d.ts.map +1 -1
  6. package/dist/client/client.js +1 -0
  7. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  8. package/dist/client/clientPublicMainnet.advanced.js +35 -1
  9. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  10. package/dist/client/clientPublicTestnet.advanced.js +20 -0
  11. package/dist/hasher/index.d.ts +17 -2
  12. package/dist/hasher/index.d.ts.map +1 -1
  13. package/dist/hasher/index.js +19 -2
  14. package/dist/signer/nostr/signerNostr.js +2 -2
  15. package/dist.commonjs/ckb/script.js +1 -1
  16. package/dist.commonjs/ckb/transaction.js +1 -1
  17. package/dist.commonjs/client/client.d.ts +1 -0
  18. package/dist.commonjs/client/client.d.ts.map +1 -1
  19. package/dist.commonjs/client/client.js +1 -0
  20. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  21. package/dist.commonjs/client/clientPublicMainnet.advanced.js +35 -1
  22. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  23. package/dist.commonjs/client/clientPublicTestnet.advanced.js +20 -0
  24. package/dist.commonjs/hasher/index.d.ts +17 -2
  25. package/dist.commonjs/hasher/index.d.ts.map +1 -1
  26. package/dist.commonjs/hasher/index.js +22 -4
  27. package/dist.commonjs/signer/nostr/signerNostr.js +1 -1
  28. package/package.json +3 -3
  29. package/src/ckb/script.ts +2 -2
  30. package/src/ckb/transaction.ts +2 -2
  31. package/src/client/client.ts +1 -0
  32. package/src/client/clientPublicMainnet.advanced.ts +40 -1
  33. package/src/client/clientPublicTestnet.advanced.ts +23 -0
  34. package/src/hasher/index.ts +27 -2
  35. package/src/signer/nostr/signerNostr.ts +2 -2
package/README.md CHANGED
@@ -21,11 +21,13 @@
21
21
  </p>
22
22
 
23
23
  <p align="center">
24
- "Common Chains Connector" is where CCC begins.
24
+ "CCC - CKBers' Codebase" is the next step of "Common Chains Connector".
25
25
  <br />
26
- CCC helps you to interoperate wallets from different chain ecosystems with CKB,
26
+ Empower yourself with CCC to discover the unlimited potential of CKB.
27
27
  <br />
28
- fully enabling CKB's cryptographic freedom power.
28
+ Interoperate with wallets from different chain ecosystems.
29
+ <br />
30
+ Fully enabling CKB's Turing completeness and cryptographic freedom power.
29
31
  </p>
30
32
 
31
33
  ## Preview
@@ -36,7 +38,7 @@
36
38
  </a>
37
39
  </p>
38
40
 
39
- This project is still under active development, and we are looking forward to your feedback. [Try its demo now here](https://ckbccc-demo.vercel.app/).
41
+ This project is still under active development, and we are looking forward to your feedback. [Try its demo now here](https://ckbccc-demo.vercel.app/). It showcases how to use CCC for some basic scenarios in CKB.
40
42
 
41
43
  <h3 align="center">
42
44
  Read more about CCC on its <a href="https://github.com/ckb-ecofund/ccc">GitHub Repo</a>.
@@ -1,5 +1,5 @@
1
1
  import { bytesFrom } from "../bytes";
2
- import { ckbHash } from "../hasher";
2
+ import { hashCkb } from "../hasher";
3
3
  import { hexFrom } from "../hex";
4
4
  import * as mol from "./molecule.advanced";
5
5
  import { HASH_TYPES, HASH_TYPE_TO_NUM, NUM_TO_HASH_TYPE, } from "./script.advanced";
@@ -172,7 +172,7 @@ export class Script {
172
172
  * ```
173
173
  */
174
174
  hash() {
175
- return ckbHash(this.toBytes());
175
+ return hashCkb(this.toBytes());
176
176
  }
177
177
  /**
178
178
  * Creates a Script instance from a byte-like value or molecule Script.
@@ -1,6 +1,6 @@
1
1
  import { bytesFrom } from "../bytes";
2
2
  import { Zero, fixedPointFrom } from "../fixedPoint";
3
- import { Hasher, ckbHash } from "../hasher";
3
+ import { Hasher, hashCkb } from "../hasher";
4
4
  import { hexFrom } from "../hex";
5
5
  import { numFrom, numFromBytes, numToBytes, numToHex, } from "../num";
6
6
  import { apply, reduceAsync } from "../utils";
@@ -792,7 +792,7 @@ export class Transaction {
792
792
  * ```
793
793
  */
794
794
  hash() {
795
- return ckbHash(this.rawToBytes());
795
+ return hashCkb(this.rawToBytes());
796
796
  }
797
797
  /**
798
798
  * Hashes a witness and updates the hasher.
@@ -13,6 +13,7 @@ export declare enum KnownScript {
13
13
  COTA = "COTA",
14
14
  OmniLock = "OmniLock",
15
15
  NostrLock = "NostrLock",
16
+ UniqueType = "UniqueType",
16
17
  SingleUseLock = "SingleUseLock",
17
18
  OutputTypeProxyLock = "OutputTypeProxyLock"
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export var KnownScript;
16
16
  KnownScript["COTA"] = "COTA";
17
17
  KnownScript["OmniLock"] = "OmniLock";
18
18
  KnownScript["NostrLock"] = "NostrLock";
19
+ KnownScript["UniqueType"] = "UniqueType";
19
20
  KnownScript["SingleUseLock"] = "SingleUseLock";
20
21
  KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
21
22
  })(KnownScript || (KnownScript = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAkJZ,CAAC"}
1
+ {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyLZ,CAAC"}
@@ -124,7 +124,41 @@ export const MAINNET_SCRIPTS = {
124
124
  },
125
125
  ],
126
126
  },
127
- [KnownScript.NostrLock]: undefined,
127
+ [KnownScript.NostrLock]: {
128
+ codeHash: "0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
129
+ hashType: "type",
130
+ cellDeps: [
131
+ {
132
+ cellDep: {
133
+ outPoint: {
134
+ txHash: "0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
135
+ index: 0,
136
+ },
137
+ depType: "code",
138
+ },
139
+ type: {
140
+ codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
141
+ hashType: "type",
142
+ args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
143
+ },
144
+ },
145
+ ],
146
+ },
147
+ [KnownScript.UniqueType]: {
148
+ codeHash: "0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
149
+ hashType: "data1",
150
+ cellDeps: [
151
+ {
152
+ cellDep: {
153
+ outPoint: {
154
+ txHash: "0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
155
+ index: 0,
156
+ },
157
+ depType: "code",
158
+ },
159
+ },
160
+ ],
161
+ },
128
162
  [KnownScript.SingleUseLock]: undefined,
129
163
  [KnownScript.OutputTypeProxyLock]: undefined,
130
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CA8MxE,CAAC"}
1
+ {"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAqOxE,CAAC"}
@@ -149,6 +149,26 @@ export const TESTNET_SCRIPTS = {
149
149
  },
150
150
  ],
151
151
  },
152
+ [KnownScript.UniqueType]: {
153
+ codeHash: "0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
154
+ hashType: "type",
155
+ cellDeps: [
156
+ {
157
+ cellDep: {
158
+ outPoint: {
159
+ txHash: "0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
160
+ index: 0,
161
+ },
162
+ depType: "code",
163
+ },
164
+ type: {
165
+ codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
166
+ hashType: "type",
167
+ args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
168
+ },
169
+ },
170
+ ],
171
+ },
152
172
  [KnownScript.SingleUseLock]: {
153
173
  codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
154
174
  hashType: "data1",
@@ -1,5 +1,7 @@
1
1
  import { BytesLike } from "../bytes";
2
+ import { CellInputLike } from "../ckb";
2
3
  import { Hex } from "../hex";
4
+ import { NumLike } from "../num";
3
5
  export declare class Hasher {
4
6
  private readonly hasher;
5
7
  /**
@@ -45,8 +47,21 @@ export declare class Hasher {
45
47
  *
46
48
  * @example
47
49
  * ```typescript
48
- * const hash = ckbHash("some data"); // Outputs something like "0x..."
50
+ * const hash = hashCkb("some data"); // Outputs something like "0x..."
49
51
  * ```
50
52
  */
51
- export declare function ckbHash(...data: BytesLike[]): Hex;
53
+ export declare function hashCkb(...data: BytesLike[]): Hex;
54
+ /**
55
+ * Computes the Type ID hash of the given data.
56
+ *
57
+ * @param cellInput - The first cell input of the transaction.
58
+ * @param outputIndex - The output index of the Type ID cell.
59
+ * @returns The hexadecimal string representation of the hash.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
64
+ * ```
65
+ */
66
+ export declare function hashTypeId(cellInputLike: CellInputLike, outputIndex: NumLike): Hex;
52
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAa,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAgB,MAAM,QAAQ,CAAC;AAG/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,UAAU,CACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,OAAO,GACnB,GAAG,CAKL"}
@@ -1,5 +1,7 @@
1
1
  import blake2b from "blake2b";
2
2
  import { bytesFrom } from "../bytes";
3
+ import { CellInput } from "../ckb";
4
+ import { numLeToBytes } from "../num";
3
5
  import { CKB_BLAKE2B_PERSONAL } from "./advanced";
4
6
  export class Hasher {
5
7
  /**
@@ -52,11 +54,26 @@ export class Hasher {
52
54
  *
53
55
  * @example
54
56
  * ```typescript
55
- * const hash = ckbHash("some data"); // Outputs something like "0x..."
57
+ * const hash = hashCkb("some data"); // Outputs something like "0x..."
56
58
  * ```
57
59
  */
58
- export function ckbHash(...data) {
60
+ export function hashCkb(...data) {
59
61
  const hasher = new Hasher();
60
62
  data.forEach((d) => hasher.update(d));
61
63
  return hasher.digest();
62
64
  }
65
+ /**
66
+ * Computes the Type ID hash of the given data.
67
+ *
68
+ * @param cellInput - The first cell input of the transaction.
69
+ * @param outputIndex - The output index of the Type ID cell.
70
+ * @returns The hexadecimal string representation of the hash.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
75
+ * ```
76
+ */
77
+ export function hashTypeId(cellInputLike, outputIndex) {
78
+ return hashCkb(CellInput.from(cellInputLike).toBytes(), numLeToBytes(outputIndex, 8));
79
+ }
@@ -3,7 +3,7 @@ import { Address } from "../../address";
3
3
  import { bytesConcat, bytesFrom } from "../../bytes";
4
4
  import { Transaction, WitnessArgs } from "../../ckb";
5
5
  import { KnownScript } from "../../client";
6
- import { ckbHash } from "../../hasher";
6
+ import { hashCkb } from "../../hasher";
7
7
  import { hexFrom } from "../../hex";
8
8
  import { Signer, SignerSignType, SignerType } from "../signer";
9
9
  import { buildNostrEventFromMessage } from "./verify";
@@ -38,7 +38,7 @@ export class SignerNostr extends Signer {
38
38
  async getAddressObjs() {
39
39
  const publicKey = await this.getNostrPublicKey();
40
40
  return [
41
- await Address.fromKnownScript(this.client, KnownScript.NostrLock, hexFrom(bytesConcat([0x00], ckbHash(publicKey).slice(0, 42)))),
41
+ await Address.fromKnownScript(this.client, KnownScript.NostrLock, hexFrom(bytesConcat([0x00], hashCkb(publicKey).slice(0, 42)))),
42
42
  ];
43
43
  }
44
44
  /**
@@ -201,7 +201,7 @@ class Script {
201
201
  * ```
202
202
  */
203
203
  hash() {
204
- return (0, hasher_1.ckbHash)(this.toBytes());
204
+ return (0, hasher_1.hashCkb)(this.toBytes());
205
205
  }
206
206
  /**
207
207
  * Creates a Script instance from a byte-like value or molecule Script.
@@ -828,7 +828,7 @@ class Transaction {
828
828
  * ```
829
829
  */
830
830
  hash() {
831
- return (0, hasher_1.ckbHash)(this.rawToBytes());
831
+ return (0, hasher_1.hashCkb)(this.rawToBytes());
832
832
  }
833
833
  /**
834
834
  * Hashes a witness and updates the hasher.
@@ -13,6 +13,7 @@ export declare enum KnownScript {
13
13
  COTA = "COTA",
14
14
  OmniLock = "OmniLock",
15
15
  NostrLock = "NostrLock",
16
+ UniqueType = "UniqueType",
16
17
  SingleUseLock = "SingleUseLock",
17
18
  OutputTypeProxyLock = "OutputTypeProxyLock"
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ var KnownScript;
19
19
  KnownScript["COTA"] = "COTA";
20
20
  KnownScript["OmniLock"] = "OmniLock";
21
21
  KnownScript["NostrLock"] = "NostrLock";
22
+ KnownScript["UniqueType"] = "UniqueType";
22
23
  KnownScript["SingleUseLock"] = "SingleUseLock";
23
24
  KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
24
25
  })(KnownScript || (exports.KnownScript = KnownScript = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAkJZ,CAAC"}
1
+ {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyLZ,CAAC"}
@@ -127,7 +127,41 @@ exports.MAINNET_SCRIPTS = {
127
127
  },
128
128
  ],
129
129
  },
130
- [client_1.KnownScript.NostrLock]: undefined,
130
+ [client_1.KnownScript.NostrLock]: {
131
+ codeHash: "0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
132
+ hashType: "type",
133
+ cellDeps: [
134
+ {
135
+ cellDep: {
136
+ outPoint: {
137
+ txHash: "0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
138
+ index: 0,
139
+ },
140
+ depType: "code",
141
+ },
142
+ type: {
143
+ codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
144
+ hashType: "type",
145
+ args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
146
+ },
147
+ },
148
+ ],
149
+ },
150
+ [client_1.KnownScript.UniqueType]: {
151
+ codeHash: "0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
152
+ hashType: "data1",
153
+ cellDeps: [
154
+ {
155
+ cellDep: {
156
+ outPoint: {
157
+ txHash: "0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
158
+ index: 0,
159
+ },
160
+ depType: "code",
161
+ },
162
+ },
163
+ ],
164
+ },
131
165
  [client_1.KnownScript.SingleUseLock]: undefined,
132
166
  [client_1.KnownScript.OutputTypeProxyLock]: undefined,
133
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CA8MxE,CAAC"}
1
+ {"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAqOxE,CAAC"}
@@ -152,6 +152,26 @@ exports.TESTNET_SCRIPTS = {
152
152
  },
153
153
  ],
154
154
  },
155
+ [client_1.KnownScript.UniqueType]: {
156
+ codeHash: "0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
157
+ hashType: "type",
158
+ cellDeps: [
159
+ {
160
+ cellDep: {
161
+ outPoint: {
162
+ txHash: "0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
163
+ index: 0,
164
+ },
165
+ depType: "code",
166
+ },
167
+ type: {
168
+ codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
169
+ hashType: "type",
170
+ args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
171
+ },
172
+ },
173
+ ],
174
+ },
155
175
  [client_1.KnownScript.SingleUseLock]: {
156
176
  codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
157
177
  hashType: "data1",
@@ -1,5 +1,7 @@
1
1
  import { BytesLike } from "../bytes";
2
+ import { CellInputLike } from "../ckb";
2
3
  import { Hex } from "../hex";
4
+ import { NumLike } from "../num";
3
5
  export declare class Hasher {
4
6
  private readonly hasher;
5
7
  /**
@@ -45,8 +47,21 @@ export declare class Hasher {
45
47
  *
46
48
  * @example
47
49
  * ```typescript
48
- * const hash = ckbHash("some data"); // Outputs something like "0x..."
50
+ * const hash = hashCkb("some data"); // Outputs something like "0x..."
49
51
  * ```
50
52
  */
51
- export declare function ckbHash(...data: BytesLike[]): Hex;
53
+ export declare function hashCkb(...data: BytesLike[]): Hex;
54
+ /**
55
+ * Computes the Type ID hash of the given data.
56
+ *
57
+ * @param cellInput - The first cell input of the transaction.
58
+ * @param outputIndex - The output index of the Type ID cell.
59
+ * @returns The hexadecimal string representation of the hash.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
64
+ * ```
65
+ */
66
+ export declare function hashTypeId(cellInputLike: CellInputLike, outputIndex: NumLike): Hex;
52
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAa,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAgB,MAAM,QAAQ,CAAC;AAG/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,UAAU,CACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,OAAO,GACnB,GAAG,CAKL"}
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ckbHash = exports.Hasher = void 0;
6
+ exports.hashTypeId = exports.hashCkb = exports.Hasher = void 0;
7
7
  const blake2b_1 = __importDefault(require("blake2b"));
8
8
  const bytes_1 = require("../bytes");
9
+ const ckb_1 = require("../ckb");
10
+ const num_1 = require("../num");
9
11
  const advanced_1 = require("./advanced");
10
12
  class Hasher {
11
13
  /**
@@ -59,12 +61,28 @@ exports.Hasher = Hasher;
59
61
  *
60
62
  * @example
61
63
  * ```typescript
62
- * const hash = ckbHash("some data"); // Outputs something like "0x..."
64
+ * const hash = hashCkb("some data"); // Outputs something like "0x..."
63
65
  * ```
64
66
  */
65
- function ckbHash(...data) {
67
+ function hashCkb(...data) {
66
68
  const hasher = new Hasher();
67
69
  data.forEach((d) => hasher.update(d));
68
70
  return hasher.digest();
69
71
  }
70
- exports.ckbHash = ckbHash;
72
+ exports.hashCkb = hashCkb;
73
+ /**
74
+ * Computes the Type ID hash of the given data.
75
+ *
76
+ * @param cellInput - The first cell input of the transaction.
77
+ * @param outputIndex - The output index of the Type ID cell.
78
+ * @returns The hexadecimal string representation of the hash.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
83
+ * ```
84
+ */
85
+ function hashTypeId(cellInputLike, outputIndex) {
86
+ return hashCkb(ckb_1.CellInput.from(cellInputLike).toBytes(), (0, num_1.numLeToBytes)(outputIndex, 8));
87
+ }
88
+ exports.hashTypeId = hashTypeId;
@@ -41,7 +41,7 @@ class SignerNostr extends signer_1.Signer {
41
41
  async getAddressObjs() {
42
42
  const publicKey = await this.getNostrPublicKey();
43
43
  return [
44
- await address_1.Address.fromKnownScript(this.client, client_1.KnownScript.NostrLock, (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)([0x00], (0, hasher_1.ckbHash)(publicKey).slice(0, 42)))),
44
+ await address_1.Address.fromKnownScript(this.client, client_1.KnownScript.NostrLock, (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)([0x00], (0, hasher_1.hashCkb)(publicKey).slice(0, 42)))),
45
45
  ];
46
46
  }
47
47
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "0.0.7-alpha.2",
4
- "description": "Common Chains Connector Core",
3
+ "version": "0.0.8-alpha.4",
4
+ "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
7
7
  "private": false,
@@ -68,5 +68,5 @@
68
68
  "cross-fetch": "^4.0.0",
69
69
  "ethers": "^6.13.1"
70
70
  },
71
- "gitHead": "4b773c10f39944c6380d556dbf0b35e911935d13"
71
+ "gitHead": "444a378be18f46f5d13b18848fa90829755d5ff8"
72
72
  }
package/src/ckb/script.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Bytes, BytesLike, bytesFrom } from "../bytes";
2
2
  import { Client, KnownScript } from "../client";
3
- import { ckbHash } from "../hasher";
3
+ import { hashCkb } from "../hasher";
4
4
  import { Hex, HexLike, hexFrom } from "../hex";
5
5
  import * as mol from "./molecule.advanced";
6
6
  import {
@@ -214,7 +214,7 @@ export class Script {
214
214
  * ```
215
215
  */
216
216
  hash(): Hex {
217
- return ckbHash(this.toBytes());
217
+ return hashCkb(this.toBytes());
218
218
  }
219
219
 
220
220
  /**
@@ -3,7 +3,7 @@ import { ClientCollectableSearchKeyFilterLike } from "../advancedBarrel";
3
3
  import { Bytes, BytesLike, bytesFrom } from "../bytes";
4
4
  import { CellDepInfoLike, Client, KnownScript } from "../client";
5
5
  import { Zero, fixedPointFrom } from "../fixedPoint";
6
- import { Hasher, ckbHash } from "../hasher";
6
+ import { Hasher, hashCkb } from "../hasher";
7
7
  import { Hex, HexLike, hexFrom } from "../hex";
8
8
  import {
9
9
  Num,
@@ -1026,7 +1026,7 @@ export class Transaction {
1026
1026
  */
1027
1027
 
1028
1028
  hash() {
1029
- return ckbHash(this.rawToBytes());
1029
+ return hashCkb(this.rawToBytes());
1030
1030
  }
1031
1031
 
1032
1032
  /**
@@ -34,6 +34,7 @@ export enum KnownScript {
34
34
  COTA = "COTA",
35
35
  OmniLock = "OmniLock",
36
36
  NostrLock = "NostrLock",
37
+ UniqueType = "UniqueType",
37
38
  SingleUseLock = "SingleUseLock",
38
39
  OutputTypeProxyLock = "OutputTypeProxyLock",
39
40
  }
@@ -147,7 +147,46 @@ export const MAINNET_SCRIPTS: Record<
147
147
  },
148
148
  ],
149
149
  },
150
- [KnownScript.NostrLock]: undefined,
150
+ [KnownScript.NostrLock]: {
151
+ codeHash:
152
+ "0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
153
+ hashType: "type",
154
+ cellDeps: [
155
+ {
156
+ cellDep: {
157
+ outPoint: {
158
+ txHash:
159
+ "0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
160
+ index: 0,
161
+ },
162
+ depType: "code",
163
+ },
164
+ type: {
165
+ codeHash:
166
+ "0x00000000000000000000000000000000000000000000000000545950455f4944",
167
+ hashType: "type",
168
+ args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
169
+ },
170
+ },
171
+ ],
172
+ },
173
+ [KnownScript.UniqueType]: {
174
+ codeHash:
175
+ "0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
176
+ hashType: "data1",
177
+ cellDeps: [
178
+ {
179
+ cellDep: {
180
+ outPoint: {
181
+ txHash:
182
+ "0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
183
+ index: 0,
184
+ },
185
+ depType: "code",
186
+ },
187
+ },
188
+ ],
189
+ },
151
190
  [KnownScript.SingleUseLock]: undefined,
152
191
  [KnownScript.OutputTypeProxyLock]: undefined,
153
192
  };
@@ -175,6 +175,29 @@ export const TESTNET_SCRIPTS: Record<
175
175
  },
176
176
  ],
177
177
  },
178
+ [KnownScript.UniqueType]: {
179
+ codeHash:
180
+ "0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
181
+ hashType: "type",
182
+ cellDeps: [
183
+ {
184
+ cellDep: {
185
+ outPoint: {
186
+ txHash:
187
+ "0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
188
+ index: 0,
189
+ },
190
+ depType: "code",
191
+ },
192
+ type: {
193
+ codeHash:
194
+ "0x00000000000000000000000000000000000000000000000000545950455f4944",
195
+ hashType: "type",
196
+ args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
197
+ },
198
+ },
199
+ ],
200
+ },
178
201
  [KnownScript.SingleUseLock]: {
179
202
  codeHash:
180
203
  "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
@@ -1,6 +1,8 @@
1
1
  import blake2b, { Blake2b } from "blake2b";
2
2
  import { BytesLike, bytesFrom } from "../bytes";
3
+ import { CellInput, CellInputLike } from "../ckb";
3
4
  import { Hex } from "../hex";
5
+ import { NumLike, numLeToBytes } from "../num";
4
6
  import { CKB_BLAKE2B_PERSONAL } from "./advanced";
5
7
 
6
8
  export class Hasher {
@@ -67,12 +69,35 @@ export class Hasher {
67
69
  *
68
70
  * @example
69
71
  * ```typescript
70
- * const hash = ckbHash("some data"); // Outputs something like "0x..."
72
+ * const hash = hashCkb("some data"); // Outputs something like "0x..."
71
73
  * ```
72
74
  */
73
75
 
74
- export function ckbHash(...data: BytesLike[]): Hex {
76
+ export function hashCkb(...data: BytesLike[]): Hex {
75
77
  const hasher = new Hasher();
76
78
  data.forEach((d) => hasher.update(d));
77
79
  return hasher.digest();
78
80
  }
81
+
82
+ /**
83
+ * Computes the Type ID hash of the given data.
84
+ *
85
+ * @param cellInput - The first cell input of the transaction.
86
+ * @param outputIndex - The output index of the Type ID cell.
87
+ * @returns The hexadecimal string representation of the hash.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
92
+ * ```
93
+ */
94
+
95
+ export function hashTypeId(
96
+ cellInputLike: CellInputLike,
97
+ outputIndex: NumLike,
98
+ ): Hex {
99
+ return hashCkb(
100
+ CellInput.from(cellInputLike).toBytes(),
101
+ numLeToBytes(outputIndex, 8),
102
+ );
103
+ }
@@ -3,7 +3,7 @@ import { Address } from "../../address";
3
3
  import { BytesLike, bytesConcat, bytesFrom } from "../../bytes";
4
4
  import { Transaction, TransactionLike, WitnessArgs } from "../../ckb";
5
5
  import { KnownScript } from "../../client";
6
- import { ckbHash } from "../../hasher";
6
+ import { hashCkb } from "../../hasher";
7
7
  import { Hex, hexFrom } from "../../hex";
8
8
  import { Signer, SignerSignType, SignerType } from "../signer";
9
9
  import { buildNostrEventFromMessage } from "./verify";
@@ -80,7 +80,7 @@ export abstract class SignerNostr extends Signer {
80
80
  await Address.fromKnownScript(
81
81
  this.client,
82
82
  KnownScript.NostrLock,
83
- hexFrom(bytesConcat([0x00], ckbHash(publicKey).slice(0, 42))),
83
+ hexFrom(bytesConcat([0x00], hashCkb(publicKey).slice(0, 42))),
84
84
  ),
85
85
  ];
86
86
  }