@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.
- package/CHANGELOG.md +38 -0
- package/dist/ckb/transaction.d.ts +160 -29
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +185 -39
- package/dist/client/jsonRpc/client.d.ts +1 -1
- package/dist/client/jsonRpc/client.d.ts.map +1 -1
- package/dist/client/jsonRpc/client.js +4 -1
- package/dist/client/jsonRpc/transformers.d.ts +1 -1
- package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
- package/dist/client/jsonRpc/transformers.js +2 -1
- package/dist/jsonRpc/requestor.js +1 -1
- package/dist/molecule/entity.d.ts +3 -3
- package/dist/molecule/entity.d.ts.map +1 -1
- package/dist/molecule/entity.js +1 -1
- package/dist/signer/btc/verify.d.ts +21 -0
- package/dist/signer/btc/verify.d.ts.map +1 -1
- package/dist/signer/btc/verify.js +38 -2
- package/dist/signer/doge/signerDogePrivateKey.d.ts.map +1 -1
- package/dist/signer/doge/signerDogePrivateKey.js +2 -2
- package/dist/signer/doge/verify.d.ts +12 -1
- package/dist/signer/doge/verify.d.ts.map +1 -1
- package/dist/signer/doge/verify.js +15 -5
- package/dist/signer/nostr/verify.js +4 -4
- package/dist/signer/signer/index.d.ts +14 -5
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +19 -11
- package/dist.commonjs/ckb/transaction.d.ts +160 -29
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +187 -40
- package/dist.commonjs/client/jsonRpc/client.d.ts +1 -1
- package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/client.js +4 -1
- package/dist.commonjs/client/jsonRpc/transformers.d.ts +1 -1
- package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/transformers.js +2 -1
- package/dist.commonjs/jsonRpc/requestor.js +1 -1
- package/dist.commonjs/molecule/entity.d.ts +3 -3
- package/dist.commonjs/molecule/entity.d.ts.map +1 -1
- package/dist.commonjs/molecule/entity.js +1 -1
- package/dist.commonjs/signer/btc/verify.d.ts +21 -0
- package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/verify.js +40 -2
- package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +1 -1
- package/dist.commonjs/signer/doge/signerDogePrivateKey.js +2 -2
- package/dist.commonjs/signer/doge/verify.d.ts +12 -1
- package/dist.commonjs/signer/doge/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/doge/verify.js +15 -4
- package/dist.commonjs/signer/nostr/verify.js +5 -5
- package/dist.commonjs/signer/signer/index.d.ts +14 -5
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +21 -13
- package/package.json +3 -4
- package/{prettier.config.mjs → prettier.config.cjs} +2 -4
- package/src/ckb/transaction.ts +254 -80
- package/src/client/jsonRpc/client.ts +5 -2
- package/src/client/jsonRpc/transformers.ts +6 -1
- package/src/jsonRpc/requestor.ts +2 -2
- package/src/molecule/entity.ts +10 -9
- package/src/signer/btc/verify.ts +52 -3
- package/src/signer/doge/signerDogePrivateKey.ts +2 -2
- package/src/signer/doge/verify.ts +23 -7
- package/src/signer/nostr/verify.ts +4 -4
- package/src/signer/signer/index.ts +20 -10
- /package/{vitest.config.ts → vitest.config.mts} +0 -0
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/transformers.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,7 +71,8 @@ class JsonRpcTransformers {
|
|
|
71
71
|
since: cellInput.since,
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
-
static cellOutputFrom(
|
|
74
|
+
static cellOutputFrom(cellOutputLike, outputData) {
|
|
75
|
+
const cellOutput = index_js_2.CellOutput.from(cellOutputLike, outputData);
|
|
75
76
|
return {
|
|
76
77
|
capacity: (0, index_js_4.numToHex)(cellOutput.capacity),
|
|
77
78
|
lock: JsonRpcTransformers.scriptFrom(cellOutput.lock),
|
|
@@ -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
|
|
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):
|
|
109
|
+
decode(bytesLike: BytesLike): Type;
|
|
110
110
|
fromBytes(bytes: BytesLike): Type;
|
|
111
|
-
}>(
|
|
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,
|
|
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"}
|
|
@@ -120,7 +120,7 @@ exports.Entity = Entity;
|
|
|
120
120
|
* ```
|
|
121
121
|
*/
|
|
122
122
|
function codec(codec) {
|
|
123
|
-
return function (Constructor) {
|
|
123
|
+
return function (Constructor, ..._) {
|
|
124
124
|
Constructor.byteLength = codec.byteLength;
|
|
125
125
|
Constructor.encode = function (encodable) {
|
|
126
126
|
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":"
|
|
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"}
|
|
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.btcVarLengthBytesFrom = btcVarLengthBytesFrom;
|
|
7
|
+
exports.messageHashBtcEcdsa = messageHashBtcEcdsa;
|
|
6
8
|
exports.btcEcdsaPublicKeyHash = btcEcdsaPublicKeyHash;
|
|
7
9
|
exports.btcP2pkhAddressFromPublicKey = btcP2pkhAddressFromPublicKey;
|
|
8
10
|
exports.btcPublicKeyFromP2pkhAddress = btcPublicKeyFromP2pkhAddress;
|
|
@@ -10,10 +12,46 @@ exports.verifyMessageBtcEcdsa = verifyMessageBtcEcdsa;
|
|
|
10
12
|
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
11
13
|
const legacy_js_1 = require("@noble/hashes/legacy.js");
|
|
12
14
|
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
13
|
-
const bitcoinjs_message_1 = require("bitcoinjs-message");
|
|
14
15
|
const bs58check_1 = __importDefault(require("bs58check"));
|
|
15
16
|
const index_js_1 = require("../../bytes/index.js");
|
|
16
17
|
const index_js_2 = require("../../hex/index.js");
|
|
18
|
+
const index_js_3 = require("../../num/index.js");
|
|
19
|
+
/**
|
|
20
|
+
* Encodes a number into a variable-length byte array according to the Bitcoin protocol.
|
|
21
|
+
* This format is used for encoding lengths of data, such as script lengths.
|
|
22
|
+
*
|
|
23
|
+
* @param len - The number to encode. Can be a NumLike.
|
|
24
|
+
* @returns The encoded length as a Bytes.
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
function btcVarLengthBytesFrom(len) {
|
|
28
|
+
const num = (0, index_js_3.numFrom)(len);
|
|
29
|
+
return num < 0xfd
|
|
30
|
+
? (0, index_js_3.numLeToBytes)(num, 1)
|
|
31
|
+
: num <= 0xffff
|
|
32
|
+
? (0, index_js_1.bytesConcat)([0xfd], (0, index_js_3.numLeToBytes)(num, 2))
|
|
33
|
+
: num <= 0xffffffff
|
|
34
|
+
? (0, index_js_1.bytesConcat)([0xfe], (0, index_js_3.numLeToBytes)(num, 4))
|
|
35
|
+
: (0, index_js_1.bytesConcat)([0xff], (0, index_js_3.numLeToBytes)(num, 8));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Computes the message hash for Bitcoin ECDSA signatures.
|
|
39
|
+
* This function follows the Bitcoin message signing standard, which involves
|
|
40
|
+
* prefixing the message with a magic string and its length, then double SHA256 hashing the result.
|
|
41
|
+
*
|
|
42
|
+
* @param message - The message to be hashed. Can be a string or BytesLike.
|
|
43
|
+
* @param messagePrefix - Optional. A custom prefix to use instead of the default "\u0018Bitcoin Signed Message:\n".
|
|
44
|
+
* @returns The Bitcoin hash of the prefixed message as Bytes.
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
function messageHashBtcEcdsa(message, messagePrefix) {
|
|
48
|
+
const prefix = messagePrefix ?? "\u0018Bitcoin Signed Message:\n";
|
|
49
|
+
const rawPrefix = typeof prefix === "string" ? (0, index_js_1.bytesFrom)(prefix, "utf8") : (0, index_js_1.bytesFrom)(prefix);
|
|
50
|
+
const rawMsg = typeof message === "string"
|
|
51
|
+
? (0, index_js_1.bytesFrom)(message, "utf8")
|
|
52
|
+
: (0, index_js_1.bytesFrom)(message);
|
|
53
|
+
return (0, sha2_js_1.sha256)((0, sha2_js_1.sha256)((0, index_js_1.bytesConcat)(rawPrefix, btcVarLengthBytesFrom(rawMsg.length), rawMsg)));
|
|
54
|
+
}
|
|
17
55
|
/**
|
|
18
56
|
* @public
|
|
19
57
|
*/
|
|
@@ -38,5 +76,5 @@ function btcPublicKeyFromP2pkhAddress(address) {
|
|
|
38
76
|
function verifyMessageBtcEcdsa(message, signature, publicKey) {
|
|
39
77
|
const challenge = typeof message === "string" ? message : (0, index_js_2.hexFrom)(message).slice(2);
|
|
40
78
|
const rawSign = (0, index_js_1.bytesFrom)(signature, "base64").slice(1);
|
|
41
|
-
return secp256k1_1.secp256k1.verify((0, index_js_1.bytesFrom)(rawSign), (
|
|
79
|
+
return secp256k1_1.secp256k1.verify((0, index_js_1.bytesFrom)(rawSign), messageHashBtcEcdsa(challenge), (0, index_js_1.bytesFrom)(publicKey));
|
|
42
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerDogePrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/signerDogePrivateKey.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SignerDogePrivateKey = void 0;
|
|
4
4
|
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
5
|
-
const bitcoinjs_message_1 = require("bitcoinjs-message");
|
|
6
5
|
const index_js_1 = require("../../bytes/index.js");
|
|
7
6
|
const index_js_2 = require("../../hex/index.js");
|
|
8
7
|
const verify_js_1 = require("../btc/verify.js");
|
|
9
8
|
const signerDoge_js_1 = require("./signerDoge.js");
|
|
9
|
+
const verify_js_2 = require("./verify.js");
|
|
10
10
|
/**
|
|
11
11
|
* A class extending SignerDoge that provides access to a Doge address.
|
|
12
12
|
* @public
|
|
@@ -65,7 +65,7 @@ class SignerDogePrivateKey extends signerDoge_js_1.SignerDoge {
|
|
|
65
65
|
*/
|
|
66
66
|
async signMessageRaw(msg) {
|
|
67
67
|
const challenge = typeof msg === "string" ? msg : (0, index_js_2.hexFrom)(msg).slice(2);
|
|
68
|
-
const signature = secp256k1_1.secp256k1.sign((0,
|
|
68
|
+
const signature = secp256k1_1.secp256k1.sign((0, verify_js_2.messageHashDogeEcdsa)(challenge), this.privateKey);
|
|
69
69
|
return (0, index_js_1.bytesTo)((0, index_js_1.bytesConcat)([31 + signature.recovery], signature.toCompactRawBytes()), "base64");
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -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":"
|
|
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,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.messageHashDogeEcdsa = messageHashDogeEcdsa;
|
|
3
4
|
exports.verifyMessageDogeEcdsa = verifyMessageDogeEcdsa;
|
|
4
5
|
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
5
|
-
const bitcoinjs_message_1 = require("bitcoinjs-message");
|
|
6
6
|
const index_js_1 = require("../../bytes/index.js");
|
|
7
7
|
const index_js_2 = require("../../hex/index.js");
|
|
8
8
|
const verify_js_1 = require("../btc/verify.js");
|
|
9
|
+
/**
|
|
10
|
+
* Computes the message hash for Dogecoin ECDSA signatures.
|
|
11
|
+
* This function follows the Dogecoin message signing standard, which involves
|
|
12
|
+
* prefixing the message with a magic string and its length, then double SHA256 hashing the result.
|
|
13
|
+
*
|
|
14
|
+
* @param message - The message to be hashed. Can be a string or BytesLike.
|
|
15
|
+
* @param messagePrefix - Optional. A custom prefix to use instead of the default "\x19Dogecoin Signed Message:\n".
|
|
16
|
+
* @returns The Dogecoin hash of the prefixed message as Bytes.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
function messageHashDogeEcdsa(message, messagePrefix) {
|
|
20
|
+
return (0, verify_js_1.messageHashBtcEcdsa)(message, messagePrefix ?? "\x19Dogecoin Signed Message:\n");
|
|
21
|
+
}
|
|
9
22
|
/**
|
|
10
23
|
* @public
|
|
11
24
|
*/
|
|
@@ -16,7 +29,5 @@ function verifyMessageDogeEcdsa(message, signature, address) {
|
|
|
16
29
|
const rawSign = signatureBytes.slice(1);
|
|
17
30
|
const sig = secp256k1_1.secp256k1.Signature.fromCompact((0, index_js_2.hexFrom)(rawSign).slice(2)).addRecoveryBit(recoveryBit - 31);
|
|
18
31
|
return ((0, verify_js_1.btcPublicKeyFromP2pkhAddress)(address) ===
|
|
19
|
-
(0, index_js_2.hexFrom)((0, verify_js_1.btcEcdsaPublicKeyHash)(sig
|
|
20
|
-
.recoverPublicKey((0, bitcoinjs_message_1.magicHash)(challenge, "\x19Dogecoin Signed Message:\n"))
|
|
21
|
-
.toHex())));
|
|
32
|
+
(0, index_js_2.hexFrom)((0, verify_js_1.btcEcdsaPublicKeyHash)(sig.recoverPublicKey(messageHashDogeEcdsa(challenge)).toHex())));
|
|
22
33
|
}
|
|
@@ -4,7 +4,7 @@ exports.buildNostrEventFromMessage = buildNostrEventFromMessage;
|
|
|
4
4
|
exports.nostrEventHash = nostrEventHash;
|
|
5
5
|
exports.verifyMessageNostrEvent = verifyMessageNostrEvent;
|
|
6
6
|
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
7
|
-
const
|
|
7
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
8
8
|
const bech32_1 = require("bech32");
|
|
9
9
|
const index_js_1 = require("../../bytes/index.js");
|
|
10
10
|
const index_js_2 = require("../../hex/index.js");
|
|
@@ -44,15 +44,15 @@ function nostrEventHash(event) {
|
|
|
44
44
|
event.tags,
|
|
45
45
|
event.content,
|
|
46
46
|
]);
|
|
47
|
-
return (0,
|
|
47
|
+
return (0, sha2_js_1.sha256)((0, index_js_1.bytesFrom)(serialized, "utf8"));
|
|
48
48
|
}
|
|
49
49
|
function verifyMessageNostrEvent(message, signature, address) {
|
|
50
50
|
const { words } = bech32_1.bech32.decode(address);
|
|
51
|
-
const
|
|
51
|
+
const pubkey = (0, index_js_2.hexFrom)(bech32_1.bech32.fromWords(words)).slice(2);
|
|
52
52
|
const event = buildNostrEventFromMessage(message);
|
|
53
|
-
const eventHash = nostrEventHash(event);
|
|
53
|
+
const eventHash = nostrEventHash({ ...event, pubkey });
|
|
54
54
|
try {
|
|
55
|
-
return secp256k1_1.schnorr.verify((0, index_js_2.hexFrom)(signature).slice(2), eventHash,
|
|
55
|
+
return secp256k1_1.schnorr.verify((0, index_js_2.hexFrom)(signature).slice(2), eventHash, pubkey);
|
|
56
56
|
}
|
|
57
57
|
catch (_) {
|
|
58
58
|
return false;
|
|
@@ -211,13 +211,22 @@ export declare abstract class Signer {
|
|
|
211
211
|
*/
|
|
212
212
|
signTransaction(tx: TransactionLike): Promise<Transaction>;
|
|
213
213
|
/**
|
|
214
|
-
*
|
|
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
|
-
* @
|
|
217
|
-
*
|
|
218
|
-
*
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,MAAM,EACN,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EACjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAQzC;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;CACxB;AAED;;;GAGG;AACH,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB;;;;;;;;;;OAUG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAEX,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,cAAc;gBAFxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc;CAElC;AAED;;;;GAIG;AACH,8BAAsB,MAAM;IACd,SAAS,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAErC,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC;IAChC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC;IAExC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAID,sBAAsB,CACpB,WAAW,EAAE,iBAAiB,EAAE,EAChC,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,iBAAiB,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SignerInfo = exports.Signer = exports.Signature = exports.SignerType = exports.SignerSignType = void 0;
|
|
4
|
-
const index_js_1 = require("
|
|
4
|
+
const index_js_1 = require("../../ckb/index.js");
|
|
5
|
+
const index_js_2 = require("../btc/index.js");
|
|
5
6
|
const verifyCkbSecp256k1_js_1 = require("../ckb/verifyCkbSecp256k1.js");
|
|
6
7
|
const verifyJoyId_js_1 = require("../ckb/verifyJoyId.js");
|
|
7
8
|
const verify_js_1 = require("../doge/verify.js");
|
|
@@ -59,11 +60,9 @@ class Signer {
|
|
|
59
60
|
// undefined otherwise
|
|
60
61
|
matchNetworkPreference(preferences, currentNetwork) {
|
|
61
62
|
if (currentNetwork !== undefined &&
|
|
62
|
-
preferences.some(({ signerType, addressPrefix, network }) =>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
network === currentNetwork;
|
|
66
|
-
})) {
|
|
63
|
+
preferences.some(({ signerType, addressPrefix, network }) => signerType === this.type &&
|
|
64
|
+
addressPrefix === this.client.addressPrefix &&
|
|
65
|
+
network === currentNetwork)) {
|
|
67
66
|
return;
|
|
68
67
|
}
|
|
69
68
|
return preferences.find(({ signerType, addressPrefix }) => signerType === this.type && addressPrefix === this.client.addressPrefix);
|
|
@@ -73,7 +72,7 @@ class Signer {
|
|
|
73
72
|
case SignerSignType.EvmPersonal:
|
|
74
73
|
return (0, verify_js_2.verifyMessageEvmPersonal)(message, signature.signature, signature.identity);
|
|
75
74
|
case SignerSignType.BtcEcdsa:
|
|
76
|
-
return (0,
|
|
75
|
+
return (0, index_js_2.verifyMessageBtcEcdsa)(message, signature.signature, signature.identity);
|
|
77
76
|
case SignerSignType.JoyId:
|
|
78
77
|
return (0, verifyJoyId_js_1.verifyMessageJoyId)(message, signature.signature, signature.identity);
|
|
79
78
|
case SignerSignType.NostrEvent:
|
|
@@ -269,14 +268,23 @@ class Signer {
|
|
|
269
268
|
return this.signOnlyTransaction(preparedTx);
|
|
270
269
|
}
|
|
271
270
|
/**
|
|
272
|
-
*
|
|
271
|
+
* Prepares a transaction before signing.
|
|
272
|
+
* This method can be overridden by subclasses to perform any necessary steps,
|
|
273
|
+
* such as adding cell dependencies or witnesses, before the transaction is signed.
|
|
274
|
+
* The default implementation converts the {@link TransactionLike} object to a {@link Transaction} object
|
|
275
|
+
* without modification.
|
|
273
276
|
*
|
|
274
|
-
* @
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
+
* @remarks
|
|
278
|
+
* Note that this default implementation does not add any cell dependencies or dummy witnesses.
|
|
279
|
+
* This may lead to an underestimation of transaction size and fees if used with methods
|
|
280
|
+
* like `Transaction.completeFee`. Subclasses for signers that are intended to sign
|
|
281
|
+
* transactions should override this method to perform necessary preparations.
|
|
282
|
+
*
|
|
283
|
+
* @param tx - The transaction to prepare.
|
|
284
|
+
* @returns A promise that resolves to the prepared {@link Transaction} object.
|
|
277
285
|
*/
|
|
278
|
-
prepareTransaction(
|
|
279
|
-
|
|
286
|
+
async prepareTransaction(tx) {
|
|
287
|
+
return index_js_1.Transaction.from(tx);
|
|
280
288
|
}
|
|
281
289
|
/**
|
|
282
290
|
* Signs a transaction without preparing information for it. This method is not implemented and should be overridden by subclasses.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Core of CCC - CKBer's Codebase",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"eslint-plugin-prettier": "^5.5.4",
|
|
45
45
|
"prettier": "^3.6.2",
|
|
46
46
|
"prettier-plugin-organize-imports": "^4.2.0",
|
|
47
|
-
"rimraf": "^
|
|
47
|
+
"rimraf": "^6.0.1",
|
|
48
48
|
"typescript": "^5.9.2",
|
|
49
|
-
"typescript-eslint": "^
|
|
49
|
+
"typescript-eslint": "^8.41.0",
|
|
50
50
|
"vitest": "^3.2.4"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
@@ -58,7 +58,6 @@
|
|
|
58
58
|
"@noble/curves": "^1.9.7",
|
|
59
59
|
"@noble/hashes": "^1.8.0",
|
|
60
60
|
"bech32": "^2.0.0",
|
|
61
|
-
"bitcoinjs-message": "^2.2.0",
|
|
62
61
|
"bs58check": "^4.0.0",
|
|
63
62
|
"buffer": "^6.0.3",
|
|
64
63
|
"ethers": "^6.15.0",
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// prettier.config.js, .prettierrc.js, prettier.config.mjs, or .prettierrc.mjs
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* @see https://prettier.io/docs/configuration
|
|
5
3
|
* @type {import("prettier").Config}
|
|
@@ -7,7 +5,7 @@
|
|
|
7
5
|
const config = {
|
|
8
6
|
singleQuote: false,
|
|
9
7
|
trailingComma: "all",
|
|
10
|
-
plugins: ["prettier-plugin-organize-imports"],
|
|
8
|
+
plugins: [require.resolve("prettier-plugin-organize-imports")],
|
|
11
9
|
};
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
module.exports = config;
|