@ckb-ccc/core 0.0.12-alpha.0 → 0.0.12
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 +3 -0
- package/README.md +5 -5
- package/dist/address/index.d.ts +4 -0
- package/dist/address/index.d.ts.map +1 -1
- package/dist/address/index.js +1 -0
- package/dist/advancedBarrel.d.ts +1 -0
- package/dist/advancedBarrel.d.ts.map +1 -1
- package/dist/advancedBarrel.js +1 -0
- package/dist/bytes/advanced.d.ts +1 -0
- package/dist/bytes/advanced.d.ts.map +1 -1
- package/dist/bytes/index.d.ts +9 -0
- package/dist/bytes/index.d.ts.map +1 -1
- package/dist/bytes/index.js +3 -0
- package/dist/ckb/index.d.ts +1 -0
- package/dist/ckb/index.d.ts.map +1 -1
- package/dist/ckb/index.js +1 -0
- package/dist/ckb/script.d.ts +15 -0
- package/dist/ckb/script.d.ts.map +1 -1
- package/dist/ckb/script.js +6 -0
- package/dist/ckb/transaction.d.ts +65 -11
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +41 -14
- package/dist/ckb/transactionLumos.d.ts +29 -0
- package/dist/ckb/transactionLumos.d.ts.map +1 -0
- package/dist/ckb/transactionLumos.js +1 -0
- package/dist/client/client.d.ts +13 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +10 -1
- package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.advanced.js +9 -0
- package/dist/client/clientPublicMainnet.d.ts +3 -0
- package/dist/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.js +3 -0
- package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.advanced.js +9 -0
- package/dist/client/clientPublicTestnet.d.ts +3 -0
- package/dist/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.js +3 -0
- package/dist/client/clientTypes.d.ts +45 -0
- package/dist/client/clientTypes.d.ts.map +1 -1
- package/dist/client/clientTypes.js +9 -0
- package/dist/client/jsonRpc/index.d.ts +6 -6
- package/dist/client/jsonRpc/index.d.ts.map +1 -1
- package/dist/client/jsonRpc/index.js +3 -3
- package/dist/fixedPoint/index.d.ts +6 -0
- package/dist/fixedPoint/index.d.ts.map +1 -1
- package/dist/fixedPoint/index.js +5 -0
- package/dist/hasher/hasher.d.ts +3 -0
- package/dist/hasher/hasher.d.ts.map +1 -1
- package/dist/hasher/hasherCkb.d.ts +6 -1
- package/dist/hasher/hasherCkb.d.ts.map +1 -1
- package/dist/hasher/hasherCkb.js +6 -1
- package/dist/hasher/hasherKeecak256.d.ts +3 -0
- package/dist/hasher/hasherKeecak256.d.ts.map +1 -1
- package/dist/hasher/hasherKeecak256.js +3 -0
- package/dist/hex/index.d.ts +3 -0
- package/dist/hex/index.d.ts.map +1 -1
- package/dist/hex/index.js +1 -0
- package/dist/keystore/index.d.ts +6 -0
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/index.js +6 -0
- package/dist/num/index.d.ts +11 -0
- package/dist/num/index.d.ts.map +1 -1
- package/dist/num/index.js +9 -0
- package/dist/package.json +1 -1
- package/dist/signer/btc/signerBtc.d.ts +1 -0
- package/dist/signer/btc/signerBtc.d.ts.map +1 -1
- package/dist/signer/btc/signerBtc.js +1 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +1 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
- package/dist/signer/btc/signerBtcPublicKeyReadonly.js +1 -0
- package/dist/signer/btc/verify.d.ts +3 -0
- package/dist/signer/btc/verify.d.ts.map +1 -1
- package/dist/signer/btc/verify.js +3 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts +3 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbPrivateKey.js +3 -0
- package/dist/signer/ckb/signerCkbPublicKey.d.ts +3 -0
- package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbPublicKey.js +3 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +1 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
- package/dist/signer/ckb/signerCkbScriptReadonly.js +1 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +6 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -1
- package/dist/signer/ckb/verifyCkbSecp256k1.js +6 -0
- package/dist/signer/ckb/verifyJoyId.d.ts +3 -0
- package/dist/signer/ckb/verifyJoyId.d.ts.map +1 -1
- package/dist/signer/ckb/verifyJoyId.js +3 -0
- package/dist/signer/dummy/alwaysError.d.ts +3 -0
- package/dist/signer/dummy/alwaysError.d.ts.map +1 -1
- package/dist/signer/dummy/alwaysError.js +3 -0
- package/dist/signer/dummy/dummy.d.ts +3 -0
- package/dist/signer/dummy/dummy.d.ts.map +1 -1
- package/dist/signer/dummy/dummy.js +3 -0
- package/dist/signer/dummy/openLink.d.ts +3 -0
- package/dist/signer/dummy/openLink.d.ts.map +1 -1
- package/dist/signer/dummy/openLink.js +3 -0
- package/dist/signer/evm/signerEvm.d.ts +1 -0
- package/dist/signer/evm/signerEvm.d.ts.map +1 -1
- package/dist/signer/evm/signerEvm.js +1 -0
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts +1 -0
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
- package/dist/signer/evm/signerEvmAddressReadonly.js +1 -0
- package/dist/signer/evm/verify.d.ts +3 -0
- package/dist/signer/evm/verify.d.ts.map +1 -1
- package/dist/signer/evm/verify.js +3 -0
- package/dist/signer/nostr/signerNostr.d.ts +6 -0
- package/dist/signer/nostr/signerNostr.d.ts.map +1 -1
- package/dist/signer/nostr/signerNostr.js +3 -0
- package/dist/signer/nostr/verify.d.ts +3 -0
- package/dist/signer/nostr/verify.d.ts.map +1 -1
- package/dist/signer/nostr/verify.js +3 -0
- package/dist/signer/signer/index.d.ts +26 -3
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +12 -3
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -0
- package/dist.commonjs/address/index.d.ts +4 -0
- package/dist.commonjs/address/index.d.ts.map +1 -1
- package/dist.commonjs/address/index.js +1 -0
- package/dist.commonjs/advancedBarrel.d.ts +1 -0
- package/dist.commonjs/advancedBarrel.d.ts.map +1 -1
- package/dist.commonjs/advancedBarrel.js +1 -0
- package/dist.commonjs/bytes/advanced.d.ts +1 -0
- package/dist.commonjs/bytes/advanced.d.ts.map +1 -1
- package/dist.commonjs/bytes/index.d.ts +9 -0
- package/dist.commonjs/bytes/index.d.ts.map +1 -1
- package/dist.commonjs/bytes/index.js +3 -0
- package/dist.commonjs/ckb/index.d.ts +1 -0
- package/dist.commonjs/ckb/index.d.ts.map +1 -1
- package/dist.commonjs/ckb/index.js +1 -0
- package/dist.commonjs/ckb/script.d.ts +15 -0
- package/dist.commonjs/ckb/script.d.ts.map +1 -1
- package/dist.commonjs/ckb/script.js +6 -0
- package/dist.commonjs/ckb/transaction.d.ts +65 -11
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +41 -14
- package/dist.commonjs/ckb/transactionLumos.d.ts +29 -0
- package/dist.commonjs/ckb/transactionLumos.d.ts.map +1 -0
- package/dist.commonjs/ckb/transactionLumos.js +2 -0
- package/dist.commonjs/client/client.d.ts +13 -1
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +10 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +9 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts +3 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.js +3 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +9 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts +3 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.js +3 -0
- package/dist.commonjs/client/clientTypes.d.ts +45 -0
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.js +9 -0
- package/dist.commonjs/client/jsonRpc/index.d.ts +6 -6
- package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/index.js +3 -3
- package/dist.commonjs/fixedPoint/index.d.ts +6 -0
- package/dist.commonjs/fixedPoint/index.d.ts.map +1 -1
- package/dist.commonjs/fixedPoint/index.js +5 -0
- package/dist.commonjs/hasher/hasher.d.ts +3 -0
- package/dist.commonjs/hasher/hasher.d.ts.map +1 -1
- package/dist.commonjs/hasher/hasherCkb.d.ts +6 -1
- package/dist.commonjs/hasher/hasherCkb.d.ts.map +1 -1
- package/dist.commonjs/hasher/hasherCkb.js +6 -1
- package/dist.commonjs/hasher/hasherKeecak256.d.ts +3 -0
- package/dist.commonjs/hasher/hasherKeecak256.d.ts.map +1 -1
- package/dist.commonjs/hasher/hasherKeecak256.js +3 -0
- package/dist.commonjs/hex/index.d.ts +3 -0
- package/dist.commonjs/hex/index.d.ts.map +1 -1
- package/dist.commonjs/hex/index.js +1 -0
- package/dist.commonjs/keystore/index.d.ts +6 -0
- package/dist.commonjs/keystore/index.d.ts.map +1 -1
- package/dist.commonjs/keystore/index.js +6 -0
- package/dist.commonjs/num/index.d.ts +11 -0
- package/dist.commonjs/num/index.d.ts.map +1 -1
- package/dist.commonjs/num/index.js +9 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts +1 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/signerBtc.js +1 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +1 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +1 -0
- package/dist.commonjs/signer/btc/verify.d.ts +3 -0
- package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/btc/verify.js +3 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +3 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +3 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +3 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +3 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +1 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +1 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +6 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +6 -0
- package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +3 -0
- package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +1 -1
- package/dist.commonjs/signer/ckb/verifyJoyId.js +3 -0
- package/dist.commonjs/signer/dummy/alwaysError.d.ts +3 -0
- package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -1
- package/dist.commonjs/signer/dummy/alwaysError.js +3 -0
- package/dist.commonjs/signer/dummy/dummy.d.ts +3 -0
- package/dist.commonjs/signer/dummy/dummy.d.ts.map +1 -1
- package/dist.commonjs/signer/dummy/dummy.js +3 -0
- package/dist.commonjs/signer/dummy/openLink.d.ts +3 -0
- package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -1
- package/dist.commonjs/signer/dummy/openLink.js +3 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts +1 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
- package/dist.commonjs/signer/evm/signerEvm.js +1 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +1 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +1 -0
- package/dist.commonjs/signer/evm/verify.d.ts +3 -0
- package/dist.commonjs/signer/evm/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/evm/verify.js +3 -0
- package/dist.commonjs/signer/nostr/signerNostr.d.ts +6 -0
- package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +1 -1
- package/dist.commonjs/signer/nostr/signerNostr.js +3 -0
- package/dist.commonjs/signer/nostr/verify.d.ts +3 -0
- package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/nostr/verify.js +3 -0
- package/dist.commonjs/signer/signer/index.d.ts +26 -3
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +12 -3
- package/dist.commonjs/utils/index.d.ts +12 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -1
- package/dist.commonjs/utils/index.js +13 -0
- package/package.json +8 -10
- package/src/address/index.ts +4 -1
- package/src/advancedBarrel.ts +1 -0
- package/src/bytes/advanced.ts +1 -0
- package/src/bytes/index.ts +9 -0
- package/src/ckb/index.ts +1 -0
- package/src/ckb/script.ts +15 -0
- package/src/ckb/transaction.ts +72 -16
- package/src/ckb/transactionLumos.ts +26 -0
- package/src/client/client.ts +13 -1
- package/src/client/clientPublicMainnet.advanced.ts +10 -0
- package/src/client/clientPublicMainnet.ts +3 -0
- package/src/client/clientPublicTestnet.advanced.ts +10 -0
- package/src/client/clientPublicTestnet.ts +3 -0
- package/src/client/clientTypes.ts +45 -0
- package/src/client/jsonRpc/index.ts +5 -6
- package/src/fixedPoint/index.ts +6 -0
- package/src/hasher/hasher.ts +3 -0
- package/src/hasher/hasherCkb.ts +6 -1
- package/src/hasher/hasherKeecak256.ts +3 -0
- package/src/hex/index.ts +3 -0
- package/src/keystore/index.ts +6 -0
- package/src/num/index.ts +11 -0
- package/src/signer/btc/signerBtc.ts +1 -0
- package/src/signer/btc/signerBtcPublicKeyReadonly.ts +1 -0
- package/src/signer/btc/verify.ts +3 -0
- package/src/signer/ckb/signerCkbPrivateKey.ts +3 -0
- package/src/signer/ckb/signerCkbPublicKey.ts +3 -0
- package/src/signer/ckb/signerCkbScriptReadonly.ts +1 -0
- package/src/signer/ckb/verifyCkbSecp256k1.ts +6 -0
- package/src/signer/ckb/verifyJoyId.ts +3 -0
- package/src/signer/dummy/alwaysError.ts +3 -0
- package/src/signer/dummy/dummy.ts +3 -0
- package/src/signer/dummy/openLink.ts +3 -0
- package/src/signer/evm/signerEvm.ts +1 -0
- package/src/signer/evm/signerEvmAddressReadonly.ts +1 -0
- package/src/signer/evm/verify.ts +3 -0
- package/src/signer/nostr/signerNostr.ts +6 -0
- package/src/signer/nostr/verify.ts +3 -0
- package/src/signer/signer/index.ts +26 -14
- package/src/utils/index.ts +22 -0
- package/typedoc.json +6 -0
package/src/keystore/index.ts
CHANGED
|
@@ -18,6 +18,9 @@ function mac(derivedKey: Bytes, cipherText: Bytes) {
|
|
|
18
18
|
).slice(2);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
21
24
|
export async function keystoreEncrypt(
|
|
22
25
|
privateKeyLike: BytesLike,
|
|
23
26
|
chainCodeLike: BytesLike,
|
|
@@ -79,6 +82,9 @@ export async function keystoreEncrypt(
|
|
|
79
82
|
};
|
|
80
83
|
}
|
|
81
84
|
|
|
85
|
+
/**
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
82
88
|
export async function keystoreDecrypt(
|
|
83
89
|
keystore: unknown,
|
|
84
90
|
password: string,
|
package/src/num/index.ts
CHANGED
|
@@ -3,17 +3,20 @@ import { Hex, HexLike, hexFrom } from "../hex/index.js";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Represents a numeric value as a bigint.
|
|
6
|
+
* @public
|
|
6
7
|
*/
|
|
7
8
|
export type Num = bigint;
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Represents a value that can be converted to a numeric value.
|
|
11
12
|
* It can be a string, number, bigint, or HexLike.
|
|
13
|
+
* @public
|
|
12
14
|
*/
|
|
13
15
|
export type NumLike = string | number | bigint | HexLike;
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* Get the max among all numbers.
|
|
19
|
+
* @public
|
|
17
20
|
*
|
|
18
21
|
* @param numbers - numbers.
|
|
19
22
|
* @returns The max numbers among them.
|
|
@@ -36,6 +39,7 @@ export function numMax(a: NumLike, ...numbers: NumLike[]): Num {
|
|
|
36
39
|
|
|
37
40
|
/**
|
|
38
41
|
* Converts a NumLike value to a Num (bigint).
|
|
42
|
+
* @public
|
|
39
43
|
*
|
|
40
44
|
* @param val - The value to convert, which can be a string, number, bigint, or HexLike.
|
|
41
45
|
* @returns A Num (bigint) representing the value.
|
|
@@ -60,6 +64,7 @@ export function numFrom(val: NumLike): Num {
|
|
|
60
64
|
|
|
61
65
|
/**
|
|
62
66
|
* Converts a NumLike value to a hexadecimal string.
|
|
67
|
+
* @public
|
|
63
68
|
*
|
|
64
69
|
* @param val - The value to convert, which can be a string, number, bigint, or HexLike.
|
|
65
70
|
* @returns A Hex string representing the numeric value.
|
|
@@ -75,6 +80,7 @@ export function numToHex(val: NumLike): Hex {
|
|
|
75
80
|
|
|
76
81
|
/**
|
|
77
82
|
* Converts a NumLike value to a byte array in little-endian order.
|
|
83
|
+
* @public
|
|
78
84
|
*
|
|
79
85
|
* @param val - The value to convert, which can be a string, number, bigint, or HexLike.
|
|
80
86
|
* @param bytes - The number of bytes to use for the representation. If not provided, the exact number of bytes needed is used.
|
|
@@ -92,6 +98,7 @@ export function numToBytes(val: NumLike, bytes?: number): Bytes {
|
|
|
92
98
|
|
|
93
99
|
/**
|
|
94
100
|
* Converts a NumLike value to a byte array in little-endian order.
|
|
101
|
+
* @public
|
|
95
102
|
*
|
|
96
103
|
* @param val - The value to convert, which can be a string, number, bigint, or HexLike.
|
|
97
104
|
* @param bytes - The number of bytes to use for the representation. If not provided, the exact number of bytes needed is used.
|
|
@@ -108,6 +115,7 @@ export function numLeToBytes(val: NumLike, bytes?: number): Bytes {
|
|
|
108
115
|
|
|
109
116
|
/**
|
|
110
117
|
* Converts a NumLike value to a byte array in big-endian order.
|
|
118
|
+
* @public
|
|
111
119
|
*
|
|
112
120
|
* @param val - The value to convert, which can be a string, number, bigint, or HexLike.
|
|
113
121
|
* @param bytes - The number of bytes to use for the representation. If not provided, the exact number of bytes needed is used.
|
|
@@ -132,6 +140,7 @@ export function numBeToBytes(val: NumLike, bytes?: number): Bytes {
|
|
|
132
140
|
|
|
133
141
|
/**
|
|
134
142
|
* Converts a byte array to a Num (bigint) assuming little-endian order.
|
|
143
|
+
* @public
|
|
135
144
|
*
|
|
136
145
|
* @param val - The byte array to convert.
|
|
137
146
|
* @returns A Num (bigint) representing the numeric value.
|
|
@@ -147,6 +156,7 @@ export function numFromBytes(val: BytesLike): Num {
|
|
|
147
156
|
|
|
148
157
|
/**
|
|
149
158
|
* Converts a byte array to a Num (bigint) assuming little-endian order.
|
|
159
|
+
* @public
|
|
150
160
|
*
|
|
151
161
|
* @param val - The byte array to convert.
|
|
152
162
|
* @returns A Num (bigint) representing the numeric value.
|
|
@@ -162,6 +172,7 @@ export function numLeFromBytes(val: BytesLike): Num {
|
|
|
162
172
|
|
|
163
173
|
/**
|
|
164
174
|
* Converts a byte array to a Num (bigint) assuming big-endian order.
|
|
175
|
+
* @public
|
|
165
176
|
*
|
|
166
177
|
* @param val - The byte array to convert.
|
|
167
178
|
* @returns A Num (bigint) representing the numeric value.
|
|
@@ -12,6 +12,7 @@ import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
|
12
12
|
* An abstract class extending the Signer class for Bitcoin-like signing operations.
|
|
13
13
|
* This class provides methods to get Bitcoin account, public key, and internal address,
|
|
14
14
|
* as well as signing transactions.
|
|
15
|
+
* @public
|
|
15
16
|
*/
|
|
16
17
|
export abstract class SignerBtc extends Signer {
|
|
17
18
|
get type(): SignerType {
|
|
@@ -5,6 +5,7 @@ import { SignerBtc } from "./signerBtc.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* A class extending SignerBtc that provides read-only access to a Bitcoin public key and account.
|
|
7
7
|
* This class does not support signing operations.
|
|
8
|
+
* @public
|
|
8
9
|
*/
|
|
9
10
|
export class SignerBtcPublicKeyReadonly extends SignerBtc {
|
|
10
11
|
private readonly publicKey: Hex;
|
package/src/signer/btc/verify.ts
CHANGED
|
@@ -3,6 +3,9 @@ import { magicHash } from "bitcoinjs-message";
|
|
|
3
3
|
import { BytesLike, bytesFrom } from "../../bytes/index.js";
|
|
4
4
|
import { hexFrom } from "../../hex/index.js";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
6
9
|
export function verifyMessageBtcEcdsa(
|
|
7
10
|
message: string | BytesLike,
|
|
8
11
|
signature: string,
|
|
@@ -7,6 +7,9 @@ import { numBeToBytes } from "../../num/index.js";
|
|
|
7
7
|
import { SignerCkbPublicKey } from "./signerCkbPublicKey.js";
|
|
8
8
|
import { messageHashCkbSecp256k1 } from "./verifyCkbSecp256k1.js";
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
10
13
|
export class SignerCkbPrivateKey extends SignerCkbPublicKey {
|
|
11
14
|
public readonly privateKey: Hex;
|
|
12
15
|
|
|
@@ -6,6 +6,9 @@ import { hashCkb } from "../../hasher/index.js";
|
|
|
6
6
|
import { Hex, HexLike, hexFrom } from "../../hex/index.js";
|
|
7
7
|
import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
9
12
|
export class SignerCkbPublicKey extends Signer {
|
|
10
13
|
get type(): SignerType {
|
|
11
14
|
return SignerType.CKB;
|
|
@@ -6,6 +6,7 @@ import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* A class extending Signer that provides read-only access to a CKB script.
|
|
8
8
|
* This class does not support signing operations.
|
|
9
|
+
* @public
|
|
9
10
|
*/
|
|
10
11
|
export class SignerCkbScriptReadonly extends Signer {
|
|
11
12
|
get type(): SignerType {
|
|
@@ -4,12 +4,18 @@ import { hashCkb } from "../../hasher/index.js";
|
|
|
4
4
|
import { Hex, hexFrom } from "../../hex/index.js";
|
|
5
5
|
import { numFrom } from "../../num/index.js";
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
7
10
|
export function messageHashCkbSecp256k1(message: string | BytesLike): Hex {
|
|
8
11
|
const msg = typeof message === "string" ? message : hexFrom(message);
|
|
9
12
|
const buffer = bytesFrom(`Nervos Message:${msg}`, "utf8");
|
|
10
13
|
return hashCkb(buffer);
|
|
11
14
|
}
|
|
12
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
13
19
|
export function verifyMessageCkbSecp256k1(
|
|
14
20
|
message: string | BytesLike,
|
|
15
21
|
signature: string,
|
|
@@ -2,6 +2,9 @@ import { Address } from "../../address/index.js";
|
|
|
2
2
|
import { Client } from "../../client/index.js";
|
|
3
3
|
import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
5
8
|
export abstract class SignerDummy extends Signer {
|
|
6
9
|
get signType(): SignerSignType {
|
|
7
10
|
return SignerSignType.Unknown;
|
|
@@ -16,6 +16,7 @@ import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
|
16
16
|
/**
|
|
17
17
|
* An abstract class extending Signer for Ethereum Virtual Machine (EVM) based signing operations.
|
|
18
18
|
* This class provides methods to get EVM account, internal address, and signing transactions.
|
|
19
|
+
* @public
|
|
19
20
|
*/
|
|
20
21
|
export abstract class SignerEvm extends Signer {
|
|
21
22
|
get type(): SignerType {
|
|
@@ -5,6 +5,7 @@ import { SignerEvm } from "./signerEvm.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* A class extending SignerEvm that provides read-only access to an EVM address.
|
|
7
7
|
* This class does not support signing operations.
|
|
8
|
+
* @public
|
|
8
9
|
*/
|
|
9
10
|
export class SignerEvmAddressReadonly extends SignerEvm {
|
|
10
11
|
private readonly address: Hex;
|
package/src/signer/evm/verify.ts
CHANGED
|
@@ -8,6 +8,9 @@ import { Hex, hexFrom } from "../../hex/index.js";
|
|
|
8
8
|
import { Signer, SignerSignType, SignerType } from "../signer/index.js";
|
|
9
9
|
import { buildNostrEventFromMessage } from "./verify.js";
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
11
14
|
export interface NostrEvent {
|
|
12
15
|
id?: string;
|
|
13
16
|
pubkey?: string;
|
|
@@ -18,6 +21,9 @@ export interface NostrEvent {
|
|
|
18
21
|
content: string;
|
|
19
22
|
}
|
|
20
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
21
27
|
export abstract class SignerNostr extends Signer {
|
|
22
28
|
static CKB_SIG_HASH_ALL_TAG = "ckb_sighash_all";
|
|
23
29
|
static CKB_UNLOCK_EVENT_KIND = 23334;
|
|
@@ -5,6 +5,9 @@ import { BytesLike, bytesFrom } from "../../bytes/index.js";
|
|
|
5
5
|
import { hexFrom } from "../../hex/index.js";
|
|
6
6
|
import { NostrEvent } from "./signerNostr.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
8
11
|
export function buildNostrEventFromMessage(
|
|
9
12
|
message: string | BytesLike,
|
|
10
13
|
): NostrEvent {
|
|
@@ -10,6 +10,9 @@ import { verifyMessageJoyId } from "../ckb/verifyJoyId.js";
|
|
|
10
10
|
import { verifyMessageEvmPersonal } from "../evm/verify.js";
|
|
11
11
|
import { verifyMessageNostrEvent } from "../nostr/verify.js";
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
13
16
|
export enum SignerSignType {
|
|
14
17
|
Unknown = "Unknown",
|
|
15
18
|
BtcEcdsa = "BtcEcdsa",
|
|
@@ -21,6 +24,7 @@ export enum SignerSignType {
|
|
|
21
24
|
|
|
22
25
|
/**
|
|
23
26
|
* An enumeration of signer display types in wallet.
|
|
27
|
+
* @public
|
|
24
28
|
*/
|
|
25
29
|
export enum SignerType {
|
|
26
30
|
EVM = "EVM",
|
|
@@ -29,23 +33,28 @@ export enum SignerType {
|
|
|
29
33
|
Nostr = "Nostr",
|
|
30
34
|
}
|
|
31
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
32
39
|
export type NetworkPreference = {
|
|
33
40
|
addressPrefix: string;
|
|
34
41
|
signerType: SignerType;
|
|
42
|
+
/**
|
|
43
|
+
* Wallet signers should check if the wallet is using preferred networks.
|
|
44
|
+
* If not, try to switch to the first preferred network.
|
|
45
|
+
* If non preferred, let users choose what they want.
|
|
46
|
+
* BTC: // They made a mess...
|
|
47
|
+
* btc
|
|
48
|
+
* btcTestnet
|
|
49
|
+
* btcSignet // OKX
|
|
50
|
+
* fractalBtc // UniSat
|
|
51
|
+
*/
|
|
35
52
|
network: string;
|
|
36
|
-
/*
|
|
37
|
-
Wallet signers should check if the wallet is using preferred networks.
|
|
38
|
-
If not, try to switch to the first preferred network.
|
|
39
|
-
If non preferred, let users choose what they want.
|
|
40
|
-
|
|
41
|
-
BTC: // They made a mess...
|
|
42
|
-
btc
|
|
43
|
-
btcTestnet
|
|
44
|
-
btcSignet // OKX
|
|
45
|
-
fractalBtc // UniSat
|
|
46
|
-
*/
|
|
47
53
|
};
|
|
48
54
|
|
|
55
|
+
/**
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
49
58
|
export class Signature {
|
|
50
59
|
constructor(
|
|
51
60
|
public signature: string,
|
|
@@ -57,6 +66,7 @@ export class Signature {
|
|
|
57
66
|
/**
|
|
58
67
|
* An abstract class representing a generic signer.
|
|
59
68
|
* This class provides methods to connect, get addresses, and sign transactions.
|
|
69
|
+
* @public
|
|
60
70
|
*/
|
|
61
71
|
export abstract class Signer {
|
|
62
72
|
constructor(protected client_: Client) {}
|
|
@@ -227,7 +237,7 @@ export abstract class Signer {
|
|
|
227
237
|
/**
|
|
228
238
|
* Signs a message.
|
|
229
239
|
*
|
|
230
|
-
* @param
|
|
240
|
+
* @param message - The message to sign, as a string or BytesLike object.
|
|
231
241
|
* @returns A promise that resolves to the signature info.
|
|
232
242
|
* @throws Will throw an error if not implemented.
|
|
233
243
|
*/
|
|
@@ -253,8 +263,8 @@ export abstract class Signer {
|
|
|
253
263
|
/**
|
|
254
264
|
* Verify a signature.
|
|
255
265
|
*
|
|
256
|
-
* @param
|
|
257
|
-
* @param
|
|
266
|
+
* @param message - The original message.
|
|
267
|
+
* @param signature - The signature to verify.
|
|
258
268
|
* @returns A promise that resolves to the verification result.
|
|
259
269
|
* @throws Will throw an error if not implemented.
|
|
260
270
|
*/
|
|
@@ -326,6 +336,7 @@ export abstract class Signer {
|
|
|
326
336
|
|
|
327
337
|
/**
|
|
328
338
|
* A class representing information about a signer, including its type and the signer instance.
|
|
339
|
+
* @public
|
|
329
340
|
*/
|
|
330
341
|
export class SignerInfo {
|
|
331
342
|
constructor(
|
|
@@ -336,6 +347,7 @@ export class SignerInfo {
|
|
|
336
347
|
|
|
337
348
|
/**
|
|
338
349
|
* Represents a wallet with a name, icon, and an array of signer information.
|
|
350
|
+
* @public
|
|
339
351
|
*/
|
|
340
352
|
export type Wallet = {
|
|
341
353
|
name: string;
|
package/src/utils/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
3
|
+
* @public
|
|
3
4
|
*
|
|
4
5
|
* @param transformer - The transformer.
|
|
5
6
|
* @param value - The value to be transformed.
|
|
@@ -11,6 +12,7 @@ export function apply<T, R>(
|
|
|
11
12
|
): undefined;
|
|
12
13
|
/**
|
|
13
14
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
15
|
+
* @public
|
|
14
16
|
*
|
|
15
17
|
* @param transformer - The transformer.
|
|
16
18
|
* @param value - The value to be transformed.
|
|
@@ -19,6 +21,7 @@ export function apply<T, R>(
|
|
|
19
21
|
export function apply<T, R>(transformer: (val: T) => R, value: null): undefined;
|
|
20
22
|
/**
|
|
21
23
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
24
|
+
* @public
|
|
22
25
|
*
|
|
23
26
|
* @param transformer - The transformer.
|
|
24
27
|
* @param value - The value to be transformed.
|
|
@@ -27,6 +30,7 @@ export function apply<T, R>(transformer: (val: T) => R, value: null): undefined;
|
|
|
27
30
|
export function apply<T, R>(transformer: (val: T) => R, value: T): R;
|
|
28
31
|
/**
|
|
29
32
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
33
|
+
* @public
|
|
30
34
|
*
|
|
31
35
|
* @param transformer - The transformer.
|
|
32
36
|
* @param value - The value to be transformed.
|
|
@@ -38,6 +42,7 @@ export function apply<T, R>(
|
|
|
38
42
|
): R | undefined;
|
|
39
43
|
/**
|
|
40
44
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
45
|
+
* @public
|
|
41
46
|
*
|
|
42
47
|
* @param transformer - The transformer.
|
|
43
48
|
* @param value - The value to be transformed.
|
|
@@ -49,6 +54,7 @@ export function apply<T, R>(
|
|
|
49
54
|
): R | undefined;
|
|
50
55
|
/**
|
|
51
56
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
57
|
+
* @public
|
|
52
58
|
*
|
|
53
59
|
* @param transformer - The transformer.
|
|
54
60
|
* @param value - The value to be transformed.
|
|
@@ -61,6 +67,7 @@ export function apply<T, R>(
|
|
|
61
67
|
/**
|
|
62
68
|
/**
|
|
63
69
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
70
|
+
* @public
|
|
64
71
|
*
|
|
65
72
|
* @param transformer - The transformer.
|
|
66
73
|
* @param value - The value to be transformed.
|
|
@@ -72,6 +79,7 @@ export function apply<T, R>(
|
|
|
72
79
|
): R | undefined;
|
|
73
80
|
/**
|
|
74
81
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
82
|
+
* @public
|
|
75
83
|
*
|
|
76
84
|
* @param transformer - The transformer.
|
|
77
85
|
* @param value - The value to be transformed.
|
|
@@ -90,6 +98,7 @@ export function apply<T, R>(
|
|
|
90
98
|
|
|
91
99
|
/**
|
|
92
100
|
* Similar to Array.reduce, but the accumulator can returns Promise.
|
|
101
|
+
* @public
|
|
93
102
|
*
|
|
94
103
|
* @param values - The array to be reduced.
|
|
95
104
|
* @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
|
|
@@ -104,6 +113,7 @@ export async function reduceAsync<T, V>(
|
|
|
104
113
|
): Promise<T>;
|
|
105
114
|
/**
|
|
106
115
|
* Similar to Array.reduce, but the accumulator can returns Promise.
|
|
116
|
+
* @public
|
|
107
117
|
*
|
|
108
118
|
* @param values - The array to be reduced.
|
|
109
119
|
* @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
|
|
@@ -120,6 +130,15 @@ export async function reduceAsync<T, V>(
|
|
|
120
130
|
) => Promise<T | undefined | null | void> | T | undefined | null | void,
|
|
121
131
|
init: T | Promise<T>,
|
|
122
132
|
): Promise<T>;
|
|
133
|
+
/**
|
|
134
|
+
* Similar to Array.reduce, but the accumulator can returns Promise.
|
|
135
|
+
* @public
|
|
136
|
+
*
|
|
137
|
+
* @param values - The array to be reduced.
|
|
138
|
+
* @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
|
|
139
|
+
* @param init - The initial value.
|
|
140
|
+
* @returns The accumulated result.
|
|
141
|
+
*/
|
|
123
142
|
export async function reduceAsync<T, V>(
|
|
124
143
|
values: (V | T)[],
|
|
125
144
|
accumulator: (
|
|
@@ -147,6 +166,9 @@ export async function reduceAsync<T, V>(
|
|
|
147
166
|
);
|
|
148
167
|
}
|
|
149
168
|
|
|
169
|
+
/**
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
150
172
|
export function isWebview(userAgent: string): boolean {
|
|
151
173
|
return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
|
|
152
174
|
}
|