@ckb-ccc/core 0.0.4 → 0.0.5-alpha.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 (99) hide show
  1. package/README.md +6 -0
  2. package/dist/ckb/transaction.d.ts +85 -2
  3. package/dist/ckb/transaction.d.ts.map +1 -1
  4. package/dist/ckb/transaction.js +152 -7
  5. package/dist/client/client.d.ts +8 -3
  6. package/dist/client/client.d.ts.map +1 -1
  7. package/dist/client/client.js +29 -2
  8. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  9. package/dist/client/clientPublicMainnet.advanced.js +4 -0
  10. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  11. package/dist/client/clientPublicTestnet.advanced.js +4 -0
  12. package/dist/client/clientTypes.d.ts +48 -1
  13. package/dist/client/clientTypes.d.ts.map +1 -1
  14. package/dist/client/clientTypes.js +27 -1
  15. package/dist/client/jsonRpc/index.d.ts +9 -1
  16. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  17. package/dist/client/jsonRpc/index.js +15 -1
  18. package/dist/client/jsonRpc/transformers.d.ts +17 -3
  19. package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
  20. package/dist/client/jsonRpc/transformers.js +37 -3
  21. package/dist/client/jsonRpc/types.d.ts +15 -0
  22. package/dist/client/jsonRpc/types.d.ts.map +1 -1
  23. package/dist/fixedPoint/index.d.ts.map +1 -1
  24. package/dist/fixedPoint/index.js +4 -1
  25. package/dist/fixedPoint/index.test.d.ts +2 -0
  26. package/dist/fixedPoint/index.test.d.ts.map +1 -0
  27. package/dist/fixedPoint/index.test.js +43 -0
  28. package/dist/signer/btc/signerBtc.d.ts.map +1 -1
  29. package/dist/signer/btc/signerBtc.js +2 -3
  30. package/dist/signer/evm/signerEvm.d.ts.map +1 -1
  31. package/dist/signer/evm/signerEvm.js +2 -3
  32. package/dist/signer/index.d.ts +0 -1
  33. package/dist/signer/index.d.ts.map +1 -1
  34. package/dist/signer/index.js +0 -1
  35. package/dist/signer/signer.d.ts +10 -2
  36. package/dist/signer/signer.d.ts.map +1 -1
  37. package/dist/signer/signer.js +9 -1
  38. package/dist.commonjs/ckb/transaction.d.ts +85 -2
  39. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  40. package/dist.commonjs/ckb/transaction.js +150 -5
  41. package/dist.commonjs/client/client.d.ts +8 -3
  42. package/dist.commonjs/client/client.d.ts.map +1 -1
  43. package/dist.commonjs/client/client.js +28 -1
  44. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  45. package/dist.commonjs/client/clientPublicMainnet.advanced.js +4 -0
  46. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  47. package/dist.commonjs/client/clientPublicTestnet.advanced.js +4 -0
  48. package/dist.commonjs/client/clientTypes.d.ts +48 -1
  49. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  50. package/dist.commonjs/client/clientTypes.js +29 -0
  51. package/dist.commonjs/client/jsonRpc/index.d.ts +9 -1
  52. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  53. package/dist.commonjs/client/jsonRpc/index.js +15 -1
  54. package/dist.commonjs/client/jsonRpc/transformers.d.ts +17 -3
  55. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
  56. package/dist.commonjs/client/jsonRpc/transformers.js +35 -1
  57. package/dist.commonjs/client/jsonRpc/types.d.ts +15 -0
  58. package/dist.commonjs/client/jsonRpc/types.d.ts.map +1 -1
  59. package/dist.commonjs/fixedPoint/index.d.ts.map +1 -1
  60. package/dist.commonjs/fixedPoint/index.js +4 -1
  61. package/dist.commonjs/fixedPoint/index.test.d.ts +2 -0
  62. package/dist.commonjs/fixedPoint/index.test.d.ts.map +1 -0
  63. package/dist.commonjs/fixedPoint/index.test.js +45 -0
  64. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
  65. package/dist.commonjs/signer/btc/signerBtc.js +2 -3
  66. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
  67. package/dist.commonjs/signer/evm/signerEvm.js +2 -3
  68. package/dist.commonjs/signer/index.d.ts +0 -1
  69. package/dist.commonjs/signer/index.d.ts.map +1 -1
  70. package/dist.commonjs/signer/index.js +0 -1
  71. package/dist.commonjs/signer/signer.d.ts +10 -2
  72. package/dist.commonjs/signer/signer.d.ts.map +1 -1
  73. package/dist.commonjs/signer/signer.js +9 -1
  74. package/dist.commonjs/tsconfig.commonjs.tsbuildinfo +1 -1
  75. package/jest.config.js +5 -0
  76. package/package.json +6 -2
  77. package/src/ckb/transaction.ts +198 -3
  78. package/src/client/client.ts +64 -3
  79. package/src/client/clientPublicMainnet.advanced.ts +5 -0
  80. package/src/client/clientPublicTestnet.advanced.ts +5 -0
  81. package/src/client/clientTypes.ts +70 -1
  82. package/src/client/jsonRpc/index.ts +38 -2
  83. package/src/client/jsonRpc/transformers.ts +73 -4
  84. package/src/client/jsonRpc/types.ts +16 -0
  85. package/src/fixedPoint/index.test.ts +55 -0
  86. package/src/fixedPoint/index.ts +7 -1
  87. package/src/signer/btc/signerBtc.ts +6 -3
  88. package/src/signer/evm/signerEvm.ts +2 -3
  89. package/src/signer/index.ts +0 -1
  90. package/src/signer/signer.ts +9 -0
  91. package/dist/signer/helpers.d.ts +0 -40
  92. package/dist/signer/helpers.d.ts.map +0 -1
  93. package/dist/signer/helpers.js +0 -91
  94. package/dist.commonjs/signer/helpers.d.ts +0 -40
  95. package/dist.commonjs/signer/helpers.d.ts.map +0 -1
  96. package/dist.commonjs/signer/helpers.js +0 -96
  97. package/src/signer/helpers.ts +0 -124
  98. package/tsconfig.base.json +0 -21
  99. package/tsconfig.commonjs.json +0 -8
package/README.md CHANGED
@@ -1,3 +1,9 @@
1
+ <p align="center">
2
+ <a href="https://ckbccc-demo.vercel.app/">
3
+ <img alt="Logo" src="https://raw.githubusercontent.com/ckb-ecofund/ccc/master/assets/logo.svg" width="20%" />
4
+ </a>
5
+ </p>
6
+
1
7
  <h1 align="center" style="font-size: 48px;">
2
8
  CCC Core
3
9
  </h1>
@@ -184,19 +184,25 @@ export declare class CellOutput {
184
184
  static fromBytes(bytes: BytesLike | mol.CellOutput): CellOutput;
185
185
  }
186
186
  export type CellLike = {
187
+ outPoint: OutPointLike;
187
188
  cellOutput: CellOutputLike;
188
189
  outputData: HexLike;
190
+ blockNumber: NumLike;
189
191
  };
190
192
  export declare class Cell {
193
+ outPoint: OutPoint;
191
194
  cellOutput: CellOutput;
192
195
  outputData: Hex;
196
+ blockNumber: Num;
193
197
  /**
194
198
  * Creates an instance of Cell.
195
199
  *
200
+ * @param outPoint - The output point of the cell.
196
201
  * @param cellOutput - The cell output of the cell.
197
202
  * @param outputData - The output data of the cell.
203
+ * @param blockNumber - The block number of the cell.
198
204
  */
199
- constructor(cellOutput: CellOutput, outputData: Hex);
205
+ constructor(outPoint: OutPoint, cellOutput: CellOutput, outputData: Hex, blockNumber: Num);
200
206
  /**
201
207
  * Creates a Cell instance from a CellLike object.
202
208
  *
@@ -210,12 +216,14 @@ export type CellInputLike = {
210
216
  since: NumLike;
211
217
  cellOutput?: CellOutputLike;
212
218
  outputData?: HexLike;
219
+ blockNumber?: NumLike;
213
220
  };
214
221
  export declare class CellInput {
215
222
  previousOutput: OutPoint;
216
223
  since: Num;
217
224
  cellOutput?: CellOutput | undefined;
218
225
  outputData?: `0x${string}` | undefined;
226
+ blockNumber?: bigint | undefined;
219
227
  /**
220
228
  * Creates an instance of CellInput.
221
229
  *
@@ -223,8 +231,9 @@ export declare class CellInput {
223
231
  * @param since - The since value of the cell input.
224
232
  * @param cellOutput - The optional cell output associated with the cell input.
225
233
  * @param outputData - The optional output data associated with the cell input.
234
+ * @param blockNumber - The optional block number associated with the cell input.
226
235
  */
227
- constructor(previousOutput: OutPoint, since: Num, cellOutput?: CellOutput | undefined, outputData?: `0x${string}` | undefined);
236
+ constructor(previousOutput: OutPoint, since: Num, cellOutput?: CellOutput | undefined, outputData?: `0x${string}` | undefined, blockNumber?: bigint | undefined);
228
237
  /**
229
238
  * Creates a CellInput instance from a CellInputLike object.
230
239
  *
@@ -495,6 +504,7 @@ export declare class Transaction {
495
504
  * ```
496
505
  */
497
506
  static fromLumosSkeleton(skeleton: TransactionSkeletonType): Transaction;
507
+ stringify(): string;
498
508
  /**
499
509
  * Converts the raw transaction data to bytes.
500
510
  *
@@ -529,5 +539,78 @@ export declare class Transaction {
529
539
  * ```
530
540
  */
531
541
  static hashWitnessToHasher(witness: HexLike, hasher: Hasher): void;
542
+ /**
543
+ * Computes the signing hash information for a given script.
544
+ *
545
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
546
+ * @param client - The client for complete extra infos in the transaction.
547
+ * @returns A promise that resolves to an object containing the signing message and the witness position,
548
+ * or undefined if no matching input is found.
549
+ *
550
+ * @example
551
+ * ```typescript
552
+ * const signHashInfo = await tx.getSignHashInfo(scriptLike, client);
553
+ * if (signHashInfo) {
554
+ * console.log(signHashInfo.message); // Outputs the signing message
555
+ * console.log(signHashInfo.position); // Outputs the witness position
556
+ * }
557
+ * ```
558
+ */
559
+ getSignHashInfo(scriptLike: ScriptLike, client: Client): Promise<{
560
+ message: Hex;
561
+ position: number;
562
+ } | undefined>;
563
+ /**
564
+ * Find the first occurrence of a input with the specified lock
565
+ *
566
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
567
+ * @param client - The client for complete extra infos in the transaction.
568
+ * @returns A promise that resolves to the prepared transaction
569
+ *
570
+ * @example
571
+ * ```typescript
572
+ * const index = await tx.findInputIndexByLock(scriptLike, client);
573
+ * ```
574
+ */
575
+ findInputIndexByLock(scriptLike: ScriptLike, client: Client): Promise<number | undefined>;
576
+ /**
577
+ * Get witness at index as WitnessArgs
578
+ *
579
+ * @param index - The index of the witness.
580
+ * @returns The witness parsed as WitnessArgs.
581
+ *
582
+ * @example
583
+ * ```typescript
584
+ * const witnessArgs = await tx.getWitnessArgsAt(0);
585
+ * ```
586
+ */
587
+ getWitnessArgsAt(index: number): WitnessArgs | undefined;
588
+ /**
589
+ * Set witness at index by WitnessArgs
590
+ *
591
+ * @param index - The index of the witness.
592
+ * @param witness - The WitnessArgs to set.
593
+ * @returns The transaction itself.
594
+ *
595
+ * @example
596
+ * ```typescript
597
+ * await tx.setWitnessArgsAt(0, witnessArgs);
598
+ * ```
599
+ */
600
+ setWitnessArgsAt(index: number, witness: WitnessArgs): Transaction;
601
+ /**
602
+ * Prepare dummy witness for sighash all method
603
+ *
604
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
605
+ * @param lockLen - The length of dummy lock bytes.
606
+ * @param client - The client for complete extra infos in the transaction.
607
+ * @returns A promise that resolves to the prepared transaction
608
+ *
609
+ * @example
610
+ * ```typescript
611
+ * await tx.prepareSighashAllWitness(scriptLike, 85, client);
612
+ * ```
613
+ */
614
+ prepareSighashAllWitness(scriptLike: ScriptLike, lockLen: number, client: Client): Promise<Transaction>;
532
615
  }
533
616
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAW,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAqC,MAAM,QAAQ,CAAC;AAEzE,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAgBrD;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAE1D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,qBAAa,QAAQ;IASV,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IATnB;;;;;OAKG;gBAGM,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG;IAGnB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ;IAO7C;;;;OAIG;IAEH,UAAU;;;;IAOV;;;;;;;;;OASG;IAEH,MAAM,IAAI,KAAK;IAIf;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,QAAQ;CAW5D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AACF,qBAAa,UAAU;IAUZ,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,CAAC;IAXd;;;;;;OAMG;gBAGM,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,oBAAQ;IAGtB;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU;IAYnD;;;;OAIG;IAEH,UAAU;;;;;;;;;;;;;IAQV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,UAAU,GAAG,UAAU;CAYhE;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AACF,qBAAa,IAAI;IASN,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,GAAG;IATxB;;;;;OAKG;gBAGM,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,GAAG;IAGxB;;;;;OAKG;IAEH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAOlC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,qBAAa,SAAS;IAWX,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,GAAG;IACV,UAAU,CAAC;IACX,UAAU,CAAC;IAbpB;;;;;;;OAOG;gBAGM,cAAc,EAAE,QAAQ,EACxB,KAAK,EAAE,GAAG,EACV,UAAU,CAAC,wBAAY,EACvB,UAAU,CAAC,2BAAK;IAGzB;;;;;;;;;;;;;OAaG;IAEH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS;IAahD;;;;;;;;;;;OAWG;IAEG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa5D;;;;OAIG;IAEH,UAAU;;;;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,SAAS;CAW9D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AACF,qBAAa,OAAO;IAST,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IATzB;;;;;OAKG;gBAGM,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAGzB;;;;;;;;;;;;;OAaG;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAW1C;;;;OAIG;IAEH,UAAU;;;;;;;IAOV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,OAAO;CASnD;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,qBAAa,WAAW;IAUb,IAAI,CAAC;IACL,SAAS,CAAC;IACV,UAAU,CAAC;IAXpB;;;;;;OAMG;gBAGM,IAAI,CAAC,2BAAK,EACV,SAAS,CAAC,2BAAK,EACf,UAAU,CAAC,2BAAK;IAGzB;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW;IAYtD;;;;OAIG;IAEH,UAAU;;;;;IAQV;;;;;;;;;OASG;IAEH,OAAO,IAAI,KAAK;IAIhB;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,GAAG,WAAW;CAYlE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AACF,qBAAa,WAAW;IAcb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,OAAO,EAAE;IACnB,UAAU,EAAE,GAAG,EAAE;IACjB,MAAM,EAAE,SAAS,EAAE;IACnB,OAAO,EAAE,UAAU,EAAE;IACrB,WAAW,EAAE,GAAG,EAAE;IAClB,SAAS,EAAE,GAAG,EAAE;IAnBzB;;;;;;;;;;OAUG;gBAGM,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,EAAE,EACjB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,GAAG,EAAE,EAClB,SAAS,EAAE,GAAG,EAAE;IAGzB;;;;;;;;;OASG;IAEH,MAAM,CAAC,OAAO,IAAI,WAAW;IAI7B;;;;;;;;;;;;;;;;;;OAkBG;IAEH,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,GAAG,WAAW;IAgB7C;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,WAAW;IAuBxE;;;;;;;;;OASG;IAEH,UAAU,IAAI,KAAK;IAanB;;;;;;;;;OASG;IAEH,IAAI;IAIJ;;;;;;;;;;OAUG;IAEH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;CAK5D"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { bytesFrom } from "../bytes";
2
- import { ckbHash } from "../hasher";
2
+ import { Hasher, ckbHash } from "../hasher";
3
3
  import { hexFrom } from "../hex";
4
- import { numFrom, numFromBytes, numToBytes } from "../num";
4
+ import { numFrom, numFromBytes, numToBytes, numToHex, } from "../num";
5
5
  import { apply } from "../utils";
6
6
  import * as mol from "./molecule.advanced";
7
7
  import { Script } from "./script";
@@ -216,12 +216,16 @@ export class Cell {
216
216
  /**
217
217
  * Creates an instance of Cell.
218
218
  *
219
+ * @param outPoint - The output point of the cell.
219
220
  * @param cellOutput - The cell output of the cell.
220
221
  * @param outputData - The output data of the cell.
222
+ * @param blockNumber - The block number of the cell.
221
223
  */
222
- constructor(cellOutput, outputData) {
224
+ constructor(outPoint, cellOutput, outputData, blockNumber) {
225
+ this.outPoint = outPoint;
223
226
  this.cellOutput = cellOutput;
224
227
  this.outputData = outputData;
228
+ this.blockNumber = blockNumber;
225
229
  }
226
230
  /**
227
231
  * Creates a Cell instance from a CellLike object.
@@ -233,7 +237,7 @@ export class Cell {
233
237
  if (cell instanceof Cell) {
234
238
  return cell;
235
239
  }
236
- return new Cell(CellOutput.from(cell.cellOutput), hexFrom(cell.outputData));
240
+ return new Cell(OutPoint.from(cell.outPoint), CellOutput.from(cell.cellOutput), hexFrom(cell.outputData), numFrom(cell.blockNumber));
237
241
  }
238
242
  }
239
243
  export class CellInput {
@@ -244,12 +248,14 @@ export class CellInput {
244
248
  * @param since - The since value of the cell input.
245
249
  * @param cellOutput - The optional cell output associated with the cell input.
246
250
  * @param outputData - The optional output data associated with the cell input.
251
+ * @param blockNumber - The optional block number associated with the cell input.
247
252
  */
248
- constructor(previousOutput, since, cellOutput, outputData) {
253
+ constructor(previousOutput, since, cellOutput, outputData, blockNumber) {
249
254
  this.previousOutput = previousOutput;
250
255
  this.since = since;
251
256
  this.cellOutput = cellOutput;
252
257
  this.outputData = outputData;
258
+ this.blockNumber = blockNumber;
253
259
  }
254
260
  /**
255
261
  * Creates a CellInput instance from a CellInputLike object.
@@ -269,7 +275,7 @@ export class CellInput {
269
275
  if (cellInput instanceof CellInput) {
270
276
  return cellInput;
271
277
  }
272
- return new CellInput(OutPoint.from(cellInput.previousOutput), numFrom(cellInput.since), apply(CellOutput.from, cellInput.cellOutput), apply(hexFrom, cellInput.outputData));
278
+ return new CellInput(OutPoint.from(cellInput.previousOutput), numFrom(cellInput.since), apply(CellOutput.from, cellInput.cellOutput), apply(hexFrom, cellInput.outputData), apply(numFrom, cellInput.blockNumber));
273
279
  }
274
280
  /**
275
281
  * Complete extra infos in the input. Like the output of the out point.
@@ -284,13 +290,14 @@ export class CellInput {
284
290
  * ```
285
291
  */
286
292
  async completeExtraInfos(client) {
287
- if (this.cellOutput && this.outputData) {
293
+ if (this.cellOutput && this.outputData && this.blockNumber) {
288
294
  return this;
289
295
  }
290
296
  const cell = await client.getCell(this.previousOutput);
291
297
  if (cell) {
292
298
  this.cellOutput = cell.cellOutput;
293
299
  this.outputData = cell.outputData;
300
+ this.blockNumber = cell.blockNumber;
294
301
  }
295
302
  return this;
296
303
  }
@@ -577,6 +584,14 @@ export class Transaction {
577
584
  witnesses: skeleton.witnesses.toArray(),
578
585
  });
579
586
  }
587
+ stringify() {
588
+ return JSON.stringify(this, (_, value) => {
589
+ if (typeof value === "bigint") {
590
+ return numToHex(value);
591
+ }
592
+ return value;
593
+ });
594
+ }
580
595
  /**
581
596
  * Converts the raw transaction data to bytes.
582
597
  *
@@ -626,4 +641,134 @@ export class Transaction {
626
641
  hasher.update(numToBytes(raw.length, 8));
627
642
  hasher.update(raw);
628
643
  }
644
+ /**
645
+ * Computes the signing hash information for a given script.
646
+ *
647
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
648
+ * @param client - The client for complete extra infos in the transaction.
649
+ * @returns A promise that resolves to an object containing the signing message and the witness position,
650
+ * or undefined if no matching input is found.
651
+ *
652
+ * @example
653
+ * ```typescript
654
+ * const signHashInfo = await tx.getSignHashInfo(scriptLike, client);
655
+ * if (signHashInfo) {
656
+ * console.log(signHashInfo.message); // Outputs the signing message
657
+ * console.log(signHashInfo.position); // Outputs the witness position
658
+ * }
659
+ * ```
660
+ */
661
+ async getSignHashInfo(scriptLike, client) {
662
+ const script = Script.from(scriptLike);
663
+ let position = -1;
664
+ const hasher = new Hasher();
665
+ hasher.update(this.hash());
666
+ for (let i = 0; i < this.witnesses.length; i += 1) {
667
+ if (this.inputs[i]) {
668
+ const input = await this.inputs[i].completeExtraInfos(client);
669
+ if (!input.cellOutput) {
670
+ throw Error("Unable to resolve inputs info");
671
+ }
672
+ if (!script.eq(input.cellOutput.lock)) {
673
+ continue;
674
+ }
675
+ if (position === -1) {
676
+ position = i;
677
+ }
678
+ }
679
+ if (position === -1) {
680
+ return undefined;
681
+ }
682
+ Transaction.hashWitnessToHasher(this.witnesses[i], hasher);
683
+ }
684
+ if (position === -1) {
685
+ return undefined;
686
+ }
687
+ return {
688
+ message: hasher.digest(),
689
+ position,
690
+ };
691
+ }
692
+ /**
693
+ * Find the first occurrence of a input with the specified lock
694
+ *
695
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
696
+ * @param client - The client for complete extra infos in the transaction.
697
+ * @returns A promise that resolves to the prepared transaction
698
+ *
699
+ * @example
700
+ * ```typescript
701
+ * const index = await tx.findInputIndexByLock(scriptLike, client);
702
+ * ```
703
+ */
704
+ async findInputIndexByLock(scriptLike, client) {
705
+ const script = Script.from(scriptLike);
706
+ for (let i = 0; i < this.inputs.length; i += 1) {
707
+ const input = await this.inputs[i].completeExtraInfos(client);
708
+ if (!input.cellOutput) {
709
+ throw Error("Unable to resolve inputs info");
710
+ }
711
+ if (script.eq(input.cellOutput.lock)) {
712
+ return i;
713
+ }
714
+ }
715
+ }
716
+ /**
717
+ * Get witness at index as WitnessArgs
718
+ *
719
+ * @param index - The index of the witness.
720
+ * @returns The witness parsed as WitnessArgs.
721
+ *
722
+ * @example
723
+ * ```typescript
724
+ * const witnessArgs = await tx.getWitnessArgsAt(0);
725
+ * ```
726
+ */
727
+ getWitnessArgsAt(index) {
728
+ const rawWitness = this.witnesses[index];
729
+ return (rawWitness ?? "0x") !== "0x"
730
+ ? WitnessArgs.fromBytes(rawWitness)
731
+ : undefined;
732
+ }
733
+ /**
734
+ * Set witness at index by WitnessArgs
735
+ *
736
+ * @param index - The index of the witness.
737
+ * @param witness - The WitnessArgs to set.
738
+ * @returns The transaction itself.
739
+ *
740
+ * @example
741
+ * ```typescript
742
+ * await tx.setWitnessArgsAt(0, witnessArgs);
743
+ * ```
744
+ */
745
+ setWitnessArgsAt(index, witness) {
746
+ if (this.witnesses.length < index) {
747
+ this.witnesses.push(...Array.from(new Array(index - this.witnesses.length), () => "0x"));
748
+ }
749
+ this.witnesses[index] = hexFrom(witness.toBytes());
750
+ return this;
751
+ }
752
+ /**
753
+ * Prepare dummy witness for sighash all method
754
+ *
755
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
756
+ * @param lockLen - The length of dummy lock bytes.
757
+ * @param client - The client for complete extra infos in the transaction.
758
+ * @returns A promise that resolves to the prepared transaction
759
+ *
760
+ * @example
761
+ * ```typescript
762
+ * await tx.prepareSighashAllWitness(scriptLike, 85, client);
763
+ * ```
764
+ */
765
+ async prepareSighashAllWitness(scriptLike, lockLen, client) {
766
+ const position = await this.findInputIndexByLock(scriptLike, client);
767
+ if (position === undefined) {
768
+ return this;
769
+ }
770
+ const witness = this.getWitnessArgsAt(position) ?? WitnessArgs.from({});
771
+ witness.lock = hexFrom(Array.from(new Array(lockLen), () => 0));
772
+ return this.setWitnessArgsAt(position, witness);
773
+ }
629
774
  }
@@ -1,12 +1,14 @@
1
- import { Cell, OutPointLike, Script, TransactionLike } from "../ckb";
1
+ import { Cell, OutPointLike, Script, ScriptLike, TransactionLike } from "../ckb";
2
2
  import { Hex, HexLike } from "../hex";
3
- import { ClientTransactionResponse, OutputsValidator } from "./clientTypes";
3
+ import { NumLike } from "../num";
4
+ import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "./clientTypes";
4
5
  export declare enum KnownScript {
5
6
  Secp256k1Blake160 = 0,
6
7
  Secp256k1Multisig = 1,
7
8
  AnyoneCanPay = 2,
8
9
  JoyId = 3,
9
- OmniLock = 4
10
+ COTA = 4,
11
+ OmniLock = 5
10
12
  }
11
13
  export declare abstract class Client {
12
14
  abstract getUrl(): string;
@@ -15,5 +17,8 @@ export declare abstract class Client {
15
17
  abstract sendTransaction(transaction: TransactionLike, validator?: OutputsValidator): Promise<Hex>;
16
18
  abstract getTransaction(txHash: HexLike): Promise<ClientTransactionResponse | null>;
17
19
  getCell(outPoint: OutPointLike): Promise<Cell | null>;
20
+ abstract findCellsPaged(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: NumLike, after?: string): Promise<ClientFindCellsResponse>;
21
+ findCells(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: number): AsyncGenerator<Cell>;
22
+ findCellsByLockAndType(lock: ScriptLike, type: ScriptLike, withData?: boolean): AsyncGenerator<Cell>;
18
23
  }
19
24
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE5E,oBAAY,WAAW;IACrB,iBAAiB,IAAA;IACjB,iBAAiB,IAAA;IACjB,YAAY,IAAA;IACZ,KAAK,IAAA;IACL,QAAQ,IAAA;CACT;AAED,8BAAsB,MAAM;IAC1B,QAAQ,CAAC,MAAM,IAAI,MAAM;IAEzB,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5C,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC;IACf,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAgB5D"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,oBAAY,WAAW;IACrB,iBAAiB,IAAA;IACjB,iBAAiB,IAAA;IACjB,YAAY,IAAA;IACZ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,QAAQ,IAAA;CACT;AAED,8BAAsB,MAAM;IAC1B,QAAQ,CAAC,MAAM,IAAI,MAAM;IAEzB,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5C,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC;IACf,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAmB3D,QAAQ,CAAC,cAAc,CACrB,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC;IAE5B,SAAS,CACd,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,SAAK,GACT,cAAc,CAAC,IAAI,CAAC;IAoBvB,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,QAAQ,UAAO,GACd,cAAc,CAAC,IAAI,CAAC;CAWxB"}
@@ -1,4 +1,4 @@
1
- import { Cell } from "../ckb";
1
+ import { Cell, } from "../ckb";
2
2
  import { numFrom } from "../num";
3
3
  export var KnownScript;
4
4
  (function (KnownScript) {
@@ -6,7 +6,8 @@ export var KnownScript;
6
6
  KnownScript[KnownScript["Secp256k1Multisig"] = 1] = "Secp256k1Multisig";
7
7
  KnownScript[KnownScript["AnyoneCanPay"] = 2] = "AnyoneCanPay";
8
8
  KnownScript[KnownScript["JoyId"] = 3] = "JoyId";
9
- KnownScript[KnownScript["OmniLock"] = 4] = "OmniLock";
9
+ KnownScript[KnownScript["COTA"] = 4] = "COTA";
10
+ KnownScript[KnownScript["OmniLock"] = 5] = "OmniLock";
10
11
  })(KnownScript || (KnownScript = {}));
11
12
  export class Client {
12
13
  async getCell(outPoint) {
@@ -19,8 +20,34 @@ export class Client {
19
20
  return null;
20
21
  }
21
22
  return Cell.from({
23
+ outPoint,
22
24
  cellOutput: transaction.transaction.outputs[index],
23
25
  outputData: transaction.transaction.outputsData[index] ?? "0x",
26
+ blockNumber: transaction.blockNumber,
27
+ });
28
+ }
29
+ async *findCells(key, order, limit = 10) {
30
+ let last = undefined;
31
+ while (true) {
32
+ const { cells, lastCursor } = await this.findCellsPaged(key, order, limit, last);
33
+ for (const cell of cells) {
34
+ yield cell;
35
+ }
36
+ if (cells.length === 0 || cells.length < limit) {
37
+ return;
38
+ }
39
+ last = lastCursor;
40
+ }
41
+ }
42
+ findCellsByLockAndType(lock, type, withData = true) {
43
+ return this.findCells({
44
+ script: lock,
45
+ scriptType: "lock",
46
+ scriptSearchMode: "exact",
47
+ filter: {
48
+ script: type,
49
+ },
50
+ withData,
24
51
  });
25
52
  }
26
53
  }
@@ -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,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CA2BtC,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,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAgCtC,CAAC"}
@@ -16,6 +16,10 @@ export const MAINNET_SCRIPTS = {
16
16
  codeHash: "0xd00c84f0ec8fd441c38bc3f87a371f547190f2fcff88e642bc5bf54b9e318323",
17
17
  hashType: "type",
18
18
  },
19
+ [KnownScript.COTA]: {
20
+ codeHash: "0x1122a4fb54697cf2e6e3a96c9d80fd398a936559b90954c6e88eb7ba0cf652df",
21
+ hashType: "type",
22
+ },
19
23
  [KnownScript.OmniLock]: {
20
24
  codeHash: "0x9b819793a64463aed77c615d6cb226eea5487ccfc0783043a587254cda2b6f26",
21
25
  hashType: "type",
@@ -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,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CA2BtC,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,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAgCtC,CAAC"}
@@ -16,6 +16,10 @@ export const TESTNET_SCRIPTS = {
16
16
  codeHash: "0xd23761b364210735c19c60561d213fb3beae2fd6172743719eff6920e020baac",
17
17
  hashType: "type",
18
18
  },
19
+ [KnownScript.COTA]: {
20
+ codeHash: "0x89cd8003a0eaf8e65e0c31525b7d1d5c1becefd2ea75bb4cff87810ae37764d8",
21
+ hashType: "type",
22
+ },
19
23
  [KnownScript.OmniLock]: {
20
24
  codeHash: "0xf329effd1c475a2978453c8600e1eaf0bc2087ee093c3ee64cc96ec6847752cb",
21
25
  hashType: "type",
@@ -1,8 +1,55 @@
1
- import { Transaction } from "../ckb";
1
+ import { Cell, Script, ScriptLike, Transaction } from "../ckb";
2
+ import { Hex, HexLike } from "../hex";
3
+ import { Num, NumLike } from "../num";
2
4
  export type OutputsValidator = "passthrough" | "well_known_scripts_only";
3
5
  export type TransactionStatus = "pending" | "proposed" | "committed" | "unknown" | "rejected";
4
6
  export type ClientTransactionResponse = {
5
7
  transaction: Transaction;
6
8
  status: TransactionStatus;
9
+ blockNumber: Num;
10
+ };
11
+ export type ClientIndexerSearchKeyLike = {
12
+ script: ScriptLike;
13
+ scriptType: "lock" | "type";
14
+ scriptSearchMode?: "prefix" | "exact" | "partial";
15
+ filter?: {
16
+ script?: ScriptLike;
17
+ scriptLenRange?: [NumLike, NumLike];
18
+ outputData?: HexLike;
19
+ outputDataSearchMode?: "prefix" | "exact" | "partial";
20
+ outputDataLenRange?: [NumLike, NumLike];
21
+ outputCapacityRange?: [NumLike, NumLike];
22
+ blockRange?: [NumLike, NumLike];
23
+ };
24
+ withData?: boolean;
25
+ };
26
+ export declare class ClientIndexerSearchKey {
27
+ script: Script;
28
+ scriptType: "lock" | "type";
29
+ scriptSearchMode: "prefix" | "exact" | "partial" | undefined;
30
+ filter: {
31
+ script?: Script;
32
+ scriptLenRange?: [Num, Num];
33
+ outputData?: Hex;
34
+ outputDataSearchMode?: "prefix" | "exact" | "partial";
35
+ outputDataLenRange?: [Num, Num];
36
+ outputCapacityRange?: [Num, Num];
37
+ blockRange?: [Num, Num];
38
+ } | undefined;
39
+ withData: boolean | undefined;
40
+ constructor(script: Script, scriptType: "lock" | "type", scriptSearchMode: "prefix" | "exact" | "partial" | undefined, filter: {
41
+ script?: Script;
42
+ scriptLenRange?: [Num, Num];
43
+ outputData?: Hex;
44
+ outputDataSearchMode?: "prefix" | "exact" | "partial";
45
+ outputDataLenRange?: [Num, Num];
46
+ outputCapacityRange?: [Num, Num];
47
+ blockRange?: [Num, Num];
48
+ } | undefined, withData: boolean | undefined);
49
+ static from(keyLike: ClientIndexerSearchKeyLike): ClientIndexerSearchKey;
50
+ }
51
+ export type ClientFindCellsResponse = {
52
+ lastCursor: string;
53
+ cells: Cell[];
7
54
  };
8
55
  //# sourceMappingURL=clientTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,yBAAyB,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,WAAW,GACX,SAAS,GACT,UAAU,CAAC;AACf,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1,27 @@
1
- export {};
1
+ import { Script } from "../ckb";
2
+ import { hexFrom } from "../hex";
3
+ import { numFrom } from "../num";
4
+ import { apply } from "../utils";
5
+ function rangeFrom([a, b]) {
6
+ return [numFrom(a), numFrom(b)];
7
+ }
8
+ export class ClientIndexerSearchKey {
9
+ constructor(script, scriptType, scriptSearchMode, filter, withData) {
10
+ this.script = script;
11
+ this.scriptType = scriptType;
12
+ this.scriptSearchMode = scriptSearchMode;
13
+ this.filter = filter;
14
+ this.withData = withData;
15
+ }
16
+ static from(keyLike) {
17
+ return new ClientIndexerSearchKey(Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, apply((filter) => ({
18
+ script: apply(Script.from, filter.script),
19
+ scriptLenRange: apply(rangeFrom, filter.scriptLenRange),
20
+ outputData: apply(hexFrom, filter.outputData),
21
+ outputDataSearchMode: filter.outputDataSearchMode,
22
+ outputDataLenRange: apply(rangeFrom, filter.outputDataLenRange),
23
+ outputCapacityRange: apply(rangeFrom, filter.outputCapacityRange),
24
+ blockRange: apply(rangeFrom, filter.blockRange),
25
+ }), keyLike.filter), keyLike.withData);
26
+ }
27
+ }
@@ -1,7 +1,8 @@
1
1
  import { TransactionLike } from "../../ckb";
2
2
  import { Hex, HexLike } from "../../hex";
3
+ import { NumLike } from "../../num";
3
4
  import { Client } from "../client";
4
- import { ClientTransactionResponse, OutputsValidator } from "../clientTypes";
5
+ import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes";
5
6
  import { JsonRpcPayload } from "./advanced";
6
7
  /**
7
8
  * An abstract class implementing JSON-RPC client functionality for a specific URL and timeout.
@@ -38,6 +39,13 @@ export declare abstract class ClientJsonRpc extends Client {
38
39
  * @returns The transaction with status.
39
40
  */
40
41
  getTransaction: (txHash: HexLike) => Promise<ClientTransactionResponse>;
42
+ /**
43
+ * find cells from node.
44
+ *
45
+ * @param txHash - The hash of the transaction.
46
+ * @returns The found cells.
47
+ */
48
+ findCellsPaged: (key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: NumLike, after?: string) => Promise<ClientFindCellsResponse>;
41
49
  /**
42
50
  * Builds a sender function for a JSON-RPC method.
43
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAC;AA0BjE;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAS9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B;;;;;OAKG;gBAGgB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAKlC;;;;OAIG;IAEH,MAAM;IAIN;;;;;;OAMG;IAEH,eAAe,gBAKA,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,cAAc,WAIA,OAAO,KAAK,QAAQ,yBAAyB,CAAC,CAAC;IAE7D;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,YAEd,OAAO,EAAE;IAUjC;;;;;;;OAOG;IAEG,IAAI,CAAC,OAAO,EAAE,cAAc;IA4BlC;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,OAAO,EAAY,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAC;AA0BjE;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAS9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B;;;;;OAKG;gBAGgB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAKlC;;;;OAIG;IAEH,MAAM;IAIN;;;;;;OAMG;IAEH,eAAe,gBAKA,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,cAAc,WAIA,OAAO,KAAK,QAAQ,yBAAyB,CAAC,CAAC;IAE7D;;;;;OAKG;IAEH,cAAc,QASP,0BAA0B,UACvB,KAAK,GAAG,MAAM,UACd,OAAO,UACP,MAAM,KACX,QAAQ,uBAAuB,CAAC,CAAC;IAEtC;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,YAEd,OAAO,EAAE;IAkBjC;;;;;;;OAOG;IAEG,IAAI,CAAC,OAAO,EAAE,cAAc;IA4BlC;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}