@ckb-ccc/core 0.1.2 → 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 (90) hide show
  1. package/CHANGELOG.md +6 -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/barrel.d.ts +1 -1
  34. package/dist.commonjs/barrel.d.ts.map +1 -1
  35. package/dist.commonjs/barrel.js +1 -14
  36. package/dist.commonjs/bytes/index.d.ts +14 -0
  37. package/dist.commonjs/bytes/index.d.ts.map +1 -1
  38. package/dist.commonjs/bytes/index.js +30 -0
  39. package/dist.commonjs/ckb/advanced.d.ts +0 -1
  40. package/dist.commonjs/ckb/advanced.d.ts.map +1 -1
  41. package/dist.commonjs/ckb/advanced.js +0 -14
  42. package/dist.commonjs/ckb/script.d.ts +17 -58
  43. package/dist.commonjs/ckb/script.d.ts.map +1 -1
  44. package/dist.commonjs/ckb/script.js +31 -102
  45. package/dist.commonjs/ckb/transaction.d.ts +114 -260
  46. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  47. package/dist.commonjs/ckb/transaction.js +182 -408
  48. package/dist.commonjs/molecule/barrel.d.ts +4 -0
  49. package/dist.commonjs/molecule/barrel.d.ts.map +1 -0
  50. package/dist.commonjs/{ckb/molecule.advanced/index.js → molecule/barrel.js} +3 -8
  51. package/dist.commonjs/molecule/codec.d.ts.map +1 -1
  52. package/dist.commonjs/molecule/codec.js +6 -3
  53. package/dist.commonjs/molecule/entity.d.ts +98 -0
  54. package/dist.commonjs/molecule/entity.d.ts.map +1 -0
  55. package/dist.commonjs/molecule/entity.js +118 -0
  56. package/dist.commonjs/molecule/index.d.ts +1 -2
  57. package/dist.commonjs/molecule/index.d.ts.map +1 -1
  58. package/dist.commonjs/molecule/index.js +13 -4
  59. package/dist.commonjs/molecule/predefined.d.ts +13 -20
  60. package/dist.commonjs/molecule/predefined.d.ts.map +1 -1
  61. package/dist.commonjs/molecule/predefined.js +14 -77
  62. package/dist.commonjs/utils/index.d.ts +3 -0
  63. package/dist.commonjs/utils/index.d.ts.map +1 -1
  64. package/package.json +1 -1
  65. package/src/barrel.ts +1 -1
  66. package/src/bytes/index.ts +34 -0
  67. package/src/ckb/advanced.ts +0 -1
  68. package/src/ckb/script.ts +22 -85
  69. package/src/ckb/transaction.ts +134 -412
  70. package/src/molecule/barrel.ts +3 -0
  71. package/src/molecule/codec.ts +9 -5
  72. package/src/molecule/entity.ts +163 -0
  73. package/src/molecule/index.ts +1 -2
  74. package/src/molecule/predefined.ts +20 -69
  75. package/src/utils/index.ts +5 -0
  76. package/dist/ckb/molecule.advanced/generated.d.ts +0 -355
  77. package/dist/ckb/molecule.advanced/generated.d.ts.map +0 -1
  78. package/dist/ckb/molecule.advanced/generated.js +0 -1468
  79. package/dist/ckb/molecule.advanced/index.d.ts +0 -6
  80. package/dist/ckb/molecule.advanced/index.d.ts.map +0 -1
  81. package/dist/ckb/molecule.advanced/index.js +0 -7
  82. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +0 -355
  83. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts.map +0 -1
  84. package/dist.commonjs/ckb/molecule.advanced/generated.js +0 -1535
  85. package/dist.commonjs/ckb/molecule.advanced/index.d.ts +0 -6
  86. package/dist.commonjs/ckb/molecule.advanced/index.d.ts.map +0 -1
  87. package/src/ckb/molecule.advanced/blockchain.mol +0 -118
  88. package/src/ckb/molecule.advanced/generated.d.ts +0 -444
  89. package/src/ckb/molecule.advanced/generated.js +0 -1804
  90. package/src/ckb/molecule.advanced/index.ts +0 -11
package/src/ckb/script.ts CHANGED
@@ -1,14 +1,19 @@
1
1
  import { Bytes, BytesLike, bytesFrom } from "../bytes/index.js";
2
2
  import { Client, KnownScript } from "../client/index.js";
3
- import { hashCkb } from "../hasher/index.js";
4
3
  import { Hex, HexLike, hexFrom } from "../hex/index.js";
5
- import * as mol from "./molecule.advanced/index.js";
4
+ import { mol } from "../molecule/index.js";
6
5
  import {
7
6
  HASH_TYPES,
8
7
  HASH_TYPE_TO_NUM,
9
8
  NUM_TO_HASH_TYPE,
10
9
  } from "./script.advanced.js";
11
10
 
11
+ export const HashTypeCodec: mol.Codec<HashTypeLike, HashType> = mol.Codec.from({
12
+ byteLength: 1,
13
+ encode: hashTypeToBytes,
14
+ decode: hashTypeFromBytes,
15
+ });
16
+
12
17
  /**
13
18
  * @public
14
19
  */
@@ -102,7 +107,16 @@ export type ScriptLike = {
102
107
  /**
103
108
  * @public
104
109
  */
105
- export class Script {
110
+ @mol.codec(
111
+ mol
112
+ .table({
113
+ codeHash: mol.Byte32,
114
+ hashType: HashTypeCodec,
115
+ args: mol.Bytes,
116
+ })
117
+ .map({ outMap: (decoded) => Script.from(decoded) }),
118
+ )
119
+ export class Script extends mol.Entity.Base<ScriptLike, Script>() {
106
120
  /**
107
121
  * Creates an instance of Script.
108
122
  *
@@ -114,7 +128,9 @@ export class Script {
114
128
  public codeHash: Hex,
115
129
  public hashType: HashType,
116
130
  public args: Hex,
117
- ) {}
131
+ ) {
132
+ super();
133
+ }
118
134
 
119
135
  get occupiedSize(): number {
120
136
  return 33 + bytesFrom(this.args).length;
@@ -194,85 +210,6 @@ export class Script {
194
210
  *
195
211
  * @returns An object representing the script in molecule data format.
196
212
  */
197
-
198
- _toMolData() {
199
- return {
200
- codeHash: bytesFrom(this.codeHash),
201
- hashType: hashTypeToBytes(this.hashType),
202
- args: bytesFrom(this.args),
203
- };
204
- }
205
-
206
- /**
207
- * Converts the Script instance to bytes.
208
- *
209
- * @returns A Uint8Array containing the script bytes.
210
- *
211
- * @example
212
- * ```typescript
213
- * const scriptBytes = script.toBytes();
214
- * ```
215
- */
216
-
217
- toBytes(): Bytes {
218
- return bytesFrom(mol.SerializeScript(this._toMolData()));
219
- }
220
-
221
- /**
222
- * Get hash of a script
223
- *
224
- * @returns Hash of this script
225
- *
226
- * @example
227
- * ```typescript
228
- * const hash = script.hash();
229
- * ```
230
- */
231
- hash(): Hex {
232
- return hashCkb(this.toBytes());
233
- }
234
-
235
- /**
236
- * Creates a Script instance from a byte-like value or molecule Script.
237
- *
238
- * @param bytes - The byte-like value or molecule Script to convert.
239
- * @returns A Script instance.
240
- *
241
- * @example
242
- * ```typescript
243
- * const script = Script.fromBytes(new Uint8Array([/* script bytes *\/]));
244
- * ```
245
- */
246
-
247
- static fromBytes(bytes: BytesLike | mol.Script): Script {
248
- const view =
249
- bytes instanceof mol.Script ? bytes : new mol.Script(bytesFrom(bytes));
250
-
251
- return new Script(
252
- hexFrom(view.getCodeHash().raw()),
253
- hashTypeFromBytes([view.getHashType()]),
254
- hexFrom(view.getArgs().raw()),
255
- );
256
- }
257
-
258
- /**
259
- * Compares the current Script instance with another ScriptLike object for equality.
260
- *
261
- * @param val - The ScriptLike object to compare with.
262
- * @returns True if the scripts are equal, otherwise false.
263
- *
264
- * @example
265
- * ```typescript
266
- * const isEqual = script.eq(anotherScript);
267
- * ```
268
- */
269
-
270
- eq(val: ScriptLike): boolean {
271
- const script = Script.from(val);
272
- return (
273
- this.codeHash === script.codeHash &&
274
- this.args === script.args &&
275
- this.hashType === script.hashType
276
- );
277
- }
278
213
  }
214
+
215
+ export const ScriptOpt = mol.option(Script);