@ckb-ccc/core 0.1.0-alpha.6 → 0.1.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 +34 -0
- package/dist/barrel.d.ts +1 -0
- package/dist/barrel.d.ts.map +1 -1
- package/dist/barrel.js +1 -0
- package/dist/ckb/transactionLumos.d.ts +2 -1
- package/dist/ckb/transactionLumos.d.ts.map +1 -1
- package/dist/client/client.js +1 -1
- package/dist/molecule/codec.d.ts +118 -0
- package/dist/molecule/codec.d.ts.map +1 -0
- package/dist/molecule/codec.js +446 -0
- package/dist/molecule/index.d.ts +3 -0
- package/dist/molecule/index.d.ts.map +1 -0
- package/dist/molecule/index.js +2 -0
- package/dist/molecule/predefined.d.ts +52 -0
- package/dist/molecule/predefined.d.ts.map +1 -0
- package/dist/molecule/predefined.js +95 -0
- package/dist/signer/btc/signerBtc.d.ts.map +1 -1
- package/dist/signer/btc/signerBtc.js +2 -3
- package/dist/signer/btc/verify.d.ts +14 -1
- package/dist/signer/btc/verify.d.ts.map +1 -1
- package/dist/signer/btc/verify.js +22 -1
- package/dist/signer/doge/index.d.ts +5 -0
- package/dist/signer/doge/index.d.ts.map +1 -0
- package/dist/signer/doge/index.js +4 -0
- package/dist/signer/doge/signerDoge.d.ts +52 -0
- package/dist/signer/doge/signerDoge.d.ts.map +1 -0
- package/dist/signer/doge/signerDoge.js +82 -0
- package/dist/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
- package/dist/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
- package/dist/signer/doge/signerDogeAddressReadonly.js +45 -0
- package/dist/signer/doge/signerDogePrivateKey.d.ts +52 -0
- package/dist/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
- package/dist/signer/doge/signerDogePrivateKey.js +68 -0
- package/dist/signer/doge/verify.d.ts +6 -0
- package/dist/signer/doge/verify.d.ts.map +1 -0
- package/dist/signer/doge/verify.js +17 -0
- package/dist/signer/index.d.ts +1 -0
- package/dist/signer/index.d.ts.map +1 -1
- package/dist/signer/index.js +1 -0
- package/dist/signer/nostr/index.d.ts +1 -0
- package/dist/signer/nostr/index.d.ts.map +1 -1
- package/dist/signer/nostr/index.js +1 -0
- package/dist/signer/signer/index.d.ts +4 -2
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +5 -0
- package/dist.commonjs/address/address.advanced.js +23 -28
- package/dist.commonjs/address/advanced.js +1 -17
- package/dist.commonjs/address/index.js +11 -15
- package/dist.commonjs/advanced.js +2 -31
- package/dist.commonjs/advancedBarrel.js +5 -21
- package/dist.commonjs/barrel.d.ts +1 -0
- package/dist.commonjs/barrel.d.ts.map +1 -1
- package/dist.commonjs/barrel.js +12 -27
- package/dist.commonjs/bytes/advanced.js +1 -2
- package/dist.commonjs/bytes/index.js +7 -12
- package/dist.commonjs/ckb/advanced.js +3 -32
- package/dist.commonjs/ckb/index.js +3 -19
- package/dist.commonjs/ckb/molecule.advanced/generated.js +64 -131
- package/dist.commonjs/ckb/molecule.advanced/index.js +2 -19
- package/dist.commonjs/ckb/script.advanced.js +3 -6
- package/dist.commonjs/ckb/script.js +23 -53
- package/dist.commonjs/ckb/transaction.advanced.js +3 -6
- package/dist.commonjs/ckb/transaction.js +122 -163
- package/dist.commonjs/ckb/transactionLumos.d.ts +2 -1
- package/dist.commonjs/ckb/transactionLumos.d.ts.map +1 -1
- package/dist.commonjs/ckb/transactionLumos.js +1 -2
- package/dist.commonjs/client/advanced.js +6 -22
- package/dist.commonjs/client/cache/advanced.js +1 -17
- package/dist.commonjs/client/cache/cache.js +3 -7
- package/dist.commonjs/client/cache/index.js +2 -18
- package/dist.commonjs/client/cache/memory.advanced.js +21 -28
- package/dist.commonjs/client/cache/memory.js +19 -23
- package/dist.commonjs/client/client.js +22 -26
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +22 -25
- package/dist.commonjs/client/clientPublicMainnet.js +8 -15
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +22 -25
- package/dist.commonjs/client/clientPublicTestnet.js +8 -15
- package/dist.commonjs/client/clientTypes.advanced.js +3 -6
- package/dist.commonjs/client/clientTypes.js +29 -43
- package/dist.commonjs/client/index.js +6 -22
- package/dist.commonjs/client/jsonRpc/advanced.js +2 -18
- package/dist.commonjs/client/jsonRpc/index.js +37 -41
- package/dist.commonjs/client/jsonRpc/transformers.js +57 -61
- package/dist.commonjs/client/jsonRpc/types.js +1 -2
- package/dist.commonjs/client/transports/advanced.js +8 -25
- package/dist.commonjs/client/transports/http.js +1 -5
- package/dist.commonjs/client/transports/transport.js +1 -2
- package/dist.commonjs/client/transports/webSocket.js +3 -10
- package/dist.commonjs/fixedPoint/index.js +4 -9
- package/dist.commonjs/hasher/advanced.js +1 -4
- package/dist.commonjs/hasher/hasher.js +1 -2
- package/dist.commonjs/hasher/hasherCkb.js +14 -20
- package/dist.commonjs/hasher/hasherKeecak256.js +7 -11
- package/dist.commonjs/hasher/index.js +3 -19
- package/dist.commonjs/hex/index.js +3 -6
- package/dist.commonjs/index.js +2 -31
- package/dist.commonjs/keystore/index.js +21 -25
- package/dist.commonjs/molecule/codec.d.ts +118 -0
- package/dist.commonjs/molecule/codec.d.ts.map +1 -0
- package/dist.commonjs/molecule/codec.js +446 -0
- package/dist.commonjs/molecule/index.d.ts +3 -0
- package/dist.commonjs/molecule/index.d.ts.map +1 -0
- package/dist.commonjs/molecule/index.js +2 -0
- package/dist.commonjs/molecule/predefined.d.ts +52 -0
- package/dist.commonjs/molecule/predefined.d.ts.map +1 -0
- package/dist.commonjs/molecule/predefined.js +95 -0
- package/dist.commonjs/num/index.js +17 -29
- package/dist.commonjs/signer/btc/index.js +3 -19
- package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/signerBtc.js +20 -25
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +4 -8
- package/dist.commonjs/signer/btc/verify.d.ts +14 -1
- package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/verify.js +29 -11
- package/dist.commonjs/signer/ckb/index.js +5 -21
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +16 -20
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +20 -24
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +8 -12
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +12 -16
- package/dist.commonjs/signer/ckb/verifyJoyId.js +5 -8
- package/dist.commonjs/signer/doge/index.d.ts +5 -0
- package/dist.commonjs/signer/doge/index.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/index.js +4 -0
- package/dist.commonjs/signer/doge/signerDoge.d.ts +52 -0
- package/dist.commonjs/signer/doge/signerDoge.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDoge.js +82 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.js +45 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts +52 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.js +68 -0
- package/dist.commonjs/signer/doge/verify.d.ts +6 -0
- package/dist.commonjs/signer/doge/verify.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/verify.js +17 -0
- package/dist.commonjs/signer/dummy/alwaysError.js +2 -6
- package/dist.commonjs/signer/dummy/dummy.js +3 -7
- package/dist.commonjs/signer/dummy/index.js +3 -19
- package/dist.commonjs/signer/dummy/openLink.js +2 -6
- package/dist.commonjs/signer/evm/index.js +3 -19
- package/dist.commonjs/signer/evm/signerEvm.js +31 -35
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +4 -8
- package/dist.commonjs/signer/evm/verify.js +4 -7
- package/dist.commonjs/signer/index.d.ts +1 -0
- package/dist.commonjs/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/index.js +7 -22
- package/dist.commonjs/signer/nostr/index.d.ts +1 -0
- package/dist.commonjs/signer/nostr/index.d.ts.map +1 -1
- package/dist.commonjs/signer/nostr/index.js +2 -17
- package/dist.commonjs/signer/nostr/signerNostr.js +21 -25
- package/dist.commonjs/signer/nostr/verify.js +12 -16
- package/dist.commonjs/signer/signer/index.d.ts +4 -2
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +22 -23
- package/dist.commonjs/utils/index.js +6 -12
- package/package.json +3 -1
- package/src/barrel.ts +1 -0
- package/src/ckb/transactionLumos.ts +2 -1
- package/src/client/client.ts +1 -1
- package/src/molecule/codec.ts +610 -0
- package/src/molecule/index.ts +2 -0
- package/src/molecule/predefined.ts +114 -0
- package/src/signer/btc/signerBtc.ts +2 -3
- package/src/signer/btc/verify.ts +31 -2
- package/src/signer/doge/index.ts +4 -0
- package/src/signer/doge/signerDoge.ts +116 -0
- package/src/signer/doge/signerDogeAddressReadonly.ts +52 -0
- package/src/signer/doge/signerDogePrivateKey.ts +97 -0
- package/src/signer/doge/verify.ts +38 -0
- package/src/signer/index.ts +1 -0
- package/src/signer/nostr/index.ts +1 -0
- package/src/signer/signer/index.ts +9 -0
|
@@ -1,26 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const index_js_7 = require("../../num/index.js");
|
|
11
|
-
const index_js_8 = require("../../utils/index.js");
|
|
12
|
-
const index_js_9 = require("../signer/index.js");
|
|
1
|
+
import { Address } from "../../address/index.js";
|
|
2
|
+
import { bytesConcat, bytesFrom } from "../../bytes/index.js";
|
|
3
|
+
import { Transaction, WitnessArgs, } from "../../ckb/index.js";
|
|
4
|
+
import { KnownScript } from "../../client/index.js";
|
|
5
|
+
import { HasherKeecak256 } from "../../hasher/index.js";
|
|
6
|
+
import { hexFrom } from "../../hex/index.js";
|
|
7
|
+
import { numToBytes } from "../../num/index.js";
|
|
8
|
+
import { reduceAsync } from "../../utils/index.js";
|
|
9
|
+
import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
13
10
|
/**
|
|
14
11
|
* An abstract class extending Signer for Ethereum Virtual Machine (EVM) based signing operations.
|
|
15
12
|
* This class provides methods to get EVM account, internal address, and signing transactions.
|
|
16
13
|
* @public
|
|
17
14
|
*/
|
|
18
|
-
class SignerEvm extends
|
|
15
|
+
export class SignerEvm extends Signer {
|
|
19
16
|
get type() {
|
|
20
|
-
return
|
|
17
|
+
return SignerType.EVM;
|
|
21
18
|
}
|
|
22
19
|
get signType() {
|
|
23
|
-
return
|
|
20
|
+
return SignerSignType.EvmPersonal;
|
|
24
21
|
}
|
|
25
22
|
/**
|
|
26
23
|
* Gets the internal address, which is the EVM account in this case.
|
|
@@ -57,14 +54,14 @@ class SignerEvm extends index_js_9.Signer {
|
|
|
57
54
|
return [addr];
|
|
58
55
|
}
|
|
59
56
|
async _getOmniLockEvmAddressObj(account) {
|
|
60
|
-
return
|
|
57
|
+
return Address.fromKnownScript(this.client, KnownScript.OmniLock, hexFrom([0x12, ...bytesFrom(account), 0x00]));
|
|
61
58
|
}
|
|
62
59
|
async _getOmniLockOldEvmAddressObj(account) {
|
|
63
|
-
return
|
|
60
|
+
return Address.fromKnownScript(this.client, KnownScript.OmniLock, hexFrom([0x1, ...bytesFrom(account), 0x00]));
|
|
64
61
|
}
|
|
65
62
|
async _getPWLockEvmAddressObj(account) {
|
|
66
63
|
try {
|
|
67
|
-
return
|
|
64
|
+
return Address.fromKnownScript(this.client, KnownScript.PWLock, hexFrom(bytesFrom(account)));
|
|
68
65
|
}
|
|
69
66
|
catch { }
|
|
70
67
|
return;
|
|
@@ -76,18 +73,18 @@ class SignerEvm extends index_js_9.Signer {
|
|
|
76
73
|
* @returns A promise that resolves to the prepared Transaction object.
|
|
77
74
|
*/
|
|
78
75
|
async prepareTransaction(txLike) {
|
|
79
|
-
const tx =
|
|
80
|
-
if ((await tx.findInputIndexByLockId(await this.client.getKnownScript(
|
|
81
|
-
await tx.addCellDepsOfKnownScripts(this.client,
|
|
76
|
+
const tx = Transaction.from(txLike);
|
|
77
|
+
if ((await tx.findInputIndexByLockId(await this.client.getKnownScript(KnownScript.OmniLock), this.client)) !== undefined) {
|
|
78
|
+
await tx.addCellDepsOfKnownScripts(this.client, KnownScript.OmniLock);
|
|
82
79
|
}
|
|
83
|
-
if ((await tx.findInputIndexByLockId(await this.client.getKnownScript(
|
|
84
|
-
await tx.addCellDepsOfKnownScripts(this.client,
|
|
80
|
+
if ((await tx.findInputIndexByLockId(await this.client.getKnownScript(KnownScript.PWLock), this.client)) !== undefined) {
|
|
81
|
+
await tx.addCellDepsOfKnownScripts(this.client, KnownScript.PWLock);
|
|
85
82
|
}
|
|
86
83
|
const account = await this.getEvmAccount();
|
|
87
84
|
const omniLockAddresses = await this._getOmniLockAddresses(account);
|
|
88
85
|
const pwLockAddresses = await this._getPWLockAddresses(account);
|
|
89
|
-
const omniTx =
|
|
90
|
-
return
|
|
86
|
+
const omniTx = reduceAsync(omniLockAddresses, (tx, { script }) => tx.prepareSighashAllWitness(script, 85, this.client), tx);
|
|
87
|
+
return reduceAsync(pwLockAddresses, (tx, { script }) => tx.prepareSighashAllWitness(script, 65, this.client), omniTx);
|
|
91
88
|
}
|
|
92
89
|
/**
|
|
93
90
|
* Signs a transaction without modifying it.
|
|
@@ -96,15 +93,15 @@ class SignerEvm extends index_js_9.Signer {
|
|
|
96
93
|
* @returns A promise that resolves to a signed Transaction object.
|
|
97
94
|
*/
|
|
98
95
|
async signOnlyTransaction(txLike) {
|
|
99
|
-
let tx =
|
|
96
|
+
let tx = Transaction.from(txLike);
|
|
100
97
|
const account = await this.getEvmAccount();
|
|
101
98
|
const { script: evmScript } = await this._getOmniLockEvmAddressObj(account);
|
|
102
99
|
const { script: oldEvmScript } = await this._getOmniLockOldEvmAddressObj(account);
|
|
103
100
|
tx = await this._signOmniLockScriptForTransaction(tx, evmScript, (hash) => `CKB transaction: ${hash}`);
|
|
104
|
-
tx = await this._signOmniLockScriptForTransaction(tx, oldEvmScript, (hash) =>
|
|
101
|
+
tx = await this._signOmniLockScriptForTransaction(tx, oldEvmScript, (hash) => bytesFrom(hash));
|
|
105
102
|
const pwAddress = await this._getPWLockEvmAddressObj(account);
|
|
106
103
|
if (pwAddress) {
|
|
107
|
-
tx = await this._signPWLockScriptForTransaction(tx, pwAddress.script, (hash) =>
|
|
104
|
+
tx = await this._signPWLockScriptForTransaction(tx, pwAddress.script, (hash) => bytesFrom(hash));
|
|
108
105
|
}
|
|
109
106
|
return tx;
|
|
110
107
|
}
|
|
@@ -113,18 +110,18 @@ class SignerEvm extends index_js_9.Signer {
|
|
|
113
110
|
if (!info) {
|
|
114
111
|
return tx;
|
|
115
112
|
}
|
|
116
|
-
const witness =
|
|
117
|
-
witness.lock =
|
|
113
|
+
const witness = WitnessArgs.fromBytes(tx.witnesses[info.position]);
|
|
114
|
+
witness.lock = hexFrom(bytesConcat(numToBytes(5 * 4 + info.signature.length, 4), numToBytes(4 * 4, 4), numToBytes(5 * 4 + info.signature.length, 4), numToBytes(5 * 4 + info.signature.length, 4), numToBytes(info.signature.length, 4), info.signature));
|
|
118
115
|
tx.setWitnessArgsAt(info.position, witness);
|
|
119
116
|
return tx;
|
|
120
117
|
}
|
|
121
118
|
async _signPWLockScriptForTransaction(tx, script, messageTransformer) {
|
|
122
|
-
const info = await this._signPersonalEvmForTransaction(tx, script, messageTransformer, new
|
|
119
|
+
const info = await this._signPersonalEvmForTransaction(tx, script, messageTransformer, new HasherKeecak256());
|
|
123
120
|
if (!info) {
|
|
124
121
|
return tx;
|
|
125
122
|
}
|
|
126
|
-
const witness =
|
|
127
|
-
witness.lock =
|
|
123
|
+
const witness = WitnessArgs.fromBytes(tx.witnesses[info.position]);
|
|
124
|
+
witness.lock = hexFrom(info.signature);
|
|
128
125
|
tx.setWitnessArgsAt(info.position, witness);
|
|
129
126
|
return tx;
|
|
130
127
|
}
|
|
@@ -133,11 +130,10 @@ class SignerEvm extends index_js_9.Signer {
|
|
|
133
130
|
if (!info) {
|
|
134
131
|
return;
|
|
135
132
|
}
|
|
136
|
-
const signature =
|
|
133
|
+
const signature = bytesFrom(await this.signMessageRaw(messageTransformer(info.message)));
|
|
137
134
|
if (signature[signature.length - 1] >= 27) {
|
|
138
135
|
signature[signature.length - 1] -= 27;
|
|
139
136
|
}
|
|
140
137
|
return { signature, position: info.position };
|
|
141
138
|
}
|
|
142
139
|
}
|
|
143
|
-
exports.SignerEvm = SignerEvm;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SignerEvmAddressReadonly = void 0;
|
|
4
|
-
const index_js_1 = require("../../hex/index.js");
|
|
5
|
-
const signerEvm_js_1 = require("./signerEvm.js");
|
|
1
|
+
import { hexFrom } from "../../hex/index.js";
|
|
2
|
+
import { SignerEvm } from "./signerEvm.js";
|
|
6
3
|
/**
|
|
7
4
|
* A class extending SignerEvm that provides read-only access to an EVM address.
|
|
8
5
|
* This class does not support signing operations.
|
|
9
6
|
* @public
|
|
10
7
|
*/
|
|
11
|
-
class SignerEvmAddressReadonly extends
|
|
8
|
+
export class SignerEvmAddressReadonly extends SignerEvm {
|
|
12
9
|
/**
|
|
13
10
|
* Creates an instance of SignerEvmAddressReadonly.
|
|
14
11
|
*
|
|
@@ -17,7 +14,7 @@ class SignerEvmAddressReadonly extends signerEvm_js_1.SignerEvm {
|
|
|
17
14
|
*/
|
|
18
15
|
constructor(client, address) {
|
|
19
16
|
super(client);
|
|
20
|
-
this.address =
|
|
17
|
+
this.address = hexFrom(address);
|
|
21
18
|
}
|
|
22
19
|
/**
|
|
23
20
|
* Connects to the client. This implementation does nothing as the class is read-only.
|
|
@@ -52,4 +49,3 @@ class SignerEvmAddressReadonly extends signerEvm_js_1.SignerEvm {
|
|
|
52
49
|
return this.address;
|
|
53
50
|
}
|
|
54
51
|
}
|
|
55
|
-
exports.SignerEvmAddressReadonly = SignerEvmAddressReadonly;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.verifyMessageEvmPersonal = verifyMessageEvmPersonal;
|
|
4
|
-
const ethers_1 = require("ethers");
|
|
5
|
-
const index_js_1 = require("../../bytes/index.js");
|
|
1
|
+
import { verifyMessage } from "ethers";
|
|
2
|
+
import { bytesFrom } from "../../bytes/index.js";
|
|
6
3
|
/**
|
|
7
4
|
* @public
|
|
8
5
|
*/
|
|
9
|
-
function verifyMessageEvmPersonal(message, signature, address) {
|
|
6
|
+
export function verifyMessageEvmPersonal(message, signature, address) {
|
|
10
7
|
return (address.toLowerCase() ===
|
|
11
|
-
|
|
8
|
+
verifyMessage(typeof message === "string" ? message : bytesFrom(message), signature).toLowerCase());
|
|
12
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,22 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./btc/index.js"), exports);
|
|
18
|
-
__exportStar(require("./ckb/index.js"), exports);
|
|
19
|
-
__exportStar(require("./dummy/index.js"), exports);
|
|
20
|
-
__exportStar(require("./evm/index.js"), exports);
|
|
21
|
-
__exportStar(require("./nostr/index.js"), exports);
|
|
22
|
-
__exportStar(require("./signer/index.js"), exports);
|
|
1
|
+
export * from "./btc/index.js";
|
|
2
|
+
export * from "./ckb/index.js";
|
|
3
|
+
export * from "./doge/index.js";
|
|
4
|
+
export * from "./dummy/index.js";
|
|
5
|
+
export * from "./evm/index.js";
|
|
6
|
+
export * from "./nostr/index.js";
|
|
7
|
+
export * from "./signer/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./signerNostr.js"), exports);
|
|
1
|
+
export * from "./signerNostr.js";
|
|
2
|
+
export * from "./verify.js";
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const index_js_6 = require("../../hex/index.js");
|
|
11
|
-
const index_js_7 = require("../signer/index.js");
|
|
12
|
-
const verify_js_1 = require("./verify.js");
|
|
1
|
+
import { bech32 } from "bech32";
|
|
2
|
+
import { Address } from "../../address/index.js";
|
|
3
|
+
import { bytesConcat, bytesFrom } from "../../bytes/index.js";
|
|
4
|
+
import { Transaction, WitnessArgs } from "../../ckb/index.js";
|
|
5
|
+
import { KnownScript } from "../../client/index.js";
|
|
6
|
+
import { hashCkb } from "../../hasher/index.js";
|
|
7
|
+
import { hexFrom } from "../../hex/index.js";
|
|
8
|
+
import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
9
|
+
import { buildNostrEventFromMessage } from "./verify.js";
|
|
13
10
|
/**
|
|
14
11
|
* @public
|
|
15
12
|
*/
|
|
16
|
-
class SignerNostr extends
|
|
13
|
+
export class SignerNostr extends Signer {
|
|
17
14
|
get type() {
|
|
18
|
-
return
|
|
15
|
+
return SignerType.Nostr;
|
|
19
16
|
}
|
|
20
17
|
get signType() {
|
|
21
|
-
return
|
|
18
|
+
return SignerSignType.NostrEvent;
|
|
22
19
|
}
|
|
23
20
|
/**
|
|
24
21
|
* Sign a message.
|
|
@@ -26,7 +23,7 @@ class SignerNostr extends index_js_7.Signer {
|
|
|
26
23
|
* @returns A promise that resolves to the signature.
|
|
27
24
|
*/
|
|
28
25
|
async signMessageRaw(message) {
|
|
29
|
-
return
|
|
26
|
+
return hexFrom((await this.signNostrEvent(buildNostrEventFromMessage(message))).sig);
|
|
30
27
|
}
|
|
31
28
|
/**
|
|
32
29
|
* Gets the internal address, which is the EVM account in this case.
|
|
@@ -34,7 +31,7 @@ class SignerNostr extends index_js_7.Signer {
|
|
|
34
31
|
* @returns A promise that resolves to a string representing the internal address.
|
|
35
32
|
*/
|
|
36
33
|
async getInternalAddress() {
|
|
37
|
-
return
|
|
34
|
+
return bech32.encode("npub", bech32.toWords(bytesFrom(await this.getNostrPublicKey())));
|
|
38
35
|
}
|
|
39
36
|
/**
|
|
40
37
|
* Gets an array of Address objects representing the known script addresses for the signer.
|
|
@@ -44,7 +41,7 @@ class SignerNostr extends index_js_7.Signer {
|
|
|
44
41
|
async getAddressObjs() {
|
|
45
42
|
const publicKey = await this.getNostrPublicKey();
|
|
46
43
|
return [
|
|
47
|
-
await
|
|
44
|
+
await Address.fromKnownScript(this.client, KnownScript.NostrLock, hexFrom(bytesConcat([0x00], hashCkb(publicKey).slice(0, 42)))),
|
|
48
45
|
];
|
|
49
46
|
}
|
|
50
47
|
/**
|
|
@@ -54,9 +51,9 @@ class SignerNostr extends index_js_7.Signer {
|
|
|
54
51
|
* @returns A promise that resolves to the prepared Transaction object.
|
|
55
52
|
*/
|
|
56
53
|
async prepareTransaction(txLike) {
|
|
57
|
-
const tx =
|
|
54
|
+
const tx = Transaction.from(txLike);
|
|
58
55
|
const { script } = await this.getRecommendedAddressObj();
|
|
59
|
-
await tx.addCellDepsOfKnownScripts(this.client,
|
|
56
|
+
await tx.addCellDepsOfKnownScripts(this.client, KnownScript.NostrLock);
|
|
60
57
|
await tx.prepareSighashAllWitness(script, 572, this.client);
|
|
61
58
|
return tx;
|
|
62
59
|
}
|
|
@@ -67,26 +64,25 @@ class SignerNostr extends index_js_7.Signer {
|
|
|
67
64
|
* @returns A promise that resolves to a signed Transaction object.
|
|
68
65
|
*/
|
|
69
66
|
async signOnlyTransaction(txLike) {
|
|
70
|
-
const tx =
|
|
67
|
+
const tx = Transaction.from(txLike);
|
|
71
68
|
const { script } = await this.getRecommendedAddressObj();
|
|
72
69
|
const info = await tx.getSignHashInfo(script, this.client);
|
|
73
70
|
if (!info) {
|
|
74
71
|
return tx;
|
|
75
72
|
}
|
|
76
|
-
const signedEvent =
|
|
73
|
+
const signedEvent = bytesFrom(JSON.stringify(await this.signNostrEvent({
|
|
77
74
|
pubkey: (await this.getNostrPublicKey()).slice(2),
|
|
78
75
|
tags: [[SignerNostr.CKB_SIG_HASH_ALL_TAG, info.message.slice(2)]],
|
|
79
76
|
created_at: Math.floor(Date.now() / 1000),
|
|
80
77
|
kind: SignerNostr.CKB_UNLOCK_EVENT_KIND,
|
|
81
78
|
content: SignerNostr.CKB_UNLOCK_EVENT_CONTENT,
|
|
82
79
|
})), "utf8");
|
|
83
|
-
const witness =
|
|
84
|
-
witness.lock =
|
|
80
|
+
const witness = WitnessArgs.fromBytes(tx.witnesses[info.position]);
|
|
81
|
+
witness.lock = hexFrom(signedEvent);
|
|
85
82
|
tx.setWitnessArgsAt(info.position, witness);
|
|
86
83
|
return tx;
|
|
87
84
|
}
|
|
88
85
|
}
|
|
89
|
-
exports.SignerNostr = SignerNostr;
|
|
90
86
|
SignerNostr.CKB_SIG_HASH_ALL_TAG = "ckb_sighash_all";
|
|
91
87
|
SignerNostr.CKB_UNLOCK_EVENT_KIND = 23334;
|
|
92
88
|
SignerNostr.CKB_UNLOCK_EVENT_CONTENT = "Signing a CKB transaction\n\nIMPORTANT: Please verify the integrity and authenticity of connected Nostr client before signing this message\n";
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const sha256_1 = require("@noble/hashes/sha256");
|
|
7
|
-
const bech32_1 = require("bech32");
|
|
8
|
-
const index_js_1 = require("../../bytes/index.js");
|
|
9
|
-
const index_js_2 = require("../../hex/index.js");
|
|
1
|
+
import { schnorr } from "@noble/curves/secp256k1";
|
|
2
|
+
import { sha256 } from "@noble/hashes/sha256";
|
|
3
|
+
import { bech32 } from "bech32";
|
|
4
|
+
import { bytesFrom } from "../../bytes/index.js";
|
|
5
|
+
import { hexFrom } from "../../hex/index.js";
|
|
10
6
|
/**
|
|
11
7
|
* @public
|
|
12
8
|
*/
|
|
13
|
-
function buildNostrEventFromMessage(message) {
|
|
9
|
+
export function buildNostrEventFromMessage(message) {
|
|
14
10
|
if (typeof message === "string") {
|
|
15
11
|
try {
|
|
16
12
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -30,13 +26,13 @@ function buildNostrEventFromMessage(message) {
|
|
|
30
26
|
return {
|
|
31
27
|
kind: 23335,
|
|
32
28
|
created_at: 0,
|
|
33
|
-
content: typeof message === "string" ? message :
|
|
29
|
+
content: typeof message === "string" ? message : hexFrom(message),
|
|
34
30
|
tags: [],
|
|
35
31
|
};
|
|
36
32
|
}
|
|
37
|
-
function verifyMessageNostrEvent(message, signature, address) {
|
|
38
|
-
const { words } =
|
|
39
|
-
const publicKey =
|
|
33
|
+
export function verifyMessageNostrEvent(message, signature, address) {
|
|
34
|
+
const { words } = bech32.decode(address);
|
|
35
|
+
const publicKey = hexFrom(bech32.fromWords(words)).slice(2);
|
|
40
36
|
const event = buildNostrEventFromMessage(message);
|
|
41
37
|
const serialized = JSON.stringify([
|
|
42
38
|
0,
|
|
@@ -46,9 +42,9 @@ function verifyMessageNostrEvent(message, signature, address) {
|
|
|
46
42
|
event.tags,
|
|
47
43
|
event.content,
|
|
48
44
|
]);
|
|
49
|
-
const eventHash =
|
|
45
|
+
const eventHash = hexFrom(sha256(bytesFrom(serialized, "utf8")));
|
|
50
46
|
try {
|
|
51
|
-
return
|
|
47
|
+
return schnorr.verify(signature.slice(2), eventHash.slice(2), publicKey);
|
|
52
48
|
}
|
|
53
49
|
catch (_) {
|
|
54
50
|
return false;
|
|
@@ -14,7 +14,8 @@ export declare enum SignerSignType {
|
|
|
14
14
|
EvmPersonal = "EvmPersonal",
|
|
15
15
|
JoyId = "JoyId",
|
|
16
16
|
NostrEvent = "NostrEvent",
|
|
17
|
-
CkbSecp256k1 = "CkbSecp256k1"
|
|
17
|
+
CkbSecp256k1 = "CkbSecp256k1",
|
|
18
|
+
DogeEcdsa = "DogeEcdsa"
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* An enumeration of signer display types in wallet.
|
|
@@ -24,7 +25,8 @@ export declare enum SignerType {
|
|
|
24
25
|
EVM = "EVM",
|
|
25
26
|
BTC = "BTC",
|
|
26
27
|
CKB = "CKB",
|
|
27
|
-
Nostr = "Nostr"
|
|
28
|
+
Nostr = "Nostr",
|
|
29
|
+
Doge = "Doge"
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* @public
|
|
@@ -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,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const verify_js_1 = require("../evm/verify.js");
|
|
8
|
-
const verify_js_2 = require("../nostr/verify.js");
|
|
1
|
+
import { verifyMessageBtcEcdsa } from "../btc/index.js";
|
|
2
|
+
import { verifyMessageCkbSecp256k1 } from "../ckb/verifyCkbSecp256k1.js";
|
|
3
|
+
import { verifyMessageJoyId } from "../ckb/verifyJoyId.js";
|
|
4
|
+
import { verifyMessageDogeEcdsa } from "../doge/verify.js";
|
|
5
|
+
import { verifyMessageEvmPersonal } from "../evm/verify.js";
|
|
6
|
+
import { verifyMessageNostrEvent } from "../nostr/verify.js";
|
|
9
7
|
/**
|
|
10
8
|
* @public
|
|
11
9
|
*/
|
|
12
|
-
var SignerSignType;
|
|
10
|
+
export var SignerSignType;
|
|
13
11
|
(function (SignerSignType) {
|
|
14
12
|
SignerSignType["Unknown"] = "Unknown";
|
|
15
13
|
SignerSignType["BtcEcdsa"] = "BtcEcdsa";
|
|
@@ -17,35 +15,36 @@ var SignerSignType;
|
|
|
17
15
|
SignerSignType["JoyId"] = "JoyId";
|
|
18
16
|
SignerSignType["NostrEvent"] = "NostrEvent";
|
|
19
17
|
SignerSignType["CkbSecp256k1"] = "CkbSecp256k1";
|
|
20
|
-
|
|
18
|
+
SignerSignType["DogeEcdsa"] = "DogeEcdsa";
|
|
19
|
+
})(SignerSignType || (SignerSignType = {}));
|
|
21
20
|
/**
|
|
22
21
|
* An enumeration of signer display types in wallet.
|
|
23
22
|
* @public
|
|
24
23
|
*/
|
|
25
|
-
var SignerType;
|
|
24
|
+
export var SignerType;
|
|
26
25
|
(function (SignerType) {
|
|
27
26
|
SignerType["EVM"] = "EVM";
|
|
28
27
|
SignerType["BTC"] = "BTC";
|
|
29
28
|
SignerType["CKB"] = "CKB";
|
|
30
29
|
SignerType["Nostr"] = "Nostr";
|
|
31
|
-
|
|
30
|
+
SignerType["Doge"] = "Doge";
|
|
31
|
+
})(SignerType || (SignerType = {}));
|
|
32
32
|
/**
|
|
33
33
|
* @public
|
|
34
34
|
*/
|
|
35
|
-
class Signature {
|
|
35
|
+
export class Signature {
|
|
36
36
|
constructor(signature, identity, signType) {
|
|
37
37
|
this.signature = signature;
|
|
38
38
|
this.identity = identity;
|
|
39
39
|
this.signType = signType;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
exports.Signature = Signature;
|
|
43
42
|
/**
|
|
44
43
|
* An abstract class representing a generic signer.
|
|
45
44
|
* This class provides methods to connect, get addresses, and sign transactions.
|
|
46
45
|
* @public
|
|
47
46
|
*/
|
|
48
|
-
class Signer {
|
|
47
|
+
export class Signer {
|
|
49
48
|
constructor(client_) {
|
|
50
49
|
this.client_ = client_;
|
|
51
50
|
}
|
|
@@ -68,15 +67,17 @@ class Signer {
|
|
|
68
67
|
static async verifyMessage(message, signature) {
|
|
69
68
|
switch (signature.signType) {
|
|
70
69
|
case SignerSignType.EvmPersonal:
|
|
71
|
-
return
|
|
70
|
+
return verifyMessageEvmPersonal(message, signature.signature, signature.identity);
|
|
72
71
|
case SignerSignType.BtcEcdsa:
|
|
73
|
-
return
|
|
72
|
+
return verifyMessageBtcEcdsa(message, signature.signature, signature.identity);
|
|
74
73
|
case SignerSignType.JoyId:
|
|
75
|
-
return
|
|
74
|
+
return verifyMessageJoyId(message, signature.signature, signature.identity);
|
|
76
75
|
case SignerSignType.NostrEvent:
|
|
77
|
-
return
|
|
76
|
+
return verifyMessageNostrEvent(message, signature.signature, signature.identity);
|
|
78
77
|
case SignerSignType.CkbSecp256k1:
|
|
79
|
-
return
|
|
78
|
+
return verifyMessageCkbSecp256k1(message, signature.signature, signature.identity);
|
|
79
|
+
case SignerSignType.DogeEcdsa:
|
|
80
|
+
return verifyMessageDogeEcdsa(message, signature.signature, signature.identity);
|
|
80
81
|
case SignerSignType.Unknown:
|
|
81
82
|
throw new Error("Unknown signer sign type");
|
|
82
83
|
}
|
|
@@ -261,15 +262,13 @@ class Signer {
|
|
|
261
262
|
throw Error("Signer.signOnlyTransaction not implemented");
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
|
-
exports.Signer = Signer;
|
|
265
265
|
/**
|
|
266
266
|
* A class representing information about a signer, including its type and the signer instance.
|
|
267
267
|
* @public
|
|
268
268
|
*/
|
|
269
|
-
class SignerInfo {
|
|
269
|
+
export class SignerInfo {
|
|
270
270
|
constructor(name, signer) {
|
|
271
271
|
this.name = name;
|
|
272
272
|
this.signer = signer;
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
|
-
exports.SignerInfo = SignerInfo;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.apply = apply;
|
|
4
|
-
exports.reduceAsync = reduceAsync;
|
|
5
|
-
exports.sleep = sleep;
|
|
6
|
-
exports.isWebview = isWebview;
|
|
7
|
-
const index_js_1 = require("../num/index.js");
|
|
1
|
+
import { numFrom } from "../num/index.js";
|
|
8
2
|
/**
|
|
9
3
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
10
4
|
* @public
|
|
@@ -13,7 +7,7 @@ const index_js_1 = require("../num/index.js");
|
|
|
13
7
|
* @param value - The value to be transformed.
|
|
14
8
|
* @returns If the value is empty, it becomes undefined. Otherwise it will be transformed.
|
|
15
9
|
*/
|
|
16
|
-
function apply(transformer, value) {
|
|
10
|
+
export function apply(transformer, value) {
|
|
17
11
|
if (value == null) {
|
|
18
12
|
return undefined;
|
|
19
13
|
}
|
|
@@ -28,7 +22,7 @@ function apply(transformer, value) {
|
|
|
28
22
|
* @param init - The initial value.
|
|
29
23
|
* @returns The accumulated result.
|
|
30
24
|
*/
|
|
31
|
-
async function reduceAsync(values, accumulator, init) {
|
|
25
|
+
export async function reduceAsync(values, accumulator, init) {
|
|
32
26
|
if (init === undefined) {
|
|
33
27
|
if (values.length === 0) {
|
|
34
28
|
throw new TypeError("Reduce of empty array with no initial value");
|
|
@@ -38,12 +32,12 @@ async function reduceAsync(values, accumulator, init) {
|
|
|
38
32
|
}
|
|
39
33
|
return values.reduce((current, b, i, array) => current.then((v) => Promise.resolve(accumulator(v, b, i, array)).then((r) => r ?? v)), Promise.resolve(init));
|
|
40
34
|
}
|
|
41
|
-
function sleep(ms) {
|
|
42
|
-
return new Promise((resolve) => setTimeout(resolve, Number(
|
|
35
|
+
export function sleep(ms) {
|
|
36
|
+
return new Promise((resolve) => setTimeout(resolve, Number(numFrom(ms))));
|
|
43
37
|
}
|
|
44
38
|
/**
|
|
45
39
|
* @public
|
|
46
40
|
*/
|
|
47
|
-
function isWebview(userAgent) {
|
|
41
|
+
export function isWebview(userAgent) {
|
|
48
42
|
return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
|
|
49
43
|
}
|