@ckb-ccc/core 1.11.4 → 1.12.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 (64) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/ckb/transaction.d.ts +160 -29
  3. package/dist/ckb/transaction.d.ts.map +1 -1
  4. package/dist/ckb/transaction.js +185 -39
  5. package/dist/client/jsonRpc/client.d.ts +1 -1
  6. package/dist/client/jsonRpc/client.d.ts.map +1 -1
  7. package/dist/client/jsonRpc/client.js +4 -1
  8. package/dist/client/jsonRpc/transformers.d.ts +1 -1
  9. package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
  10. package/dist/client/jsonRpc/transformers.js +2 -1
  11. package/dist/jsonRpc/requestor.js +1 -1
  12. package/dist/molecule/entity.d.ts +3 -3
  13. package/dist/molecule/entity.d.ts.map +1 -1
  14. package/dist/molecule/entity.js +1 -1
  15. package/dist/signer/btc/verify.d.ts +21 -0
  16. package/dist/signer/btc/verify.d.ts.map +1 -1
  17. package/dist/signer/btc/verify.js +38 -2
  18. package/dist/signer/doge/signerDogePrivateKey.d.ts.map +1 -1
  19. package/dist/signer/doge/signerDogePrivateKey.js +2 -2
  20. package/dist/signer/doge/verify.d.ts +12 -1
  21. package/dist/signer/doge/verify.d.ts.map +1 -1
  22. package/dist/signer/doge/verify.js +15 -5
  23. package/dist/signer/nostr/verify.js +4 -4
  24. package/dist/signer/signer/index.d.ts +14 -5
  25. package/dist/signer/signer/index.d.ts.map +1 -1
  26. package/dist/signer/signer/index.js +19 -11
  27. package/dist.commonjs/ckb/transaction.d.ts +160 -29
  28. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  29. package/dist.commonjs/ckb/transaction.js +187 -40
  30. package/dist.commonjs/client/jsonRpc/client.d.ts +1 -1
  31. package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
  32. package/dist.commonjs/client/jsonRpc/client.js +4 -1
  33. package/dist.commonjs/client/jsonRpc/transformers.d.ts +1 -1
  34. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
  35. package/dist.commonjs/client/jsonRpc/transformers.js +2 -1
  36. package/dist.commonjs/jsonRpc/requestor.js +1 -1
  37. package/dist.commonjs/molecule/entity.d.ts +3 -3
  38. package/dist.commonjs/molecule/entity.d.ts.map +1 -1
  39. package/dist.commonjs/molecule/entity.js +1 -1
  40. package/dist.commonjs/signer/btc/verify.d.ts +21 -0
  41. package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
  42. package/dist.commonjs/signer/btc/verify.js +40 -2
  43. package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +1 -1
  44. package/dist.commonjs/signer/doge/signerDogePrivateKey.js +2 -2
  45. package/dist.commonjs/signer/doge/verify.d.ts +12 -1
  46. package/dist.commonjs/signer/doge/verify.d.ts.map +1 -1
  47. package/dist.commonjs/signer/doge/verify.js +15 -4
  48. package/dist.commonjs/signer/nostr/verify.js +5 -5
  49. package/dist.commonjs/signer/signer/index.d.ts +14 -5
  50. package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
  51. package/dist.commonjs/signer/signer/index.js +21 -13
  52. package/package.json +3 -4
  53. package/{prettier.config.mjs → prettier.config.cjs} +2 -4
  54. package/src/ckb/transaction.ts +254 -80
  55. package/src/client/jsonRpc/client.ts +5 -2
  56. package/src/client/jsonRpc/transformers.ts +6 -1
  57. package/src/jsonRpc/requestor.ts +2 -2
  58. package/src/molecule/entity.ts +10 -9
  59. package/src/signer/btc/verify.ts +52 -3
  60. package/src/signer/doge/signerDogePrivateKey.ts +2 -2
  61. package/src/signer/doge/verify.ts +23 -7
  62. package/src/signer/nostr/verify.ts +4 -4
  63. package/src/signer/signer/index.ts +20 -10
  64. /package/{vitest.config.ts → vitest.config.mts} +0 -0
@@ -119,7 +119,10 @@ export class ClientJsonRpc extends Client {
119
119
  * @param validator - "passthrough": Disable validation. "well_known_scripts_only": Only accept well known scripts in the transaction.
120
120
  * @returns Transaction hash.
121
121
  */
122
- this.sendTransactionNoCache = this.buildSender("send_transaction", [JsonRpcTransformers.transactionFrom], hexFrom);
122
+ this.sendTransactionNoCache = this.buildSender("send_transaction", [
123
+ JsonRpcTransformers.transactionFrom,
124
+ (validator) => validator ?? undefined,
125
+ ], hexFrom);
123
126
  /**
124
127
  * Get a transaction from node.
125
128
  *
@@ -14,7 +14,7 @@ export declare class JsonRpcTransformers {
14
14
  static outPointTo(outPoint: JsonRpcOutPoint): OutPoint;
15
15
  static cellInputFrom(cellInputLike: CellInputLike): JsonRpcCellInput;
16
16
  static cellInputTo(cellInput: JsonRpcCellInput): CellInput;
17
- static cellOutputFrom(cellOutput: CellOutputLike): JsonRpcCellOutput;
17
+ static cellOutputFrom(cellOutputLike: CellOutputLike, outputData?: HexLike | null): JsonRpcCellOutput;
18
18
  static cellOutputTo(cellOutput: JsonRpcCellOutput): CellOutput;
19
19
  static cellDepFrom(cellDep: CellDepLike): JsonRpcCellDep;
20
20
  static cellDepTo(cellDep: JsonRpcCellDep): CellDep;
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/transformers.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,OAAO,EACP,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAqC,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAE9B,4BAA4B,EAC5B,0BAA0B,EAE1B,qCAAqC,EACrC,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,6CAA6C,EAC7C,sCAAsC,EACtC,uBAAuB,EACvB,6BAA6B,EAC7B,kCAAkC,EAClC,eAAe,EACf,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe;IAG5D,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ;IAGtD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc;IAQxD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQlD,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa;IAQxD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAO9C,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,eAAe;IAOhE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ;IAMtD,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,gBAAgB;IASpE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS;IAM1D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB;IAOpE,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,UAAU;IAO9D,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc;IAMxD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAMlD,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB;IAYnE,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,kBAAkB,GAAG,WAAW;IAWzD,MAAM,CAAC,qBAAqB,CAAC,EAC3B,MAAM,EACN,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EACjE,WAAW,GACZ,EAAE;QACD,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE;YACT,MAAM,EAAE,iBAAiB,CAAC;YAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;KACxC,GAAG,yBAAyB,GAAG,SAAS;IAezC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB;IAsBnE,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB;IAM/D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;IAUhD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAGxD,MAAM,CAAC,0BAA0B,CAC/B,MAAM,EAAE,4BAA4B,GACnC,6BAA6B;IAoBhC,MAAM,CAAC,oBAAoB,CACzB,OAAO,EAAE,0BAA0B,GAClC,uBAAuB;IAU1B,MAAM,CAAC,mBAAmB,CAAC,EACzB,WAAW,EACX,OAAO,GACR,EAAE;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE;YACP,SAAS,EAAE,eAAe,CAAC;YAC3B,MAAM,EAAE,iBAAiB,CAAC;YAC1B,WAAW,CAAC,EAAE,GAAG,CAAC;SACnB,EAAE,CAAC;KACL,GAAG,uBAAuB;IAY3B,MAAM,CAAC,+BAA+B,CACpC,OAAO,EAAE,qCAAqC,GAC7C,kCAAkC;IAUrC,MAAM,CAAC,0BAA0B,CAAC,EAChC,WAAW,EACX,OAAO,GACR,EACG,sCAAsC,GACtC,6CAA6C,GAC7C,8BAA8B,GAC9B,qCAAqC;CAqC1C"}
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/transformers.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,8 @@ export class JsonRpcTransformers {
68
68
  since: cellInput.since,
69
69
  });
70
70
  }
71
- static cellOutputFrom(cellOutput) {
71
+ static cellOutputFrom(cellOutputLike, outputData) {
72
+ const cellOutput = CellOutput.from(cellOutputLike, outputData);
72
73
  return {
73
74
  capacity: numToHex(cellOutput.capacity),
74
75
  lock: JsonRpcTransformers.scriptFrom(cellOutput.lock),
@@ -86,7 +86,7 @@ export class RequestorJsonRpc {
86
86
  if (res.id !== payload.id) {
87
87
  throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
88
88
  }
89
- if (res.error) {
89
+ if (res.error != null) {
90
90
  throw res.error;
91
91
  }
92
92
  return res.result;
@@ -102,11 +102,11 @@ export declare abstract class Entity {
102
102
  * }
103
103
  * ```
104
104
  */
105
- export declare function codec<Encodable, TypeLike extends Encodable, Decoded extends TypeLike, Type extends object & TypeLike, ConstructorType extends Constructor<Type> & {
105
+ export declare function codec<Encodable, TypeLike extends Encodable, Decoded extends TypeLike>(codec: Codec<Encodable, Decoded>): <Type extends TypeLike, ConstructorType extends Constructor<Type> & {
106
106
  from(decoded: TypeLike): Type;
107
107
  byteLength?: number;
108
108
  encode(encodable: TypeLike): Bytes;
109
- decode(bytesLike: BytesLike): TypeLike;
109
+ decode(bytesLike: BytesLike): Type;
110
110
  fromBytes(bytes: BytesLike): Type;
111
- }>(codec: Codec<Encodable, Decoded>): (Constructor: ConstructorType) => ConstructorType;
111
+ }>(Constructor: ConstructorType, ..._: unknown[]) => ConstructorType;
112
112
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/molecule/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;GAGG;AACH,8BAAsB,MAAM;IAC1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW;QA6D1C;;;;WAIG;mBACQ,KAAK;QAMhB;;;;WAIG;iBACM,OAAO;QAMhB;;;;;WAKG;kBACO,WAAW,GAAG,OAAO;QAe/B;;;;WAIG;gBACK,GAAG;;QA3GX;;;;WAIG;qBACiB,MAAM;QAC1B;;;;;;;WAOG;kBACc,WAAW,GAAG,KAAK;QAKpC;;;;;;;WAOG;kBACc,SAAS,GAAG,OAAO;QAMpC;;;;;;;WAOG;0BACsB,SAAS,GAAG,OAAO;QAM5C;;;;;;;WAOG;gBACY,WAAW,GAAG,OAAO;;IA4DxC,QAAQ,CAAC,OAAO,IAAI,KAAK;IACzB,QAAQ,CAAC,IAAI,IAAI,GAAG;IACpB,QAAQ,CAAC,KAAK,IAAI,MAAM;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CACnB,SAAS,EACT,QAAQ,SAAS,SAAS,EAC1B,OAAO,SAAS,QAAQ,EACxB,IAAI,SAAS,MAAM,GAAG,QAAQ,EAC9B,eAAe,SAAS,WAAW,CAAC,IAAI,CAAC,GAAG;IAC1C,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC;IACvC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACnC,EACD,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IACf,aAAa,eAAe,qBAc9C"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/molecule/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;GAGG;AACH,8BAAsB,MAAM;IAC1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW;QA6D1C;;;;WAIG;mBACQ,KAAK;QAMhB;;;;WAIG;iBACM,OAAO;QAMhB;;;;;WAKG;kBACO,WAAW,GAAG,OAAO;QAe/B;;;;WAIG;gBACK,GAAG;;QA3GX;;;;WAIG;qBACiB,MAAM;QAC1B;;;;;;;WAOG;kBACc,WAAW,GAAG,KAAK;QAKpC;;;;;;;WAOG;kBACc,SAAS,GAAG,OAAO;QAMpC;;;;;;;WAOG;0BACsB,SAAS,GAAG,OAAO;QAM5C;;;;;;;WAOG;gBACY,WAAW,GAAG,OAAO;;IA4DxC,QAAQ,CAAC,OAAO,IAAI,KAAK;IACzB,QAAQ,CAAC,IAAI,IAAI,GAAG;IACpB,QAAQ,CAAC,KAAK,IAAI,MAAM;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CACnB,SAAS,EACT,QAAQ,SAAS,SAAS,EAC1B,OAAO,SAAS,QAAQ,EACxB,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAE9B,IAAI,SAAS,QAAQ,EACrB,eAAe,SAAS,WAAW,CAAC,IAAI,CAAC,GAAG;IAC1C,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACnC,EACD,aAAa,eAAe,EAAE,GAAG,GAAG,OAAO,EAAE,qBAchD"}
@@ -115,7 +115,7 @@ export class Entity {
115
115
  * ```
116
116
  */
117
117
  export function codec(codec) {
118
- return function (Constructor) {
118
+ return function (Constructor, ..._) {
119
119
  Constructor.byteLength = codec.byteLength;
120
120
  Constructor.encode = function (encodable) {
121
121
  return codec.encode(encodable);
@@ -1,5 +1,26 @@
1
1
  import { Bytes, BytesLike } from "../../bytes/index.js";
2
2
  import { Hex } from "../../hex/index.js";
3
+ import { NumLike } from "../../num/index.js";
4
+ /**
5
+ * Encodes a number into a variable-length byte array according to the Bitcoin protocol.
6
+ * This format is used for encoding lengths of data, such as script lengths.
7
+ *
8
+ * @param len - The number to encode. Can be a NumLike.
9
+ * @returns The encoded length as a Bytes.
10
+ * @public
11
+ */
12
+ export declare function btcVarLengthBytesFrom(len: NumLike): Bytes;
13
+ /**
14
+ * Computes the message hash for Bitcoin ECDSA signatures.
15
+ * This function follows the Bitcoin message signing standard, which involves
16
+ * prefixing the message with a magic string and its length, then double SHA256 hashing the result.
17
+ *
18
+ * @param message - The message to be hashed. Can be a string or BytesLike.
19
+ * @param messagePrefix - Optional. A custom prefix to use instead of the default "\u0018Bitcoin Signed Message:\n".
20
+ * @returns The Bitcoin hash of the prefixed message as Bytes.
21
+ * @public
22
+ */
23
+ export declare function messageHashBtcEcdsa(message: string | BytesLike, messagePrefix?: string | BytesLike): Bytes;
3
24
  /**
4
25
  * @public
5
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/btc/verify.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,GAAG,EAAW,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAEjE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAWT"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/btc/verify.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA0B,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,GAAG,EAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAyB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAUzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GACjC,KAAK,CAcP;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAEjE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAWT"}
@@ -1,10 +1,46 @@
1
1
  import { secp256k1 } from "@noble/curves/secp256k1";
2
2
  import { ripemd160 } from "@noble/hashes/legacy.js";
3
3
  import { sha256 } from "@noble/hashes/sha2.js";
4
- import { magicHash } from "bitcoinjs-message";
5
4
  import bs58check from "bs58check";
6
5
  import { bytesConcat, bytesFrom } from "../../bytes/index.js";
7
6
  import { hexFrom } from "../../hex/index.js";
7
+ import { numFrom, numLeToBytes } from "../../num/index.js";
8
+ /**
9
+ * Encodes a number into a variable-length byte array according to the Bitcoin protocol.
10
+ * This format is used for encoding lengths of data, such as script lengths.
11
+ *
12
+ * @param len - The number to encode. Can be a NumLike.
13
+ * @returns The encoded length as a Bytes.
14
+ * @public
15
+ */
16
+ export function btcVarLengthBytesFrom(len) {
17
+ const num = numFrom(len);
18
+ return num < 0xfd
19
+ ? numLeToBytes(num, 1)
20
+ : num <= 0xffff
21
+ ? bytesConcat([0xfd], numLeToBytes(num, 2))
22
+ : num <= 0xffffffff
23
+ ? bytesConcat([0xfe], numLeToBytes(num, 4))
24
+ : bytesConcat([0xff], numLeToBytes(num, 8));
25
+ }
26
+ /**
27
+ * Computes the message hash for Bitcoin ECDSA signatures.
28
+ * This function follows the Bitcoin message signing standard, which involves
29
+ * prefixing the message with a magic string and its length, then double SHA256 hashing the result.
30
+ *
31
+ * @param message - The message to be hashed. Can be a string or BytesLike.
32
+ * @param messagePrefix - Optional. A custom prefix to use instead of the default "\u0018Bitcoin Signed Message:\n".
33
+ * @returns The Bitcoin hash of the prefixed message as Bytes.
34
+ * @public
35
+ */
36
+ export function messageHashBtcEcdsa(message, messagePrefix) {
37
+ const prefix = messagePrefix ?? "\u0018Bitcoin Signed Message:\n";
38
+ const rawPrefix = typeof prefix === "string" ? bytesFrom(prefix, "utf8") : bytesFrom(prefix);
39
+ const rawMsg = typeof message === "string"
40
+ ? bytesFrom(message, "utf8")
41
+ : bytesFrom(message);
42
+ return sha256(sha256(bytesConcat(rawPrefix, btcVarLengthBytesFrom(rawMsg.length), rawMsg)));
43
+ }
8
44
  /**
9
45
  * @public
10
46
  */
@@ -29,5 +65,5 @@ export function btcPublicKeyFromP2pkhAddress(address) {
29
65
  export function verifyMessageBtcEcdsa(message, signature, publicKey) {
30
66
  const challenge = typeof message === "string" ? message : hexFrom(message).slice(2);
31
67
  const rawSign = bytesFrom(signature, "base64").slice(1);
32
- return secp256k1.verify(bytesFrom(rawSign), magicHash(challenge), bytesFrom(publicKey));
68
+ return secp256k1.verify(bytesFrom(rawSign), messageHashBtcEcdsa(challenge), bytesFrom(publicKey));
33
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signerDogePrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/signerDogePrivateKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAW,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;aAYhC,WAAW;IAX7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAEnC;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,EACL,WAAW,SAAO;IASpC;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAItC;;;;;;;;;OASG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAOvC;;;;;;OAMG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAa/D"}
1
+ {"version":3,"file":"signerDogePrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/signerDogePrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAW,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;aAYhC,WAAW;IAX7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAEnC;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,EACL,WAAW,SAAO;IASpC;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAItC;;;;;;;;;OASG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAOvC;;;;;;OAMG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAa/D"}
@@ -1,9 +1,9 @@
1
1
  import { secp256k1 } from "@noble/curves/secp256k1";
2
- import { magicHash } from "bitcoinjs-message";
3
2
  import { bytesConcat, bytesFrom, bytesTo, } from "../../bytes/index.js";
4
3
  import { hexFrom } from "../../hex/index.js";
5
4
  import { btcP2pkhAddressFromPublicKey } from "../btc/verify.js";
6
5
  import { SignerDoge } from "./signerDoge.js";
6
+ import { messageHashDogeEcdsa } from "./verify.js";
7
7
  /**
8
8
  * A class extending SignerDoge that provides access to a Doge address.
9
9
  * @public
@@ -62,7 +62,7 @@ export class SignerDogePrivateKey extends SignerDoge {
62
62
  */
63
63
  async signMessageRaw(msg) {
64
64
  const challenge = typeof msg === "string" ? msg : hexFrom(msg).slice(2);
65
- const signature = secp256k1.sign(magicHash(challenge, "\x19Dogecoin Signed Message:\n"), this.privateKey);
65
+ const signature = secp256k1.sign(messageHashDogeEcdsa(challenge), this.privateKey);
66
66
  return bytesTo(bytesConcat([31 + signature.recovery], signature.toCompactRawBytes()), "base64");
67
67
  }
68
68
  }
@@ -1,4 +1,15 @@
1
- import { BytesLike } from "../../bytes/index.js";
1
+ import { Bytes, BytesLike } from "../../bytes/index.js";
2
+ /**
3
+ * Computes the message hash for Dogecoin ECDSA signatures.
4
+ * This function follows the Dogecoin message signing standard, which involves
5
+ * prefixing the message with a magic string and its length, then double SHA256 hashing the result.
6
+ *
7
+ * @param message - The message to be hashed. Can be a string or BytesLike.
8
+ * @param messagePrefix - Optional. A custom prefix to use instead of the default "\x19Dogecoin Signed Message:\n".
9
+ * @returns The Dogecoin hash of the prefixed message as Bytes.
10
+ * @public
11
+ */
12
+ export declare function messageHashDogeEcdsa(message: string | BytesLike, messagePrefix?: string | BytesLike): Bytes;
2
13
  /**
3
14
  * @public
4
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/verify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAO5D;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAuBT"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQnE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GACjC,KAAK,CAKP;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAmBT"}
@@ -1,8 +1,20 @@
1
1
  import { secp256k1 } from "@noble/curves/secp256k1";
2
- import { magicHash } from "bitcoinjs-message";
3
2
  import { bytesFrom } from "../../bytes/index.js";
4
3
  import { hexFrom } from "../../hex/index.js";
5
- import { btcEcdsaPublicKeyHash, btcPublicKeyFromP2pkhAddress, } from "../btc/verify.js";
4
+ import { btcEcdsaPublicKeyHash, btcPublicKeyFromP2pkhAddress, messageHashBtcEcdsa, } from "../btc/verify.js";
5
+ /**
6
+ * Computes the message hash for Dogecoin ECDSA signatures.
7
+ * This function follows the Dogecoin message signing standard, which involves
8
+ * prefixing the message with a magic string and its length, then double SHA256 hashing the result.
9
+ *
10
+ * @param message - The message to be hashed. Can be a string or BytesLike.
11
+ * @param messagePrefix - Optional. A custom prefix to use instead of the default "\x19Dogecoin Signed Message:\n".
12
+ * @returns The Dogecoin hash of the prefixed message as Bytes.
13
+ * @public
14
+ */
15
+ export function messageHashDogeEcdsa(message, messagePrefix) {
16
+ return messageHashBtcEcdsa(message, messagePrefix ?? "\x19Dogecoin Signed Message:\n");
17
+ }
6
18
  /**
7
19
  * @public
8
20
  */
@@ -13,7 +25,5 @@ export function verifyMessageDogeEcdsa(message, signature, address) {
13
25
  const rawSign = signatureBytes.slice(1);
14
26
  const sig = secp256k1.Signature.fromCompact(hexFrom(rawSign).slice(2)).addRecoveryBit(recoveryBit - 31);
15
27
  return (btcPublicKeyFromP2pkhAddress(address) ===
16
- hexFrom(btcEcdsaPublicKeyHash(sig
17
- .recoverPublicKey(magicHash(challenge, "\x19Dogecoin Signed Message:\n"))
18
- .toHex())));
28
+ hexFrom(btcEcdsaPublicKeyHash(sig.recoverPublicKey(messageHashDogeEcdsa(challenge)).toHex())));
19
29
  }
@@ -1,5 +1,5 @@
1
1
  import { schnorr } from "@noble/curves/secp256k1";
2
- import { sha256 } from "@noble/hashes/sha256";
2
+ import { sha256 } from "@noble/hashes/sha2.js";
3
3
  import { bech32 } from "bech32";
4
4
  import { bytesFrom } from "../../bytes/index.js";
5
5
  import { hexFrom } from "../../hex/index.js";
@@ -43,11 +43,11 @@ export function nostrEventHash(event) {
43
43
  }
44
44
  export function verifyMessageNostrEvent(message, signature, address) {
45
45
  const { words } = bech32.decode(address);
46
- const publicKey = hexFrom(bech32.fromWords(words)).slice(2);
46
+ const pubkey = hexFrom(bech32.fromWords(words)).slice(2);
47
47
  const event = buildNostrEventFromMessage(message);
48
- const eventHash = nostrEventHash(event);
48
+ const eventHash = nostrEventHash({ ...event, pubkey });
49
49
  try {
50
- return schnorr.verify(hexFrom(signature).slice(2), eventHash, publicKey);
50
+ return schnorr.verify(hexFrom(signature).slice(2), eventHash, pubkey);
51
51
  }
52
52
  catch (_) {
53
53
  return false;
@@ -211,13 +211,22 @@ export declare abstract class Signer {
211
211
  */
212
212
  signTransaction(tx: TransactionLike): Promise<Transaction>;
213
213
  /**
214
- * prepare a transaction before signing. This method is not implemented and should be overridden by subclasses.
214
+ * Prepares a transaction before signing.
215
+ * This method can be overridden by subclasses to perform any necessary steps,
216
+ * such as adding cell dependencies or witnesses, before the transaction is signed.
217
+ * The default implementation converts the {@link TransactionLike} object to a {@link Transaction} object
218
+ * without modification.
215
219
  *
216
- * @param _ - The transaction to prepare, represented as a TransactionLike object.
217
- * @returns A promise that resolves to the prepared Transaction object.
218
- * @throws Will throw an error if not implemented.
220
+ * @remarks
221
+ * Note that this default implementation does not add any cell dependencies or dummy witnesses.
222
+ * This may lead to an underestimation of transaction size and fees if used with methods
223
+ * like `Transaction.completeFee`. Subclasses for signers that are intended to sign
224
+ * transactions should override this method to perform necessary preparations.
225
+ *
226
+ * @param tx - The transaction to prepare.
227
+ * @returns A promise that resolves to the prepared {@link Transaction} object.
219
228
  */
220
- prepareTransaction(_: TransactionLike): Promise<Transaction>;
229
+ prepareTransaction(tx: TransactionLike): Promise<Transaction>;
221
230
  /**
222
231
  * Signs a transaction without preparing information for it. This method is not implemented and should be overridden by subclasses.
223
232
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Transaction } from "../../ckb/index.js";
1
2
  import { verifyMessageBtcEcdsa } from "../btc/index.js";
2
3
  import { verifyMessageCkbSecp256k1 } from "../ckb/verifyCkbSecp256k1.js";
3
4
  import { verifyMessageJoyId } from "../ckb/verifyJoyId.js";
@@ -55,11 +56,9 @@ export class Signer {
55
56
  // undefined otherwise
56
57
  matchNetworkPreference(preferences, currentNetwork) {
57
58
  if (currentNetwork !== undefined &&
58
- preferences.some(({ signerType, addressPrefix, network }) => {
59
- signerType === this.type &&
60
- addressPrefix === this.client.addressPrefix &&
61
- network === currentNetwork;
62
- })) {
59
+ preferences.some(({ signerType, addressPrefix, network }) => signerType === this.type &&
60
+ addressPrefix === this.client.addressPrefix &&
61
+ network === currentNetwork)) {
63
62
  return;
64
63
  }
65
64
  return preferences.find(({ signerType, addressPrefix }) => signerType === this.type && addressPrefix === this.client.addressPrefix);
@@ -265,14 +264,23 @@ export class Signer {
265
264
  return this.signOnlyTransaction(preparedTx);
266
265
  }
267
266
  /**
268
- * prepare a transaction before signing. This method is not implemented and should be overridden by subclasses.
267
+ * Prepares a transaction before signing.
268
+ * This method can be overridden by subclasses to perform any necessary steps,
269
+ * such as adding cell dependencies or witnesses, before the transaction is signed.
270
+ * The default implementation converts the {@link TransactionLike} object to a {@link Transaction} object
271
+ * without modification.
269
272
  *
270
- * @param _ - The transaction to prepare, represented as a TransactionLike object.
271
- * @returns A promise that resolves to the prepared Transaction object.
272
- * @throws Will throw an error if not implemented.
273
+ * @remarks
274
+ * Note that this default implementation does not add any cell dependencies or dummy witnesses.
275
+ * This may lead to an underestimation of transaction size and fees if used with methods
276
+ * like `Transaction.completeFee`. Subclasses for signers that are intended to sign
277
+ * transactions should override this method to perform necessary preparations.
278
+ *
279
+ * @param tx - The transaction to prepare.
280
+ * @returns A promise that resolves to the prepared {@link Transaction} object.
273
281
  */
274
- prepareTransaction(_) {
275
- throw Error("Signer.prepareTransaction not implemented");
282
+ async prepareTransaction(tx) {
283
+ return Transaction.from(tx);
276
284
  }
277
285
  /**
278
286
  * Signs a transaction without preparing information for it. This method is not implemented and should be overridden by subclasses.