@ckb-ccc/core 0.0.5-alpha.8 → 0.0.7-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.
Files changed (265) hide show
  1. package/dist/address/address.advanced.d.ts.map +1 -1
  2. package/dist/address/address.advanced.js +2 -5
  3. package/dist/address/index.d.ts +1 -1
  4. package/dist/address/index.d.ts.map +1 -1
  5. package/dist/address/index.js +2 -5
  6. package/dist/ckb/script.d.ts +43 -1
  7. package/dist/ckb/script.d.ts.map +1 -1
  8. package/dist/ckb/script.js +51 -0
  9. package/dist/ckb/transaction.d.ts +215 -27
  10. package/dist/ckb/transaction.d.ts.map +1 -1
  11. package/dist/ckb/transaction.js +472 -32
  12. package/dist/client/advanced.d.ts +2 -0
  13. package/dist/client/advanced.d.ts.map +1 -1
  14. package/dist/client/advanced.js +2 -0
  15. package/dist/client/client.advanced.d.ts +10 -0
  16. package/dist/client/client.advanced.d.ts.map +1 -0
  17. package/dist/client/client.advanced.js +80 -0
  18. package/dist/client/client.d.ts +50 -13
  19. package/dist/client/client.d.ts.map +1 -1
  20. package/dist/client/client.js +145 -15
  21. package/dist/client/clientPublicMainnet.advanced.d.ts +4 -2
  22. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  23. package/dist/client/clientPublicMainnet.advanced.js +103 -0
  24. package/dist/client/clientPublicMainnet.d.ts +4 -2
  25. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  26. package/dist/client/clientPublicMainnet.js +9 -1
  27. package/dist/client/clientPublicTestnet.advanced.d.ts +4 -2
  28. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  29. package/dist/client/clientPublicTestnet.advanced.js +155 -0
  30. package/dist/client/clientPublicTestnet.d.ts +4 -2
  31. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  32. package/dist/client/clientPublicTestnet.js +6 -1
  33. package/dist/client/clientTypes.advanced.d.ts +23 -0
  34. package/dist/client/clientTypes.advanced.d.ts.map +1 -0
  35. package/dist/client/clientTypes.advanced.js +4 -0
  36. package/dist/client/clientTypes.d.ts +22 -36
  37. package/dist/client/clientTypes.d.ts.map +1 -1
  38. package/dist/client/clientTypes.js +15 -12
  39. package/dist/client/jsonRpc/index.d.ts +3 -3
  40. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  41. package/dist/client/jsonRpc/index.js +3 -3
  42. package/dist/client/jsonRpc/transformers.d.ts +5 -7
  43. package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
  44. package/dist/client/jsonRpc/transformers.js +8 -6
  45. package/dist/hasher/index.d.ts +1 -1
  46. package/dist/hasher/index.d.ts.map +1 -1
  47. package/dist/hasher/index.js +4 -2
  48. package/dist/num/index.d.ts +12 -0
  49. package/dist/num/index.d.ts.map +1 -1
  50. package/dist/num/index.js +21 -0
  51. package/dist/signer/btc/signerBtc.d.ts.map +1 -1
  52. package/dist/signer/btc/signerBtc.js +6 -3
  53. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -6
  54. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  55. package/dist/signer/btc/signerBtcPublicKeyReadonly.js +0 -8
  56. package/dist/signer/btc/verify.d.ts.map +1 -1
  57. package/dist/signer/btc/verify.js +5 -2
  58. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +0 -6
  59. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  60. package/dist/signer/ckb/signerCkbScriptReadonly.js +0 -8
  61. package/dist/signer/dummy/alwaysError.d.ts +0 -1
  62. package/dist/signer/dummy/alwaysError.d.ts.map +1 -1
  63. package/dist/signer/dummy/alwaysError.js +0 -3
  64. package/dist/signer/dummy/openLink.d.ts +0 -1
  65. package/dist/signer/dummy/openLink.d.ts.map +1 -1
  66. package/dist/signer/dummy/openLink.js +0 -3
  67. package/dist/signer/evm/signerEvm.d.ts.map +1 -1
  68. package/dist/signer/evm/signerEvm.js +7 -5
  69. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +0 -6
  70. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  71. package/dist/signer/evm/signerEvmAddressReadonly.js +0 -8
  72. package/dist/signer/index.d.ts +1 -0
  73. package/dist/signer/index.d.ts.map +1 -1
  74. package/dist/signer/index.js +1 -0
  75. package/dist/signer/nostr/index.d.ts +2 -0
  76. package/dist/signer/nostr/index.d.ts.map +1 -0
  77. package/dist/signer/nostr/index.js +1 -0
  78. package/dist/signer/nostr/signerNostr.d.ts +66 -0
  79. package/dist/signer/nostr/signerNostr.d.ts.map +1 -0
  80. package/dist/signer/nostr/signerNostr.js +85 -0
  81. package/dist/signer/nostr/verify.d.ts +5 -0
  82. package/dist/signer/nostr/verify.d.ts.map +1 -0
  83. package/dist/signer/nostr/verify.js +48 -0
  84. package/dist/signer/signer/index.d.ts +7 -12
  85. package/dist/signer/signer/index.d.ts.map +1 -1
  86. package/dist/signer/signer/index.js +11 -4
  87. package/dist/utils/index.d.ts +59 -0
  88. package/dist/utils/index.d.ts.map +1 -1
  89. package/dist/utils/index.js +17 -0
  90. package/dist.commonjs/address/address.advanced.d.ts +29 -24
  91. package/dist.commonjs/address/address.advanced.d.ts.map +1 -1
  92. package/dist.commonjs/address/address.advanced.js +115 -92
  93. package/dist.commonjs/address/advanced.d.ts +1 -1
  94. package/dist.commonjs/address/advanced.js +30 -14
  95. package/dist.commonjs/address/index.d.ts +51 -44
  96. package/dist.commonjs/address/index.d.ts.map +1 -1
  97. package/dist.commonjs/address/index.js +84 -68
  98. package/dist.commonjs/advanced.d.ts +1 -1
  99. package/dist.commonjs/advanced.js +47 -22
  100. package/dist.commonjs/advancedBarrel.d.ts +1 -1
  101. package/dist.commonjs/advancedBarrel.js +30 -14
  102. package/dist.commonjs/barrel.d.ts +1 -1
  103. package/dist.commonjs/barrel.js +30 -14
  104. package/dist.commonjs/bytes/advanced.d.ts +11 -2
  105. package/dist.commonjs/bytes/index.d.ts +9 -3
  106. package/dist.commonjs/bytes/index.js +28 -26
  107. package/dist.commonjs/ckb/advanced.d.ts +1 -1
  108. package/dist.commonjs/ckb/advanced.js +47 -22
  109. package/dist.commonjs/ckb/index.d.ts +1 -1
  110. package/dist.commonjs/ckb/index.js +30 -14
  111. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +420 -260
  112. package/dist.commonjs/ckb/molecule.advanced/generated.js +1536 -1332
  113. package/dist.commonjs/ckb/molecule.advanced/index.d.ts +3 -3
  114. package/dist.commonjs/ckb/molecule.advanced/index.js +34 -18
  115. package/dist.commonjs/ckb/script.advanced.d.ts +1 -1
  116. package/dist.commonjs/ckb/script.advanced.js +12 -9
  117. package/dist.commonjs/ckb/script.d.ts +123 -77
  118. package/dist.commonjs/ckb/script.d.ts.map +1 -1
  119. package/dist.commonjs/ckb/script.js +221 -126
  120. package/dist.commonjs/ckb/transaction.advanced.d.ts +1 -1
  121. package/dist.commonjs/ckb/transaction.advanced.js +4 -4
  122. package/dist.commonjs/ckb/transaction.d.ts +796 -533
  123. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  124. package/dist.commonjs/ckb/transaction.js +1372 -702
  125. package/dist.commonjs/client/advanced.d.ts +3 -1
  126. package/dist.commonjs/client/advanced.d.ts.map +1 -1
  127. package/dist.commonjs/client/advanced.js +32 -14
  128. package/dist.commonjs/client/client.advanced.d.ts +27 -0
  129. package/dist.commonjs/client/client.advanced.d.ts.map +1 -0
  130. package/dist.commonjs/client/client.advanced.js +116 -0
  131. package/dist.commonjs/client/client.d.ts +118 -21
  132. package/dist.commonjs/client/client.d.ts.map +1 -1
  133. package/dist.commonjs/client/client.js +219 -55
  134. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +9 -3
  135. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  136. package/dist.commonjs/client/clientPublicMainnet.advanced.js +144 -24
  137. package/dist.commonjs/client/clientPublicMainnet.d.ts +9 -5
  138. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  139. package/dist.commonjs/client/clientPublicMainnet.js +18 -8
  140. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +8 -3
  141. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  142. package/dist.commonjs/client/clientPublicTestnet.advanced.js +204 -24
  143. package/dist.commonjs/client/clientPublicTestnet.d.ts +9 -5
  144. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  145. package/dist.commonjs/client/clientPublicTestnet.js +14 -9
  146. package/dist.commonjs/client/clientTypes.advanced.d.ts +23 -0
  147. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -0
  148. package/dist.commonjs/client/clientTypes.advanced.js +8 -0
  149. package/dist.commonjs/client/clientTypes.d.ts +57 -46
  150. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  151. package/dist.commonjs/client/clientTypes.js +60 -22
  152. package/dist.commonjs/client/index.d.ts +1 -1
  153. package/dist.commonjs/client/index.js +30 -14
  154. package/dist.commonjs/client/jsonRpc/advanced.d.ts +1 -1
  155. package/dist.commonjs/client/jsonRpc/advanced.js +30 -14
  156. package/dist.commonjs/client/jsonRpc/index.d.ts +94 -75
  157. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  158. package/dist.commonjs/client/jsonRpc/index.js +135 -108
  159. package/dist.commonjs/client/jsonRpc/transformers.d.ts +76 -38
  160. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
  161. package/dist.commonjs/client/jsonRpc/transformers.js +174 -150
  162. package/dist.commonjs/client/jsonRpc/types.d.ts +38 -38
  163. package/dist.commonjs/fixedPoint/index.d.ts +9 -3
  164. package/dist.commonjs/fixedPoint/index.js +26 -20
  165. package/dist.commonjs/fixedPoint/index.test.d.ts +1 -1
  166. package/dist.commonjs/fixedPoint/index.test.js +42 -36
  167. package/dist.commonjs/hasher/advanced.d.ts +1 -1
  168. package/dist.commonjs/hasher/index.d.ts +37 -37
  169. package/dist.commonjs/hasher/index.d.ts.map +1 -1
  170. package/dist.commonjs/hasher/index.js +55 -46
  171. package/dist.commonjs/hex/index.d.ts +1 -1
  172. package/dist.commonjs/hex/index.js +1 -1
  173. package/dist.commonjs/index.d.ts +1 -1
  174. package/dist.commonjs/index.js +47 -22
  175. package/dist.commonjs/num/index.d.ts +13 -1
  176. package/dist.commonjs/num/index.d.ts.map +1 -1
  177. package/dist.commonjs/num/index.js +53 -19
  178. package/dist.commonjs/signer/btc/index.d.ts +1 -1
  179. package/dist.commonjs/signer/btc/index.js +30 -14
  180. package/dist.commonjs/signer/btc/signerBtc.d.ts +47 -47
  181. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
  182. package/dist.commonjs/signer/btc/signerBtc.js +89 -63
  183. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +45 -51
  184. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  185. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +52 -60
  186. package/dist.commonjs/signer/btc/verify.d.ts +6 -2
  187. package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
  188. package/dist.commonjs/signer/btc/verify.js +13 -3
  189. package/dist.commonjs/signer/ckb/index.d.ts +1 -1
  190. package/dist.commonjs/signer/ckb/index.js +30 -14
  191. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +45 -51
  192. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  193. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +56 -64
  194. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +6 -2
  195. package/dist.commonjs/signer/ckb/verifyJoyId.js +11 -8
  196. package/dist.commonjs/signer/dummy/alwaysError.d.ts +4 -5
  197. package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -1
  198. package/dist.commonjs/signer/dummy/alwaysError.js +7 -10
  199. package/dist.commonjs/signer/dummy/dummy.d.ts +7 -7
  200. package/dist.commonjs/signer/dummy/dummy.js +16 -16
  201. package/dist.commonjs/signer/dummy/index.d.ts +1 -1
  202. package/dist.commonjs/signer/dummy/index.js +30 -14
  203. package/dist.commonjs/signer/dummy/openLink.d.ts +4 -5
  204. package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -1
  205. package/dist.commonjs/signer/dummy/openLink.js +7 -10
  206. package/dist.commonjs/signer/evm/index.d.ts +1 -1
  207. package/dist.commonjs/signer/evm/index.js +30 -14
  208. package/dist.commonjs/signer/evm/signerEvm.d.ts +42 -38
  209. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
  210. package/dist.commonjs/signer/evm/signerEvm.js +106 -69
  211. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +37 -43
  212. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  213. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +42 -50
  214. package/dist.commonjs/signer/evm/verify.d.ts +6 -2
  215. package/dist.commonjs/signer/evm/verify.js +7 -2
  216. package/dist.commonjs/signer/index.d.ts +2 -1
  217. package/dist.commonjs/signer/index.d.ts.map +1 -1
  218. package/dist.commonjs/signer/index.js +31 -14
  219. package/dist.commonjs/signer/nostr/index.d.ts +2 -0
  220. package/dist.commonjs/signer/nostr/index.d.ts.map +1 -0
  221. package/dist.commonjs/signer/nostr/index.js +33 -0
  222. package/dist.commonjs/signer/nostr/signerNostr.d.ts +66 -0
  223. package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +1 -0
  224. package/dist.commonjs/signer/nostr/signerNostr.js +118 -0
  225. package/dist.commonjs/signer/nostr/verify.d.ts +11 -0
  226. package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -0
  227. package/dist.commonjs/signer/nostr/verify.js +64 -0
  228. package/dist.commonjs/signer/signer/index.d.ts +156 -155
  229. package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
  230. package/dist.commonjs/signer/signer/index.js +209 -175
  231. package/dist.commonjs/utils/index.d.ts +95 -6
  232. package/dist.commonjs/utils/index.d.ts.map +1 -1
  233. package/dist.commonjs/utils/index.js +30 -6
  234. package/package.json +4 -3
  235. package/src/address/address.advanced.ts +2 -5
  236. package/src/address/index.ts +2 -5
  237. package/src/ckb/script.ts +62 -2
  238. package/src/ckb/transaction.ts +678 -58
  239. package/src/client/advanced.ts +2 -0
  240. package/src/client/client.advanced.ts +134 -0
  241. package/src/client/client.ts +236 -25
  242. package/src/client/clientPublicMainnet.advanced.ts +117 -2
  243. package/src/client/clientPublicMainnet.ts +14 -3
  244. package/src/client/clientPublicTestnet.advanced.ts +176 -2
  245. package/src/client/clientPublicTestnet.ts +9 -3
  246. package/src/client/clientTypes.advanced.ts +26 -0
  247. package/src/client/clientTypes.ts +41 -43
  248. package/src/client/jsonRpc/index.ts +4 -4
  249. package/src/client/jsonRpc/transformers.ts +13 -11
  250. package/src/hasher/index.ts +4 -2
  251. package/src/num/index.ts +22 -0
  252. package/src/signer/btc/signerBtc.ts +6 -8
  253. package/src/signer/btc/signerBtcPublicKeyReadonly.ts +0 -9
  254. package/src/signer/btc/verify.ts +6 -3
  255. package/src/signer/ckb/signerCkbScriptReadonly.ts +0 -9
  256. package/src/signer/dummy/alwaysError.ts +0 -4
  257. package/src/signer/dummy/openLink.ts +0 -4
  258. package/src/signer/evm/signerEvm.ts +11 -11
  259. package/src/signer/evm/signerEvmAddressReadonly.ts +0 -9
  260. package/src/signer/index.ts +1 -0
  261. package/src/signer/nostr/index.ts +1 -0
  262. package/src/signer/nostr/signerNostr.ts +135 -0
  263. package/src/signer/nostr/verify.ts +63 -0
  264. package/src/signer/signer/index.ts +15 -11
  265. package/src/utils/index.ts +108 -0
@@ -7,82 +7,119 @@ const ckb_1 = require("../../ckb");
7
7
  const client_1 = require("../../client");
8
8
  const hex_1 = require("../../hex");
9
9
  const num_1 = require("../../num");
10
+ const utils_1 = require("../../utils");
10
11
  const signer_1 = require("../signer");
11
12
  /**
12
13
  * An abstract class extending Signer for Ethereum Virtual Machine (EVM) based signing operations.
13
14
  * This class provides methods to get EVM account, internal address, and signing transactions.
14
15
  */
15
16
  class SignerEvm extends signer_1.Signer {
16
- get type() {
17
- return signer_1.SignerType.EVM;
17
+ get type() {
18
+ return signer_1.SignerType.EVM;
19
+ }
20
+ get signType() {
21
+ return signer_1.SignerSignType.EvmPersonal;
22
+ }
23
+ /**
24
+ * Gets the internal address, which is the EVM account in this case.
25
+ *
26
+ * @returns A promise that resolves to a string representing the internal address.
27
+ */
28
+ async getInternalAddress() {
29
+ return this.getEvmAccount();
30
+ }
31
+ /**
32
+ * Gets an array of Address objects representing the known script addresses for the signer.
33
+ *
34
+ * @returns A promise that resolves to an array of Address objects.
35
+ */
36
+ async getAddressObjs() {
37
+ const account = await this.getEvmAccount();
38
+ return [
39
+ await this._getOmniLockEvmAddressObj(account),
40
+ await this._getOmniLockOldEvmAddressObj(account),
41
+ ];
42
+ }
43
+ async _getOmniLockEvmAddressObj(account) {
44
+ return address_1.Address.fromKnownScript(
45
+ this.client,
46
+ client_1.KnownScript.OmniLock,
47
+ (0, hex_1.hexFrom)([0x12, ...(0, bytes_1.bytesFrom)(account), 0x00]),
48
+ );
49
+ }
50
+ async _getOmniLockOldEvmAddressObj(account) {
51
+ return address_1.Address.fromKnownScript(
52
+ this.client,
53
+ client_1.KnownScript.OmniLock,
54
+ (0, hex_1.hexFrom)([0x1, ...(0, bytes_1.bytesFrom)(account), 0x00]),
55
+ );
56
+ }
57
+ /**
58
+ * prepare a transaction before signing. This method is not implemented and should be overridden by subclasses.
59
+ *
60
+ * @param txLike - The transaction to prepare, represented as a TransactionLike object.
61
+ * @returns A promise that resolves to the prepared Transaction object.
62
+ */
63
+ async prepareTransaction(txLike) {
64
+ const tx = ckb_1.Transaction.from(txLike);
65
+ await tx.addCellDepsOfKnownScripts(
66
+ this.client,
67
+ client_1.KnownScript.OmniLock,
68
+ );
69
+ return (0, utils_1.reduceAsync)(
70
+ await this.getAddressObjs(),
71
+ (tx, { script }) => tx.prepareSighashAllWitness(script, 85, this.client),
72
+ tx,
73
+ );
74
+ }
75
+ /**
76
+ * Signs a transaction without modifying it.
77
+ *
78
+ * @param txLike - The transaction to sign, represented as a TransactionLike object.
79
+ * @returns A promise that resolves to a signed Transaction object.
80
+ */
81
+ async signOnlyTransaction(txLike) {
82
+ let tx = ckb_1.Transaction.from(txLike);
83
+ const account = await this.getEvmAccount();
84
+ const { script: evmScript } = await this._getOmniLockEvmAddressObj(account);
85
+ const { script: oldEvmScript } =
86
+ await this._getOmniLockOldEvmAddressObj(account);
87
+ tx = await this._signOmniLockScriptForTransaction(
88
+ tx,
89
+ evmScript,
90
+ (hash) => `CKB transaction: ${hash}`,
91
+ );
92
+ tx = await this._signOmniLockScriptForTransaction(
93
+ tx,
94
+ oldEvmScript,
95
+ (hash) => (0, bytes_1.bytesFrom)(hash),
96
+ );
97
+ return tx;
98
+ }
99
+ async _signOmniLockScriptForTransaction(tx, script, messageTransformer) {
100
+ const info = await tx.getSignHashInfo(script, this.client);
101
+ if (!info) {
102
+ return tx;
18
103
  }
19
- get signType() {
20
- return signer_1.SignerSignType.EvmPersonal;
21
- }
22
- /**
23
- * Gets the internal address, which is the EVM account in this case.
24
- *
25
- * @returns A promise that resolves to a string representing the internal address.
26
- */
27
- async getInternalAddress() {
28
- return this.getEvmAccount();
29
- }
30
- /**
31
- * Gets an array of Address objects representing the known script addresses for the signer.
32
- *
33
- * @returns A promise that resolves to an array of Address objects.
34
- */
35
- async getAddressObjs() {
36
- const account = await this.getEvmAccount();
37
- return [
38
- await this._getOmniLockEvmAddressObj(account),
39
- await this._getOmniLockOldEvmAddressObj(account),
40
- ];
41
- }
42
- async _getOmniLockEvmAddressObj(account) {
43
- return address_1.Address.fromKnownScript(client_1.KnownScript.OmniLock, (0, hex_1.hexFrom)([0x12, ...(0, bytes_1.bytesFrom)(account), 0x00]), this.client);
44
- }
45
- async _getOmniLockOldEvmAddressObj(account) {
46
- return address_1.Address.fromKnownScript(client_1.KnownScript.OmniLock, (0, hex_1.hexFrom)([0x1, ...(0, bytes_1.bytesFrom)(account), 0x00]), this.client);
47
- }
48
- /**
49
- * prepare a transaction before signing. This method is not implemented and should be overridden by subclasses.
50
- *
51
- * @param txLike - The transaction to prepare, represented as a TransactionLike object.
52
- * @returns A promise that resolves to the prepared Transaction object.
53
- */
54
- async prepareTransaction(txLike) {
55
- const addresses = await this.getAddressObjs();
56
- return addresses.reduce((txPromise, { script }) => txPromise.then((tx) => tx.prepareSighashAllWitness(script, 85, this.client)), Promise.resolve(ckb_1.Transaction.from(txLike)));
57
- }
58
- /**
59
- * Signs a transaction without modifying it.
60
- *
61
- * @param txLike - The transaction to sign, represented as a TransactionLike object.
62
- * @returns A promise that resolves to a signed Transaction object.
63
- */
64
- async signOnlyTransaction(txLike) {
65
- let tx = ckb_1.Transaction.from(txLike);
66
- const account = await this.getEvmAccount();
67
- const { script: evmScript } = await this._getOmniLockEvmAddressObj(account);
68
- const { script: oldEvmScript } = await this._getOmniLockOldEvmAddressObj(account);
69
- tx = await this._signOmniLockScriptForTransaction(tx, evmScript, (hash) => `CKB transaction: ${hash}`);
70
- tx = await this._signOmniLockScriptForTransaction(tx, oldEvmScript, (hash) => (0, bytes_1.bytesFrom)(hash));
71
- return tx;
72
- }
73
- async _signOmniLockScriptForTransaction(tx, script, messageTransformer) {
74
- const info = await tx.getSignHashInfo(script, this.client);
75
- if (!info) {
76
- return tx;
77
- }
78
- const signature = (0, bytes_1.bytesFrom)(await this.signMessageRaw(messageTransformer(info.message)));
79
- if (signature[signature.length - 1] >= 27) {
80
- signature[signature.length - 1] -= 27;
81
- }
82
- const witness = ckb_1.WitnessArgs.fromBytes(tx.witnesses[info.position]);
83
- witness.lock = (0, hex_1.hexFrom)((0, bytes_1.bytesConcat)((0, num_1.numToBytes)(5 * 4 + signature.length, 4), (0, num_1.numToBytes)(4 * 4, 4), (0, num_1.numToBytes)(5 * 4 + signature.length, 4), (0, num_1.numToBytes)(5 * 4 + signature.length, 4), (0, num_1.numToBytes)(signature.length, 4), signature));
84
- tx.witnesses[info.position] = (0, hex_1.hexFrom)(witness.toBytes());
85
- return tx;
104
+ const signature = (0, bytes_1.bytesFrom)(
105
+ await this.signMessageRaw(messageTransformer(info.message)),
106
+ );
107
+ if (signature[signature.length - 1] >= 27) {
108
+ signature[signature.length - 1] -= 27;
86
109
  }
110
+ const witness = ckb_1.WitnessArgs.fromBytes(tx.witnesses[info.position]);
111
+ witness.lock = (0, hex_1.hexFrom)(
112
+ (0, bytes_1.bytesConcat)(
113
+ (0, num_1.numToBytes)(5 * 4 + signature.length, 4),
114
+ (0, num_1.numToBytes)(4 * 4, 4),
115
+ (0, num_1.numToBytes)(5 * 4 + signature.length, 4),
116
+ (0, num_1.numToBytes)(5 * 4 + signature.length, 4),
117
+ (0, num_1.numToBytes)(signature.length, 4),
118
+ signature,
119
+ ),
120
+ );
121
+ tx.setWitnessArgsAt(info.position, witness);
122
+ return tx;
123
+ }
87
124
  }
88
125
  exports.SignerEvm = SignerEvm;
@@ -6,47 +6,41 @@ import { SignerEvm } from "./signerEvm";
6
6
  * This class does not support signing operations.
7
7
  */
8
8
  export declare class SignerEvmAddressReadonly extends SignerEvm {
9
- private readonly address;
10
- /**
11
- * Creates an instance of SignerEvmAddressReadonly.
12
- *
13
- * @param client - The client instance used for communication.
14
- * @param address - The EVM address associated with the signer.
15
- */
16
- constructor(client: Client, address: HexLike);
17
- /**
18
- * Construct a new signer with the client replaced.
19
- *
20
- * @returns A promise that resolves the new Signer.
21
- */
22
- replaceClient(client: Client): Promise<SignerEvmAddressReadonly>;
23
- /**
24
- * Connects to the client. This implementation does nothing as the class is read-only.
25
- *
26
- * @returns A promise that resolves when the connection is complete.
27
- *
28
- * @example
29
- * ```typescript
30
- * await signer.connect();
31
- * ```
32
- */
33
- connect(): Promise<void>;
34
- /**
35
- * Check if the signer is connected.
36
- *
37
- * @returns A promise that resolves the connection status.
38
- */
39
- isConnected(): Promise<boolean>;
40
- /**
41
- * Gets the EVM account associated with the signer.
42
- *
43
- * @returns A promise that resolves to a string representing the EVM account.
44
- *
45
- * @example
46
- * ```typescript
47
- * const account = await signer.getEvmAccount(); // Outputs the EVM account
48
- * ```
49
- */
50
- getEvmAccount(): Promise<string>;
9
+ private readonly address;
10
+ /**
11
+ * Creates an instance of SignerEvmAddressReadonly.
12
+ *
13
+ * @param client - The client instance used for communication.
14
+ * @param address - The EVM address associated with the signer.
15
+ */
16
+ constructor(client: Client, address: HexLike);
17
+ /**
18
+ * Connects to the client. This implementation does nothing as the class is read-only.
19
+ *
20
+ * @returns A promise that resolves when the connection is complete.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * await signer.connect();
25
+ * ```
26
+ */
27
+ connect(): Promise<void>;
28
+ /**
29
+ * Check if the signer is connected.
30
+ *
31
+ * @returns A promise that resolves the connection status.
32
+ */
33
+ isConnected(): Promise<boolean>;
34
+ /**
35
+ * Gets the EVM account associated with the signer.
36
+ *
37
+ * @returns A promise that resolves to a string representing the EVM account.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const account = await signer.getEvmAccount(); // Outputs the EVM account
42
+ * ```
43
+ */
44
+ getEvmAccount(): Promise<string>;
51
45
  }
52
- //# sourceMappingURL=signerEvmAddressReadonly.d.ts.map
46
+ //# sourceMappingURL=signerEvmAddressReadonly.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signerEvmAddressReadonly.d.ts","sourceRoot":"","sources":["../../../src/signer/evm/signerEvmAddressReadonly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAO,OAAO,EAAW,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAE9B;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAM5C;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAItE;;;;;;;;;OASG;IAEG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}
1
+ {"version":3,"file":"signerEvmAddressReadonly.d.ts","sourceRoot":"","sources":["../../../src/signer/evm/signerEvmAddressReadonly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAO,OAAO,EAAW,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAE9B;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAM5C;;;;;;;;;OASG;IAEG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}
@@ -8,55 +8,47 @@ const signerEvm_1 = require("./signerEvm");
8
8
  * This class does not support signing operations.
9
9
  */
10
10
  class SignerEvmAddressReadonly extends signerEvm_1.SignerEvm {
11
- /**
12
- * Creates an instance of SignerEvmAddressReadonly.
13
- *
14
- * @param client - The client instance used for communication.
15
- * @param address - The EVM address associated with the signer.
16
- */
17
- constructor(client, address) {
18
- super(client);
19
- this.address = (0, hex_1.hexFrom)(address);
20
- }
21
- /**
22
- * Construct a new signer with the client replaced.
23
- *
24
- * @returns A promise that resolves the new Signer.
25
- */
26
- async replaceClient(client) {
27
- return new SignerEvmAddressReadonly(client, this.address);
28
- }
29
- /**
30
- * Connects to the client. This implementation does nothing as the class is read-only.
31
- *
32
- * @returns A promise that resolves when the connection is complete.
33
- *
34
- * @example
35
- * ```typescript
36
- * await signer.connect();
37
- * ```
38
- */
39
- async connect() { }
40
- /**
41
- * Check if the signer is connected.
42
- *
43
- * @returns A promise that resolves the connection status.
44
- */
45
- async isConnected() {
46
- return true;
47
- }
48
- /**
49
- * Gets the EVM account associated with the signer.
50
- *
51
- * @returns A promise that resolves to a string representing the EVM account.
52
- *
53
- * @example
54
- * ```typescript
55
- * const account = await signer.getEvmAccount(); // Outputs the EVM account
56
- * ```
57
- */
58
- async getEvmAccount() {
59
- return this.address;
60
- }
11
+ /**
12
+ * Creates an instance of SignerEvmAddressReadonly.
13
+ *
14
+ * @param client - The client instance used for communication.
15
+ * @param address - The EVM address associated with the signer.
16
+ */
17
+ constructor(client, address) {
18
+ super(client);
19
+ this.address = (0, hex_1.hexFrom)(address);
20
+ }
21
+ /**
22
+ * Connects to the client. This implementation does nothing as the class is read-only.
23
+ *
24
+ * @returns A promise that resolves when the connection is complete.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * await signer.connect();
29
+ * ```
30
+ */
31
+ async connect() {}
32
+ /**
33
+ * Check if the signer is connected.
34
+ *
35
+ * @returns A promise that resolves the connection status.
36
+ */
37
+ async isConnected() {
38
+ return true;
39
+ }
40
+ /**
41
+ * Gets the EVM account associated with the signer.
42
+ *
43
+ * @returns A promise that resolves to a string representing the EVM account.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const account = await signer.getEvmAccount(); // Outputs the EVM account
48
+ * ```
49
+ */
50
+ async getEvmAccount() {
51
+ return this.address;
52
+ }
61
53
  }
62
54
  exports.SignerEvmAddressReadonly = SignerEvmAddressReadonly;
@@ -1,3 +1,7 @@
1
1
  import { BytesLike } from "../../bytes";
2
- export declare function verifyMessageEvmPersonal(message: string | BytesLike, signature: string, address: string): boolean;
3
- //# sourceMappingURL=verify.d.ts.map
2
+ export declare function verifyMessageEvmPersonal(
3
+ message: string | BytesLike,
4
+ signature: string,
5
+ address: string,
6
+ ): boolean;
7
+ //# sourceMappingURL=verify.d.ts.map
@@ -4,7 +4,12 @@ exports.verifyMessageEvmPersonal = void 0;
4
4
  const ethers_1 = require("ethers");
5
5
  const bytes_1 = require("../../bytes");
6
6
  function verifyMessageEvmPersonal(message, signature, address) {
7
- return (address.toLowerCase() ===
8
- (0, ethers_1.verifyMessage)(typeof message === "string" ? message : (0, bytes_1.bytesFrom)(message), signature).toLowerCase());
7
+ return (
8
+ address.toLowerCase() ===
9
+ (0, ethers_1.verifyMessage)(
10
+ typeof message === "string" ? message : (0, bytes_1.bytesFrom)(message),
11
+ signature,
12
+ ).toLowerCase()
13
+ );
9
14
  }
10
15
  exports.verifyMessageEvmPersonal = verifyMessageEvmPersonal;
@@ -2,5 +2,6 @@ export * from "./btc";
2
2
  export * from "./ckb";
3
3
  export * from "./dummy";
4
4
  export * from "./evm";
5
+ export * from "./nostr";
5
6
  export * from "./signer";
6
- //# sourceMappingURL=index.d.ts.map
7
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -1,21 +1,38 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __exportStar =
26
+ (this && this.__exportStar) ||
27
+ function (m, exports) {
28
+ for (var p in m)
29
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p))
30
+ __createBinding(exports, m, p);
31
+ };
16
32
  Object.defineProperty(exports, "__esModule", { value: true });
17
33
  __exportStar(require("./btc"), exports);
18
34
  __exportStar(require("./ckb"), exports);
19
35
  __exportStar(require("./dummy"), exports);
20
36
  __exportStar(require("./evm"), exports);
37
+ __exportStar(require("./nostr"), exports);
21
38
  __exportStar(require("./signer"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./signerNostr";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __exportStar =
26
+ (this && this.__exportStar) ||
27
+ function (m, exports) {
28
+ for (var p in m)
29
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p))
30
+ __createBinding(exports, m, p);
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ __exportStar(require("./signerNostr"), exports);
@@ -0,0 +1,66 @@
1
+ import { Address } from "../../address";
2
+ import { BytesLike } from "../../bytes";
3
+ import { Transaction, TransactionLike } from "../../ckb";
4
+ import { Hex } from "../../hex";
5
+ import { Signer, SignerSignType, SignerType } from "../signer";
6
+ export interface NostrEvent {
7
+ id?: string;
8
+ pubkey?: string;
9
+ sig?: string;
10
+ created_at: number;
11
+ kind: number;
12
+ tags: string[][];
13
+ content: string;
14
+ }
15
+ export declare abstract class SignerNostr extends Signer {
16
+ static CKB_SIG_HASH_ALL_TAG: string;
17
+ static CKB_UNLOCK_EVENT_KIND: number;
18
+ static CKB_UNLOCK_EVENT_CONTENT: string;
19
+ get type(): SignerType;
20
+ get signType(): SignerSignType;
21
+ /**
22
+ * Gets the Nostr public key associated with the signer.
23
+ *
24
+ * @returns A promise that resolves to a string representing the Nostr public key.
25
+ */
26
+ abstract getNostrPublicKey(): Promise<Hex>;
27
+ /**
28
+ * Sign a nostr event.
29
+ *
30
+ * @returns A promise that resolves to the signed event.
31
+ */
32
+ abstract signNostrEvent(event: NostrEvent): Promise<Required<NostrEvent>>;
33
+ /**
34
+ * Sign a message.
35
+ *
36
+ * @returns A promise that resolves to the signature.
37
+ */
38
+ signMessageRaw(message: string | BytesLike): Promise<Hex>;
39
+ /**
40
+ * Gets the internal address, which is the EVM account in this case.
41
+ *
42
+ * @returns A promise that resolves to a string representing the internal address.
43
+ */
44
+ getInternalAddress(): Promise<string>;
45
+ /**
46
+ * Gets an array of Address objects representing the known script addresses for the signer.
47
+ *
48
+ * @returns A promise that resolves to an array of Address objects.
49
+ */
50
+ getAddressObjs(): Promise<Address[]>;
51
+ /**
52
+ * prepare a transaction before signing.
53
+ *
54
+ * @param txLike - The transaction to prepare, represented as a TransactionLike object.
55
+ * @returns A promise that resolves to the prepared Transaction object.
56
+ */
57
+ prepareTransaction(txLike: TransactionLike): Promise<Transaction>;
58
+ /**
59
+ * Signs a transaction without modifying it.
60
+ *
61
+ * @param txLike - The transaction to sign, represented as a TransactionLike object.
62
+ * @returns A promise that resolves to a signed Transaction object.
63
+ */
64
+ signOnlyTransaction(txLike: TransactionLike): Promise<Transaction>;
65
+ }
66
+ //# sourceMappingURL=signerNostr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signerNostr.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/signerNostr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAA0B,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAE,GAAG,EAAW,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/D,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,8BAAsB,WAAY,SAAQ,MAAM;IAC9C,MAAM,CAAC,oBAAoB,SAAqB;IAChD,MAAM,CAAC,qBAAqB,SAAS;IACrC,MAAM,CAAC,wBAAwB,SACkH;IAEjJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEzE;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3C;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAW1C;;;;;OAKG;IACG,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAQvE;;;;;OAKG;IACG,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CA2BzE"}