@ckb-ccc/core 0.1.1 → 1.0.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 (162) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/barrel.d.ts +1 -1
  3. package/dist/barrel.d.ts.map +1 -1
  4. package/dist/barrel.js +1 -1
  5. package/dist/bytes/index.d.ts +14 -0
  6. package/dist/bytes/index.d.ts.map +1 -1
  7. package/dist/bytes/index.js +29 -0
  8. package/dist/ckb/advanced.d.ts +0 -1
  9. package/dist/ckb/advanced.d.ts.map +1 -1
  10. package/dist/ckb/advanced.js +0 -1
  11. package/dist/ckb/script.d.ts +17 -58
  12. package/dist/ckb/script.d.ts.map +1 -1
  13. package/dist/ckb/script.js +31 -78
  14. package/dist/ckb/transaction.d.ts +114 -260
  15. package/dist/ckb/transaction.d.ts.map +1 -1
  16. package/dist/ckb/transaction.js +162 -358
  17. package/dist/molecule/barrel.d.ts +4 -0
  18. package/dist/molecule/barrel.d.ts.map +1 -0
  19. package/dist/molecule/barrel.js +3 -0
  20. package/dist/molecule/codec.d.ts.map +1 -1
  21. package/dist/molecule/codec.js +6 -3
  22. package/dist/molecule/entity.d.ts +98 -0
  23. package/dist/molecule/entity.d.ts.map +1 -0
  24. package/dist/molecule/entity.js +113 -0
  25. package/dist/molecule/index.d.ts +1 -2
  26. package/dist/molecule/index.d.ts.map +1 -1
  27. package/dist/molecule/index.js +1 -2
  28. package/dist/molecule/predefined.d.ts +13 -20
  29. package/dist/molecule/predefined.d.ts.map +1 -1
  30. package/dist/molecule/predefined.js +14 -54
  31. package/dist/utils/index.d.ts +3 -0
  32. package/dist/utils/index.d.ts.map +1 -1
  33. package/dist.commonjs/address/address.advanced.js +28 -23
  34. package/dist.commonjs/address/advanced.js +17 -1
  35. package/dist.commonjs/address/index.js +15 -11
  36. package/dist.commonjs/advanced.js +31 -2
  37. package/dist.commonjs/advancedBarrel.js +21 -5
  38. package/dist.commonjs/barrel.d.ts +1 -1
  39. package/dist.commonjs/barrel.d.ts.map +1 -1
  40. package/dist.commonjs/barrel.js +28 -12
  41. package/dist.commonjs/bytes/advanced.js +2 -1
  42. package/dist.commonjs/bytes/index.d.ts +14 -0
  43. package/dist.commonjs/bytes/index.d.ts.map +1 -1
  44. package/dist.commonjs/bytes/index.js +42 -7
  45. package/dist.commonjs/ckb/advanced.d.ts +0 -1
  46. package/dist.commonjs/ckb/advanced.d.ts.map +1 -1
  47. package/dist.commonjs/ckb/advanced.js +18 -3
  48. package/dist.commonjs/ckb/index.js +19 -3
  49. package/dist.commonjs/ckb/script.advanced.js +6 -3
  50. package/dist.commonjs/ckb/script.d.ts +17 -58
  51. package/dist.commonjs/ckb/script.d.ts.map +1 -1
  52. package/dist.commonjs/ckb/script.js +49 -90
  53. package/dist.commonjs/ckb/transaction.advanced.js +6 -3
  54. package/dist.commonjs/ckb/transaction.d.ts +114 -260
  55. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  56. package/dist.commonjs/ckb/transaction.js +249 -434
  57. package/dist.commonjs/ckb/transactionLumos.js +2 -1
  58. package/dist.commonjs/client/advanced.js +22 -6
  59. package/dist.commonjs/client/cache/advanced.js +17 -1
  60. package/dist.commonjs/client/cache/cache.js +7 -3
  61. package/dist.commonjs/client/cache/index.js +18 -2
  62. package/dist.commonjs/client/cache/memory.advanced.js +28 -21
  63. package/dist.commonjs/client/cache/memory.js +23 -19
  64. package/dist.commonjs/client/client.js +25 -21
  65. package/dist.commonjs/client/clientPublicMainnet.advanced.js +25 -22
  66. package/dist.commonjs/client/clientPublicMainnet.js +15 -8
  67. package/dist.commonjs/client/clientPublicTestnet.advanced.js +25 -22
  68. package/dist.commonjs/client/clientPublicTestnet.js +15 -8
  69. package/dist.commonjs/client/clientTypes.advanced.js +6 -3
  70. package/dist.commonjs/client/clientTypes.js +43 -29
  71. package/dist.commonjs/client/index.js +22 -6
  72. package/dist.commonjs/client/jsonRpc/advanced.js +18 -2
  73. package/dist.commonjs/client/jsonRpc/index.js +41 -37
  74. package/dist.commonjs/client/jsonRpc/transformers.js +61 -57
  75. package/dist.commonjs/client/jsonRpc/types.js +2 -1
  76. package/dist.commonjs/client/transports/advanced.js +25 -8
  77. package/dist.commonjs/client/transports/http.js +5 -1
  78. package/dist.commonjs/client/transports/transport.js +2 -1
  79. package/dist.commonjs/client/transports/webSocket.js +10 -3
  80. package/dist.commonjs/fixedPoint/index.js +9 -4
  81. package/dist.commonjs/hasher/advanced.js +4 -1
  82. package/dist.commonjs/hasher/hasher.js +2 -1
  83. package/dist.commonjs/hasher/hasherCkb.js +20 -14
  84. package/dist.commonjs/hasher/hasherKeecak256.js +11 -7
  85. package/dist.commonjs/hasher/index.js +19 -3
  86. package/dist.commonjs/hex/index.js +6 -3
  87. package/dist.commonjs/index.js +31 -2
  88. package/dist.commonjs/keystore/index.js +25 -21
  89. package/dist.commonjs/molecule/barrel.d.ts +4 -0
  90. package/dist.commonjs/molecule/barrel.d.ts.map +1 -0
  91. package/dist.commonjs/molecule/barrel.js +19 -0
  92. package/dist.commonjs/molecule/codec.d.ts.map +1 -1
  93. package/dist.commonjs/molecule/codec.js +69 -51
  94. package/dist.commonjs/molecule/entity.d.ts +98 -0
  95. package/dist.commonjs/molecule/entity.d.ts.map +1 -0
  96. package/dist.commonjs/molecule/entity.js +118 -0
  97. package/dist.commonjs/molecule/index.d.ts +1 -2
  98. package/dist.commonjs/molecule/index.d.ts.map +1 -1
  99. package/dist.commonjs/molecule/index.js +27 -2
  100. package/dist.commonjs/molecule/predefined.d.ts +13 -20
  101. package/dist.commonjs/molecule/predefined.d.ts.map +1 -1
  102. package/dist.commonjs/molecule/predefined.js +54 -91
  103. package/dist.commonjs/num/index.js +29 -17
  104. package/dist.commonjs/signer/btc/index.js +19 -3
  105. package/dist.commonjs/signer/btc/signerBtc.js +24 -20
  106. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +8 -4
  107. package/dist.commonjs/signer/btc/verify.js +26 -17
  108. package/dist.commonjs/signer/ckb/index.js +21 -5
  109. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +20 -16
  110. package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +24 -20
  111. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +12 -8
  112. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +16 -12
  113. package/dist.commonjs/signer/ckb/verifyJoyId.js +8 -5
  114. package/dist.commonjs/signer/doge/index.js +20 -4
  115. package/dist.commonjs/signer/doge/signerDoge.js +26 -19
  116. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.js +6 -2
  117. package/dist.commonjs/signer/doge/signerDogePrivateKey.js +17 -13
  118. package/dist.commonjs/signer/doge/verify.js +15 -12
  119. package/dist.commonjs/signer/dummy/alwaysError.js +6 -2
  120. package/dist.commonjs/signer/dummy/dummy.js +7 -3
  121. package/dist.commonjs/signer/dummy/index.js +19 -3
  122. package/dist.commonjs/signer/dummy/openLink.js +6 -2
  123. package/dist.commonjs/signer/evm/index.js +19 -3
  124. package/dist.commonjs/signer/evm/signerEvm.js +35 -31
  125. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +8 -4
  126. package/dist.commonjs/signer/evm/verify.js +7 -4
  127. package/dist.commonjs/signer/index.js +23 -7
  128. package/dist.commonjs/signer/nostr/index.js +18 -2
  129. package/dist.commonjs/signer/nostr/signerNostr.js +25 -21
  130. package/dist.commonjs/signer/nostr/verify.js +16 -12
  131. package/dist.commonjs/signer/signer/index.js +25 -19
  132. package/dist.commonjs/utils/index.d.ts +3 -0
  133. package/dist.commonjs/utils/index.d.ts.map +1 -1
  134. package/dist.commonjs/utils/index.js +12 -6
  135. package/package.json +1 -2
  136. package/src/barrel.ts +1 -1
  137. package/src/bytes/index.ts +34 -0
  138. package/src/ckb/advanced.ts +0 -1
  139. package/src/ckb/script.ts +22 -85
  140. package/src/ckb/transaction.ts +134 -412
  141. package/src/molecule/barrel.ts +3 -0
  142. package/src/molecule/codec.ts +9 -5
  143. package/src/molecule/entity.ts +163 -0
  144. package/src/molecule/index.ts +1 -2
  145. package/src/molecule/predefined.ts +20 -69
  146. package/src/utils/index.ts +5 -0
  147. package/dist/ckb/molecule.advanced/generated.d.ts +0 -355
  148. package/dist/ckb/molecule.advanced/generated.d.ts.map +0 -1
  149. package/dist/ckb/molecule.advanced/generated.js +0 -1468
  150. package/dist/ckb/molecule.advanced/index.d.ts +0 -6
  151. package/dist/ckb/molecule.advanced/index.d.ts.map +0 -1
  152. package/dist/ckb/molecule.advanced/index.js +0 -7
  153. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +0 -355
  154. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts.map +0 -1
  155. package/dist.commonjs/ckb/molecule.advanced/generated.js +0 -1468
  156. package/dist.commonjs/ckb/molecule.advanced/index.d.ts +0 -6
  157. package/dist.commonjs/ckb/molecule.advanced/index.d.ts.map +0 -1
  158. package/dist.commonjs/ckb/molecule.advanced/index.js +0 -7
  159. package/src/ckb/molecule.advanced/blockchain.mol +0 -118
  160. package/src/ckb/molecule.advanced/generated.d.ts +0 -444
  161. package/src/ckb/molecule.advanced/generated.js +0 -1804
  162. package/src/ckb/molecule.advanced/index.ts +0 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ckb-ccc/core
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#107](https://github.com/ckb-devrel/ccc/pull/107) [`b99f55f`](https://github.com/ckb-devrel/ccc/commit/b99f55f74e64106391ce53f7d0bd0fa7522023cc) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat: molecule
8
+
9
+ ## 0.1.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#103](https://github.com/ckb-devrel/ccc/pull/103) [`c1cb910`](https://github.com/ckb-devrel/ccc/commit/c1cb91091780c7b33fbbd683ef8edc9f11452ecd) Thanks [@Hanssen0](https://github.com/Hanssen0)! - fix: ccc core commonjs
14
+
3
15
  ## 0.1.1
4
16
 
5
17
  ### Patch Changes
package/dist/barrel.d.ts CHANGED
@@ -6,7 +6,7 @@ export * from "./fixedPoint/index.js";
6
6
  export * from "./hasher/index.js";
7
7
  export * from "./hex/index.js";
8
8
  export * from "./keystore/index.js";
9
- export * as mol from "./molecule/index.js";
9
+ export * from "./molecule/index.js";
10
10
  export * from "./num/index.js";
11
11
  export * from "./signer/index.js";
12
12
  export * from "./utils/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/barrel.js CHANGED
@@ -6,7 +6,7 @@ export * from "./fixedPoint/index.js";
6
6
  export * from "./hasher/index.js";
7
7
  export * from "./hex/index.js";
8
8
  export * from "./keystore/index.js";
9
- export * as mol from "./molecule/index.js";
9
+ export * from "./molecule/index.js";
10
10
  export * from "./num/index.js";
11
11
  export * from "./signer/index.js";
12
12
  export * from "./utils/index.js";
@@ -70,4 +70,18 @@ export declare function bytesTo(val: BytesLike, encoding: BytesFromEncoding): st
70
70
  * ```
71
71
  */
72
72
  export declare function bytesFrom(bytes: BytesLike, encoding?: BytesFromEncoding): Bytes;
73
+ /**
74
+ * Compares two byte-like values for equality.
75
+ * @public
76
+ *
77
+ * @param a - The first byte-like value to compare.
78
+ * @param b - The second byte-like value to compare.
79
+ * @returns A boolean indicating whether the two byte-like values are equal.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * bytesEq([1], Uint8Array.from([1])) // true
84
+ * ```
85
+ */
86
+ export declare function bytesEq(a: BytesLike, b: BytesLike): boolean;
73
87
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bytes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAC/B;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAOvD;AAED;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,KAAK,CA4BP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bytes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAC/B;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAOvD;AAED;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,KAAK,CA4BP;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAmB3D"}
@@ -93,3 +93,32 @@ export function bytesFrom(bytes, encoding) {
93
93
  }
94
94
  return new Uint8Array(bytes);
95
95
  }
96
+ /**
97
+ * Compares two byte-like values for equality.
98
+ * @public
99
+ *
100
+ * @param a - The first byte-like value to compare.
101
+ * @param b - The second byte-like value to compare.
102
+ * @returns A boolean indicating whether the two byte-like values are equal.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * bytesEq([1], Uint8Array.from([1])) // true
107
+ * ```
108
+ */
109
+ export function bytesEq(a, b) {
110
+ if (a === b) {
111
+ return true;
112
+ }
113
+ const x = bytesFrom(a);
114
+ const y = bytesFrom(b);
115
+ if (x.length !== y.length) {
116
+ return false;
117
+ }
118
+ for (let i = 0; i < x.length; i++) {
119
+ if (x[i] !== y[i]) {
120
+ return false;
121
+ }
122
+ }
123
+ return true;
124
+ }
@@ -1,4 +1,3 @@
1
- export * as moleculeCodecCkb from "./molecule.advanced/index.js";
2
1
  export * from "./script.advanced.js";
3
2
  export * from "./transaction.advanced.js";
4
3
  //# sourceMappingURL=advanced.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/ckb/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AACjE,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/ckb/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
@@ -1,3 +1,2 @@
1
- export * as moleculeCodecCkb from "./molecule.advanced/index.js";
2
1
  export * from "./script.advanced.js";
3
2
  export * from "./transaction.advanced.js";
@@ -1,7 +1,8 @@
1
1
  import { Bytes, BytesLike } from "../bytes/index.js";
2
2
  import { Client, KnownScript } from "../client/index.js";
3
3
  import { Hex, HexLike } from "../hex/index.js";
4
- import * as mol from "./molecule.advanced/index.js";
4
+ import { mol } from "../molecule/index.js";
5
+ export declare const HashTypeCodec: mol.Codec<HashTypeLike, HashType>;
5
6
  /**
6
7
  * @public
7
8
  */
@@ -62,10 +63,22 @@ export type ScriptLike = {
62
63
  hashType: HashTypeLike;
63
64
  args: BytesLike;
64
65
  };
66
+ declare const Script_base: (abstract new () => {
67
+ toBytes(): Bytes;
68
+ clone(): Script;
69
+ eq(other: ScriptLike | Script): boolean;
70
+ hash(): Hex;
71
+ }) & {
72
+ byteLength?: number;
73
+ encode(_: ScriptLike): Bytes;
74
+ decode(_: BytesLike): Script;
75
+ fromBytes(_bytes: BytesLike): Script;
76
+ from(_: ScriptLike): Script;
77
+ };
65
78
  /**
66
79
  * @public
67
80
  */
68
- export declare class Script {
81
+ export declare class Script extends Script_base {
69
82
  codeHash: Hex;
70
83
  hashType: HashType;
71
84
  args: Hex;
@@ -123,61 +136,7 @@ export declare class Script {
123
136
  * ```
124
137
  */
125
138
  static fromKnownScript(client: Client, knownScript: KnownScript, args: HexLike): Promise<Script>;
126
- /**
127
- * Converts the Script instance to molecule data format.
128
- *
129
- * @returns An object representing the script in molecule data format.
130
- */
131
- _toMolData(): {
132
- codeHash: Uint8Array;
133
- hashType: Uint8Array;
134
- args: Uint8Array;
135
- };
136
- /**
137
- * Converts the Script instance to bytes.
138
- *
139
- * @returns A Uint8Array containing the script bytes.
140
- *
141
- * @example
142
- * ```typescript
143
- * const scriptBytes = script.toBytes();
144
- * ```
145
- */
146
- toBytes(): Bytes;
147
- /**
148
- * Get hash of a script
149
- *
150
- * @returns Hash of this script
151
- *
152
- * @example
153
- * ```typescript
154
- * const hash = script.hash();
155
- * ```
156
- */
157
- hash(): Hex;
158
- /**
159
- * Creates a Script instance from a byte-like value or molecule Script.
160
- *
161
- * @param bytes - The byte-like value or molecule Script to convert.
162
- * @returns A Script instance.
163
- *
164
- * @example
165
- * ```typescript
166
- * const script = Script.fromBytes(new Uint8Array([/* script bytes *\/]));
167
- * ```
168
- */
169
- static fromBytes(bytes: BytesLike | mol.Script): Script;
170
- /**
171
- * Compares the current Script instance with another ScriptLike object for equality.
172
- *
173
- * @param val - The ScriptLike object to compare with.
174
- * @returns True if the scripts are equal, otherwise false.
175
- *
176
- * @example
177
- * ```typescript
178
- * const isEqual = script.eq(anotherScript);
179
- * ```
180
- */
181
- eq(val: ScriptLike): boolean;
182
139
  }
140
+ export declare const ScriptOpt: mol.Codec<ScriptLike | null | undefined, Script | undefined>;
141
+ export {};
183
142
  //# sourceMappingURL=script.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/ckb/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AAOpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACpD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,QAAQ,CAmBxD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,KAAK,CAE7D;AAED;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAE5D;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AACF;;GAEG;AACH,qBAAa,MAAM;IASR,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,GAAG;IAVlB;;;;;;OAMG;gBAEM,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,GAAG;IAGlB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;;;;OASG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAYvC;;;;;;;;;;;;;;;;OAgBG;WAEU,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;OAIG;IAEH,UAAU;;;;;IAQV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;OASG;IACH,IAAI,IAAI,GAAG;IAIX;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;IAWvD;;;;;;;;;;OAUG;IAEH,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;CAQ7B"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/ckb/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAO3C,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAI1D,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACpD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,QAAQ,CAmBxD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,KAAK,CAE7D;AAED;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAE5D;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;;;;;;;;;;;;;AACF;;GAEG;AACH,qBASa,MAAO,SAAQ,WAAqC;IAStD,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,GAAG;IAVlB;;;;;;OAMG;gBAEM,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,GAAG;IAKlB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;;;;OASG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAYvC;;;;;;;;;;;;;;;;OAgBG;WAEU,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC;CAUnB;AAED,eAAO,MAAM,SAAS,8DAAqB,CAAC"}
@@ -1,8 +1,19 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var Script_1;
1
8
  import { bytesFrom } from "../bytes/index.js";
2
- import { hashCkb } from "../hasher/index.js";
3
9
  import { hexFrom } from "../hex/index.js";
4
- import * as mol from "./molecule.advanced/index.js";
10
+ import { mol } from "../molecule/index.js";
5
11
  import { HASH_TYPES, HASH_TYPE_TO_NUM, NUM_TO_HASH_TYPE, } from "./script.advanced.js";
12
+ export const HashTypeCodec = mol.Codec.from({
13
+ byteLength: 1,
14
+ encode: hashTypeToBytes,
15
+ decode: hashTypeFromBytes,
16
+ });
6
17
  /**
7
18
  * Converts a HashTypeLike value to a HashType.
8
19
  * @public
@@ -71,7 +82,7 @@ export function hashTypeFromBytes(bytes) {
71
82
  /**
72
83
  * @public
73
84
  */
74
- export class Script {
85
+ let Script = Script_1 = class Script extends mol.Entity.Base() {
75
86
  /**
76
87
  * Creates an instance of Script.
77
88
  *
@@ -80,6 +91,7 @@ export class Script {
80
91
  * @param args - The arguments for the script.
81
92
  */
82
93
  constructor(codeHash, hashType, args) {
94
+ super();
83
95
  this.codeHash = codeHash;
84
96
  this.hashType = hashType;
85
97
  this.args = args;
@@ -98,7 +110,7 @@ export class Script {
98
110
  * ```
99
111
  */
100
112
  clone() {
101
- return new Script(this.codeHash, this.hashType, this.args);
113
+ return new Script_1(this.codeHash, this.hashType, this.args);
102
114
  }
103
115
  /**
104
116
  * Creates a Script instance from a ScriptLike object.
@@ -116,10 +128,10 @@ export class Script {
116
128
  * ```
117
129
  */
118
130
  static from(script) {
119
- if (script instanceof Script) {
131
+ if (script instanceof Script_1) {
120
132
  return script;
121
133
  }
122
- return new Script(hexFrom(script.codeHash), hashTypeFrom(script.hashType), hexFrom(script.args));
134
+ return new Script_1(hexFrom(script.codeHash), hashTypeFrom(script.hashType), hexFrom(script.args));
123
135
  }
124
136
  /**
125
137
  * Creates a Script instance from client and known script.
@@ -140,76 +152,17 @@ export class Script {
140
152
  */
141
153
  static async fromKnownScript(client, knownScript, args) {
142
154
  const script = await client.getKnownScript(knownScript);
143
- return new Script(script.codeHash, script.hashType, hexFrom(args));
155
+ return new Script_1(script.codeHash, script.hashType, hexFrom(args));
144
156
  }
145
- /**
146
- * Converts the Script instance to molecule data format.
147
- *
148
- * @returns An object representing the script in molecule data format.
149
- */
150
- _toMolData() {
151
- return {
152
- codeHash: bytesFrom(this.codeHash),
153
- hashType: hashTypeToBytes(this.hashType),
154
- args: bytesFrom(this.args),
155
- };
156
- }
157
- /**
158
- * Converts the Script instance to bytes.
159
- *
160
- * @returns A Uint8Array containing the script bytes.
161
- *
162
- * @example
163
- * ```typescript
164
- * const scriptBytes = script.toBytes();
165
- * ```
166
- */
167
- toBytes() {
168
- return bytesFrom(mol.SerializeScript(this._toMolData()));
169
- }
170
- /**
171
- * Get hash of a script
172
- *
173
- * @returns Hash of this script
174
- *
175
- * @example
176
- * ```typescript
177
- * const hash = script.hash();
178
- * ```
179
- */
180
- hash() {
181
- return hashCkb(this.toBytes());
182
- }
183
- /**
184
- * Creates a Script instance from a byte-like value or molecule Script.
185
- *
186
- * @param bytes - The byte-like value or molecule Script to convert.
187
- * @returns A Script instance.
188
- *
189
- * @example
190
- * ```typescript
191
- * const script = Script.fromBytes(new Uint8Array([/* script bytes *\/]));
192
- * ```
193
- */
194
- static fromBytes(bytes) {
195
- const view = bytes instanceof mol.Script ? bytes : new mol.Script(bytesFrom(bytes));
196
- return new Script(hexFrom(view.getCodeHash().raw()), hashTypeFromBytes([view.getHashType()]), hexFrom(view.getArgs().raw()));
197
- }
198
- /**
199
- * Compares the current Script instance with another ScriptLike object for equality.
200
- *
201
- * @param val - The ScriptLike object to compare with.
202
- * @returns True if the scripts are equal, otherwise false.
203
- *
204
- * @example
205
- * ```typescript
206
- * const isEqual = script.eq(anotherScript);
207
- * ```
208
- */
209
- eq(val) {
210
- const script = Script.from(val);
211
- return (this.codeHash === script.codeHash &&
212
- this.args === script.args &&
213
- this.hashType === script.hashType);
214
- }
215
- }
157
+ };
158
+ Script = Script_1 = __decorate([
159
+ mol.codec(mol
160
+ .table({
161
+ codeHash: mol.Byte32,
162
+ hashType: HashTypeCodec,
163
+ args: mol.Bytes,
164
+ })
165
+ .map({ outMap: (decoded) => Script.from(decoded) }))
166
+ ], Script);
167
+ export { Script };
168
+ export const ScriptOpt = mol.option(Script);