@ckb-ccc/core 0.0.10-alpha.5 → 0.0.10-alpha.6
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/dist/address/address.advanced.js +4 -2
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts +1 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbPrivateKey.js +7 -7
- package/dist/signer/signer/index.d.ts +0 -9
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +6 -13
- package/dist.commonjs/address/address.advanced.js +4 -2
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +1 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +7 -7
- package/dist.commonjs/signer/signer/index.d.ts +0 -9
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +6 -13
- package/package.json +2 -2
- package/src/address/address.advanced.ts +4 -4
- package/src/signer/ckb/signerCkbPrivateKey.ts +8 -8
- package/src/signer/signer/index.ts +6 -14
|
@@ -20,15 +20,16 @@ import { hexFrom } from "../hex";
|
|
|
20
20
|
*/
|
|
21
21
|
export function addressPayloadFromString(address) {
|
|
22
22
|
// Try parse full format address
|
|
23
|
-
{
|
|
23
|
+
try {
|
|
24
24
|
const { words, prefix } = bech32m.decode(address, ADDRESS_BECH32_LIMIT);
|
|
25
25
|
const [formatType, ...payload] = bech32m.fromWords(words);
|
|
26
26
|
if (formatType === AddressFormat.Full) {
|
|
27
27
|
return { prefix, format: AddressFormat.Full, payload };
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
catch (_) { }
|
|
30
31
|
// Try parse legacy 2019 format address
|
|
31
|
-
{
|
|
32
|
+
try {
|
|
32
33
|
const { prefix, words } = bech32.decode(address, ADDRESS_BECH32_LIMIT);
|
|
33
34
|
const [formatType, ...payload] = bech32.fromWords(words);
|
|
34
35
|
if ([
|
|
@@ -39,6 +40,7 @@ export function addressPayloadFromString(address) {
|
|
|
39
40
|
return { prefix, format: formatType, payload };
|
|
40
41
|
}
|
|
41
42
|
}
|
|
43
|
+
catch (_) { }
|
|
42
44
|
throw Error(`Unknown address format ${address}`);
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
@@ -6,6 +6,7 @@ import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
|
6
6
|
export declare class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
7
7
|
readonly privateKey: Hex;
|
|
8
8
|
constructor(client: Client, privateKey: HexLike);
|
|
9
|
+
_signMessage(message: HexLike): Promise<Hex>;
|
|
9
10
|
signMessageRaw(message: string | BytesLike): Promise<Hex>;
|
|
10
11
|
signOnlyTransaction(txLike: TransactionLike): Promise<Transaction>;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,SAAgB,UAAU,EAAE,GAAG,CAAC;gBAEpB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAUzC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAezE"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { secp256k1 } from "@noble/curves/secp256k1";
|
|
2
2
|
import { bytesConcat, bytesFrom } from "../../bytes";
|
|
3
3
|
import { Transaction, WitnessArgs } from "../../ckb";
|
|
4
|
-
import { hashCkb } from "../../hasher";
|
|
5
4
|
import { hexFrom } from "../../hex";
|
|
6
5
|
import { numBeToBytes } from "../../num";
|
|
7
6
|
import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
7
|
+
import { messageHashCkbSecp256k1 } from "./verifyCkbSecp256k1";
|
|
8
8
|
export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
9
9
|
constructor(client, privateKey) {
|
|
10
10
|
const pk = hexFrom(privateKey);
|
|
@@ -14,14 +14,14 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
|
14
14
|
super(client, secp256k1.getPublicKey(bytesFrom(pk), true));
|
|
15
15
|
this.privateKey = pk;
|
|
16
16
|
}
|
|
17
|
-
async
|
|
18
|
-
const
|
|
19
|
-
const buffer = bytesFrom(`Nervos Message:${msg}`, "utf8");
|
|
20
|
-
const hash = hashCkb(buffer);
|
|
21
|
-
const signature = secp256k1.sign(bytesFrom(hash), bytesFrom(this.privateKey));
|
|
17
|
+
async _signMessage(message) {
|
|
18
|
+
const signature = secp256k1.sign(bytesFrom(message), bytesFrom(this.privateKey));
|
|
22
19
|
const { r, s, recovery } = signature;
|
|
23
20
|
return hexFrom(bytesConcat(numBeToBytes(r, 32), numBeToBytes(s, 32), numBeToBytes(recovery, 1)));
|
|
24
21
|
}
|
|
22
|
+
async signMessageRaw(message) {
|
|
23
|
+
return this._signMessage(messageHashCkbSecp256k1(message));
|
|
24
|
+
}
|
|
25
25
|
async signOnlyTransaction(txLike) {
|
|
26
26
|
const tx = Transaction.from(txLike);
|
|
27
27
|
const { script } = await this.getRecommendedAddressObj();
|
|
@@ -29,7 +29,7 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
|
29
29
|
if (!info) {
|
|
30
30
|
return tx;
|
|
31
31
|
}
|
|
32
|
-
const signature = await this.
|
|
32
|
+
const signature = await this._signMessage(info.message);
|
|
33
33
|
const witness = tx.getWitnessArgsAt(info.position) ?? WitnessArgs.from({});
|
|
34
34
|
witness.lock = signature;
|
|
35
35
|
tx.setWitnessArgsAt(info.position, witness);
|
|
@@ -137,15 +137,6 @@ export declare abstract class Signer {
|
|
|
137
137
|
* @throws Will throw an error if not implemented.
|
|
138
138
|
*/
|
|
139
139
|
verifyMessage(message: string | BytesLike, signature: string | Signature): Promise<boolean>;
|
|
140
|
-
/**
|
|
141
|
-
* Verify a string signature. This method is not implemented and should be overridden by subclasses.
|
|
142
|
-
*
|
|
143
|
-
* @param _0 - The original message.
|
|
144
|
-
* @param _1 - The signature to verify.
|
|
145
|
-
* @returns A promise that resolves to the verification result.
|
|
146
|
-
* @throws Will throw an error if not implemented.
|
|
147
|
-
*/
|
|
148
|
-
verifyMessageRaw(_0: string | BytesLike, _1: string): Promise<boolean>;
|
|
149
140
|
/**
|
|
150
141
|
* Sends a transaction after signing it.
|
|
151
142
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAOhC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CAYjB,CAAC;AAEF,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;;;GAGG;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;WAiBX,aAAa,CACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC;IAqCnB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAIrC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAE9C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAE7C;;;;;OAKG;IACG,wBAAwB,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE;;;;;OAKG;IACG,qBAAqB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlE;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMvC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAMhC;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAQlE;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD;;;;;;;OAOG;IACG,aAAa,CACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,24 +158,17 @@ export class Signer {
|
|
|
158
158
|
*/
|
|
159
159
|
async verifyMessage(message, signature) {
|
|
160
160
|
if (typeof signature === "string") {
|
|
161
|
-
return
|
|
161
|
+
return Signer.verifyMessage(message, {
|
|
162
|
+
signType: this.signType,
|
|
163
|
+
signature,
|
|
164
|
+
identity: await this.getIdentity(),
|
|
165
|
+
});
|
|
162
166
|
}
|
|
163
167
|
if (signature.identity !== (await this.getIdentity()) ||
|
|
164
168
|
![SignerSignType.Unknown, this.signType].includes(signature.signType)) {
|
|
165
169
|
return false;
|
|
166
170
|
}
|
|
167
|
-
return
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Verify a string signature. This method is not implemented and should be overridden by subclasses.
|
|
171
|
-
*
|
|
172
|
-
* @param _0 - The original message.
|
|
173
|
-
* @param _1 - The signature to verify.
|
|
174
|
-
* @returns A promise that resolves to the verification result.
|
|
175
|
-
* @throws Will throw an error if not implemented.
|
|
176
|
-
*/
|
|
177
|
-
verifyMessageRaw(_0, _1) {
|
|
178
|
-
throw Error("Signer.verifyMessageRaw not implemented");
|
|
171
|
+
return Signer.verifyMessage(message, signature);
|
|
179
172
|
}
|
|
180
173
|
/**
|
|
181
174
|
* Sends a transaction after signing it.
|
|
@@ -23,15 +23,16 @@ const hex_1 = require("../hex");
|
|
|
23
23
|
*/
|
|
24
24
|
function addressPayloadFromString(address) {
|
|
25
25
|
// Try parse full format address
|
|
26
|
-
{
|
|
26
|
+
try {
|
|
27
27
|
const { words, prefix } = bech32_1.bech32m.decode(address, exports.ADDRESS_BECH32_LIMIT);
|
|
28
28
|
const [formatType, ...payload] = bech32_1.bech32m.fromWords(words);
|
|
29
29
|
if (formatType === AddressFormat.Full) {
|
|
30
30
|
return { prefix, format: AddressFormat.Full, payload };
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
catch (_) { }
|
|
33
34
|
// Try parse legacy 2019 format address
|
|
34
|
-
{
|
|
35
|
+
try {
|
|
35
36
|
const { prefix, words } = bech32_1.bech32.decode(address, exports.ADDRESS_BECH32_LIMIT);
|
|
36
37
|
const [formatType, ...payload] = bech32_1.bech32.fromWords(words);
|
|
37
38
|
if ([
|
|
@@ -42,6 +43,7 @@ function addressPayloadFromString(address) {
|
|
|
42
43
|
return { prefix, format: formatType, payload };
|
|
43
44
|
}
|
|
44
45
|
}
|
|
46
|
+
catch (_) { }
|
|
45
47
|
throw Error(`Unknown address format ${address}`);
|
|
46
48
|
}
|
|
47
49
|
exports.addressPayloadFromString = addressPayloadFromString;
|
|
@@ -6,6 +6,7 @@ import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
|
6
6
|
export declare class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
7
7
|
readonly privateKey: Hex;
|
|
8
8
|
constructor(client: Client, privateKey: HexLike);
|
|
9
|
+
_signMessage(message: HexLike): Promise<Hex>;
|
|
9
10
|
signMessageRaw(message: string | BytesLike): Promise<Hex>;
|
|
10
11
|
signOnlyTransaction(txLike: TransactionLike): Promise<Transaction>;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"signerCkbPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/signerCkbPrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,SAAgB,UAAU,EAAE,GAAG,CAAC;gBAEpB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAUzC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAezE"}
|
|
@@ -4,10 +4,10 @@ exports.SignerCkbPrivateKey = void 0;
|
|
|
4
4
|
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
5
5
|
const bytes_1 = require("../../bytes");
|
|
6
6
|
const ckb_1 = require("../../ckb");
|
|
7
|
-
const hasher_1 = require("../../hasher");
|
|
8
7
|
const hex_1 = require("../../hex");
|
|
9
8
|
const num_1 = require("../../num");
|
|
10
9
|
const signerCkbPublicKey_1 = require("./signerCkbPublicKey");
|
|
10
|
+
const verifyCkbSecp256k1_1 = require("./verifyCkbSecp256k1");
|
|
11
11
|
class SignerCkbPrivateKey extends signerCkbPublicKey_1.SignerCkbPublicKey {
|
|
12
12
|
constructor(client, privateKey) {
|
|
13
13
|
const pk = (0, hex_1.hexFrom)(privateKey);
|
|
@@ -17,14 +17,14 @@ class SignerCkbPrivateKey extends signerCkbPublicKey_1.SignerCkbPublicKey {
|
|
|
17
17
|
super(client, secp256k1_1.secp256k1.getPublicKey((0, bytes_1.bytesFrom)(pk), true));
|
|
18
18
|
this.privateKey = pk;
|
|
19
19
|
}
|
|
20
|
-
async
|
|
21
|
-
const
|
|
22
|
-
const buffer = (0, bytes_1.bytesFrom)(`Nervos Message:${msg}`, "utf8");
|
|
23
|
-
const hash = (0, hasher_1.hashCkb)(buffer);
|
|
24
|
-
const signature = secp256k1_1.secp256k1.sign((0, bytes_1.bytesFrom)(hash), (0, bytes_1.bytesFrom)(this.privateKey));
|
|
20
|
+
async _signMessage(message) {
|
|
21
|
+
const signature = secp256k1_1.secp256k1.sign((0, bytes_1.bytesFrom)(message), (0, bytes_1.bytesFrom)(this.privateKey));
|
|
25
22
|
const { r, s, recovery } = signature;
|
|
26
23
|
return (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)((0, num_1.numBeToBytes)(r, 32), (0, num_1.numBeToBytes)(s, 32), (0, num_1.numBeToBytes)(recovery, 1)));
|
|
27
24
|
}
|
|
25
|
+
async signMessageRaw(message) {
|
|
26
|
+
return this._signMessage((0, verifyCkbSecp256k1_1.messageHashCkbSecp256k1)(message));
|
|
27
|
+
}
|
|
28
28
|
async signOnlyTransaction(txLike) {
|
|
29
29
|
const tx = ckb_1.Transaction.from(txLike);
|
|
30
30
|
const { script } = await this.getRecommendedAddressObj();
|
|
@@ -32,7 +32,7 @@ class SignerCkbPrivateKey extends signerCkbPublicKey_1.SignerCkbPublicKey {
|
|
|
32
32
|
if (!info) {
|
|
33
33
|
return tx;
|
|
34
34
|
}
|
|
35
|
-
const signature = await this.
|
|
35
|
+
const signature = await this._signMessage(info.message);
|
|
36
36
|
const witness = tx.getWitnessArgsAt(info.position) ?? ckb_1.WitnessArgs.from({});
|
|
37
37
|
witness.lock = signature;
|
|
38
38
|
tx.setWitnessArgsAt(info.position, witness);
|
|
@@ -137,15 +137,6 @@ export declare abstract class Signer {
|
|
|
137
137
|
* @throws Will throw an error if not implemented.
|
|
138
138
|
*/
|
|
139
139
|
verifyMessage(message: string | BytesLike, signature: string | Signature): Promise<boolean>;
|
|
140
|
-
/**
|
|
141
|
-
* Verify a string signature. This method is not implemented and should be overridden by subclasses.
|
|
142
|
-
*
|
|
143
|
-
* @param _0 - The original message.
|
|
144
|
-
* @param _1 - The signature to verify.
|
|
145
|
-
* @returns A promise that resolves to the verification result.
|
|
146
|
-
* @throws Will throw an error if not implemented.
|
|
147
|
-
*/
|
|
148
|
-
verifyMessageRaw(_0: string | BytesLike, _1: string): Promise<boolean>;
|
|
149
140
|
/**
|
|
150
141
|
* Sends a transaction after signing it.
|
|
151
142
|
*
|
|
@@ -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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"}
|
|
@@ -162,24 +162,17 @@ class Signer {
|
|
|
162
162
|
*/
|
|
163
163
|
async verifyMessage(message, signature) {
|
|
164
164
|
if (typeof signature === "string") {
|
|
165
|
-
return
|
|
165
|
+
return Signer.verifyMessage(message, {
|
|
166
|
+
signType: this.signType,
|
|
167
|
+
signature,
|
|
168
|
+
identity: await this.getIdentity(),
|
|
169
|
+
});
|
|
166
170
|
}
|
|
167
171
|
if (signature.identity !== (await this.getIdentity()) ||
|
|
168
172
|
![SignerSignType.Unknown, this.signType].includes(signature.signType)) {
|
|
169
173
|
return false;
|
|
170
174
|
}
|
|
171
|
-
return
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Verify a string signature. This method is not implemented and should be overridden by subclasses.
|
|
175
|
-
*
|
|
176
|
-
* @param _0 - The original message.
|
|
177
|
-
* @param _1 - The signature to verify.
|
|
178
|
-
* @returns A promise that resolves to the verification result.
|
|
179
|
-
* @throws Will throw an error if not implemented.
|
|
180
|
-
*/
|
|
181
|
-
verifyMessageRaw(_0, _1) {
|
|
182
|
-
throw Error("Signer.verifyMessageRaw not implemented");
|
|
175
|
+
return Signer.verifyMessage(message, signature);
|
|
183
176
|
}
|
|
184
177
|
/**
|
|
185
178
|
* Sends a transaction after signing it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "0.0.10-alpha.
|
|
3
|
+
"version": "0.0.10-alpha.6",
|
|
4
4
|
"description": "Core of CCC - CKBer's Codebase",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"cross-fetch": "^4.0.0",
|
|
69
69
|
"ethers": "^6.13.1"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "16cf49da60cb01f0f0903fccc0d597d8de54f905"
|
|
72
72
|
}
|
|
@@ -27,17 +27,17 @@ export function addressPayloadFromString(address: string): {
|
|
|
27
27
|
payload: number[];
|
|
28
28
|
} {
|
|
29
29
|
// Try parse full format address
|
|
30
|
-
{
|
|
30
|
+
try {
|
|
31
31
|
const { words, prefix } = bech32m.decode(address, ADDRESS_BECH32_LIMIT);
|
|
32
32
|
const [formatType, ...payload] = bech32m.fromWords(words);
|
|
33
33
|
|
|
34
34
|
if (formatType === (AddressFormat.Full as number)) {
|
|
35
35
|
return { prefix, format: AddressFormat.Full, payload };
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
} catch (_) {}
|
|
38
38
|
|
|
39
39
|
// Try parse legacy 2019 format address
|
|
40
|
-
{
|
|
40
|
+
try {
|
|
41
41
|
const { prefix, words } = bech32.decode(address, ADDRESS_BECH32_LIMIT);
|
|
42
42
|
const [formatType, ...payload] = bech32.fromWords(words);
|
|
43
43
|
if (
|
|
@@ -49,7 +49,7 @@ export function addressPayloadFromString(address: string): {
|
|
|
49
49
|
) {
|
|
50
50
|
return { prefix, format: formatType, payload };
|
|
51
51
|
}
|
|
52
|
-
}
|
|
52
|
+
} catch (_) {}
|
|
53
53
|
|
|
54
54
|
throw Error(`Unknown address format ${address}`);
|
|
55
55
|
}
|
|
@@ -2,10 +2,10 @@ import { secp256k1 } from "@noble/curves/secp256k1";
|
|
|
2
2
|
import { bytesConcat, bytesFrom, BytesLike } from "../../bytes";
|
|
3
3
|
import { Transaction, TransactionLike, WitnessArgs } from "../../ckb";
|
|
4
4
|
import { Client } from "../../client";
|
|
5
|
-
import { hashCkb } from "../../hasher";
|
|
6
5
|
import { Hex, hexFrom, HexLike } from "../../hex";
|
|
7
6
|
import { numBeToBytes } from "../../num";
|
|
8
7
|
import { SignerCkbPublicKey } from "./signerCkbPublicKey";
|
|
8
|
+
import { messageHashCkbSecp256k1 } from "./verifyCkbSecp256k1";
|
|
9
9
|
|
|
10
10
|
export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
11
11
|
public readonly privateKey: Hex;
|
|
@@ -20,13 +20,9 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
|
20
20
|
this.privateKey = pk;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
async
|
|
24
|
-
const msg = typeof message === "string" ? message : hexFrom(message);
|
|
25
|
-
const buffer = bytesFrom(`Nervos Message:${msg}`, "utf8");
|
|
26
|
-
const hash = hashCkb(buffer);
|
|
27
|
-
|
|
23
|
+
async _signMessage(message: HexLike): Promise<Hex> {
|
|
28
24
|
const signature = secp256k1.sign(
|
|
29
|
-
bytesFrom(
|
|
25
|
+
bytesFrom(message),
|
|
30
26
|
bytesFrom(this.privateKey),
|
|
31
27
|
);
|
|
32
28
|
const { r, s, recovery } = signature;
|
|
@@ -40,6 +36,10 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
|
40
36
|
);
|
|
41
37
|
}
|
|
42
38
|
|
|
39
|
+
async signMessageRaw(message: string | BytesLike): Promise<Hex> {
|
|
40
|
+
return this._signMessage(messageHashCkbSecp256k1(message));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
43
|
async signOnlyTransaction(txLike: TransactionLike): Promise<Transaction> {
|
|
44
44
|
const tx = Transaction.from(txLike);
|
|
45
45
|
const { script } = await this.getRecommendedAddressObj();
|
|
@@ -48,7 +48,7 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
|
48
48
|
return tx;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
const signature = await this.
|
|
51
|
+
const signature = await this._signMessage(info.message);
|
|
52
52
|
|
|
53
53
|
const witness = tx.getWitnessArgsAt(info.position) ?? WitnessArgs.from({});
|
|
54
54
|
witness.lock = signature;
|
|
@@ -263,7 +263,11 @@ export abstract class Signer {
|
|
|
263
263
|
signature: string | Signature,
|
|
264
264
|
): Promise<boolean> {
|
|
265
265
|
if (typeof signature === "string") {
|
|
266
|
-
return
|
|
266
|
+
return Signer.verifyMessage(message, {
|
|
267
|
+
signType: this.signType,
|
|
268
|
+
signature,
|
|
269
|
+
identity: await this.getIdentity(),
|
|
270
|
+
});
|
|
267
271
|
}
|
|
268
272
|
|
|
269
273
|
if (
|
|
@@ -273,19 +277,7 @@ export abstract class Signer {
|
|
|
273
277
|
return false;
|
|
274
278
|
}
|
|
275
279
|
|
|
276
|
-
return
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Verify a string signature. This method is not implemented and should be overridden by subclasses.
|
|
281
|
-
*
|
|
282
|
-
* @param _0 - The original message.
|
|
283
|
-
* @param _1 - The signature to verify.
|
|
284
|
-
* @returns A promise that resolves to the verification result.
|
|
285
|
-
* @throws Will throw an error if not implemented.
|
|
286
|
-
*/
|
|
287
|
-
verifyMessageRaw(_0: string | BytesLike, _1: string): Promise<boolean> {
|
|
288
|
-
throw Error("Signer.verifyMessageRaw not implemented");
|
|
280
|
+
return Signer.verifyMessage(message, signature);
|
|
289
281
|
}
|
|
290
282
|
|
|
291
283
|
/**
|