@ckb-ccc/core 0.0.16-alpha.3 → 0.1.0-alpha.5

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.
Files changed (122) hide show
  1. package/CHANGELOG.md +64 -52
  2. package/README.md +6 -26
  3. package/dist/bytes/index.d.ts +1 -1
  4. package/dist/bytes/index.d.ts.map +1 -1
  5. package/dist/bytes/index.js +14 -13
  6. package/dist/ckb/script.d.ts +5 -1
  7. package/dist/ckb/script.d.ts.map +1 -1
  8. package/dist/ckb/transaction.d.ts +42 -11
  9. package/dist/ckb/transaction.d.ts.map +1 -1
  10. package/dist/ckb/transaction.js +1 -0
  11. package/dist/client/client.d.ts +3 -46
  12. package/dist/client/client.d.ts.map +1 -1
  13. package/dist/client/client.js +3 -42
  14. package/dist/client/clientPublicMainnet.advanced.d.ts +2 -5
  15. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  16. package/dist/client/clientPublicMainnet.advanced.js +1 -1
  17. package/dist/client/clientPublicMainnet.d.ts +6 -11
  18. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  19. package/dist/client/clientPublicMainnet.js +2 -5
  20. package/dist/client/clientPublicTestnet.advanced.d.ts +2 -5
  21. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  22. package/dist/client/clientPublicTestnet.advanced.js +1 -1
  23. package/dist/client/clientPublicTestnet.d.ts +6 -11
  24. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  25. package/dist/client/clientPublicTestnet.js +2 -5
  26. package/dist/client/clientTypes.d.ts +60 -1
  27. package/dist/client/clientTypes.d.ts.map +1 -1
  28. package/dist/client/clientTypes.js +53 -1
  29. package/dist/client/jsonRpc/index.d.ts +9 -20
  30. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  31. package/dist/client/jsonRpc/index.js +10 -3
  32. package/dist/client/transports/http.d.ts.map +1 -1
  33. package/dist/client/transports/http.js +2 -0
  34. package/dist/client/transports/webSocket.d.ts.map +1 -1
  35. package/dist/client/transports/webSocket.js +10 -5
  36. package/dist/signer/ckb/verifyJoyId.d.ts.map +1 -1
  37. package/dist/signer/ckb/verifyJoyId.js +1 -0
  38. package/dist/signer/nostr/signerNostr.js +1 -1
  39. package/dist/signer/nostr/verify.d.ts.map +1 -1
  40. package/dist/signer/nostr/verify.js +1 -0
  41. package/dist/utils/index.d.ts +1 -1
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist.commonjs/address/address.advanced.js +3 -3
  44. package/dist.commonjs/bytes/index.d.ts +1 -1
  45. package/dist.commonjs/bytes/index.d.ts.map +1 -1
  46. package/dist.commonjs/bytes/index.js +17 -17
  47. package/dist.commonjs/ckb/molecule.advanced/generated.js +33 -34
  48. package/dist.commonjs/ckb/molecule.advanced/index.js +1 -2
  49. package/dist.commonjs/ckb/script.d.ts +5 -1
  50. package/dist.commonjs/ckb/script.d.ts.map +1 -1
  51. package/dist.commonjs/ckb/script.js +4 -4
  52. package/dist.commonjs/ckb/transaction.d.ts +42 -11
  53. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  54. package/dist.commonjs/ckb/transaction.js +9 -8
  55. package/dist.commonjs/client/cache/memory.advanced.js +5 -6
  56. package/dist.commonjs/client/client.d.ts +3 -46
  57. package/dist.commonjs/client/client.d.ts.map +1 -1
  58. package/dist.commonjs/client/client.js +2 -42
  59. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +2 -5
  60. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  61. package/dist.commonjs/client/clientPublicMainnet.advanced.js +21 -21
  62. package/dist.commonjs/client/clientPublicMainnet.d.ts +6 -11
  63. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  64. package/dist.commonjs/client/clientPublicMainnet.js +2 -5
  65. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +2 -5
  66. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  67. package/dist.commonjs/client/clientPublicTestnet.advanced.js +21 -21
  68. package/dist.commonjs/client/clientPublicTestnet.d.ts +6 -11
  69. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  70. package/dist.commonjs/client/clientPublicTestnet.js +2 -5
  71. package/dist.commonjs/client/clientTypes.advanced.js +1 -2
  72. package/dist.commonjs/client/clientTypes.d.ts +60 -1
  73. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  74. package/dist.commonjs/client/clientTypes.js +55 -1
  75. package/dist.commonjs/client/jsonRpc/index.d.ts +9 -20
  76. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  77. package/dist.commonjs/client/jsonRpc/index.js +9 -2
  78. package/dist.commonjs/client/transports/advanced.js +1 -2
  79. package/dist.commonjs/client/transports/http.d.ts.map +1 -1
  80. package/dist.commonjs/client/transports/http.js +2 -0
  81. package/dist.commonjs/client/transports/webSocket.d.ts.map +1 -1
  82. package/dist.commonjs/client/transports/webSocket.js +10 -5
  83. package/dist.commonjs/fixedPoint/index.js +3 -3
  84. package/dist.commonjs/hasher/hasherCkb.js +3 -3
  85. package/dist.commonjs/hex/index.js +1 -2
  86. package/dist.commonjs/keystore/index.js +2 -3
  87. package/dist.commonjs/num/index.js +10 -11
  88. package/dist.commonjs/signer/btc/verify.js +1 -2
  89. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +2 -3
  90. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +1 -1
  91. package/dist.commonjs/signer/ckb/verifyJoyId.js +2 -2
  92. package/dist.commonjs/signer/evm/verify.js +1 -2
  93. package/dist.commonjs/signer/nostr/signerNostr.js +1 -1
  94. package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -1
  95. package/dist.commonjs/signer/nostr/verify.js +3 -3
  96. package/dist.commonjs/utils/index.d.ts +1 -1
  97. package/dist.commonjs/utils/index.d.ts.map +1 -1
  98. package/dist.commonjs/utils/index.js +4 -5
  99. package/package.json +6 -5
  100. package/src/bytes/index.ts +15 -14
  101. package/src/ckb/script.ts +1 -1
  102. package/src/ckb/transaction.ts +6 -5
  103. package/src/client/client.ts +7 -62
  104. package/src/client/clientPublicMainnet.advanced.ts +329 -333
  105. package/src/client/clientPublicMainnet.ts +3 -11
  106. package/src/client/clientPublicTestnet.advanced.ts +341 -344
  107. package/src/client/clientPublicTestnet.ts +3 -11
  108. package/src/client/clientTypes.ts +87 -0
  109. package/src/client/jsonRpc/index.ts +29 -15
  110. package/src/client/transports/http.ts +2 -0
  111. package/src/client/transports/webSocket.ts +15 -8
  112. package/src/signer/ckb/verifyJoyId.ts +5 -1
  113. package/src/signer/nostr/signerNostr.ts +1 -1
  114. package/src/signer/nostr/verify.ts +2 -1
  115. package/src/utils/index.ts +1 -1
  116. package/dist/fixedPoint/index.test.d.ts +0 -2
  117. package/dist/fixedPoint/index.test.d.ts.map +0 -1
  118. package/dist/fixedPoint/index.test.js +0 -43
  119. package/dist.commonjs/fixedPoint/index.test.d.ts +0 -2
  120. package/dist.commonjs/fixedPoint/index.test.d.ts.map +0 -1
  121. package/dist.commonjs/fixedPoint/index.test.js +0 -45
  122. package/src/fixedPoint/index.test.ts +0 -55
@@ -9,6 +9,7 @@ class TransportHttp {
9
9
  async request(payload) {
10
10
  const aborter = new AbortController();
11
11
  const abortTimer = setTimeout(() => aborter.abort(), this.timeout);
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
12
13
  const raw = await (await fetch(this.url, {
13
14
  method: "POST",
14
15
  headers: {
@@ -18,6 +19,7 @@ class TransportHttp {
18
19
  signal: aborter.signal,
19
20
  })).json();
20
21
  clearTimeout(abortTimer);
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
21
23
  return raw;
22
24
  }
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAahD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAqB;gBAGrB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CAkF7B"}
1
+ {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAahD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAqB;gBAGrB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CAyF7B"}
@@ -21,17 +21,22 @@ class TransportWebSocket {
21
21
  }
22
22
  const socket = new isomorphic_ws_1.default(this.url);
23
23
  const onMessage = ({ data }) => {
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
24
25
  const res = JSON.parse(data);
25
- if (typeof res !== "object" || res === null) {
26
+ if (typeof res !== "object" ||
27
+ res === null ||
28
+ typeof res.id !== "number") {
26
29
  throw new Error(`Unknown response ${data}`);
27
30
  }
28
- const req = this.ongoing.get(res.id);
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
32
+ const id = res.id;
33
+ const req = this.ongoing.get(id);
29
34
  if (!req) {
30
35
  return;
31
36
  }
32
37
  const [resolve, _, timeout] = req;
33
38
  clearTimeout(timeout);
34
- this.ongoing.delete(res.id);
39
+ this.ongoing.delete(id);
35
40
  resolve(res);
36
41
  };
37
42
  const onClose = () => {
@@ -63,12 +68,12 @@ class TransportWebSocket {
63
68
  reject,
64
69
  setTimeout(() => {
65
70
  this.ongoing.delete(data.id);
66
- socket.then((socket) => socket.close());
71
+ void socket.then((socket) => socket.close());
67
72
  reject(new Error("Request timeout"));
68
73
  }, this.timeout),
69
74
  ];
70
75
  this.ongoing.set(data.id, req);
71
- socket.then((socket) => {
76
+ void socket.then((socket) => {
72
77
  if (socket.readyState === socket.CLOSED ||
73
78
  socket.readyState === socket.CLOSING) {
74
79
  clearTimeout(req[2]);
@@ -4,7 +4,9 @@
4
4
  * @public
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.One = exports.Zero = exports.fixedPointFrom = exports.fixedPointToString = void 0;
7
+ exports.One = exports.Zero = void 0;
8
+ exports.fixedPointToString = fixedPointToString;
9
+ exports.fixedPointFrom = fixedPointFrom;
8
10
  /**
9
11
  * Converts a FixedPointLike value to its string representation with fixed-point decimals.
10
12
  * @public
@@ -32,7 +34,6 @@ function fixedPointToString(val, decimals = 8) {
32
34
  }
33
35
  return `${l}.${r}`;
34
36
  }
35
- exports.fixedPointToString = fixedPointToString;
36
37
  /**
37
38
  * Converts a FixedPointLike value to a FixedPoint (bigint) with fixed-point decimals.
38
39
  * @public
@@ -59,7 +60,6 @@ function fixedPointFrom(val, decimals = 8) {
59
60
  }
60
61
  return lVal + BigInt(r.slice(0, decimals).padEnd(decimals, "0"));
61
62
  }
62
- exports.fixedPointFrom = fixedPointFrom;
63
63
  /**
64
64
  * Represents the fixed point value of zero as a bigint.
65
65
  * @public
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hashTypeId = exports.hashCkb = exports.HasherCkb = void 0;
3
+ exports.HasherCkb = void 0;
4
+ exports.hashCkb = hashCkb;
5
+ exports.hashTypeId = hashTypeId;
4
6
  const blake2b_1 = require("@noble/hashes/blake2b");
5
7
  const index_js_1 = require("../bytes/index.js");
6
8
  const index_js_2 = require("../ckb/index.js");
@@ -74,7 +76,6 @@ function hashCkb(...data) {
74
76
  data.forEach((d) => hasher.update(d));
75
77
  return hasher.digest();
76
78
  }
77
- exports.hashCkb = hashCkb;
78
79
  /**
79
80
  * Computes the Type ID hash of the given data.
80
81
  * @public
@@ -91,4 +92,3 @@ exports.hashCkb = hashCkb;
91
92
  function hashTypeId(cellInputLike, outputIndex) {
92
93
  return hashCkb(index_js_2.CellInput.from(cellInputLike).toBytes(), (0, index_js_4.numLeToBytes)(outputIndex, 8));
93
94
  }
94
- exports.hashTypeId = hashTypeId;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hexFrom = void 0;
3
+ exports.hexFrom = hexFrom;
4
4
  const index_js_1 = require("../bytes/index.js");
5
5
  /**
6
6
  * Converts a HexLike value to a Hex string.
@@ -18,4 +18,3 @@ const index_js_1 = require("../bytes/index.js");
18
18
  function hexFrom(hex) {
19
19
  return `0x${(0, index_js_1.bytesTo)((0, index_js_1.bytesFrom)(hex), "hex")}`;
20
20
  }
21
- exports.hexFrom = hexFrom;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.keystoreDecrypt = exports.keystoreEncrypt = void 0;
3
+ exports.keystoreEncrypt = keystoreEncrypt;
4
+ exports.keystoreDecrypt = keystoreDecrypt;
4
5
  const aes_1 = require("@noble/ciphers/aes");
5
6
  const scrypt_1 = require("@noble/hashes/scrypt");
6
7
  const sha3_1 = require("@noble/hashes/sha3");
@@ -51,7 +52,6 @@ async function keystoreEncrypt(privateKeyLike, chainCodeLike, password) {
51
52
  },
52
53
  };
53
54
  }
54
- exports.keystoreEncrypt = keystoreEncrypt;
55
55
  /**
56
56
  * @public
57
57
  */
@@ -108,4 +108,3 @@ async function keystoreDecrypt(keystore, password) {
108
108
  chainCode: result.slice(32),
109
109
  };
110
110
  }
111
- exports.keystoreDecrypt = keystoreDecrypt;
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.numBeFromBytes = exports.numLeFromBytes = exports.numFromBytes = exports.numBeToBytes = exports.numLeToBytes = exports.numToBytes = exports.numToHex = exports.numFrom = exports.numMax = exports.numMin = void 0;
3
+ exports.numMin = numMin;
4
+ exports.numMax = numMax;
5
+ exports.numFrom = numFrom;
6
+ exports.numToHex = numToHex;
7
+ exports.numToBytes = numToBytes;
8
+ exports.numLeToBytes = numLeToBytes;
9
+ exports.numBeToBytes = numBeToBytes;
10
+ exports.numFromBytes = numFromBytes;
11
+ exports.numLeFromBytes = numLeFromBytes;
12
+ exports.numBeFromBytes = numBeFromBytes;
4
13
  const index_js_1 = require("../bytes/index.js");
5
14
  const index_js_2 = require("../hex/index.js");
6
15
  /**
@@ -25,7 +34,6 @@ function numMin(a, ...numbers) {
25
34
  });
26
35
  return min;
27
36
  }
28
- exports.numMin = numMin;
29
37
  /**
30
38
  * Get the max among all numbers.
31
39
  * @public
@@ -48,7 +56,6 @@ function numMax(a, ...numbers) {
48
56
  });
49
57
  return max;
50
58
  }
51
- exports.numMax = numMax;
52
59
  /**
53
60
  * Converts a NumLike value to a Num (bigint).
54
61
  * @public
@@ -71,7 +78,6 @@ function numFrom(val) {
71
78
  }
72
79
  return BigInt((0, index_js_2.hexFrom)(val));
73
80
  }
74
- exports.numFrom = numFrom;
75
81
  /**
76
82
  * Converts a NumLike value to a hexadecimal string.
77
83
  * @public
@@ -87,7 +93,6 @@ exports.numFrom = numFrom;
87
93
  function numToHex(val) {
88
94
  return `0x${numFrom(val).toString(16)}`;
89
95
  }
90
- exports.numToHex = numToHex;
91
96
  /**
92
97
  * Converts a NumLike value to a byte array in little-endian order.
93
98
  * @public
@@ -104,7 +109,6 @@ exports.numToHex = numToHex;
104
109
  function numToBytes(val, bytes) {
105
110
  return numLeToBytes(val, bytes);
106
111
  }
107
- exports.numToBytes = numToBytes;
108
112
  /**
109
113
  * Converts a NumLike value to a byte array in little-endian order.
110
114
  * @public
@@ -121,7 +125,6 @@ exports.numToBytes = numToBytes;
121
125
  function numLeToBytes(val, bytes) {
122
126
  return numBeToBytes(val, bytes).reverse();
123
127
  }
124
- exports.numLeToBytes = numLeToBytes;
125
128
  /**
126
129
  * Converts a NumLike value to a byte array in big-endian order.
127
130
  * @public
@@ -142,7 +145,6 @@ function numBeToBytes(val, bytes) {
142
145
  }
143
146
  return (0, index_js_1.bytesConcat)(Array.from(Array(bytes - rawBytes.length), () => 0), rawBytes);
144
147
  }
145
- exports.numBeToBytes = numBeToBytes;
146
148
  /**
147
149
  * Converts a byte array to a Num (bigint) assuming little-endian order.
148
150
  * @public
@@ -158,7 +160,6 @@ exports.numBeToBytes = numBeToBytes;
158
160
  function numFromBytes(val) {
159
161
  return numLeFromBytes(val);
160
162
  }
161
- exports.numFromBytes = numFromBytes;
162
163
  /**
163
164
  * Converts a byte array to a Num (bigint) assuming little-endian order.
164
165
  * @public
@@ -174,7 +175,6 @@ exports.numFromBytes = numFromBytes;
174
175
  function numLeFromBytes(val) {
175
176
  return numBeFromBytes([...(0, index_js_1.bytesFrom)(val)].reverse());
176
177
  }
177
- exports.numLeFromBytes = numLeFromBytes;
178
178
  /**
179
179
  * Converts a byte array to a Num (bigint) assuming big-endian order.
180
180
  * @public
@@ -190,4 +190,3 @@ exports.numLeFromBytes = numLeFromBytes;
190
190
  function numBeFromBytes(val) {
191
191
  return numFrom((0, index_js_1.bytesFrom)(val));
192
192
  }
193
- exports.numBeFromBytes = numBeFromBytes;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyMessageBtcEcdsa = void 0;
3
+ exports.verifyMessageBtcEcdsa = verifyMessageBtcEcdsa;
4
4
  const secp256k1_1 = require("@noble/curves/secp256k1");
5
5
  const bitcoinjs_message_1 = require("bitcoinjs-message");
6
6
  const index_js_1 = require("../../bytes/index.js");
@@ -13,4 +13,3 @@ function verifyMessageBtcEcdsa(message, signature, publicKey) {
13
13
  const [_, ...rawSign] = (0, index_js_1.bytesFrom)(signature, "base64");
14
14
  return secp256k1_1.secp256k1.verify((0, index_js_1.bytesFrom)(rawSign), (0, bitcoinjs_message_1.magicHash)(challenge), publicKey);
15
15
  }
16
- exports.verifyMessageBtcEcdsa = verifyMessageBtcEcdsa;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyMessageCkbSecp256k1 = exports.messageHashCkbSecp256k1 = void 0;
3
+ exports.messageHashCkbSecp256k1 = messageHashCkbSecp256k1;
4
+ exports.verifyMessageCkbSecp256k1 = verifyMessageCkbSecp256k1;
4
5
  const secp256k1_1 = require("@noble/curves/secp256k1");
5
6
  const index_js_1 = require("../../bytes/index.js");
6
7
  const index_js_2 = require("../../hasher/index.js");
@@ -14,7 +15,6 @@ function messageHashCkbSecp256k1(message) {
14
15
  const buffer = (0, index_js_1.bytesFrom)(`Nervos Message:${msg}`, "utf8");
15
16
  return (0, index_js_2.hashCkb)(buffer);
16
17
  }
17
- exports.messageHashCkbSecp256k1 = messageHashCkbSecp256k1;
18
18
  /**
19
19
  * @public
20
20
  */
@@ -22,4 +22,3 @@ function verifyMessageCkbSecp256k1(message, signature, publicKey) {
22
22
  const signatureBytes = (0, index_js_1.bytesFrom)(signature);
23
23
  return secp256k1_1.secp256k1.verify(new secp256k1_1.secp256k1.Signature((0, index_js_4.numFrom)(signatureBytes.slice(0, 32)), (0, index_js_4.numFrom)(signatureBytes.slice(32, 64))).addRecoveryBit(Number((0, index_js_4.numFrom)(signatureBytes.slice(64, 65)))), (0, index_js_1.bytesFrom)(messageHashCkbSecp256k1(message)), (0, index_js_1.bytesFrom)(publicKey));
24
24
  }
25
- exports.verifyMessageCkbSecp256k1 = verifyMessageCkbSecp256k1;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyJoyId.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/verifyJoyId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAWlB"}
1
+ {"version":3,"file":"verifyJoyId.d.ts","sourceRoot":"","sources":["../../../src/signer/ckb/verifyJoyId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAelB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyMessageJoyId = void 0;
3
+ exports.verifyMessageJoyId = verifyMessageJoyId;
4
4
  const ckb_1 = require("@joyid/ckb");
5
5
  const index_js_1 = require("../../hex/index.js");
6
6
  /**
@@ -9,6 +9,7 @@ const index_js_1 = require("../../hex/index.js");
9
9
  function verifyMessageJoyId(message, signature, identity) {
10
10
  const challenge = typeof message === "string" ? message : (0, index_js_1.hexFrom)(message).slice(2);
11
11
  const { publicKey, keyType } = JSON.parse(identity);
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
12
13
  return (0, ckb_1.verifySignature)({
13
14
  challenge,
14
15
  pubkey: publicKey,
@@ -16,4 +17,3 @@ function verifyMessageJoyId(message, signature, identity) {
16
17
  ...JSON.parse(signature),
17
18
  });
18
19
  }
19
- exports.verifyMessageJoyId = verifyMessageJoyId;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyMessageEvmPersonal = void 0;
3
+ exports.verifyMessageEvmPersonal = verifyMessageEvmPersonal;
4
4
  const ethers_1 = require("ethers");
5
5
  const index_js_1 = require("../../bytes/index.js");
6
6
  /**
@@ -10,4 +10,3 @@ function verifyMessageEvmPersonal(message, signature, address) {
10
10
  return (address.toLowerCase() ===
11
11
  (0, ethers_1.verifyMessage)(typeof message === "string" ? message : (0, index_js_1.bytesFrom)(message), signature).toLowerCase());
12
12
  }
13
- exports.verifyMessageEvmPersonal = verifyMessageEvmPersonal;
@@ -67,7 +67,7 @@ class SignerNostr extends index_js_7.Signer {
67
67
  * @returns A promise that resolves to a signed Transaction object.
68
68
  */
69
69
  async signOnlyTransaction(txLike) {
70
- let tx = index_js_3.Transaction.from(txLike);
70
+ const tx = index_js_3.Transaction.from(txLike);
71
71
  const { script } = await this.getRecommendedAddressObj();
72
72
  const info = await tx.getSignHashInfo(script, this.client);
73
73
  if (!info) {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/verify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,UAAU,CA2BZ;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAoBT"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/verify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,UAAU,CA4BZ;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAoBT"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyMessageNostrEvent = exports.buildNostrEventFromMessage = void 0;
3
+ exports.buildNostrEventFromMessage = buildNostrEventFromMessage;
4
+ exports.verifyMessageNostrEvent = verifyMessageNostrEvent;
4
5
  const secp256k1_1 = require("@noble/curves/secp256k1");
5
6
  const sha256_1 = require("@noble/hashes/sha256");
6
7
  const bech32_1 = require("bech32");
@@ -12,6 +13,7 @@ const index_js_2 = require("../../hex/index.js");
12
13
  function buildNostrEventFromMessage(message) {
13
14
  if (typeof message === "string") {
14
15
  try {
16
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
15
17
  const event = JSON.parse(message);
16
18
  if (typeof event === "object" &&
17
19
  typeof event.created_at === "number" &&
@@ -32,7 +34,6 @@ function buildNostrEventFromMessage(message) {
32
34
  tags: [],
33
35
  };
34
36
  }
35
- exports.buildNostrEventFromMessage = buildNostrEventFromMessage;
36
37
  function verifyMessageNostrEvent(message, signature, address) {
37
38
  const { words } = bech32_1.bech32.decode(address);
38
39
  const publicKey = (0, index_js_2.hexFrom)(bech32_1.bech32.fromWords(words)).slice(2);
@@ -53,4 +54,3 @@ function verifyMessageNostrEvent(message, signature, address) {
53
54
  return false;
54
55
  }
55
56
  }
56
- exports.verifyMessageNostrEvent = verifyMessageNostrEvent;
@@ -71,7 +71,7 @@ export declare function apply<T, R>(transformer: (val: T) => R, value: T | undef
71
71
  * @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
72
72
  * @returns The accumulated result.
73
73
  */
74
- export declare function reduceAsync<T, V>(values: T[], accumulator: (a: T, b: T) => Promise<T | undefined | null | void> | T | undefined | null | void): Promise<T>;
74
+ export declare function reduceAsync<T>(values: T[], accumulator: (a: T, b: T) => Promise<T | undefined | null | void> | T | undefined | null | void): Promise<T>;
75
75
  /**
76
76
  * Similar to Array.reduce, but the accumulator can returns Promise.
77
77
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWebview = exports.sleep = exports.reduceAsync = exports.apply = void 0;
3
+ exports.apply = apply;
4
+ exports.reduceAsync = reduceAsync;
5
+ exports.sleep = sleep;
6
+ exports.isWebview = isWebview;
4
7
  const index_js_1 = require("../num/index.js");
5
8
  /**
6
9
  * A type safe way to apply a transformer on a value if it's not empty.
@@ -16,7 +19,6 @@ function apply(transformer, value) {
16
19
  }
17
20
  return transformer(value);
18
21
  }
19
- exports.apply = apply;
20
22
  /**
21
23
  * Similar to Array.reduce, but the accumulator can returns Promise.
22
24
  * @public
@@ -36,15 +38,12 @@ async function reduceAsync(values, accumulator, init) {
36
38
  }
37
39
  return values.reduce((current, b, i, array) => current.then((v) => Promise.resolve(accumulator(v, b, i, array)).then((r) => r ?? v)), Promise.resolve(init));
38
40
  }
39
- exports.reduceAsync = reduceAsync;
40
41
  function sleep(ms) {
41
42
  return new Promise((resolve) => setTimeout(resolve, Number((0, index_js_1.numFrom)(ms))));
42
43
  }
43
- exports.sleep = sleep;
44
44
  /**
45
45
  * @public
46
46
  */
47
47
  function isWebview(userAgent) {
48
48
  return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
49
49
  }
50
- exports.isWebview = isWebview;
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "0.0.16-alpha.3",
3
+ "version": "0.1.0-alpha.5",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
7
7
  "private": false,
8
- "homepage": "https://github.com/ckb-ecofund/ccc",
8
+ "homepage": "https://github.com/ckb-devrel/ccc",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git://github.com/ckb-ecofund/ccc.git"
11
+ "url": "git://github.com/ckb-devrel/ccc.git"
12
12
  },
13
13
  "main": "./dist.commonjs/index.js",
14
14
  "module": "./dist/index.js",
@@ -34,6 +34,7 @@
34
34
  "@eslint/js": "^9.1.1",
35
35
  "@types/blake2b": "^2.1.3",
36
36
  "@types/jest": "^29.5.12",
37
+ "@types/ws": "^8.5.12",
37
38
  "copyfiles": "^2.4.1",
38
39
  "eslint": "^9.1.0",
39
40
  "eslint-config-prettier": "^9.1.0",
@@ -67,7 +68,7 @@
67
68
  "scripts": {
68
69
  "test": "jest",
69
70
  "build": "rimraf ./dist && rimraf ./dist.commonjs && tsc && tsc --project tsconfig.commonjs.json && copyfiles -u 2 misc/basedirs/**/* .",
70
- "lint": "eslint",
71
- "format": "prettier --write . && eslint --fix"
71
+ "lint": "eslint ./src",
72
+ "format": "prettier --write . && eslint --fix ./src"
72
73
  }
73
74
  }
@@ -8,7 +8,7 @@ export type Bytes = Uint8Array;
8
8
  /**
9
9
  * @public
10
10
  */
11
- export type BytesLike = string | Uint8Array | ArrayBuffer | number[];
11
+ export type BytesLike = string | Uint8Array | ArrayBuffer | ArrayLike<number>;
12
12
 
13
13
  /**
14
14
  * Concatenates multiple byte-like arrays into a single byte array.
@@ -98,22 +98,23 @@ export function bytesFrom(
98
98
  return new Uint8Array(bytes);
99
99
  }
100
100
 
101
- if (Array.isArray(bytes)) {
102
- if (bytes.some((v) => v < 0 || 0xff < v)) {
103
- throw new Error(`Invalid bytes ${JSON.stringify(bytes)}`);
101
+ if (typeof bytes === "string") {
102
+ if (encoding !== undefined) {
103
+ return Buffer.from(bytes, encoding);
104
104
  }
105
- return new Uint8Array(bytes);
106
- }
107
105
 
108
- if (encoding !== undefined) {
109
- return Buffer.from(bytes, encoding);
106
+ const str = bytes.startsWith("0x") ? bytes.slice(2) : bytes;
107
+ const paddedStr = str.length % 2 === 0 ? str : `0${str}`;
108
+ const data = Buffer.from(paddedStr, "hex");
109
+ if (data.length * 2 !== paddedStr.length) {
110
+ throw new Error(`Invalid bytes ${bytes}`);
111
+ }
112
+ return data;
110
113
  }
111
114
 
112
- const str = bytes.startsWith("0x") ? bytes.slice(2) : bytes;
113
- const paddedStr = str.length % 2 === 0 ? str : `0${str}`;
114
- const data = Buffer.from(paddedStr, "hex");
115
- if (data.length * 2 !== paddedStr.length) {
116
- throw new Error(`Invalid bytes ${bytes}`);
115
+ const bytesArr = Array.from(bytes);
116
+ if (bytesArr.some((v) => v < 0 || 0xff < v)) {
117
+ throw new Error(`Invalid bytes ${JSON.stringify(bytes)}`);
117
118
  }
118
- return data;
119
+ return new Uint8Array(bytes);
119
120
  }
package/src/ckb/script.ts CHANGED
@@ -195,7 +195,7 @@ export class Script {
195
195
  * @returns An object representing the script in molecule data format.
196
196
  */
197
197
 
198
- _toMolData(): mol.ScriptType {
198
+ _toMolData() {
199
199
  return {
200
200
  codeHash: bytesFrom(this.codeHash),
201
201
  hashType: hashTypeToBytes(this.hashType),
@@ -164,7 +164,7 @@ export class OutPoint {
164
164
  * @returns An object representing the outpoint in molecule data format.
165
165
  */
166
166
 
167
- _toMolData(): mol.OutPointType {
167
+ _toMolData() {
168
168
  return {
169
169
  txHash: bytesFrom(this.txHash),
170
170
  index: numToBytes(this.index, 4),
@@ -304,7 +304,7 @@ export class CellOutput {
304
304
  * @returns An object representing the cell output in molecule data format.
305
305
  */
306
306
 
307
- _toMolData(): mol.CellOutputType {
307
+ _toMolData() {
308
308
  return {
309
309
  capacity: numToBytes(this.capacity, 8),
310
310
  lock: this.lock._toMolData(),
@@ -676,7 +676,7 @@ export class CellInput {
676
676
  * @returns An object representing the cell input in molecule data format.
677
677
  */
678
678
 
679
- _toMolData(): mol.CellInputType {
679
+ _toMolData() {
680
680
  return {
681
681
  previousOutput: this.previousOutput._toMolData(),
682
682
  since: numToBytes(this.since, 8),
@@ -793,7 +793,7 @@ export class CellDep {
793
793
  * @returns An object representing the cell dependency in molecule data format.
794
794
  */
795
795
 
796
- _toMolData(): mol.CellDepType {
796
+ _toMolData() {
797
797
  return {
798
798
  outPoint: this.outPoint._toMolData(),
799
799
  depType: depTypeToBytes(this.depType),
@@ -916,7 +916,7 @@ export class WitnessArgs {
916
916
  * @returns An object representing the witness arguments in molecule data format.
917
917
  */
918
918
 
919
- _toMolData(): mol.WitnessArgsType {
919
+ _toMolData() {
920
920
  return {
921
921
  lock: apply(bytesFrom, this.lock),
922
922
  inputType: apply(bytesFrom, this.inputType),
@@ -1175,6 +1175,7 @@ export class Transaction {
1175
1175
  if (typeof value === "bigint") {
1176
1176
  return numToHex(value);
1177
1177
  }
1178
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
1178
1179
  return value;
1179
1180
  });
1180
1181
  }