@ckb-ccc/core 1.12.5 → 1.13.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 (611) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/address.advanced-CWGrVD-M.mjs +2 -0
  3. package/dist/address.advanced-CWGrVD-M.mjs.map +1 -0
  4. package/dist/advanced.d.mts +2 -0
  5. package/dist/advanced.mjs +1 -0
  6. package/dist/advancedBarrel-BD7EAPVd.d.mts +5480 -0
  7. package/dist/advancedBarrel-BD7EAPVd.d.mts.map +1 -0
  8. package/dist/advancedBarrel.d.mts +2 -0
  9. package/dist/advancedBarrel.mjs +2 -0
  10. package/dist/advancedBarrel.mjs.map +1 -0
  11. package/dist/barrel-DchA_RPN.mjs +7 -0
  12. package/dist/barrel-DchA_RPN.mjs.map +1 -0
  13. package/dist/barrel.d.mts +2 -0
  14. package/dist/barrel.mjs +1 -0
  15. package/dist/index.d.mts +2 -0
  16. package/dist/index.mjs +1 -0
  17. package/dist/rolldown-runtime-DK3Fl9T5.mjs +1 -0
  18. package/dist.commonjs/address.advanced-COp7SNhZ.js +2 -0
  19. package/dist.commonjs/address.advanced-COp7SNhZ.js.map +1 -0
  20. package/dist.commonjs/advanced.d.ts +2 -3
  21. package/dist.commonjs/advanced.js +1 -41
  22. package/dist.commonjs/advancedBarrel-DRDT4GBS.d.ts +5481 -0
  23. package/dist.commonjs/advancedBarrel-DRDT4GBS.d.ts.map +1 -0
  24. package/dist.commonjs/advancedBarrel.d.ts +2 -7
  25. package/dist.commonjs/advancedBarrel.js +2 -22
  26. package/dist.commonjs/advancedBarrel.js.map +1 -0
  27. package/dist.commonjs/barrel-CXC2Uy5L.js +7 -0
  28. package/dist.commonjs/barrel-CXC2Uy5L.js.map +1 -0
  29. package/dist.commonjs/barrel.d.ts +2 -14
  30. package/dist.commonjs/barrel.js +1 -29
  31. package/dist.commonjs/index.d.ts +2 -3
  32. package/dist.commonjs/index.js +1 -41
  33. package/package.json +20 -23
  34. package/src/barrel.ts +1 -0
  35. package/src/ckb/epoch.ts +489 -0
  36. package/src/ckb/index.ts +1 -0
  37. package/src/ckb/script.ts +4 -3
  38. package/src/ckb/transaction.ts +83 -94
  39. package/src/client/client.ts +377 -1
  40. package/src/client/clientPublicMainnet.advanced.ts +23 -0
  41. package/src/client/clientPublicTestnet.advanced.ts +23 -0
  42. package/src/client/clientTypes.ts +1 -2
  43. package/src/client/jsonRpc/transformers.ts +2 -2
  44. package/src/client/knownScript.ts +1 -0
  45. package/src/codec/codec.ts +108 -0
  46. package/src/{molecule → codec}/entity.ts +17 -7
  47. package/src/codec/predefined.ts +145 -0
  48. package/src/hasher/advanced.ts +3 -1
  49. package/src/hasher/hasherCkb.ts +1 -1
  50. package/src/hasher/hasherKeecak256.ts +1 -1
  51. package/src/keystore/index.ts +4 -4
  52. package/src/molecule/barrel.ts +10 -1
  53. package/src/molecule/codec.ts +33 -138
  54. package/src/molecule/predefined.ts +63 -50
  55. package/src/signer/btc/index.ts +1 -0
  56. package/src/signer/btc/psbt.ts +98 -0
  57. package/src/signer/btc/signerBtc.ts +41 -1
  58. package/src/signer/btc/signerBtcPublicKeyReadonly.ts +15 -0
  59. package/src/signer/btc/verify.ts +2 -1
  60. package/src/signer/ckb/signerCkbPrivateKey.ts +6 -11
  61. package/src/signer/ckb/verifyCkbSecp256k1.ts +6 -10
  62. package/src/signer/doge/signerDogePrivateKey.ts +6 -3
  63. package/src/signer/doge/verify.ts +7 -8
  64. package/src/signer/nostr/signerNostrPrivateKey.ts +9 -8
  65. package/src/signer/nostr/verify.ts +2 -2
  66. package/src/utils/index.ts +20 -1
  67. package/tsdown.config.mts +44 -0
  68. package/dist/address/address.advanced.d.ts +0 -65
  69. package/dist/address/address.advanced.d.ts.map +0 -1
  70. package/dist/address/address.advanced.js +0 -147
  71. package/dist/address/advanced.d.ts +0 -2
  72. package/dist/address/advanced.d.ts.map +0 -1
  73. package/dist/address/advanced.js +0 -1
  74. package/dist/address/index.d.ts +0 -58
  75. package/dist/address/index.d.ts.map +0 -1
  76. package/dist/address/index.js +0 -78
  77. package/dist/advanced.d.ts +0 -3
  78. package/dist/advanced.d.ts.map +0 -1
  79. package/dist/advanced.js +0 -2
  80. package/dist/advancedBarrel.d.ts +0 -7
  81. package/dist/advancedBarrel.d.ts.map +0 -1
  82. package/dist/advancedBarrel.js +0 -6
  83. package/dist/barrel.d.ts +0 -14
  84. package/dist/barrel.d.ts.map +0 -1
  85. package/dist/barrel.js +0 -13
  86. package/dist/bytes/advanced.d.ts +0 -6
  87. package/dist/bytes/advanced.d.ts.map +0 -1
  88. package/dist/bytes/advanced.js +0 -1
  89. package/dist/bytes/index.d.ts +0 -112
  90. package/dist/bytes/index.d.ts.map +0 -1
  91. package/dist/bytes/index.js +0 -155
  92. package/dist/ckb/advanced.d.ts +0 -3
  93. package/dist/ckb/advanced.d.ts.map +0 -1
  94. package/dist/ckb/advanced.js +0 -2
  95. package/dist/ckb/hash.d.ts +0 -18
  96. package/dist/ckb/hash.d.ts.map +0 -1
  97. package/dist/ckb/hash.js +0 -19
  98. package/dist/ckb/index.d.ts +0 -6
  99. package/dist/ckb/index.d.ts.map +0 -1
  100. package/dist/ckb/index.js +0 -5
  101. package/dist/ckb/script.advanced.d.ts +0 -5
  102. package/dist/ckb/script.advanced.d.ts.map +0 -1
  103. package/dist/ckb/script.advanced.js +0 -13
  104. package/dist/ckb/script.d.ts +0 -156
  105. package/dist/ckb/script.d.ts.map +0 -1
  106. package/dist/ckb/script.js +0 -184
  107. package/dist/ckb/transaction.advanced.d.ts +0 -5
  108. package/dist/ckb/transaction.advanced.d.ts.map +0 -1
  109. package/dist/ckb/transaction.advanced.js +0 -9
  110. package/dist/ckb/transaction.d.ts +0 -1401
  111. package/dist/ckb/transaction.d.ts.map +0 -1
  112. package/dist/ckb/transaction.js +0 -1880
  113. package/dist/ckb/transactionErrors.d.ts +0 -15
  114. package/dist/ckb/transactionErrors.d.ts.map +0 -1
  115. package/dist/ckb/transactionErrors.js +0 -21
  116. package/dist/ckb/transactionLumos.d.ts +0 -30
  117. package/dist/ckb/transactionLumos.d.ts.map +0 -1
  118. package/dist/ckb/transactionLumos.js +0 -1
  119. package/dist/client/advanced.d.ts +0 -6
  120. package/dist/client/advanced.d.ts.map +0 -1
  121. package/dist/client/advanced.js +0 -5
  122. package/dist/client/cache/advanced.d.ts +0 -2
  123. package/dist/client/cache/advanced.d.ts.map +0 -1
  124. package/dist/client/cache/advanced.js +0 -1
  125. package/dist/client/cache/cache.d.ts +0 -98
  126. package/dist/client/cache/cache.d.ts.map +0 -1
  127. package/dist/client/cache/cache.js +0 -139
  128. package/dist/client/cache/index.d.ts +0 -3
  129. package/dist/client/cache/index.d.ts.map +0 -1
  130. package/dist/client/cache/index.js +0 -2
  131. package/dist/client/cache/memory.advanced.d.ts +0 -52
  132. package/dist/client/cache/memory.advanced.d.ts.map +0 -1
  133. package/dist/client/cache/memory.advanced.js +0 -149
  134. package/dist/client/cache/memory.d.ts +0 -53
  135. package/dist/client/cache/memory.d.ts.map +0 -1
  136. package/dist/client/cache/memory.js +0 -148
  137. package/dist/client/client.d.ts +0 -107
  138. package/dist/client/client.d.ts.map +0 -1
  139. package/dist/client/client.js +0 -328
  140. package/dist/client/clientPublicMainnet.advanced.d.ts +0 -4
  141. package/dist/client/clientPublicMainnet.advanced.d.ts.map +0 -1
  142. package/dist/client/clientPublicMainnet.advanced.js +0 -402
  143. package/dist/client/clientPublicMainnet.d.ts +0 -17
  144. package/dist/client/clientPublicMainnet.d.ts.map +0 -1
  145. package/dist/client/clientPublicMainnet.js +0 -40
  146. package/dist/client/clientPublicTestnet.advanced.d.ts +0 -4
  147. package/dist/client/clientPublicTestnet.advanced.d.ts.map +0 -1
  148. package/dist/client/clientPublicTestnet.advanced.js +0 -412
  149. package/dist/client/clientPublicTestnet.d.ts +0 -17
  150. package/dist/client/clientPublicTestnet.d.ts.map +0 -1
  151. package/dist/client/clientPublicTestnet.js +0 -40
  152. package/dist/client/clientTypes.advanced.d.ts +0 -25
  153. package/dist/client/clientTypes.advanced.d.ts.map +0 -1
  154. package/dist/client/clientTypes.advanced.js +0 -6
  155. package/dist/client/clientTypes.d.ts +0 -335
  156. package/dist/client/clientTypes.d.ts.map +0 -1
  157. package/dist/client/clientTypes.js +0 -232
  158. package/dist/client/index.d.ts +0 -8
  159. package/dist/client/index.d.ts.map +0 -1
  160. package/dist/client/index.js +0 -7
  161. package/dist/client/jsonRpc/advanced.d.ts +0 -3
  162. package/dist/client/jsonRpc/advanced.d.ts.map +0 -1
  163. package/dist/client/jsonRpc/advanced.js +0 -2
  164. package/dist/client/jsonRpc/client.d.ts +0 -160
  165. package/dist/client/jsonRpc/client.d.ts.map +0 -1
  166. package/dist/client/jsonRpc/client.js +0 -223
  167. package/dist/client/jsonRpc/index.d.ts +0 -2
  168. package/dist/client/jsonRpc/index.d.ts.map +0 -1
  169. package/dist/client/jsonRpc/index.js +0 -1
  170. package/dist/client/jsonRpc/transformers.d.ts +0 -51
  171. package/dist/client/jsonRpc/transformers.d.ts.map +0 -1
  172. package/dist/client/jsonRpc/transformers.js +0 -247
  173. package/dist/client/jsonRpc/types.d.ts +0 -101
  174. package/dist/client/jsonRpc/types.d.ts.map +0 -1
  175. package/dist/client/jsonRpc/types.js +0 -1
  176. package/dist/client/knownScript.d.ts +0 -27
  177. package/dist/client/knownScript.d.ts.map +0 -1
  178. package/dist/client/knownScript.js +0 -28
  179. package/dist/fixedPoint/index.d.ts +0 -55
  180. package/dist/fixedPoint/index.d.ts.map +0 -1
  181. package/dist/fixedPoint/index.js +0 -68
  182. package/dist/hasher/advanced.d.ts +0 -2
  183. package/dist/hasher/advanced.d.ts.map +0 -1
  184. package/dist/hasher/advanced.js +0 -1
  185. package/dist/hasher/hasher.d.ts +0 -35
  186. package/dist/hasher/hasher.d.ts.map +0 -1
  187. package/dist/hasher/hasher.js +0 -1
  188. package/dist/hasher/hasherCkb.d.ts +0 -57
  189. package/dist/hasher/hasherCkb.d.ts.map +0 -1
  190. package/dist/hasher/hasherCkb.js +0 -70
  191. package/dist/hasher/hasherKeecak256.d.ts +0 -41
  192. package/dist/hasher/hasherKeecak256.d.ts.map +0 -1
  193. package/dist/hasher/hasherKeecak256.js +0 -46
  194. package/dist/hasher/index.d.ts +0 -4
  195. package/dist/hasher/index.d.ts.map +0 -1
  196. package/dist/hasher/index.js +0 -3
  197. package/dist/hex/index.d.ts +0 -27
  198. package/dist/hex/index.d.ts.map +0 -1
  199. package/dist/hex/index.js +0 -17
  200. package/dist/index.d.ts +0 -3
  201. package/dist/index.d.ts.map +0 -1
  202. package/dist/index.js +0 -2
  203. package/dist/jsonRpc/advanced.d.ts +0 -2
  204. package/dist/jsonRpc/advanced.d.ts.map +0 -1
  205. package/dist/jsonRpc/advanced.js +0 -1
  206. package/dist/jsonRpc/index.d.ts +0 -2
  207. package/dist/jsonRpc/index.d.ts.map +0 -1
  208. package/dist/jsonRpc/index.js +0 -1
  209. package/dist/jsonRpc/requestor.d.ts +0 -49
  210. package/dist/jsonRpc/requestor.d.ts.map +0 -1
  211. package/dist/jsonRpc/requestor.js +0 -109
  212. package/dist/jsonRpc/transports/advanced.d.ts +0 -6
  213. package/dist/jsonRpc/transports/advanced.d.ts.map +0 -1
  214. package/dist/jsonRpc/transports/advanced.js +0 -5
  215. package/dist/jsonRpc/transports/factory.d.ts +0 -6
  216. package/dist/jsonRpc/transports/factory.d.ts.map +0 -1
  217. package/dist/jsonRpc/transports/factory.js +0 -8
  218. package/dist/jsonRpc/transports/fallback.d.ts +0 -8
  219. package/dist/jsonRpc/transports/fallback.d.ts.map +0 -1
  220. package/dist/jsonRpc/transports/fallback.js +0 -22
  221. package/dist/jsonRpc/transports/http.d.ts +0 -8
  222. package/dist/jsonRpc/transports/http.d.ts.map +0 -1
  223. package/dist/jsonRpc/transports/http.js +0 -22
  224. package/dist/jsonRpc/transports/transport.d.ts +0 -18
  225. package/dist/jsonRpc/transports/transport.d.ts.map +0 -1
  226. package/dist/jsonRpc/transports/transport.js +0 -1
  227. package/dist/jsonRpc/transports/webSocket.d.ts +0 -11
  228. package/dist/jsonRpc/transports/webSocket.d.ts.map +0 -1
  229. package/dist/jsonRpc/transports/webSocket.js +0 -87
  230. package/dist/keystore/index.d.ts +0 -31
  231. package/dist/keystore/index.d.ts.map +0 -1
  232. package/dist/keystore/index.js +0 -106
  233. package/dist/molecule/barrel.d.ts +0 -4
  234. package/dist/molecule/barrel.d.ts.map +0 -1
  235. package/dist/molecule/codec.d.ts +0 -146
  236. package/dist/molecule/codec.d.ts.map +0 -1
  237. package/dist/molecule/codec.js +0 -516
  238. package/dist/molecule/entity.d.ts +0 -112
  239. package/dist/molecule/entity.d.ts.map +0 -1
  240. package/dist/molecule/entity.js +0 -142
  241. package/dist/molecule/index.d.ts +0 -2
  242. package/dist/molecule/index.d.ts.map +0 -1
  243. package/dist/molecule/index.js +0 -1
  244. package/dist/molecule/predefined.d.ts +0 -57
  245. package/dist/molecule/predefined.d.ts.map +0 -1
  246. package/dist/molecule/predefined.js +0 -83
  247. package/dist/num/index.d.ts +0 -148
  248. package/dist/num/index.d.ts.map +0 -1
  249. package/dist/num/index.js +0 -204
  250. package/dist/signer/btc/index.d.ts +0 -4
  251. package/dist/signer/btc/index.d.ts.map +0 -1
  252. package/dist/signer/btc/index.js +0 -3
  253. package/dist/signer/btc/signerBtc.d.ts +0 -59
  254. package/dist/signer/btc/signerBtc.d.ts.map +0 -1
  255. package/dist/signer/btc/signerBtc.js +0 -83
  256. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -55
  257. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +0 -1
  258. package/dist/signer/btc/signerBtcPublicKeyReadonly.js +0 -61
  259. package/dist/signer/btc/verify.d.ts +0 -40
  260. package/dist/signer/btc/verify.d.ts.map +0 -1
  261. package/dist/signer/btc/verify.js +0 -69
  262. package/dist/signer/ckb/index.d.ts +0 -6
  263. package/dist/signer/ckb/index.d.ts.map +0 -1
  264. package/dist/signer/ckb/index.js +0 -5
  265. package/dist/signer/ckb/signerCkbPrivateKey.d.ts +0 -16
  266. package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +0 -1
  267. package/dist/signer/ckb/signerCkbPrivateKey.js +0 -42
  268. package/dist/signer/ckb/signerCkbPublicKey.d.ts +0 -27
  269. package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +0 -1
  270. package/dist/signer/ckb/signerCkbPublicKey.js +0 -101
  271. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +0 -68
  272. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +0 -1
  273. package/dist/signer/ckb/signerCkbScriptReadonly.js +0 -78
  274. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +0 -11
  275. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +0 -1
  276. package/dist/signer/ckb/verifyCkbSecp256k1.js +0 -22
  277. package/dist/signer/ckb/verifyJoyId.d.ts +0 -6
  278. package/dist/signer/ckb/verifyJoyId.d.ts.map +0 -1
  279. package/dist/signer/ckb/verifyJoyId.js +0 -16
  280. package/dist/signer/doge/index.d.ts +0 -5
  281. package/dist/signer/doge/index.d.ts.map +0 -1
  282. package/dist/signer/doge/index.js +0 -4
  283. package/dist/signer/doge/signerDoge.d.ts +0 -52
  284. package/dist/signer/doge/signerDoge.d.ts.map +0 -1
  285. package/dist/signer/doge/signerDoge.js +0 -82
  286. package/dist/signer/doge/signerDogeAddressReadonly.d.ts +0 -41
  287. package/dist/signer/doge/signerDogeAddressReadonly.d.ts.map +0 -1
  288. package/dist/signer/doge/signerDogeAddressReadonly.js +0 -45
  289. package/dist/signer/doge/signerDogePrivateKey.d.ts +0 -52
  290. package/dist/signer/doge/signerDogePrivateKey.d.ts.map +0 -1
  291. package/dist/signer/doge/signerDogePrivateKey.js +0 -68
  292. package/dist/signer/doge/verify.d.ts +0 -17
  293. package/dist/signer/doge/verify.d.ts.map +0 -1
  294. package/dist/signer/doge/verify.js +0 -29
  295. package/dist/signer/dummy/alwaysError.d.ts +0 -12
  296. package/dist/signer/dummy/alwaysError.d.ts.map +0 -1
  297. package/dist/signer/dummy/alwaysError.js +0 -13
  298. package/dist/signer/dummy/dummy.d.ts +0 -15
  299. package/dist/signer/dummy/dummy.d.ts.map +0 -1
  300. package/dist/signer/dummy/dummy.js +0 -22
  301. package/dist/signer/dummy/index.d.ts +0 -4
  302. package/dist/signer/dummy/index.d.ts.map +0 -1
  303. package/dist/signer/dummy/index.js +0 -3
  304. package/dist/signer/dummy/openLink.d.ts +0 -12
  305. package/dist/signer/dummy/openLink.d.ts.map +0 -1
  306. package/dist/signer/dummy/openLink.js +0 -13
  307. package/dist/signer/evm/index.d.ts +0 -4
  308. package/dist/signer/evm/index.d.ts.map +0 -1
  309. package/dist/signer/evm/index.js +0 -3
  310. package/dist/signer/evm/signerEvm.d.ts +0 -59
  311. package/dist/signer/evm/signerEvm.d.ts.map +0 -1
  312. package/dist/signer/evm/signerEvm.js +0 -139
  313. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +0 -47
  314. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +0 -1
  315. package/dist/signer/evm/signerEvmAddressReadonly.js +0 -51
  316. package/dist/signer/evm/verify.d.ts +0 -6
  317. package/dist/signer/evm/verify.d.ts.map +0 -1
  318. package/dist/signer/evm/verify.js +0 -9
  319. package/dist/signer/index.d.ts +0 -8
  320. package/dist/signer/index.d.ts.map +0 -1
  321. package/dist/signer/index.js +0 -7
  322. package/dist/signer/nostr/index.d.ts +0 -5
  323. package/dist/signer/nostr/index.d.ts.map +0 -1
  324. package/dist/signer/nostr/index.js +0 -4
  325. package/dist/signer/nostr/signerNostr.d.ts +0 -72
  326. package/dist/signer/nostr/signerNostr.d.ts.map +0 -1
  327. package/dist/signer/nostr/signerNostr.js +0 -96
  328. package/dist/signer/nostr/signerNostrPrivateKey.d.ts +0 -14
  329. package/dist/signer/nostr/signerNostrPrivateKey.d.ts.map +0 -1
  330. package/dist/signer/nostr/signerNostrPrivateKey.js +0 -34
  331. package/dist/signer/nostr/signerNostrPublicKeyReadonly.d.ts +0 -15
  332. package/dist/signer/nostr/signerNostrPublicKeyReadonly.d.ts.map +0 -1
  333. package/dist/signer/nostr/signerNostrPublicKeyReadonly.js +0 -26
  334. package/dist/signer/nostr/verify.d.ts +0 -9
  335. package/dist/signer/nostr/verify.d.ts.map +0 -1
  336. package/dist/signer/nostr/verify.js +0 -55
  337. package/dist/signer/signer/index.d.ts +0 -256
  338. package/dist/signer/signer/index.d.ts.map +0 -1
  339. package/dist/signer/signer/index.js +0 -305
  340. package/dist/utils/index.d.ts +0 -97
  341. package/dist/utils/index.d.ts.map +0 -1
  342. package/dist/utils/index.js +0 -55
  343. package/dist.commonjs/address/address.advanced.d.ts +0 -65
  344. package/dist.commonjs/address/address.advanced.d.ts.map +0 -1
  345. package/dist.commonjs/address/address.advanced.js +0 -152
  346. package/dist.commonjs/address/advanced.d.ts +0 -2
  347. package/dist.commonjs/address/advanced.d.ts.map +0 -1
  348. package/dist.commonjs/address/advanced.js +0 -17
  349. package/dist.commonjs/address/index.d.ts +0 -58
  350. package/dist.commonjs/address/index.d.ts.map +0 -1
  351. package/dist.commonjs/address/index.js +0 -82
  352. package/dist.commonjs/advanced.d.ts.map +0 -1
  353. package/dist.commonjs/advancedBarrel.d.ts.map +0 -1
  354. package/dist.commonjs/barrel.d.ts.map +0 -1
  355. package/dist.commonjs/bytes/advanced.d.ts +0 -6
  356. package/dist.commonjs/bytes/advanced.d.ts.map +0 -1
  357. package/dist.commonjs/bytes/advanced.js +0 -2
  358. package/dist.commonjs/bytes/index.d.ts +0 -112
  359. package/dist.commonjs/bytes/index.d.ts.map +0 -1
  360. package/dist.commonjs/bytes/index.js +0 -163
  361. package/dist.commonjs/ckb/advanced.d.ts +0 -3
  362. package/dist.commonjs/ckb/advanced.d.ts.map +0 -1
  363. package/dist.commonjs/ckb/advanced.js +0 -18
  364. package/dist.commonjs/ckb/hash.d.ts +0 -18
  365. package/dist.commonjs/ckb/hash.d.ts.map +0 -1
  366. package/dist.commonjs/ckb/hash.js +0 -22
  367. package/dist.commonjs/ckb/index.d.ts +0 -6
  368. package/dist.commonjs/ckb/index.d.ts.map +0 -1
  369. package/dist.commonjs/ckb/index.js +0 -21
  370. package/dist.commonjs/ckb/script.advanced.d.ts +0 -5
  371. package/dist.commonjs/ckb/script.advanced.d.ts.map +0 -1
  372. package/dist.commonjs/ckb/script.advanced.js +0 -16
  373. package/dist.commonjs/ckb/script.d.ts +0 -156
  374. package/dist.commonjs/ckb/script.d.ts.map +0 -1
  375. package/dist.commonjs/ckb/script.js +0 -190
  376. package/dist.commonjs/ckb/transaction.advanced.d.ts +0 -5
  377. package/dist.commonjs/ckb/transaction.advanced.d.ts.map +0 -1
  378. package/dist.commonjs/ckb/transaction.advanced.js +0 -12
  379. package/dist.commonjs/ckb/transaction.d.ts +0 -1401
  380. package/dist.commonjs/ckb/transaction.d.ts.map +0 -1
  381. package/dist.commonjs/ckb/transaction.js +0 -1894
  382. package/dist.commonjs/ckb/transactionErrors.d.ts +0 -15
  383. package/dist.commonjs/ckb/transactionErrors.d.ts.map +0 -1
  384. package/dist.commonjs/ckb/transactionErrors.js +0 -26
  385. package/dist.commonjs/ckb/transactionLumos.d.ts +0 -30
  386. package/dist.commonjs/ckb/transactionLumos.d.ts.map +0 -1
  387. package/dist.commonjs/ckb/transactionLumos.js +0 -2
  388. package/dist.commonjs/client/advanced.d.ts +0 -6
  389. package/dist.commonjs/client/advanced.d.ts.map +0 -1
  390. package/dist.commonjs/client/advanced.js +0 -21
  391. package/dist.commonjs/client/cache/advanced.d.ts +0 -2
  392. package/dist.commonjs/client/cache/advanced.d.ts.map +0 -1
  393. package/dist.commonjs/client/cache/advanced.js +0 -17
  394. package/dist.commonjs/client/cache/cache.d.ts +0 -98
  395. package/dist.commonjs/client/cache/cache.d.ts.map +0 -1
  396. package/dist.commonjs/client/cache/cache.js +0 -143
  397. package/dist.commonjs/client/cache/index.d.ts +0 -3
  398. package/dist.commonjs/client/cache/index.d.ts.map +0 -1
  399. package/dist.commonjs/client/cache/index.js +0 -18
  400. package/dist.commonjs/client/cache/memory.advanced.d.ts +0 -52
  401. package/dist.commonjs/client/cache/memory.advanced.d.ts.map +0 -1
  402. package/dist.commonjs/client/cache/memory.advanced.js +0 -158
  403. package/dist.commonjs/client/cache/memory.d.ts +0 -53
  404. package/dist.commonjs/client/cache/memory.d.ts.map +0 -1
  405. package/dist.commonjs/client/cache/memory.js +0 -152
  406. package/dist.commonjs/client/client.d.ts +0 -107
  407. package/dist.commonjs/client/client.d.ts.map +0 -1
  408. package/dist.commonjs/client/client.js +0 -332
  409. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +0 -4
  410. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +0 -1
  411. package/dist.commonjs/client/clientPublicMainnet.advanced.js +0 -405
  412. package/dist.commonjs/client/clientPublicMainnet.d.ts +0 -17
  413. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +0 -1
  414. package/dist.commonjs/client/clientPublicMainnet.js +0 -47
  415. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +0 -4
  416. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +0 -1
  417. package/dist.commonjs/client/clientPublicTestnet.advanced.js +0 -415
  418. package/dist.commonjs/client/clientPublicTestnet.d.ts +0 -17
  419. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +0 -1
  420. package/dist.commonjs/client/clientPublicTestnet.js +0 -47
  421. package/dist.commonjs/client/clientTypes.advanced.d.ts +0 -25
  422. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +0 -1
  423. package/dist.commonjs/client/clientTypes.advanced.js +0 -10
  424. package/dist.commonjs/client/clientTypes.d.ts +0 -335
  425. package/dist.commonjs/client/clientTypes.d.ts.map +0 -1
  426. package/dist.commonjs/client/clientTypes.js +0 -251
  427. package/dist.commonjs/client/index.d.ts +0 -8
  428. package/dist.commonjs/client/index.d.ts.map +0 -1
  429. package/dist.commonjs/client/index.js +0 -23
  430. package/dist.commonjs/client/jsonRpc/advanced.d.ts +0 -3
  431. package/dist.commonjs/client/jsonRpc/advanced.d.ts.map +0 -1
  432. package/dist.commonjs/client/jsonRpc/advanced.js +0 -18
  433. package/dist.commonjs/client/jsonRpc/client.d.ts +0 -160
  434. package/dist.commonjs/client/jsonRpc/client.d.ts.map +0 -1
  435. package/dist.commonjs/client/jsonRpc/client.js +0 -227
  436. package/dist.commonjs/client/jsonRpc/index.d.ts +0 -2
  437. package/dist.commonjs/client/jsonRpc/index.d.ts.map +0 -1
  438. package/dist.commonjs/client/jsonRpc/index.js +0 -17
  439. package/dist.commonjs/client/jsonRpc/transformers.d.ts +0 -51
  440. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +0 -1
  441. package/dist.commonjs/client/jsonRpc/transformers.js +0 -251
  442. package/dist.commonjs/client/jsonRpc/types.d.ts +0 -101
  443. package/dist.commonjs/client/jsonRpc/types.d.ts.map +0 -1
  444. package/dist.commonjs/client/jsonRpc/types.js +0 -2
  445. package/dist.commonjs/client/knownScript.d.ts +0 -27
  446. package/dist.commonjs/client/knownScript.d.ts.map +0 -1
  447. package/dist.commonjs/client/knownScript.js +0 -31
  448. package/dist.commonjs/fixedPoint/index.d.ts +0 -55
  449. package/dist.commonjs/fixedPoint/index.d.ts.map +0 -1
  450. package/dist.commonjs/fixedPoint/index.js +0 -73
  451. package/dist.commonjs/hasher/advanced.d.ts +0 -2
  452. package/dist.commonjs/hasher/advanced.d.ts.map +0 -1
  453. package/dist.commonjs/hasher/advanced.js +0 -4
  454. package/dist.commonjs/hasher/hasher.d.ts +0 -35
  455. package/dist.commonjs/hasher/hasher.d.ts.map +0 -1
  456. package/dist.commonjs/hasher/hasher.js +0 -2
  457. package/dist.commonjs/hasher/hasherCkb.d.ts +0 -57
  458. package/dist.commonjs/hasher/hasherCkb.d.ts.map +0 -1
  459. package/dist.commonjs/hasher/hasherCkb.js +0 -75
  460. package/dist.commonjs/hasher/hasherKeecak256.d.ts +0 -41
  461. package/dist.commonjs/hasher/hasherKeecak256.d.ts.map +0 -1
  462. package/dist.commonjs/hasher/hasherKeecak256.js +0 -50
  463. package/dist.commonjs/hasher/index.d.ts +0 -4
  464. package/dist.commonjs/hasher/index.d.ts.map +0 -1
  465. package/dist.commonjs/hasher/index.js +0 -19
  466. package/dist.commonjs/hex/index.d.ts +0 -27
  467. package/dist.commonjs/hex/index.d.ts.map +0 -1
  468. package/dist.commonjs/hex/index.js +0 -20
  469. package/dist.commonjs/index.d.ts.map +0 -1
  470. package/dist.commonjs/jsonRpc/advanced.d.ts +0 -2
  471. package/dist.commonjs/jsonRpc/advanced.d.ts.map +0 -1
  472. package/dist.commonjs/jsonRpc/advanced.js +0 -17
  473. package/dist.commonjs/jsonRpc/index.d.ts +0 -2
  474. package/dist.commonjs/jsonRpc/index.d.ts.map +0 -1
  475. package/dist.commonjs/jsonRpc/index.js +0 -17
  476. package/dist.commonjs/jsonRpc/requestor.d.ts +0 -49
  477. package/dist.commonjs/jsonRpc/requestor.d.ts.map +0 -1
  478. package/dist.commonjs/jsonRpc/requestor.js +0 -113
  479. package/dist.commonjs/jsonRpc/transports/advanced.d.ts +0 -6
  480. package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +0 -1
  481. package/dist.commonjs/jsonRpc/transports/advanced.js +0 -21
  482. package/dist.commonjs/jsonRpc/transports/factory.d.ts +0 -6
  483. package/dist.commonjs/jsonRpc/transports/factory.d.ts.map +0 -1
  484. package/dist.commonjs/jsonRpc/transports/factory.js +0 -11
  485. package/dist.commonjs/jsonRpc/transports/fallback.d.ts +0 -8
  486. package/dist.commonjs/jsonRpc/transports/fallback.d.ts.map +0 -1
  487. package/dist.commonjs/jsonRpc/transports/fallback.js +0 -26
  488. package/dist.commonjs/jsonRpc/transports/http.d.ts +0 -8
  489. package/dist.commonjs/jsonRpc/transports/http.d.ts.map +0 -1
  490. package/dist.commonjs/jsonRpc/transports/http.js +0 -26
  491. package/dist.commonjs/jsonRpc/transports/transport.d.ts +0 -18
  492. package/dist.commonjs/jsonRpc/transports/transport.d.ts.map +0 -1
  493. package/dist.commonjs/jsonRpc/transports/transport.js +0 -2
  494. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts +0 -11
  495. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +0 -1
  496. package/dist.commonjs/jsonRpc/transports/webSocket.js +0 -94
  497. package/dist.commonjs/keystore/index.d.ts +0 -31
  498. package/dist.commonjs/keystore/index.d.ts.map +0 -1
  499. package/dist.commonjs/keystore/index.js +0 -110
  500. package/dist.commonjs/molecule/barrel.d.ts +0 -4
  501. package/dist.commonjs/molecule/barrel.d.ts.map +0 -1
  502. package/dist.commonjs/molecule/barrel.js +0 -19
  503. package/dist.commonjs/molecule/codec.d.ts +0 -146
  504. package/dist.commonjs/molecule/codec.d.ts.map +0 -1
  505. package/dist.commonjs/molecule/codec.js +0 -531
  506. package/dist.commonjs/molecule/entity.d.ts +0 -112
  507. package/dist.commonjs/molecule/entity.d.ts.map +0 -1
  508. package/dist.commonjs/molecule/entity.js +0 -147
  509. package/dist.commonjs/molecule/index.d.ts +0 -2
  510. package/dist.commonjs/molecule/index.d.ts.map +0 -1
  511. package/dist.commonjs/molecule/index.js +0 -37
  512. package/dist.commonjs/molecule/predefined.d.ts +0 -57
  513. package/dist.commonjs/molecule/predefined.d.ts.map +0 -1
  514. package/dist.commonjs/molecule/predefined.js +0 -87
  515. package/dist.commonjs/num/index.d.ts +0 -148
  516. package/dist.commonjs/num/index.d.ts.map +0 -1
  517. package/dist.commonjs/num/index.js +0 -216
  518. package/dist.commonjs/signer/btc/index.d.ts +0 -4
  519. package/dist.commonjs/signer/btc/index.d.ts.map +0 -1
  520. package/dist.commonjs/signer/btc/index.js +0 -19
  521. package/dist.commonjs/signer/btc/signerBtc.d.ts +0 -59
  522. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +0 -1
  523. package/dist.commonjs/signer/btc/signerBtc.js +0 -87
  524. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -55
  525. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +0 -1
  526. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +0 -65
  527. package/dist.commonjs/signer/btc/verify.d.ts +0 -40
  528. package/dist.commonjs/signer/btc/verify.d.ts.map +0 -1
  529. package/dist.commonjs/signer/btc/verify.js +0 -80
  530. package/dist.commonjs/signer/ckb/index.d.ts +0 -6
  531. package/dist.commonjs/signer/ckb/index.d.ts.map +0 -1
  532. package/dist.commonjs/signer/ckb/index.js +0 -21
  533. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +0 -16
  534. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +0 -1
  535. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +0 -46
  536. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +0 -27
  537. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +0 -1
  538. package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +0 -105
  539. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +0 -68
  540. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +0 -1
  541. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +0 -82
  542. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +0 -11
  543. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +0 -1
  544. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +0 -26
  545. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +0 -6
  546. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +0 -1
  547. package/dist.commonjs/signer/ckb/verifyJoyId.js +0 -19
  548. package/dist.commonjs/signer/doge/index.d.ts +0 -5
  549. package/dist.commonjs/signer/doge/index.d.ts.map +0 -1
  550. package/dist.commonjs/signer/doge/index.js +0 -20
  551. package/dist.commonjs/signer/doge/signerDoge.d.ts +0 -52
  552. package/dist.commonjs/signer/doge/signerDoge.d.ts.map +0 -1
  553. package/dist.commonjs/signer/doge/signerDoge.js +0 -89
  554. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts +0 -41
  555. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts.map +0 -1
  556. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.js +0 -49
  557. package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts +0 -52
  558. package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +0 -1
  559. package/dist.commonjs/signer/doge/signerDogePrivateKey.js +0 -72
  560. package/dist.commonjs/signer/doge/verify.d.ts +0 -17
  561. package/dist.commonjs/signer/doge/verify.d.ts.map +0 -1
  562. package/dist.commonjs/signer/doge/verify.js +0 -33
  563. package/dist.commonjs/signer/dummy/alwaysError.d.ts +0 -12
  564. package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +0 -1
  565. package/dist.commonjs/signer/dummy/alwaysError.js +0 -17
  566. package/dist.commonjs/signer/dummy/dummy.d.ts +0 -15
  567. package/dist.commonjs/signer/dummy/dummy.d.ts.map +0 -1
  568. package/dist.commonjs/signer/dummy/dummy.js +0 -26
  569. package/dist.commonjs/signer/dummy/index.d.ts +0 -4
  570. package/dist.commonjs/signer/dummy/index.d.ts.map +0 -1
  571. package/dist.commonjs/signer/dummy/index.js +0 -19
  572. package/dist.commonjs/signer/dummy/openLink.d.ts +0 -12
  573. package/dist.commonjs/signer/dummy/openLink.d.ts.map +0 -1
  574. package/dist.commonjs/signer/dummy/openLink.js +0 -17
  575. package/dist.commonjs/signer/evm/index.d.ts +0 -4
  576. package/dist.commonjs/signer/evm/index.d.ts.map +0 -1
  577. package/dist.commonjs/signer/evm/index.js +0 -19
  578. package/dist.commonjs/signer/evm/signerEvm.d.ts +0 -59
  579. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +0 -1
  580. package/dist.commonjs/signer/evm/signerEvm.js +0 -143
  581. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +0 -47
  582. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +0 -1
  583. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +0 -55
  584. package/dist.commonjs/signer/evm/verify.d.ts +0 -6
  585. package/dist.commonjs/signer/evm/verify.d.ts.map +0 -1
  586. package/dist.commonjs/signer/evm/verify.js +0 -12
  587. package/dist.commonjs/signer/index.d.ts +0 -8
  588. package/dist.commonjs/signer/index.d.ts.map +0 -1
  589. package/dist.commonjs/signer/index.js +0 -23
  590. package/dist.commonjs/signer/nostr/index.d.ts +0 -5
  591. package/dist.commonjs/signer/nostr/index.d.ts.map +0 -1
  592. package/dist.commonjs/signer/nostr/index.js +0 -20
  593. package/dist.commonjs/signer/nostr/signerNostr.d.ts +0 -72
  594. package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +0 -1
  595. package/dist.commonjs/signer/nostr/signerNostr.js +0 -100
  596. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts +0 -14
  597. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts.map +0 -1
  598. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.js +0 -38
  599. package/dist.commonjs/signer/nostr/signerNostrPublicKeyReadonly.d.ts +0 -15
  600. package/dist.commonjs/signer/nostr/signerNostrPublicKeyReadonly.d.ts.map +0 -1
  601. package/dist.commonjs/signer/nostr/signerNostrPublicKeyReadonly.js +0 -30
  602. package/dist.commonjs/signer/nostr/verify.d.ts +0 -9
  603. package/dist.commonjs/signer/nostr/verify.d.ts.map +0 -1
  604. package/dist.commonjs/signer/nostr/verify.js +0 -60
  605. package/dist.commonjs/signer/signer/index.d.ts +0 -256
  606. package/dist.commonjs/signer/signer/index.d.ts.map +0 -1
  607. package/dist.commonjs/signer/signer/index.js +0 -311
  608. package/dist.commonjs/utils/index.d.ts +0 -97
  609. package/dist.commonjs/utils/index.d.ts.map +0 -1
  610. package/dist.commonjs/utils/index.js +0 -62
  611. /package/{dist/molecule/barrel.js → src/codec/index.ts} +0 -0
@@ -0,0 +1,98 @@
1
+ import { Hex, HexLike, hexFrom } from "../../hex/index.js";
2
+
3
+ /**
4
+ * Options for signing a PSBT (Partially Signed Bitcoin Transaction)
5
+ */
6
+ export type SignPsbtOptionsLike = {
7
+ /**
8
+ * Whether to finalize the PSBT after signing.
9
+ * Default is true.
10
+ */
11
+ autoFinalized?: boolean;
12
+ /**
13
+ * Array of inputs to sign
14
+ */
15
+ inputsToSign?: InputToSignLike[];
16
+ };
17
+
18
+ export class SignPsbtOptions {
19
+ constructor(
20
+ public autoFinalized: boolean,
21
+ public inputsToSign: InputToSign[],
22
+ ) {}
23
+
24
+ static from(options?: SignPsbtOptionsLike): SignPsbtOptions {
25
+ if (options instanceof SignPsbtOptions) {
26
+ return options;
27
+ }
28
+ return new SignPsbtOptions(
29
+ options?.autoFinalized ?? true,
30
+ options?.inputsToSign?.map((i) => InputToSign.from(i)) ?? [],
31
+ );
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Specification for an input to sign in a PSBT.
37
+ * Must specify at least one of: address or pubkey.
38
+ */
39
+ export type InputToSignLike = {
40
+ /**
41
+ * Which input to sign (index in the PSBT inputs array)
42
+ */
43
+ index: number;
44
+ /**
45
+ * (Optional) Sighash types to use for signing.
46
+ */
47
+ sighashTypes?: number[];
48
+ /**
49
+ * (Optional) When signing and unlocking Taproot addresses, the tweakSigner is used by default
50
+ * for signature generation. Setting this to true allows for signing with the original private key.
51
+ * Default value is false.
52
+ */
53
+ disableTweakSigner?: boolean;
54
+ } & (
55
+ | {
56
+ /**
57
+ * The address whose corresponding private key to use for signing.
58
+ */
59
+ address: string;
60
+ /**
61
+ * The public key whose corresponding private key to use for signing.
62
+ */
63
+ publicKey?: HexLike;
64
+ }
65
+ | {
66
+ /**
67
+ * The address whose corresponding private key to use for signing.
68
+ */
69
+ address?: string;
70
+ /**
71
+ * The public key whose corresponding private key to use for signing.
72
+ */
73
+ publicKey: HexLike;
74
+ }
75
+ );
76
+
77
+ export class InputToSign {
78
+ constructor(
79
+ public index: number,
80
+ public sighashTypes?: number[],
81
+ public disableTweakSigner?: boolean,
82
+ public address?: string,
83
+ public publicKey?: Hex,
84
+ ) {}
85
+
86
+ static from(input: InputToSignLike): InputToSign {
87
+ if (input instanceof InputToSign) {
88
+ return input;
89
+ }
90
+ return new InputToSign(
91
+ input.index,
92
+ input.sighashTypes,
93
+ input.disableTweakSigner,
94
+ input.address,
95
+ input.publicKey ? hexFrom(input.publicKey) : undefined,
96
+ );
97
+ }
98
+ }
@@ -2,9 +2,10 @@ import { Address } from "../../address/index.js";
2
2
  import { bytesConcat, bytesFrom } from "../../bytes/index.js";
3
3
  import { Transaction, TransactionLike, WitnessArgs } from "../../ckb/index.js";
4
4
  import { KnownScript } from "../../client/index.js";
5
- import { HexLike, hexFrom } from "../../hex/index.js";
5
+ import { Hex, HexLike, hexFrom } from "../../hex/index.js";
6
6
  import { numToBytes } from "../../num/index.js";
7
7
  import { Signer, SignerSignType, SignerType } from "../signer/index.js";
8
+ import { SignPsbtOptionsLike } from "./psbt.js";
8
9
  import { btcEcdsaPublicKeyHash } from "./verify.js";
9
10
 
10
11
  /**
@@ -22,6 +23,21 @@ export abstract class SignerBtc extends Signer {
22
23
  return SignerSignType.BtcEcdsa;
23
24
  }
24
25
 
26
+ /**
27
+ * Sign and broadcast a PSBT.
28
+ *
29
+ * @param psbtHex - The hex string of PSBT to sign and broadcast.
30
+ * @param options - Options for signing the PSBT.
31
+ * @returns A promise that resolves to the transaction ID as a Hex string.
32
+ */
33
+ async signAndBroadcastPsbt(
34
+ psbtHex: HexLike,
35
+ options?: SignPsbtOptionsLike,
36
+ ): Promise<Hex> {
37
+ const signedPsbt = await this.signPsbt(psbtHex, options);
38
+ return this.broadcastPsbt(signedPsbt, options);
39
+ }
40
+
25
41
  /**
26
42
  * Gets the Bitcoin account associated with the signer.
27
43
  *
@@ -123,4 +139,28 @@ export abstract class SignerBtc extends Signer {
123
139
  tx.setWitnessArgsAt(info.position, witness);
124
140
  return tx;
125
141
  }
142
+
143
+ /**
144
+ * Signs a Partially Signed Bitcoin Transaction (PSBT).
145
+ *
146
+ * @param psbtHex - The hex string of PSBT to sign.
147
+ * @param options - Options for signing the PSBT
148
+ * @returns A promise that resolves to the signed PSBT as a Hex string.
149
+ */
150
+ abstract signPsbt(
151
+ psbtHex: HexLike,
152
+ options?: SignPsbtOptionsLike,
153
+ ): Promise<Hex>;
154
+
155
+ /**
156
+ * Broadcasts a PSBT to the Bitcoin network.
157
+ *
158
+ * @param psbtHex - The hex string of the PSBT to broadcast.
159
+ * @param options - Options for broadcasting the PSBT.
160
+ * @returns A promise that resolves to the transaction ID as a Hex string.
161
+ */
162
+ abstract broadcastPsbt(
163
+ psbtHex: HexLike,
164
+ options?: SignPsbtOptionsLike,
165
+ ): Promise<Hex>;
126
166
  }
@@ -1,5 +1,6 @@
1
1
  import { Client } from "../../client/index.js";
2
2
  import { Hex, HexLike, hexFrom } from "../../hex/index.js";
3
+ import { SignPsbtOptionsLike } from "./psbt.js";
3
4
  import { SignerBtc } from "./signerBtc.js";
4
5
 
5
6
  /**
@@ -70,4 +71,18 @@ export class SignerBtcPublicKeyReadonly extends SignerBtc {
70
71
  async getBtcPublicKey(): Promise<Hex> {
71
72
  return this.publicKey;
72
73
  }
74
+
75
+ async signPsbt(
76
+ _psbtHex: HexLike,
77
+ _options?: SignPsbtOptionsLike,
78
+ ): Promise<Hex> {
79
+ throw new Error("Read-only signer does not support signPsbt");
80
+ }
81
+
82
+ async broadcastPsbt(
83
+ _psbtHex: HexLike,
84
+ _options?: SignPsbtOptionsLike,
85
+ ): Promise<Hex> {
86
+ throw new Error("Read-only signer does not support broadcastPsbt");
87
+ }
73
88
  }
@@ -1,4 +1,4 @@
1
- import { secp256k1 } from "@noble/curves/secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
2
2
  import { ripemd160 } from "@noble/hashes/legacy.js";
3
3
  import { sha256 } from "@noble/hashes/sha2.js";
4
4
  import bs58check from "bs58check";
@@ -98,5 +98,6 @@ export function verifyMessageBtcEcdsa(
98
98
  bytesFrom(rawSign),
99
99
  messageHashBtcEcdsa(challenge),
100
100
  bytesFrom(publicKey),
101
+ { prehash: false },
101
102
  );
102
103
  }
@@ -1,9 +1,8 @@
1
- import { secp256k1 } from "@noble/curves/secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
2
2
  import { bytesConcat, bytesFrom, BytesLike } from "../../bytes/index.js";
3
3
  import { Transaction, TransactionLike, WitnessArgs } from "../../ckb/index.js";
4
4
  import { Client } from "../../client/index.js";
5
5
  import { Hex, hexFrom, HexLike } from "../../hex/index.js";
6
- import { numBeToBytes } from "../../num/index.js";
7
6
  import { SignerCkbPublicKey } from "./signerCkbPublicKey.js";
8
7
  import { messageHashCkbSecp256k1 } from "./verifyCkbSecp256k1.js";
9
8
 
@@ -27,16 +26,12 @@ export class SignerCkbPrivateKey extends SignerCkbPublicKey {
27
26
  const signature = secp256k1.sign(
28
27
  bytesFrom(message),
29
28
  bytesFrom(this.privateKey),
29
+ {
30
+ format: "recovered",
31
+ prehash: false,
32
+ },
30
33
  );
31
- const { r, s, recovery } = signature;
32
-
33
- return hexFrom(
34
- bytesConcat(
35
- numBeToBytes(r, 32),
36
- numBeToBytes(s, 32),
37
- numBeToBytes(recovery, 1),
38
- ),
39
- );
34
+ return hexFrom(bytesConcat(signature.slice(1), signature.slice(0, 1)));
40
35
  }
41
36
 
42
37
  async signMessageRaw(message: string | BytesLike): Promise<Hex> {
@@ -1,8 +1,7 @@
1
- import { secp256k1 } from "@noble/curves/secp256k1";
2
- import { BytesLike, bytesFrom } from "../../bytes/index.js";
1
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
2
+ import { bytesConcat, bytesFrom, BytesLike } from "../../bytes/index.js";
3
3
  import { hashCkb } from "../../hasher/index.js";
4
4
  import { Hex, hexFrom } from "../../hex/index.js";
5
- import { numFrom } from "../../num/index.js";
6
5
 
7
6
  /**
8
7
  * @public
@@ -21,15 +20,12 @@ export function verifyMessageCkbSecp256k1(
21
20
  signature: string,
22
21
  publicKey: string,
23
22
  ): boolean {
24
- const signatureBytes = bytesFrom(signature);
23
+ const raw = bytesFrom(signature);
24
+
25
25
  return secp256k1.verify(
26
- new secp256k1.Signature(
27
- numFrom(signatureBytes.slice(0, 32)),
28
- numFrom(signatureBytes.slice(32, 64)),
29
- )
30
- .addRecoveryBit(Number(numFrom(signatureBytes.slice(64, 65))))
31
- .toBytes(),
26
+ bytesConcat(raw.slice(64), raw.slice(0, 64)),
32
27
  bytesFrom(messageHashCkbSecp256k1(message)),
33
28
  bytesFrom(publicKey),
29
+ { format: "recovered", prehash: false },
34
30
  );
35
31
  }
@@ -1,4 +1,4 @@
1
- import { secp256k1 } from "@noble/curves/secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
2
2
  import {
3
3
  Bytes,
4
4
  bytesConcat,
@@ -87,10 +87,13 @@ export class SignerDogePrivateKey extends SignerDoge {
87
87
  const signature = secp256k1.sign(
88
88
  messageHashDogeEcdsa(challenge),
89
89
  this.privateKey,
90
+ {
91
+ format: "recovered",
92
+ prehash: false,
93
+ },
90
94
  );
91
-
92
95
  return bytesTo(
93
- bytesConcat([31 + signature.recovery], signature.toCompactRawBytes()),
96
+ bytesConcat([31 + Number(signature[0])], signature.slice(1)),
94
97
  "base64",
95
98
  );
96
99
  }
@@ -1,4 +1,4 @@
1
- import { secp256k1 } from "@noble/curves/secp256k1";
1
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
2
2
  import { Bytes, bytesFrom, BytesLike } from "../../bytes/index.js";
3
3
  import { hexFrom } from "../../hex/index.js";
4
4
  import {
@@ -38,18 +38,17 @@ export function verifyMessageDogeEcdsa(
38
38
  const challenge =
39
39
  typeof message === "string" ? message : hexFrom(message).slice(2);
40
40
  const signatureBytes = bytesFrom(signature, "base64");
41
- const recoveryBit = signatureBytes[0];
42
- const rawSign = signatureBytes.slice(1);
43
-
44
- const sig = secp256k1.Signature.fromCompact(
45
- hexFrom(rawSign).slice(2),
46
- ).addRecoveryBit(recoveryBit - 31);
41
+ signatureBytes[0] -= 31;
47
42
 
48
43
  return (
49
44
  btcPublicKeyFromP2pkhAddress(address) ===
50
45
  hexFrom(
51
46
  btcEcdsaPublicKeyHash(
52
- sig.recoverPublicKey(messageHashDogeEcdsa(challenge)).toHex(),
47
+ secp256k1.recoverPublicKey(
48
+ signatureBytes,
49
+ messageHashDogeEcdsa(challenge),
50
+ { prehash: false },
51
+ ),
53
52
  ),
54
53
  )
55
54
  );
@@ -1,7 +1,8 @@
1
- import { schnorr } from "@noble/curves/secp256k1";
1
+ import { schnorr } from "@noble/curves/secp256k1.js";
2
2
  import { bech32 } from "bech32";
3
+ import { Bytes, bytesFrom, BytesLike } from "../../bytes/index.js";
3
4
  import { Client } from "../../client/index.js";
4
- import { Hex, hexFrom, HexLike } from "../../hex/index.js";
5
+ import { hexFrom } from "../../hex/index.js";
5
6
  import { NostrEvent } from "./signerNostr.js";
6
7
  import { SignerNostrPublicKeyReadonly } from "./signerNostrPublicKeyReadonly.js";
7
8
  import { nostrEventHash } from "./verify.js";
@@ -11,22 +12,22 @@ import { nostrEventHash } from "./verify.js";
11
12
  * Support nsec and hex format
12
13
  */
13
14
  export class SignerNostrPrivateKey extends SignerNostrPublicKeyReadonly {
14
- private readonly privateKey: Hex;
15
+ private readonly privateKey: Bytes;
15
16
 
16
- constructor(client: Client, privateKeyLike: HexLike) {
17
+ constructor(client: Client, privateKeyLike: BytesLike) {
17
18
  const privateKey = (() => {
18
19
  if (
19
20
  typeof privateKeyLike === "string" &&
20
21
  privateKeyLike.startsWith("nsec")
21
22
  ) {
22
23
  const { words } = bech32.decode(privateKeyLike);
23
- return hexFrom(bech32.fromWords(words));
24
+ return bytesFrom(bech32.fromWords(words));
24
25
  }
25
26
 
26
- return hexFrom(privateKeyLike);
27
+ return bytesFrom(privateKeyLike);
27
28
  })();
28
29
 
29
- super(client, schnorr.getPublicKey(privateKey.slice(2)));
30
+ super(client, schnorr.getPublicKey(privateKey));
30
31
 
31
32
  this.privateKey = privateKey;
32
33
  }
@@ -34,7 +35,7 @@ export class SignerNostrPrivateKey extends SignerNostrPublicKeyReadonly {
34
35
  async signNostrEvent(event: NostrEvent): Promise<Required<NostrEvent>> {
35
36
  const pubkey = (await this.getNostrPublicKey()).slice(2);
36
37
  const eventHash = nostrEventHash({ ...event, pubkey });
37
- const signature = schnorr.sign(eventHash, this.privateKey.slice(2));
38
+ const signature = schnorr.sign(eventHash, this.privateKey);
38
39
 
39
40
  return {
40
41
  ...event,
@@ -1,4 +1,4 @@
1
- import { schnorr } from "@noble/curves/secp256k1";
1
+ import { schnorr } from "@noble/curves/secp256k1.js";
2
2
  import { sha256 } from "@noble/hashes/sha2.js";
3
3
  import { bech32 } from "bech32";
4
4
  import { Bytes, BytesLike, bytesFrom } from "../../bytes/index.js";
@@ -65,7 +65,7 @@ export function verifyMessageNostrEvent(
65
65
  const eventHash = nostrEventHash({ ...event, pubkey });
66
66
 
67
67
  try {
68
- return schnorr.verify(hexFrom(signature).slice(2), eventHash, pubkey);
68
+ return schnorr.verify(bytesFrom(signature), eventHash, bytesFrom(pubkey));
69
69
  } catch (_) {
70
70
  return false;
71
71
  }
@@ -1,4 +1,5 @@
1
- import { NumLike, numFrom, numToHex } from "../num/index.js";
1
+ import { Zero } from "../fixedPoint/index.js";
2
+ import { NumLike, numFrom, numToHex, type Num } from "../num/index.js";
2
3
 
3
4
  /**
4
5
  * A type safe way to apply a transformer on a value if it's not empty.
@@ -196,3 +197,21 @@ export function stringify(val: unknown) {
196
197
  return value;
197
198
  });
198
199
  }
200
+
201
+ /**
202
+ * Calculate the greatest common divisor (GCD) of two NumLike values using the Euclidean algorithm.
203
+ *
204
+ * @param a - First operand.
205
+ * @param b - Second operand.
206
+ * @returns GCD(a, b) as a Num.
207
+ */
208
+ export function gcd(a: NumLike, b: NumLike): Num {
209
+ a = numFrom(a);
210
+ b = numFrom(b);
211
+ a = a < Zero ? -a : a;
212
+ b = b < Zero ? -b : b;
213
+ while (b !== Zero) {
214
+ [a, b] = [b, a % b];
215
+ }
216
+ return a;
217
+ }
@@ -0,0 +1,44 @@
1
+ import { defineConfig } from "tsdown";
2
+
3
+ const common = {
4
+ minify: true,
5
+ dts: true,
6
+ platform: "neutral" as const,
7
+ sourcemap: true,
8
+ exports: true,
9
+ };
10
+
11
+ const entry = {
12
+ index: "src/index.ts",
13
+ barrel: "src/barrel.ts",
14
+ advanced: "src/advanced.ts",
15
+ advancedBarrel: "src/advancedBarrel.ts",
16
+ } as const;
17
+
18
+ const bundleDeps = [
19
+ "@noble/curves/*",
20
+ "@noble/hashes/*",
21
+ "@noble/ciphers/*",
22
+ "bs58check",
23
+ ] as string[];
24
+
25
+ export default defineConfig(
26
+ (
27
+ [
28
+ {
29
+ entry,
30
+ onlyBundle: [],
31
+ format: "esm",
32
+ copy: "./misc/basedirs/dist/*",
33
+ },
34
+ {
35
+ entry,
36
+ alwaysBundle: bundleDeps,
37
+ onlyBundle: bundleDeps,
38
+ format: "cjs",
39
+ outDir: "dist.commonjs",
40
+ copy: "./misc/basedirs/dist.commonjs/*",
41
+ },
42
+ ] as const
43
+ ).map((c) => ({ ...c, ...common })),
44
+ );
@@ -1,65 +0,0 @@
1
- import { Client } from "../client/index.js";
2
- import { type AddressLike } from "./index.js";
3
- /**
4
- * Parses an address string into an address information object.
5
- *
6
- * @param address - The address string to parse.
7
- * @returns An object containing the address prefix, address format, and payload array.
8
- *
9
- * @throws Will throw an error if the address format is unknown.
10
- *
11
- * @example
12
- * ```typescript
13
- * const addressInfo = addressPayloadFromString("ckt1112139193129");
14
- * console.log(addressInfo.prefix); // Outputs the address prefix
15
- * console.log(addressInfo.format); // Outputs the address format
16
- * console.log(addressInfo.payload); // Outputs the payload array
17
- * ```
18
- */
19
- export declare function addressPayloadFromString(address: string): {
20
- prefix: string;
21
- format: AddressFormat;
22
- payload: number[];
23
- };
24
- /**
25
- * Converts an address payload into an address-like object.
26
- *
27
- * @param prefix - The address prefix.
28
- * @param format - The format of the address, as defined by the AddressFormat enum.
29
- * @param payload - The payload array containing the address data.
30
- * @param client - The client instance used to fetch known scripts.
31
- * @returns A promise that resolves to an AddressLike object.
32
- *
33
- * @throws Will throw an error if the payload length is insufficient or if the script type is unknown.
34
- *
35
- * @example
36
- * ```typescript
37
- * const address = await addressFromPayload("ckt", AddressFormat.Full, [/* payload data *\/], client);
38
- * console.log(address.script); // Outputs the script object
39
- * console.log(address.prefix); // Outputs the address prefix
40
- * ```
41
- */
42
- export declare function addressFromPayload(prefix: string, format: AddressFormat, payload: number[], client: Client): Promise<AddressLike>;
43
- export declare enum AddressFormat {
44
- /**
45
- * full version identifies the hashType
46
- */
47
- Full = 0,
48
- /**
49
- * @deprecated
50
- * short version for locks with Known codeHash, deprecated
51
- */
52
- Short = 1,
53
- /**
54
- * @deprecated
55
- * full version with hashType = "Data", deprecated
56
- */
57
- FullData = 2,
58
- /**
59
- * @deprecated
60
- * full version with hashType = "Type", deprecated
61
- */
62
- FullType = 4
63
- }
64
- export declare const ADDRESS_BECH32_LIMIT = 1023;
65
- //# sourceMappingURL=address.advanced.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address.advanced.d.ts","sourceRoot":"","sources":["../../src/address/address.advanced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AAEH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA+BA;AAED;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAyEtB;AAED,oBAAY,aAAa;IACvB;;OAEG;IACH,IAAI,IAAO;IACX;;;OAGG;IACH,KAAK,IAAO;IACZ;;;OAGG;IACH,QAAQ,IAAO;IACf;;;OAGG;IACH,QAAQ,IAAO;CAChB;AAED,eAAO,MAAM,oBAAoB,OAAO,CAAC"}
@@ -1,147 +0,0 @@
1
- import { bech32, bech32m } from "bech32";
2
- import { Script, hashTypeFromBytes } from "../ckb/index.js";
3
- import { KnownScript } from "../client/index.js";
4
- import { hexFrom } from "../hex/index.js";
5
- /**
6
- * Parses an address string into an address information object.
7
- *
8
- * @param address - The address string to parse.
9
- * @returns An object containing the address prefix, address format, and payload array.
10
- *
11
- * @throws Will throw an error if the address format is unknown.
12
- *
13
- * @example
14
- * ```typescript
15
- * const addressInfo = addressPayloadFromString("ckt1112139193129");
16
- * console.log(addressInfo.prefix); // Outputs the address prefix
17
- * console.log(addressInfo.format); // Outputs the address format
18
- * console.log(addressInfo.payload); // Outputs the payload array
19
- * ```
20
- */
21
- export function addressPayloadFromString(address) {
22
- // Try parse full format address
23
- try {
24
- const { words, prefix } = bech32m.decode(address, ADDRESS_BECH32_LIMIT);
25
- const decoded = bech32m.fromWords(words);
26
- const formatType = decoded[0];
27
- const payload = decoded.slice(1);
28
- if (formatType === AddressFormat.Full) {
29
- return { prefix, format: AddressFormat.Full, payload };
30
- }
31
- }
32
- catch (_) { }
33
- // Try parse legacy 2019 format address
34
- try {
35
- const { prefix, words } = bech32.decode(address, ADDRESS_BECH32_LIMIT);
36
- const decoded = bech32.fromWords(words);
37
- const formatType = decoded[0];
38
- const payload = decoded.slice(1);
39
- if ([
40
- AddressFormat.FullData,
41
- AddressFormat.FullType,
42
- AddressFormat.Short,
43
- ].includes(formatType)) {
44
- return { prefix, format: formatType, payload };
45
- }
46
- }
47
- catch (_) { }
48
- throw Error(`Unknown address format ${address}`);
49
- }
50
- /**
51
- * Converts an address payload into an address-like object.
52
- *
53
- * @param prefix - The address prefix.
54
- * @param format - The format of the address, as defined by the AddressFormat enum.
55
- * @param payload - The payload array containing the address data.
56
- * @param client - The client instance used to fetch known scripts.
57
- * @returns A promise that resolves to an AddressLike object.
58
- *
59
- * @throws Will throw an error if the payload length is insufficient or if the script type is unknown.
60
- *
61
- * @example
62
- * ```typescript
63
- * const address = await addressFromPayload("ckt", AddressFormat.Full, [/* payload data *\/], client);
64
- * console.log(address.script); // Outputs the script object
65
- * console.log(address.prefix); // Outputs the address prefix
66
- * ```
67
- */
68
- export async function addressFromPayload(prefix, format, payload, client) {
69
- if (format === AddressFormat.Full) {
70
- if (payload.length < 32 + 1) {
71
- throw new Error(`Invalid full address without enough payload ${hexFrom(payload)}`);
72
- }
73
- return {
74
- script: {
75
- codeHash: payload.slice(0, 32),
76
- hashType: hashTypeFromBytes(payload.slice(32, 33)),
77
- args: payload.slice(33),
78
- },
79
- prefix,
80
- };
81
- }
82
- if (format === AddressFormat.FullData) {
83
- if (payload.length < 32) {
84
- throw new Error(`Invalid full data address without enough payload ${hexFrom(payload)}`);
85
- }
86
- return {
87
- script: {
88
- codeHash: payload.slice(0, 32),
89
- hashType: "data",
90
- args: payload.slice(32),
91
- },
92
- prefix,
93
- };
94
- }
95
- if (format === AddressFormat.FullType) {
96
- if (payload.length < 32) {
97
- throw new Error(`Invalid full type address without enough payload ${hexFrom(payload)}`);
98
- }
99
- return {
100
- script: {
101
- codeHash: payload.slice(0, 32),
102
- hashType: "type",
103
- args: payload.slice(32),
104
- },
105
- prefix,
106
- };
107
- }
108
- // format === AddressFormat.Short
109
- if (payload.length !== 21) {
110
- throw new Error(`Invalid short address without enough payload ${hexFrom(payload)}`);
111
- }
112
- const script = [
113
- KnownScript.Secp256k1Blake160,
114
- KnownScript.Secp256k1Multisig,
115
- KnownScript.AnyoneCanPay,
116
- ][payload[0]];
117
- if (script === undefined) {
118
- throw new Error(`Invalid short address with unknown script ${hexFrom(payload)}`);
119
- }
120
- return {
121
- script: await Script.fromKnownScript(client, script, payload.slice(1)),
122
- prefix,
123
- };
124
- }
125
- export var AddressFormat;
126
- (function (AddressFormat) {
127
- /**
128
- * full version identifies the hashType
129
- */
130
- AddressFormat[AddressFormat["Full"] = 0] = "Full";
131
- /**
132
- * @deprecated
133
- * short version for locks with Known codeHash, deprecated
134
- */
135
- AddressFormat[AddressFormat["Short"] = 1] = "Short";
136
- /**
137
- * @deprecated
138
- * full version with hashType = "Data", deprecated
139
- */
140
- AddressFormat[AddressFormat["FullData"] = 2] = "FullData";
141
- /**
142
- * @deprecated
143
- * full version with hashType = "Type", deprecated
144
- */
145
- AddressFormat[AddressFormat["FullType"] = 4] = "FullType";
146
- })(AddressFormat || (AddressFormat = {}));
147
- export const ADDRESS_BECH32_LIMIT = 1023;
@@ -1,2 +0,0 @@
1
- export * from "./address.advanced.js";
2
- //# sourceMappingURL=advanced.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/address/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./address.advanced.js";