@ckb-ccc/core 0.0.7-alpha.2 → 0.0.8-alpha.4
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/README.md +6 -4
- 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.commonjs/ckb/script.js +1 -1
- package/dist.commonjs/ckb/transaction.js +1 -1
- package/dist.commonjs/client/client.d.ts +1 -0
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +1 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +35 -1
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +20 -0
- package/dist.commonjs/hasher/index.d.ts +17 -2
- package/dist.commonjs/hasher/index.d.ts.map +1 -1
- package/dist.commonjs/hasher/index.js +22 -4
- package/dist.commonjs/signer/nostr/signerNostr.js +1 -1
- 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/README.md
CHANGED
|
@@ -21,11 +21,13 @@
|
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<p align="center">
|
|
24
|
-
"
|
|
24
|
+
"CCC - CKBers' Codebase" is the next step of "Common Chains Connector".
|
|
25
25
|
<br />
|
|
26
|
-
|
|
26
|
+
Empower yourself with CCC to discover the unlimited potential of CKB.
|
|
27
27
|
<br />
|
|
28
|
-
|
|
28
|
+
Interoperate with wallets from different chain ecosystems.
|
|
29
|
+
<br />
|
|
30
|
+
Fully enabling CKB's Turing completeness and cryptographic freedom power.
|
|
29
31
|
</p>
|
|
30
32
|
|
|
31
33
|
## Preview
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
</a>
|
|
37
39
|
</p>
|
|
38
40
|
|
|
39
|
-
This project is still under active development, and we are looking forward to your feedback. [Try its demo now here](https://ckbccc-demo.vercel.app/).
|
|
41
|
+
This project is still under active development, and we are looking forward to your feedback. [Try its demo now here](https://ckbccc-demo.vercel.app/). It showcases how to use CCC for some basic scenarios in CKB.
|
|
40
42
|
|
|
41
43
|
<h3 align="center">
|
|
42
44
|
Read more about CCC on its <a href="https://github.com/ckb-ecofund/ccc">GitHub Repo</a>.
|
package/dist/ckb/script.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { bytesFrom } from "../bytes";
|
|
2
|
-
import {
|
|
2
|
+
import { hashCkb } from "../hasher";
|
|
3
3
|
import { hexFrom } from "../hex";
|
|
4
4
|
import * as mol from "./molecule.advanced";
|
|
5
5
|
import { HASH_TYPES, HASH_TYPE_TO_NUM, NUM_TO_HASH_TYPE, } from "./script.advanced";
|
|
@@ -172,7 +172,7 @@ export class Script {
|
|
|
172
172
|
* ```
|
|
173
173
|
*/
|
|
174
174
|
hash() {
|
|
175
|
-
return
|
|
175
|
+
return hashCkb(this.toBytes());
|
|
176
176
|
}
|
|
177
177
|
/**
|
|
178
178
|
* Creates a Script instance from a byte-like value or molecule Script.
|
package/dist/ckb/transaction.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bytesFrom } from "../bytes";
|
|
2
2
|
import { Zero, fixedPointFrom } from "../fixedPoint";
|
|
3
|
-
import { Hasher,
|
|
3
|
+
import { Hasher, hashCkb } from "../hasher";
|
|
4
4
|
import { hexFrom } from "../hex";
|
|
5
5
|
import { numFrom, numFromBytes, numToBytes, numToHex, } from "../num";
|
|
6
6
|
import { apply, reduceAsync } from "../utils";
|
|
@@ -792,7 +792,7 @@ export class Transaction {
|
|
|
792
792
|
* ```
|
|
793
793
|
*/
|
|
794
794
|
hash() {
|
|
795
|
-
return
|
|
795
|
+
return hashCkb(this.rawToBytes());
|
|
796
796
|
}
|
|
797
797
|
/**
|
|
798
798
|
* Hashes a witness and updates the hasher.
|
package/dist/client/client.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client/client.js
CHANGED
|
@@ -16,6 +16,7 @@ export var KnownScript;
|
|
|
16
16
|
KnownScript["COTA"] = "COTA";
|
|
17
17
|
KnownScript["OmniLock"] = "OmniLock";
|
|
18
18
|
KnownScript["NostrLock"] = "NostrLock";
|
|
19
|
+
KnownScript["UniqueType"] = "UniqueType";
|
|
19
20
|
KnownScript["SingleUseLock"] = "SingleUseLock";
|
|
20
21
|
KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
|
|
21
22
|
})(KnownScript || (KnownScript = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,
|
|
1
|
+
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyLZ,CAAC"}
|
|
@@ -124,7 +124,41 @@ export const MAINNET_SCRIPTS = {
|
|
|
124
124
|
},
|
|
125
125
|
],
|
|
126
126
|
},
|
|
127
|
-
[KnownScript.NostrLock]:
|
|
127
|
+
[KnownScript.NostrLock]: {
|
|
128
|
+
codeHash: "0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
|
|
129
|
+
hashType: "type",
|
|
130
|
+
cellDeps: [
|
|
131
|
+
{
|
|
132
|
+
cellDep: {
|
|
133
|
+
outPoint: {
|
|
134
|
+
txHash: "0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
|
|
135
|
+
index: 0,
|
|
136
|
+
},
|
|
137
|
+
depType: "code",
|
|
138
|
+
},
|
|
139
|
+
type: {
|
|
140
|
+
codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
141
|
+
hashType: "type",
|
|
142
|
+
args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
[KnownScript.UniqueType]: {
|
|
148
|
+
codeHash: "0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
|
|
149
|
+
hashType: "data1",
|
|
150
|
+
cellDeps: [
|
|
151
|
+
{
|
|
152
|
+
cellDep: {
|
|
153
|
+
outPoint: {
|
|
154
|
+
txHash: "0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
|
|
155
|
+
index: 0,
|
|
156
|
+
},
|
|
157
|
+
depType: "code",
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
},
|
|
128
162
|
[KnownScript.SingleUseLock]: undefined,
|
|
129
163
|
[KnownScript.OutputTypeProxyLock]: undefined,
|
|
130
164
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAqOxE,CAAC"}
|
|
@@ -149,6 +149,26 @@ export const TESTNET_SCRIPTS = {
|
|
|
149
149
|
},
|
|
150
150
|
],
|
|
151
151
|
},
|
|
152
|
+
[KnownScript.UniqueType]: {
|
|
153
|
+
codeHash: "0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
|
|
154
|
+
hashType: "type",
|
|
155
|
+
cellDeps: [
|
|
156
|
+
{
|
|
157
|
+
cellDep: {
|
|
158
|
+
outPoint: {
|
|
159
|
+
txHash: "0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
|
|
160
|
+
index: 0,
|
|
161
|
+
},
|
|
162
|
+
depType: "code",
|
|
163
|
+
},
|
|
164
|
+
type: {
|
|
165
|
+
codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
166
|
+
hashType: "type",
|
|
167
|
+
args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
152
172
|
[KnownScript.SingleUseLock]: {
|
|
153
173
|
codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
|
|
154
174
|
hashType: "data1",
|
package/dist/hasher/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BytesLike } from "../bytes";
|
|
2
|
+
import { CellInputLike } from "../ckb";
|
|
2
3
|
import { Hex } from "../hex";
|
|
4
|
+
import { NumLike } from "../num";
|
|
3
5
|
export declare class Hasher {
|
|
4
6
|
private readonly hasher;
|
|
5
7
|
/**
|
|
@@ -45,8 +47,21 @@ export declare class Hasher {
|
|
|
45
47
|
*
|
|
46
48
|
* @example
|
|
47
49
|
* ```typescript
|
|
48
|
-
* const hash =
|
|
50
|
+
* const hash = hashCkb("some data"); // Outputs something like "0x..."
|
|
49
51
|
* ```
|
|
50
52
|
*/
|
|
51
|
-
export declare function
|
|
53
|
+
export declare function hashCkb(...data: BytesLike[]): Hex;
|
|
54
|
+
/**
|
|
55
|
+
* Computes the Type ID hash of the given data.
|
|
56
|
+
*
|
|
57
|
+
* @param cellInput - The first cell input of the transaction.
|
|
58
|
+
* @param outputIndex - The output index of the Type ID cell.
|
|
59
|
+
* @returns The hexadecimal string representation of the hash.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function hashTypeId(cellInputLike: CellInputLike, outputIndex: NumLike): Hex;
|
|
52
67
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAa,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAgB,MAAM,QAAQ,CAAC;AAG/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,UAAU,CACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,OAAO,GACnB,GAAG,CAKL"}
|
package/dist/hasher/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import blake2b from "blake2b";
|
|
2
2
|
import { bytesFrom } from "../bytes";
|
|
3
|
+
import { CellInput } from "../ckb";
|
|
4
|
+
import { numLeToBytes } from "../num";
|
|
3
5
|
import { CKB_BLAKE2B_PERSONAL } from "./advanced";
|
|
4
6
|
export class Hasher {
|
|
5
7
|
/**
|
|
@@ -52,11 +54,26 @@ export class Hasher {
|
|
|
52
54
|
*
|
|
53
55
|
* @example
|
|
54
56
|
* ```typescript
|
|
55
|
-
* const hash =
|
|
57
|
+
* const hash = hashCkb("some data"); // Outputs something like "0x..."
|
|
56
58
|
* ```
|
|
57
59
|
*/
|
|
58
|
-
export function
|
|
60
|
+
export function hashCkb(...data) {
|
|
59
61
|
const hasher = new Hasher();
|
|
60
62
|
data.forEach((d) => hasher.update(d));
|
|
61
63
|
return hasher.digest();
|
|
62
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Computes the Type ID hash of the given data.
|
|
67
|
+
*
|
|
68
|
+
* @param cellInput - The first cell input of the transaction.
|
|
69
|
+
* @param outputIndex - The output index of the Type ID cell.
|
|
70
|
+
* @returns The hexadecimal string representation of the hash.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function hashTypeId(cellInputLike, outputIndex) {
|
|
78
|
+
return hashCkb(CellInput.from(cellInputLike).toBytes(), numLeToBytes(outputIndex, 8));
|
|
79
|
+
}
|
|
@@ -3,7 +3,7 @@ import { Address } from "../../address";
|
|
|
3
3
|
import { bytesConcat, bytesFrom } from "../../bytes";
|
|
4
4
|
import { Transaction, WitnessArgs } from "../../ckb";
|
|
5
5
|
import { KnownScript } from "../../client";
|
|
6
|
-
import {
|
|
6
|
+
import { hashCkb } from "../../hasher";
|
|
7
7
|
import { hexFrom } from "../../hex";
|
|
8
8
|
import { Signer, SignerSignType, SignerType } from "../signer";
|
|
9
9
|
import { buildNostrEventFromMessage } from "./verify";
|
|
@@ -38,7 +38,7 @@ export class SignerNostr extends Signer {
|
|
|
38
38
|
async getAddressObjs() {
|
|
39
39
|
const publicKey = await this.getNostrPublicKey();
|
|
40
40
|
return [
|
|
41
|
-
await Address.fromKnownScript(this.client, KnownScript.NostrLock, hexFrom(bytesConcat([0x00],
|
|
41
|
+
await Address.fromKnownScript(this.client, KnownScript.NostrLock, hexFrom(bytesConcat([0x00], hashCkb(publicKey).slice(0, 42)))),
|
|
42
42
|
];
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ var KnownScript;
|
|
|
19
19
|
KnownScript["COTA"] = "COTA";
|
|
20
20
|
KnownScript["OmniLock"] = "OmniLock";
|
|
21
21
|
KnownScript["NostrLock"] = "NostrLock";
|
|
22
|
+
KnownScript["UniqueType"] = "UniqueType";
|
|
22
23
|
KnownScript["SingleUseLock"] = "SingleUseLock";
|
|
23
24
|
KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
|
|
24
25
|
})(KnownScript || (exports.KnownScript = KnownScript = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,
|
|
1
|
+
{"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyLZ,CAAC"}
|
|
@@ -127,7 +127,41 @@ exports.MAINNET_SCRIPTS = {
|
|
|
127
127
|
},
|
|
128
128
|
],
|
|
129
129
|
},
|
|
130
|
-
[client_1.KnownScript.NostrLock]:
|
|
130
|
+
[client_1.KnownScript.NostrLock]: {
|
|
131
|
+
codeHash: "0x641a89ad2f77721b803cd50d01351c1f308444072d5fa20088567196c0574c68",
|
|
132
|
+
hashType: "type",
|
|
133
|
+
cellDeps: [
|
|
134
|
+
{
|
|
135
|
+
cellDep: {
|
|
136
|
+
outPoint: {
|
|
137
|
+
txHash: "0x1911208b136957d5f7c1708a8835edfe8ae1d02700d5cb2c3a6aacf4d5906306",
|
|
138
|
+
index: 0,
|
|
139
|
+
},
|
|
140
|
+
depType: "code",
|
|
141
|
+
},
|
|
142
|
+
type: {
|
|
143
|
+
codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
144
|
+
hashType: "type",
|
|
145
|
+
args: "0xfad8cb75eb0bb01718e2336002064568bc05887af107f74ed5dd501829e192f8",
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
[client_1.KnownScript.UniqueType]: {
|
|
151
|
+
codeHash: "0x2c8c11c985da60b0a330c61a85507416d6382c130ba67f0c47ab071e00aec628",
|
|
152
|
+
hashType: "data1",
|
|
153
|
+
cellDeps: [
|
|
154
|
+
{
|
|
155
|
+
cellDep: {
|
|
156
|
+
outPoint: {
|
|
157
|
+
txHash: "0x67524c01c0cb5492e499c7c7e406f2f9d823e162d6b0cf432eacde0c9808c2ad",
|
|
158
|
+
index: 0,
|
|
159
|
+
},
|
|
160
|
+
depType: "code",
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
},
|
|
131
165
|
[client_1.KnownScript.SingleUseLock]: undefined,
|
|
132
166
|
[client_1.KnownScript.OutputTypeProxyLock]: undefined,
|
|
133
167
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"clientPublicTestnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACX,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAqOxE,CAAC"}
|
|
@@ -152,6 +152,26 @@ exports.TESTNET_SCRIPTS = {
|
|
|
152
152
|
},
|
|
153
153
|
],
|
|
154
154
|
},
|
|
155
|
+
[client_1.KnownScript.UniqueType]: {
|
|
156
|
+
codeHash: "0x8e341bcfec6393dcd41e635733ff2dca00a6af546949f70c57a706c0f344df8b",
|
|
157
|
+
hashType: "type",
|
|
158
|
+
cellDeps: [
|
|
159
|
+
{
|
|
160
|
+
cellDep: {
|
|
161
|
+
outPoint: {
|
|
162
|
+
txHash: "0xff91b063c78ed06f10a1ed436122bd7d671f9a72ef5f5fa28d05252c17cf4cef",
|
|
163
|
+
index: 0,
|
|
164
|
+
},
|
|
165
|
+
depType: "code",
|
|
166
|
+
},
|
|
167
|
+
type: {
|
|
168
|
+
codeHash: "0x00000000000000000000000000000000000000000000000000545950455f4944",
|
|
169
|
+
hashType: "type",
|
|
170
|
+
args: "0xe04976b67600fd25ac50305f77b33aee2c12e3c18e63ece9119e5b32117884b5",
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
},
|
|
155
175
|
[client_1.KnownScript.SingleUseLock]: {
|
|
156
176
|
codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
|
|
157
177
|
hashType: "data1",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BytesLike } from "../bytes";
|
|
2
|
+
import { CellInputLike } from "../ckb";
|
|
2
3
|
import { Hex } from "../hex";
|
|
4
|
+
import { NumLike } from "../num";
|
|
3
5
|
export declare class Hasher {
|
|
4
6
|
private readonly hasher;
|
|
5
7
|
/**
|
|
@@ -45,8 +47,21 @@ export declare class Hasher {
|
|
|
45
47
|
*
|
|
46
48
|
* @example
|
|
47
49
|
* ```typescript
|
|
48
|
-
* const hash =
|
|
50
|
+
* const hash = hashCkb("some data"); // Outputs something like "0x..."
|
|
49
51
|
* ```
|
|
50
52
|
*/
|
|
51
|
-
export declare function
|
|
53
|
+
export declare function hashCkb(...data: BytesLike[]): Hex;
|
|
54
|
+
/**
|
|
55
|
+
* Computes the Type ID hash of the given data.
|
|
56
|
+
*
|
|
57
|
+
* @param cellInput - The first cell input of the transaction.
|
|
58
|
+
* @param outputIndex - The output index of the Type ID cell.
|
|
59
|
+
* @returns The hexadecimal string representation of the hash.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function hashTypeId(cellInputLike: CellInputLike, outputIndex: NumLike): Hex;
|
|
52
67
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hasher/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAa,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAgB,MAAM,QAAQ,CAAC;AAG/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;OAKG;gBAES,SAAS,SAAK,EAAE,QAAQ,SAAuB;IAS3D;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAK/B;;;;;;;;;;;OAWG;IAEH,MAAM,IAAI,GAAG;CAGd;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAIjD;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,UAAU,CACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,OAAO,GACnB,GAAG,CAKL"}
|
|
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.hashTypeId = exports.hashCkb = exports.Hasher = void 0;
|
|
7
7
|
const blake2b_1 = __importDefault(require("blake2b"));
|
|
8
8
|
const bytes_1 = require("../bytes");
|
|
9
|
+
const ckb_1 = require("../ckb");
|
|
10
|
+
const num_1 = require("../num");
|
|
9
11
|
const advanced_1 = require("./advanced");
|
|
10
12
|
class Hasher {
|
|
11
13
|
/**
|
|
@@ -59,12 +61,28 @@ exports.Hasher = Hasher;
|
|
|
59
61
|
*
|
|
60
62
|
* @example
|
|
61
63
|
* ```typescript
|
|
62
|
-
* const hash =
|
|
64
|
+
* const hash = hashCkb("some data"); // Outputs something like "0x..."
|
|
63
65
|
* ```
|
|
64
66
|
*/
|
|
65
|
-
function
|
|
67
|
+
function hashCkb(...data) {
|
|
66
68
|
const hasher = new Hasher();
|
|
67
69
|
data.forEach((d) => hasher.update(d));
|
|
68
70
|
return hasher.digest();
|
|
69
71
|
}
|
|
70
|
-
exports.
|
|
72
|
+
exports.hashCkb = hashCkb;
|
|
73
|
+
/**
|
|
74
|
+
* Computes the Type ID hash of the given data.
|
|
75
|
+
*
|
|
76
|
+
* @param cellInput - The first cell input of the transaction.
|
|
77
|
+
* @param outputIndex - The output index of the Type ID cell.
|
|
78
|
+
* @returns The hexadecimal string representation of the hash.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const hash = hashTypeId(cellInput, outputIndex); // Outputs something like "0x..."
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
function hashTypeId(cellInputLike, outputIndex) {
|
|
86
|
+
return hashCkb(ckb_1.CellInput.from(cellInputLike).toBytes(), (0, num_1.numLeToBytes)(outputIndex, 8));
|
|
87
|
+
}
|
|
88
|
+
exports.hashTypeId = hashTypeId;
|
|
@@ -41,7 +41,7 @@ class SignerNostr extends signer_1.Signer {
|
|
|
41
41
|
async getAddressObjs() {
|
|
42
42
|
const publicKey = await this.getNostrPublicKey();
|
|
43
43
|
return [
|
|
44
|
-
await address_1.Address.fromKnownScript(this.client, client_1.KnownScript.NostrLock, (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)([0x00], (0, hasher_1.
|
|
44
|
+
await address_1.Address.fromKnownScript(this.client, client_1.KnownScript.NostrLock, (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)([0x00], (0, hasher_1.hashCkb)(publicKey).slice(0, 42)))),
|
|
45
45
|
];
|
|
46
46
|
}
|
|
47
47
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.8-alpha.4",
|
|
4
|
+
"description": "Core of CCC - CKBer's Codebase",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"private": false,
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"cross-fetch": "^4.0.0",
|
|
69
69
|
"ethers": "^6.13.1"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "444a378be18f46f5d13b18848fa90829755d5ff8"
|
|
72
72
|
}
|
package/src/ckb/script.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Bytes, BytesLike, bytesFrom } from "../bytes";
|
|
2
2
|
import { Client, KnownScript } from "../client";
|
|
3
|
-
import {
|
|
3
|
+
import { hashCkb } from "../hasher";
|
|
4
4
|
import { Hex, HexLike, hexFrom } from "../hex";
|
|
5
5
|
import * as mol from "./molecule.advanced";
|
|
6
6
|
import {
|
|
@@ -214,7 +214,7 @@ export class Script {
|
|
|
214
214
|
* ```
|
|
215
215
|
*/
|
|
216
216
|
hash(): Hex {
|
|
217
|
-
return
|
|
217
|
+
return hashCkb(this.toBytes());
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
/**
|
package/src/ckb/transaction.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { ClientCollectableSearchKeyFilterLike } from "../advancedBarrel";
|
|
|
3
3
|
import { Bytes, BytesLike, bytesFrom } from "../bytes";
|
|
4
4
|
import { CellDepInfoLike, Client, KnownScript } from "../client";
|
|
5
5
|
import { Zero, fixedPointFrom } from "../fixedPoint";
|
|
6
|
-
import { Hasher,
|
|
6
|
+
import { Hasher, hashCkb } from "../hasher";
|
|
7
7
|
import { Hex, HexLike, hexFrom } from "../hex";
|
|
8
8
|
import {
|
|
9
9
|
Num,
|
|
@@ -1026,7 +1026,7 @@ export class Transaction {
|
|
|
1026
1026
|
*/
|
|
1027
1027
|
|
|
1028
1028
|
hash() {
|
|
1029
|
-
return
|
|
1029
|
+
return hashCkb(this.rawToBytes());
|
|
1030
1030
|
}
|
|
1031
1031
|
|
|
1032
1032
|
/**
|
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
|
}
|