@ckb-ccc/core 0.0.8-alpha.3 → 0.0.9-alpha.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/dist/ckb/script.js +2 -2
- package/dist/ckb/transaction.js +2 -2
- package/dist/client/client.d.ts +1 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +1 -0
- package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.advanced.js +35 -1
- package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.advanced.js +20 -0
- package/dist/hasher/index.d.ts +17 -2
- package/dist/hasher/index.d.ts.map +1 -1
- package/dist/hasher/index.js +19 -2
- package/dist/signer/nostr/signerNostr.js +2 -2
- package/dist/signer/signer/index.d.ts +12 -0
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +18 -0
- package/dist.commonjs/address/address.advanced.d.ts +24 -29
- package/dist.commonjs/address/address.advanced.js +89 -115
- package/dist.commonjs/address/advanced.d.ts +1 -1
- package/dist.commonjs/address/advanced.js +14 -30
- package/dist.commonjs/address/index.d.ts +44 -51
- package/dist.commonjs/address/index.js +65 -84
- package/dist.commonjs/advanced.d.ts +1 -1
- package/dist.commonjs/advanced.js +22 -47
- package/dist.commonjs/advancedBarrel.d.ts +1 -1
- package/dist.commonjs/advancedBarrel.js +14 -30
- package/dist.commonjs/barrel.d.ts +1 -1
- package/dist.commonjs/barrel.js +14 -30
- package/dist.commonjs/bytes/advanced.d.ts +2 -11
- package/dist.commonjs/bytes/index.d.ts +3 -9
- package/dist.commonjs/bytes/index.js +26 -28
- package/dist.commonjs/ckb/advanced.d.ts +1 -1
- package/dist.commonjs/ckb/advanced.js +22 -47
- package/dist.commonjs/ckb/index.d.ts +1 -1
- package/dist.commonjs/ckb/index.js +14 -30
- package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +260 -420
- package/dist.commonjs/ckb/molecule.advanced/generated.js +1332 -1536
- package/dist.commonjs/ckb/molecule.advanced/index.d.ts +3 -3
- package/dist.commonjs/ckb/molecule.advanced/index.js +18 -34
- package/dist.commonjs/ckb/script.advanced.d.ts +1 -1
- package/dist.commonjs/ckb/script.advanced.js +9 -12
- package/dist.commonjs/ckb/script.d.ts +117 -121
- package/dist.commonjs/ckb/script.js +176 -220
- package/dist.commonjs/ckb/transaction.advanced.d.ts +1 -1
- package/dist.commonjs/ckb/transaction.advanced.js +4 -4
- package/dist.commonjs/ckb/transaction.d.ts +717 -792
- package/dist.commonjs/ckb/transaction.js +1155 -1383
- package/dist.commonjs/client/advanced.d.ts +1 -1
- package/dist.commonjs/client/advanced.js +14 -30
- package/dist.commonjs/client/client.advanced.d.ts +6 -23
- package/dist.commonjs/client/client.advanced.js +61 -89
- package/dist.commonjs/client/client.d.ts +54 -113
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +182 -214
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +4 -8
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +161 -144
- package/dist.commonjs/client/clientPublicMainnet.d.ts +6 -8
- package/dist.commonjs/client/clientPublicMainnet.js +15 -17
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +3 -6
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +199 -204
- package/dist.commonjs/client/clientPublicTestnet.d.ts +6 -8
- package/dist.commonjs/client/clientPublicTestnet.js +13 -13
- package/dist.commonjs/client/clientTypes.advanced.d.ts +14 -14
- package/dist.commonjs/client/clientTypes.advanced.js +1 -1
- package/dist.commonjs/client/clientTypes.d.ts +26 -51
- package/dist.commonjs/client/clientTypes.js +22 -56
- package/dist.commonjs/client/index.d.ts +1 -1
- package/dist.commonjs/client/index.js +14 -30
- package/dist.commonjs/client/jsonRpc/advanced.d.ts +1 -1
- package/dist.commonjs/client/jsonRpc/advanced.js +14 -30
- package/dist.commonjs/client/jsonRpc/index.d.ts +75 -94
- package/dist.commonjs/client/jsonRpc/index.js +108 -135
- package/dist.commonjs/client/jsonRpc/transformers.d.ts +36 -76
- package/dist.commonjs/client/jsonRpc/transformers.js +152 -174
- package/dist.commonjs/client/jsonRpc/types.d.ts +38 -38
- package/dist.commonjs/fixedPoint/index.d.ts +3 -9
- package/dist.commonjs/fixedPoint/index.js +20 -26
- package/dist.commonjs/fixedPoint/index.test.d.ts +1 -1
- package/dist.commonjs/fixedPoint/index.test.js +36 -42
- package/dist.commonjs/hasher/advanced.d.ts +1 -1
- package/dist.commonjs/hasher/index.d.ts +53 -38
- package/dist.commonjs/hasher/index.d.ts.map +1 -1
- package/dist.commonjs/hasher/index.js +69 -58
- package/dist.commonjs/hex/index.d.ts +1 -1
- package/dist.commonjs/hex/index.js +1 -1
- package/dist.commonjs/index.d.ts +1 -1
- package/dist.commonjs/index.js +22 -47
- package/dist.commonjs/num/index.d.ts +1 -1
- package/dist.commonjs/num/index.js +27 -39
- package/dist.commonjs/signer/btc/index.d.ts +1 -1
- package/dist.commonjs/signer/btc/index.js +14 -30
- package/dist.commonjs/signer/btc/signerBtc.d.ts +47 -47
- package/dist.commonjs/signer/btc/signerBtc.js +66 -89
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +45 -45
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +52 -52
- package/dist.commonjs/signer/btc/verify.d.ts +2 -6
- package/dist.commonjs/signer/btc/verify.js +3 -10
- package/dist.commonjs/signer/ckb/index.d.ts +1 -1
- package/dist.commonjs/signer/ckb/index.js +14 -30
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +45 -45
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +56 -56
- package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +2 -6
- package/dist.commonjs/signer/ckb/verifyJoyId.js +8 -11
- package/dist.commonjs/signer/dummy/alwaysError.d.ts +4 -4
- package/dist.commonjs/signer/dummy/alwaysError.js +7 -7
- package/dist.commonjs/signer/dummy/dummy.d.ts +7 -7
- package/dist.commonjs/signer/dummy/dummy.js +16 -16
- package/dist.commonjs/signer/dummy/index.d.ts +1 -1
- package/dist.commonjs/signer/dummy/index.js +14 -30
- package/dist.commonjs/signer/dummy/openLink.d.ts +4 -4
- package/dist.commonjs/signer/dummy/openLink.js +7 -7
- package/dist.commonjs/signer/evm/index.d.ts +1 -1
- package/dist.commonjs/signer/evm/index.js +14 -30
- package/dist.commonjs/signer/evm/signerEvm.d.ts +38 -42
- package/dist.commonjs/signer/evm/signerEvm.js +70 -105
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +37 -37
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +42 -42
- package/dist.commonjs/signer/evm/verify.d.ts +2 -6
- package/dist.commonjs/signer/evm/verify.js +2 -7
- package/dist.commonjs/signer/index.d.ts +1 -1
- package/dist.commonjs/signer/index.js +14 -30
- package/dist.commonjs/signer/nostr/index.d.ts +1 -1
- package/dist.commonjs/signer/nostr/index.js +14 -30
- package/dist.commonjs/signer/nostr/signerNostr.d.ts +57 -57
- package/dist.commonjs/signer/nostr/signerNostr.js +71 -100
- package/dist.commonjs/signer/nostr/verify.d.ts +3 -9
- package/dist.commonjs/signer/nostr/verify.js +39 -50
- package/dist.commonjs/signer/signer/index.d.ts +162 -156
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +199 -208
- package/dist.commonjs/utils/index.d.ts +8 -38
- package/dist.commonjs/utils/index.js +12 -18
- package/package.json +3 -3
- package/src/ckb/script.ts +2 -2
- package/src/ckb/transaction.ts +2 -2
- package/src/client/client.ts +1 -0
- package/src/client/clientPublicMainnet.advanced.ts +40 -1
- package/src/client/clientPublicTestnet.advanced.ts +23 -0
- package/src/hasher/index.ts +27 -2
- package/src/signer/nostr/signerNostr.ts +2 -2
- package/src/signer/signer/index.ts +45 -0
package/src/client/client.ts
CHANGED
|
@@ -147,7 +147,46 @@ export const MAINNET_SCRIPTS: Record<
|
|
|
147
147
|
},
|
|
148
148
|
],
|
|
149
149
|
},
|
|
150
|
-
[KnownScript.NostrLock]:
|
|
150
|
+
[KnownScript.NostrLock]: {
|
|
151
|
+
codeHash:
|
|
152
|
+
"0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
|
|
153
|
+
hashType: "type",
|
|
154
|
+
cellDeps: [
|
|
155
|
+
{
|
|
156
|
+
cellDep: {
|
|
157
|
+
outPoint: {
|
|
158
|
+
txHash:
|
|
159
|
+
"0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
|
|
160
|
+
index: 0,
|
|
161
|
+
},
|
|
162
|
+
depType: "code",
|
|
163
|
+
},
|
|
164
|
+
type: {
|
|
165
|
+
codeHash:
|
|
166
|
+
"0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
167
|
+
hashType: "type",
|
|
168
|
+
args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
[KnownScript.UniqueType]: {
|
|
174
|
+
codeHash:
|
|
175
|
+
"0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
|
|
176
|
+
hashType: "data1",
|
|
177
|
+
cellDeps: [
|
|
178
|
+
{
|
|
179
|
+
cellDep: {
|
|
180
|
+
outPoint: {
|
|
181
|
+
txHash:
|
|
182
|
+
"0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
|
|
183
|
+
index: 0,
|
|
184
|
+
},
|
|
185
|
+
depType: "code",
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
151
190
|
[KnownScript.SingleUseLock]: undefined,
|
|
152
191
|
[KnownScript.OutputTypeProxyLock]: undefined,
|
|
153
192
|
};
|
|
@@ -175,6 +175,29 @@ export const TESTNET_SCRIPTS: Record<
|
|
|
175
175
|
},
|
|
176
176
|
],
|
|
177
177
|
},
|
|
178
|
+
[KnownScript.UniqueType]: {
|
|
179
|
+
codeHash:
|
|
180
|
+
"0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
|
|
181
|
+
hashType: "type",
|
|
182
|
+
cellDeps: [
|
|
183
|
+
{
|
|
184
|
+
cellDep: {
|
|
185
|
+
outPoint: {
|
|
186
|
+
txHash:
|
|
187
|
+
"0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
|
|
188
|
+
index: 0,
|
|
189
|
+
},
|
|
190
|
+
depType: "code",
|
|
191
|
+
},
|
|
192
|
+
type: {
|
|
193
|
+
codeHash:
|
|
194
|
+
"0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
195
|
+
hashType: "type",
|
|
196
|
+
args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
},
|
|
178
201
|
[KnownScript.SingleUseLock]: {
|
|
179
202
|
codeHash:
|
|
180
203
|
"0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
|
package/src/hasher/index.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import blake2b, { Blake2b } from "blake2b";
|
|
2
2
|
import { BytesLike, bytesFrom } from "../bytes";
|
|
3
|
+
import { CellInput, CellInputLike } from "../ckb";
|
|
3
4
|
import { Hex } from "../hex";
|
|
5
|
+
import { NumLike, numLeToBytes } from "../num";
|
|
4
6
|
import { CKB_BLAKE2B_PERSONAL } from "./advanced";
|
|
5
7
|
|
|
6
8
|
export class Hasher {
|
|
@@ -67,12 +69,35 @@ export class Hasher {
|
|
|
67
69
|
*
|
|
68
70
|
* @example
|
|
69
71
|
* ```typescript
|
|
70
|
-
* const hash =
|
|
72
|
+
* const hash = hashCkb("some data"); // Outputs something like "0x..."
|
|
71
73
|
* ```
|
|
72
74
|
*/
|
|
73
75
|
|
|
74
|
-
export function
|
|
76
|
+
export function hashCkb(...data: BytesLike[]): Hex {
|
|
75
77
|
const hasher = new Hasher();
|
|
76
78
|
data.forEach((d) => hasher.update(d));
|
|
77
79
|
return hasher.digest();
|
|
78
80
|
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Computes the Type ID hash of the given data.
|
|
84
|
+
*
|
|
85
|
+
* @param cellInput - The first cell input of the transaction.
|
|
86
|
+
* @param outputIndex - The output index of the Type ID cell.
|
|
87
|
+
* @returns The hexadecimal string representation of the hash.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
export function hashTypeId(
|
|
96
|
+
cellInputLike: CellInputLike,
|
|
97
|
+
outputIndex: NumLike,
|
|
98
|
+
): Hex {
|
|
99
|
+
return hashCkb(
|
|
100
|
+
CellInput.from(cellInputLike).toBytes(),
|
|
101
|
+
numLeToBytes(outputIndex, 8),
|
|
102
|
+
);
|
|
103
|
+
}
|
|
@@ -3,7 +3,7 @@ import { Address } from "../../address";
|
|
|
3
3
|
import { BytesLike, bytesConcat, bytesFrom } from "../../bytes";
|
|
4
4
|
import { Transaction, TransactionLike, WitnessArgs } from "../../ckb";
|
|
5
5
|
import { KnownScript } from "../../client";
|
|
6
|
-
import {
|
|
6
|
+
import { hashCkb } from "../../hasher";
|
|
7
7
|
import { Hex, hexFrom } from "../../hex";
|
|
8
8
|
import { Signer, SignerSignType, SignerType } from "../signer";
|
|
9
9
|
import { buildNostrEventFromMessage } from "./verify";
|
|
@@ -80,7 +80,7 @@ export abstract class SignerNostr extends Signer {
|
|
|
80
80
|
await Address.fromKnownScript(
|
|
81
81
|
this.client,
|
|
82
82
|
KnownScript.NostrLock,
|
|
83
|
-
hexFrom(bytesConcat([0x00],
|
|
83
|
+
hexFrom(bytesConcat([0x00], hashCkb(publicKey).slice(0, 42))),
|
|
84
84
|
),
|
|
85
85
|
];
|
|
86
86
|
}
|
|
@@ -27,6 +27,23 @@ export enum SignerType {
|
|
|
27
27
|
Nostr = "Nostr",
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
export type NetworkPreference = {
|
|
31
|
+
addressPrefix: string;
|
|
32
|
+
signerType: SignerType;
|
|
33
|
+
network: string;
|
|
34
|
+
/*
|
|
35
|
+
Wallet signers should check if the wallet is using preferred networks.
|
|
36
|
+
If not, try to switch to the first preferred network.
|
|
37
|
+
If non preferred, let users choose what they want.
|
|
38
|
+
|
|
39
|
+
BTC: // They made a mess...
|
|
40
|
+
btc
|
|
41
|
+
btcTestnet
|
|
42
|
+
btcSignet // OKX
|
|
43
|
+
fractalBtc // UniSat
|
|
44
|
+
*/
|
|
45
|
+
};
|
|
46
|
+
|
|
30
47
|
export class Signature {
|
|
31
48
|
constructor(
|
|
32
49
|
public signature: string,
|
|
@@ -49,6 +66,27 @@ export abstract class Signer {
|
|
|
49
66
|
return this.client_;
|
|
50
67
|
}
|
|
51
68
|
|
|
69
|
+
// Returns the preference if we need to switch network
|
|
70
|
+
// undefined otherwise
|
|
71
|
+
matchNetworkPreference(
|
|
72
|
+
preferences: NetworkPreference[],
|
|
73
|
+
currentNetwork: string,
|
|
74
|
+
) {
|
|
75
|
+
if (
|
|
76
|
+
preferences.some(({ signerType, addressPrefix, network }) => {
|
|
77
|
+
signerType === this.type &&
|
|
78
|
+
addressPrefix === this.client.addressPrefix &&
|
|
79
|
+
network === currentNetwork;
|
|
80
|
+
})
|
|
81
|
+
) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
return preferences.find(
|
|
85
|
+
({ signerType, addressPrefix }) =>
|
|
86
|
+
signerType === this.type && addressPrefix === this.client.addressPrefix,
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
52
90
|
static async verifyMessage(
|
|
53
91
|
message: string | BytesLike,
|
|
54
92
|
signature: Signature,
|
|
@@ -99,6 +137,13 @@ export abstract class Signer {
|
|
|
99
137
|
*/
|
|
100
138
|
abstract connect(): Promise<void>;
|
|
101
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Disconnects to the signer.
|
|
142
|
+
*
|
|
143
|
+
* @returns A promise that resolves when the signer is disconnected.
|
|
144
|
+
*/
|
|
145
|
+
async disconnect(): Promise<void> {}
|
|
146
|
+
|
|
102
147
|
/**
|
|
103
148
|
* Check if the signer is connected.
|
|
104
149
|
*
|