@ckb-ccc/core 0.0.0-canary-20250214032000

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 (623) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/README.md +41 -0
  3. package/dist/address/address.advanced.d.ts +65 -0
  4. package/dist/address/address.advanced.d.ts.map +1 -0
  5. package/dist/address/address.advanced.js +147 -0
  6. package/dist/address/advanced.d.ts +2 -0
  7. package/dist/address/advanced.d.ts.map +1 -0
  8. package/dist/address/advanced.js +1 -0
  9. package/dist/address/index.d.ts +58 -0
  10. package/dist/address/index.d.ts.map +1 -0
  11. package/dist/address/index.js +78 -0
  12. package/dist/advanced.d.ts +3 -0
  13. package/dist/advanced.d.ts.map +1 -0
  14. package/dist/advanced.js +2 -0
  15. package/dist/advancedBarrel.d.ts +7 -0
  16. package/dist/advancedBarrel.d.ts.map +1 -0
  17. package/dist/advancedBarrel.js +6 -0
  18. package/dist/barrel.d.ts +14 -0
  19. package/dist/barrel.d.ts.map +1 -0
  20. package/dist/barrel.js +13 -0
  21. package/dist/bytes/advanced.d.ts +6 -0
  22. package/dist/bytes/advanced.d.ts.map +1 -0
  23. package/dist/bytes/advanced.js +1 -0
  24. package/dist/bytes/index.d.ts +108 -0
  25. package/dist/bytes/index.d.ts.map +1 -0
  26. package/dist/bytes/index.js +151 -0
  27. package/dist/ckb/advanced.d.ts +3 -0
  28. package/dist/ckb/advanced.d.ts.map +1 -0
  29. package/dist/ckb/advanced.js +2 -0
  30. package/dist/ckb/index.d.ts +4 -0
  31. package/dist/ckb/index.d.ts.map +1 -0
  32. package/dist/ckb/index.js +3 -0
  33. package/dist/ckb/script.advanced.d.ts +5 -0
  34. package/dist/ckb/script.advanced.d.ts.map +1 -0
  35. package/dist/ckb/script.advanced.js +13 -0
  36. package/dist/ckb/script.d.ts +143 -0
  37. package/dist/ckb/script.d.ts.map +1 -0
  38. package/dist/ckb/script.js +167 -0
  39. package/dist/ckb/transaction.advanced.d.ts +5 -0
  40. package/dist/ckb/transaction.advanced.d.ts.map +1 -0
  41. package/dist/ckb/transaction.advanced.js +9 -0
  42. package/dist/ckb/transaction.d.ts +893 -0
  43. package/dist/ckb/transaction.d.ts.map +1 -0
  44. package/dist/ckb/transaction.js +1299 -0
  45. package/dist/ckb/transactionLumos.d.ts +30 -0
  46. package/dist/ckb/transactionLumos.d.ts.map +1 -0
  47. package/dist/ckb/transactionLumos.js +1 -0
  48. package/dist/client/advanced.d.ts +6 -0
  49. package/dist/client/advanced.d.ts.map +1 -0
  50. package/dist/client/advanced.js +5 -0
  51. package/dist/client/cache/advanced.d.ts +2 -0
  52. package/dist/client/cache/advanced.d.ts.map +1 -0
  53. package/dist/client/cache/advanced.js +1 -0
  54. package/dist/client/cache/cache.d.ts +91 -0
  55. package/dist/client/cache/cache.d.ts.map +1 -0
  56. package/dist/client/cache/cache.js +128 -0
  57. package/dist/client/cache/index.d.ts +3 -0
  58. package/dist/client/cache/index.d.ts.map +1 -0
  59. package/dist/client/cache/index.js +2 -0
  60. package/dist/client/cache/memory.advanced.d.ts +22 -0
  61. package/dist/client/cache/memory.advanced.d.ts.map +1 -0
  62. package/dist/client/cache/memory.advanced.js +118 -0
  63. package/dist/client/cache/memory.d.ts +44 -0
  64. package/dist/client/cache/memory.d.ts.map +1 -0
  65. package/dist/client/cache/memory.js +137 -0
  66. package/dist/client/client.d.ts +98 -0
  67. package/dist/client/client.d.ts.map +1 -0
  68. package/dist/client/client.js +323 -0
  69. package/dist/client/clientPublicMainnet.advanced.d.ts +3 -0
  70. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -0
  71. package/dist/client/clientPublicMainnet.advanced.js +326 -0
  72. package/dist/client/clientPublicMainnet.d.ts +16 -0
  73. package/dist/client/clientPublicMainnet.d.ts.map +1 -0
  74. package/dist/client/clientPublicMainnet.js +40 -0
  75. package/dist/client/clientPublicTestnet.advanced.d.ts +3 -0
  76. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -0
  77. package/dist/client/clientPublicTestnet.advanced.js +336 -0
  78. package/dist/client/clientPublicTestnet.d.ts +16 -0
  79. package/dist/client/clientPublicTestnet.d.ts.map +1 -0
  80. package/dist/client/clientPublicTestnet.js +40 -0
  81. package/dist/client/clientTypes.advanced.d.ts +26 -0
  82. package/dist/client/clientTypes.advanced.d.ts.map +1 -0
  83. package/dist/client/clientTypes.advanced.js +7 -0
  84. package/dist/client/clientTypes.d.ts +360 -0
  85. package/dist/client/clientTypes.d.ts.map +1 -0
  86. package/dist/client/clientTypes.js +259 -0
  87. package/dist/client/index.d.ts +7 -0
  88. package/dist/client/index.d.ts.map +1 -0
  89. package/dist/client/index.js +6 -0
  90. package/dist/client/jsonRpc/advanced.d.ts +3 -0
  91. package/dist/client/jsonRpc/advanced.d.ts.map +1 -0
  92. package/dist/client/jsonRpc/advanced.js +2 -0
  93. package/dist/client/jsonRpc/client.d.ts +160 -0
  94. package/dist/client/jsonRpc/client.d.ts.map +1 -0
  95. package/dist/client/jsonRpc/client.js +220 -0
  96. package/dist/client/jsonRpc/index.d.ts +2 -0
  97. package/dist/client/jsonRpc/index.d.ts.map +1 -0
  98. package/dist/client/jsonRpc/index.js +1 -0
  99. package/dist/client/jsonRpc/transformers.d.ts +51 -0
  100. package/dist/client/jsonRpc/transformers.d.ts.map +1 -0
  101. package/dist/client/jsonRpc/transformers.js +246 -0
  102. package/dist/client/jsonRpc/types.d.ts +101 -0
  103. package/dist/client/jsonRpc/types.d.ts.map +1 -0
  104. package/dist/client/jsonRpc/types.js +1 -0
  105. package/dist/fixedPoint/index.d.ts +55 -0
  106. package/dist/fixedPoint/index.d.ts.map +1 -0
  107. package/dist/fixedPoint/index.js +68 -0
  108. package/dist/hasher/advanced.d.ts +2 -0
  109. package/dist/hasher/advanced.d.ts.map +1 -0
  110. package/dist/hasher/advanced.js +1 -0
  111. package/dist/hasher/hasher.d.ts +35 -0
  112. package/dist/hasher/hasher.d.ts.map +1 -0
  113. package/dist/hasher/hasher.js +1 -0
  114. package/dist/hasher/hasherCkb.d.ts +73 -0
  115. package/dist/hasher/hasherCkb.d.ts.map +1 -0
  116. package/dist/hasher/hasherCkb.js +88 -0
  117. package/dist/hasher/hasherKeecak256.d.ts +41 -0
  118. package/dist/hasher/hasherKeecak256.d.ts.map +1 -0
  119. package/dist/hasher/hasherKeecak256.js +46 -0
  120. package/dist/hasher/index.d.ts +4 -0
  121. package/dist/hasher/index.d.ts.map +1 -0
  122. package/dist/hasher/index.js +3 -0
  123. package/dist/hex/index.d.ts +27 -0
  124. package/dist/hex/index.d.ts.map +1 -0
  125. package/dist/hex/index.js +17 -0
  126. package/dist/index.d.ts +3 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +2 -0
  129. package/dist/jsonRpc/advanced.d.ts +2 -0
  130. package/dist/jsonRpc/advanced.d.ts.map +1 -0
  131. package/dist/jsonRpc/advanced.js +1 -0
  132. package/dist/jsonRpc/index.d.ts +2 -0
  133. package/dist/jsonRpc/index.d.ts.map +1 -0
  134. package/dist/jsonRpc/index.js +1 -0
  135. package/dist/jsonRpc/requestor.d.ts +49 -0
  136. package/dist/jsonRpc/requestor.d.ts.map +1 -0
  137. package/dist/jsonRpc/requestor.js +109 -0
  138. package/dist/jsonRpc/transports/advanced.d.ts +6 -0
  139. package/dist/jsonRpc/transports/advanced.d.ts.map +1 -0
  140. package/dist/jsonRpc/transports/advanced.js +5 -0
  141. package/dist/jsonRpc/transports/factory.d.ts +6 -0
  142. package/dist/jsonRpc/transports/factory.d.ts.map +1 -0
  143. package/dist/jsonRpc/transports/factory.js +8 -0
  144. package/dist/jsonRpc/transports/fallback.d.ts +8 -0
  145. package/dist/jsonRpc/transports/fallback.d.ts.map +1 -0
  146. package/dist/jsonRpc/transports/fallback.js +22 -0
  147. package/dist/jsonRpc/transports/http.d.ts +8 -0
  148. package/dist/jsonRpc/transports/http.d.ts.map +1 -0
  149. package/dist/jsonRpc/transports/http.js +22 -0
  150. package/dist/jsonRpc/transports/transport.d.ts +18 -0
  151. package/dist/jsonRpc/transports/transport.d.ts.map +1 -0
  152. package/dist/jsonRpc/transports/transport.js +1 -0
  153. package/dist/jsonRpc/transports/webSocket.d.ts +11 -0
  154. package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -0
  155. package/dist/jsonRpc/transports/webSocket.js +87 -0
  156. package/dist/keystore/index.d.ts +31 -0
  157. package/dist/keystore/index.d.ts.map +1 -0
  158. package/dist/keystore/index.js +106 -0
  159. package/dist/molecule/barrel.d.ts +4 -0
  160. package/dist/molecule/barrel.d.ts.map +1 -0
  161. package/dist/molecule/barrel.js +3 -0
  162. package/dist/molecule/codec.d.ts +120 -0
  163. package/dist/molecule/codec.d.ts.map +1 -0
  164. package/dist/molecule/codec.js +468 -0
  165. package/dist/molecule/entity.d.ts +119 -0
  166. package/dist/molecule/entity.d.ts.map +1 -0
  167. package/dist/molecule/entity.js +134 -0
  168. package/dist/molecule/index.d.ts +2 -0
  169. package/dist/molecule/index.d.ts.map +1 -0
  170. package/dist/molecule/index.js +1 -0
  171. package/dist/molecule/predefined.d.ts +57 -0
  172. package/dist/molecule/predefined.d.ts.map +1 -0
  173. package/dist/molecule/predefined.js +83 -0
  174. package/dist/num/index.d.ts +148 -0
  175. package/dist/num/index.d.ts.map +1 -0
  176. package/dist/num/index.js +188 -0
  177. package/dist/package.json +3 -0
  178. package/dist/signer/btc/index.d.ts +4 -0
  179. package/dist/signer/btc/index.d.ts.map +1 -0
  180. package/dist/signer/btc/index.js +3 -0
  181. package/dist/signer/btc/signerBtc.d.ts +59 -0
  182. package/dist/signer/btc/signerBtc.d.ts.map +1 -0
  183. package/dist/signer/btc/signerBtc.js +83 -0
  184. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +55 -0
  185. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -0
  186. package/dist/signer/btc/signerBtcPublicKeyReadonly.js +61 -0
  187. package/dist/signer/btc/verify.d.ts +19 -0
  188. package/dist/signer/btc/verify.d.ts.map +1 -0
  189. package/dist/signer/btc/verify.js +33 -0
  190. package/dist/signer/ckb/index.d.ts +6 -0
  191. package/dist/signer/ckb/index.d.ts.map +1 -0
  192. package/dist/signer/ckb/index.js +5 -0
  193. package/dist/signer/ckb/signerCkbPrivateKey.d.ts +16 -0
  194. package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
  195. package/dist/signer/ckb/signerCkbPrivateKey.js +42 -0
  196. package/dist/signer/ckb/signerCkbPublicKey.d.ts +27 -0
  197. package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
  198. package/dist/signer/ckb/signerCkbPublicKey.js +105 -0
  199. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +56 -0
  200. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -0
  201. package/dist/signer/ckb/signerCkbScriptReadonly.js +66 -0
  202. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +11 -0
  203. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
  204. package/dist/signer/ckb/verifyCkbSecp256k1.js +20 -0
  205. package/dist/signer/ckb/verifyJoyId.d.ts +6 -0
  206. package/dist/signer/ckb/verifyJoyId.d.ts.map +1 -0
  207. package/dist/signer/ckb/verifyJoyId.js +16 -0
  208. package/dist/signer/doge/index.d.ts +5 -0
  209. package/dist/signer/doge/index.d.ts.map +1 -0
  210. package/dist/signer/doge/index.js +4 -0
  211. package/dist/signer/doge/signerDoge.d.ts +52 -0
  212. package/dist/signer/doge/signerDoge.d.ts.map +1 -0
  213. package/dist/signer/doge/signerDoge.js +82 -0
  214. package/dist/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
  215. package/dist/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
  216. package/dist/signer/doge/signerDogeAddressReadonly.js +45 -0
  217. package/dist/signer/doge/signerDogePrivateKey.d.ts +52 -0
  218. package/dist/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
  219. package/dist/signer/doge/signerDogePrivateKey.js +68 -0
  220. package/dist/signer/doge/verify.d.ts +6 -0
  221. package/dist/signer/doge/verify.d.ts.map +1 -0
  222. package/dist/signer/doge/verify.js +19 -0
  223. package/dist/signer/dummy/alwaysError.d.ts +12 -0
  224. package/dist/signer/dummy/alwaysError.d.ts.map +1 -0
  225. package/dist/signer/dummy/alwaysError.js +13 -0
  226. package/dist/signer/dummy/dummy.d.ts +15 -0
  227. package/dist/signer/dummy/dummy.d.ts.map +1 -0
  228. package/dist/signer/dummy/dummy.js +22 -0
  229. package/dist/signer/dummy/index.d.ts +4 -0
  230. package/dist/signer/dummy/index.d.ts.map +1 -0
  231. package/dist/signer/dummy/index.js +3 -0
  232. package/dist/signer/dummy/openLink.d.ts +12 -0
  233. package/dist/signer/dummy/openLink.d.ts.map +1 -0
  234. package/dist/signer/dummy/openLink.js +13 -0
  235. package/dist/signer/evm/index.d.ts +4 -0
  236. package/dist/signer/evm/index.d.ts.map +1 -0
  237. package/dist/signer/evm/index.js +3 -0
  238. package/dist/signer/evm/signerEvm.d.ts +59 -0
  239. package/dist/signer/evm/signerEvm.d.ts.map +1 -0
  240. package/dist/signer/evm/signerEvm.js +139 -0
  241. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +47 -0
  242. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -0
  243. package/dist/signer/evm/signerEvmAddressReadonly.js +51 -0
  244. package/dist/signer/evm/verify.d.ts +6 -0
  245. package/dist/signer/evm/verify.d.ts.map +1 -0
  246. package/dist/signer/evm/verify.js +9 -0
  247. package/dist/signer/index.d.ts +8 -0
  248. package/dist/signer/index.d.ts.map +1 -0
  249. package/dist/signer/index.js +7 -0
  250. package/dist/signer/nostr/index.d.ts +4 -0
  251. package/dist/signer/nostr/index.d.ts.map +1 -0
  252. package/dist/signer/nostr/index.js +3 -0
  253. package/dist/signer/nostr/signerNostr.d.ts +72 -0
  254. package/dist/signer/nostr/signerNostr.d.ts.map +1 -0
  255. package/dist/signer/nostr/signerNostr.js +88 -0
  256. package/dist/signer/nostr/signerNostrPrivateKey.d.ts +12 -0
  257. package/dist/signer/nostr/signerNostrPrivateKey.d.ts.map +1 -0
  258. package/dist/signer/nostr/signerNostrPrivateKey.js +28 -0
  259. package/dist/signer/nostr/verify.d.ts +9 -0
  260. package/dist/signer/nostr/verify.d.ts.map +1 -0
  261. package/dist/signer/nostr/verify.js +55 -0
  262. package/dist/signer/signer/index.d.ts +237 -0
  263. package/dist/signer/signer/index.d.ts.map +1 -0
  264. package/dist/signer/signer/index.js +274 -0
  265. package/dist/utils/index.d.ts +97 -0
  266. package/dist/utils/index.d.ts.map +1 -0
  267. package/dist/utils/index.js +55 -0
  268. package/dist.commonjs/address/address.advanced.d.ts +65 -0
  269. package/dist.commonjs/address/address.advanced.d.ts.map +1 -0
  270. package/dist.commonjs/address/address.advanced.js +152 -0
  271. package/dist.commonjs/address/advanced.d.ts +2 -0
  272. package/dist.commonjs/address/advanced.d.ts.map +1 -0
  273. package/dist.commonjs/address/advanced.js +17 -0
  274. package/dist.commonjs/address/index.d.ts +58 -0
  275. package/dist.commonjs/address/index.d.ts.map +1 -0
  276. package/dist.commonjs/address/index.js +82 -0
  277. package/dist.commonjs/advanced.d.ts +3 -0
  278. package/dist.commonjs/advanced.d.ts.map +1 -0
  279. package/dist.commonjs/advanced.js +41 -0
  280. package/dist.commonjs/advancedBarrel.d.ts +7 -0
  281. package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
  282. package/dist.commonjs/advancedBarrel.js +22 -0
  283. package/dist.commonjs/barrel.d.ts +14 -0
  284. package/dist.commonjs/barrel.d.ts.map +1 -0
  285. package/dist.commonjs/barrel.js +29 -0
  286. package/dist.commonjs/bytes/advanced.d.ts +6 -0
  287. package/dist.commonjs/bytes/advanced.d.ts.map +1 -0
  288. package/dist.commonjs/bytes/advanced.js +2 -0
  289. package/dist.commonjs/bytes/index.d.ts +108 -0
  290. package/dist.commonjs/bytes/index.d.ts.map +1 -0
  291. package/dist.commonjs/bytes/index.js +158 -0
  292. package/dist.commonjs/ckb/advanced.d.ts +3 -0
  293. package/dist.commonjs/ckb/advanced.d.ts.map +1 -0
  294. package/dist.commonjs/ckb/advanced.js +18 -0
  295. package/dist.commonjs/ckb/index.d.ts +4 -0
  296. package/dist.commonjs/ckb/index.d.ts.map +1 -0
  297. package/dist.commonjs/ckb/index.js +19 -0
  298. package/dist.commonjs/ckb/script.advanced.d.ts +5 -0
  299. package/dist.commonjs/ckb/script.advanced.d.ts.map +1 -0
  300. package/dist.commonjs/ckb/script.advanced.js +16 -0
  301. package/dist.commonjs/ckb/script.d.ts +143 -0
  302. package/dist.commonjs/ckb/script.d.ts.map +1 -0
  303. package/dist.commonjs/ckb/script.js +173 -0
  304. package/dist.commonjs/ckb/transaction.advanced.d.ts +5 -0
  305. package/dist.commonjs/ckb/transaction.advanced.d.ts.map +1 -0
  306. package/dist.commonjs/ckb/transaction.advanced.js +12 -0
  307. package/dist.commonjs/ckb/transaction.d.ts +893 -0
  308. package/dist.commonjs/ckb/transaction.d.ts.map +1 -0
  309. package/dist.commonjs/ckb/transaction.js +1310 -0
  310. package/dist.commonjs/ckb/transactionLumos.d.ts +30 -0
  311. package/dist.commonjs/ckb/transactionLumos.d.ts.map +1 -0
  312. package/dist.commonjs/ckb/transactionLumos.js +2 -0
  313. package/dist.commonjs/client/advanced.d.ts +6 -0
  314. package/dist.commonjs/client/advanced.d.ts.map +1 -0
  315. package/dist.commonjs/client/advanced.js +21 -0
  316. package/dist.commonjs/client/cache/advanced.d.ts +2 -0
  317. package/dist.commonjs/client/cache/advanced.d.ts.map +1 -0
  318. package/dist.commonjs/client/cache/advanced.js +17 -0
  319. package/dist.commonjs/client/cache/cache.d.ts +91 -0
  320. package/dist.commonjs/client/cache/cache.d.ts.map +1 -0
  321. package/dist.commonjs/client/cache/cache.js +132 -0
  322. package/dist.commonjs/client/cache/index.d.ts +3 -0
  323. package/dist.commonjs/client/cache/index.d.ts.map +1 -0
  324. package/dist.commonjs/client/cache/index.js +18 -0
  325. package/dist.commonjs/client/cache/memory.advanced.d.ts +22 -0
  326. package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -0
  327. package/dist.commonjs/client/cache/memory.advanced.js +127 -0
  328. package/dist.commonjs/client/cache/memory.d.ts +44 -0
  329. package/dist.commonjs/client/cache/memory.d.ts.map +1 -0
  330. package/dist.commonjs/client/cache/memory.js +141 -0
  331. package/dist.commonjs/client/client.d.ts +98 -0
  332. package/dist.commonjs/client/client.d.ts.map +1 -0
  333. package/dist.commonjs/client/client.js +327 -0
  334. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +3 -0
  335. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -0
  336. package/dist.commonjs/client/clientPublicMainnet.advanced.js +329 -0
  337. package/dist.commonjs/client/clientPublicMainnet.d.ts +16 -0
  338. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -0
  339. package/dist.commonjs/client/clientPublicMainnet.js +47 -0
  340. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +3 -0
  341. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -0
  342. package/dist.commonjs/client/clientPublicTestnet.advanced.js +339 -0
  343. package/dist.commonjs/client/clientPublicTestnet.d.ts +16 -0
  344. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -0
  345. package/dist.commonjs/client/clientPublicTestnet.js +47 -0
  346. package/dist.commonjs/client/clientTypes.advanced.d.ts +26 -0
  347. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -0
  348. package/dist.commonjs/client/clientTypes.advanced.js +11 -0
  349. package/dist.commonjs/client/clientTypes.d.ts +360 -0
  350. package/dist.commonjs/client/clientTypes.d.ts.map +1 -0
  351. package/dist.commonjs/client/clientTypes.js +278 -0
  352. package/dist.commonjs/client/index.d.ts +7 -0
  353. package/dist.commonjs/client/index.d.ts.map +1 -0
  354. package/dist.commonjs/client/index.js +22 -0
  355. package/dist.commonjs/client/jsonRpc/advanced.d.ts +3 -0
  356. package/dist.commonjs/client/jsonRpc/advanced.d.ts.map +1 -0
  357. package/dist.commonjs/client/jsonRpc/advanced.js +18 -0
  358. package/dist.commonjs/client/jsonRpc/client.d.ts +160 -0
  359. package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -0
  360. package/dist.commonjs/client/jsonRpc/client.js +224 -0
  361. package/dist.commonjs/client/jsonRpc/index.d.ts +2 -0
  362. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -0
  363. package/dist.commonjs/client/jsonRpc/index.js +17 -0
  364. package/dist.commonjs/client/jsonRpc/transformers.d.ts +51 -0
  365. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -0
  366. package/dist.commonjs/client/jsonRpc/transformers.js +250 -0
  367. package/dist.commonjs/client/jsonRpc/types.d.ts +101 -0
  368. package/dist.commonjs/client/jsonRpc/types.d.ts.map +1 -0
  369. package/dist.commonjs/client/jsonRpc/types.js +2 -0
  370. package/dist.commonjs/fixedPoint/index.d.ts +55 -0
  371. package/dist.commonjs/fixedPoint/index.d.ts.map +1 -0
  372. package/dist.commonjs/fixedPoint/index.js +73 -0
  373. package/dist.commonjs/hasher/advanced.d.ts +2 -0
  374. package/dist.commonjs/hasher/advanced.d.ts.map +1 -0
  375. package/dist.commonjs/hasher/advanced.js +4 -0
  376. package/dist.commonjs/hasher/hasher.d.ts +35 -0
  377. package/dist.commonjs/hasher/hasher.d.ts.map +1 -0
  378. package/dist.commonjs/hasher/hasher.js +2 -0
  379. package/dist.commonjs/hasher/hasherCkb.d.ts +73 -0
  380. package/dist.commonjs/hasher/hasherCkb.d.ts.map +1 -0
  381. package/dist.commonjs/hasher/hasherCkb.js +94 -0
  382. package/dist.commonjs/hasher/hasherKeecak256.d.ts +41 -0
  383. package/dist.commonjs/hasher/hasherKeecak256.d.ts.map +1 -0
  384. package/dist.commonjs/hasher/hasherKeecak256.js +50 -0
  385. package/dist.commonjs/hasher/index.d.ts +4 -0
  386. package/dist.commonjs/hasher/index.d.ts.map +1 -0
  387. package/dist.commonjs/hasher/index.js +19 -0
  388. package/dist.commonjs/hex/index.d.ts +27 -0
  389. package/dist.commonjs/hex/index.d.ts.map +1 -0
  390. package/dist.commonjs/hex/index.js +20 -0
  391. package/dist.commonjs/index.d.ts +3 -0
  392. package/dist.commonjs/index.d.ts.map +1 -0
  393. package/dist.commonjs/index.js +41 -0
  394. package/dist.commonjs/jsonRpc/advanced.d.ts +2 -0
  395. package/dist.commonjs/jsonRpc/advanced.d.ts.map +1 -0
  396. package/dist.commonjs/jsonRpc/advanced.js +17 -0
  397. package/dist.commonjs/jsonRpc/index.d.ts +2 -0
  398. package/dist.commonjs/jsonRpc/index.d.ts.map +1 -0
  399. package/dist.commonjs/jsonRpc/index.js +17 -0
  400. package/dist.commonjs/jsonRpc/requestor.d.ts +49 -0
  401. package/dist.commonjs/jsonRpc/requestor.d.ts.map +1 -0
  402. package/dist.commonjs/jsonRpc/requestor.js +113 -0
  403. package/dist.commonjs/jsonRpc/transports/advanced.d.ts +6 -0
  404. package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +1 -0
  405. package/dist.commonjs/jsonRpc/transports/advanced.js +21 -0
  406. package/dist.commonjs/jsonRpc/transports/factory.d.ts +6 -0
  407. package/dist.commonjs/jsonRpc/transports/factory.d.ts.map +1 -0
  408. package/dist.commonjs/jsonRpc/transports/factory.js +11 -0
  409. package/dist.commonjs/jsonRpc/transports/fallback.d.ts +8 -0
  410. package/dist.commonjs/jsonRpc/transports/fallback.d.ts.map +1 -0
  411. package/dist.commonjs/jsonRpc/transports/fallback.js +26 -0
  412. package/dist.commonjs/jsonRpc/transports/http.d.ts +8 -0
  413. package/dist.commonjs/jsonRpc/transports/http.d.ts.map +1 -0
  414. package/dist.commonjs/jsonRpc/transports/http.js +26 -0
  415. package/dist.commonjs/jsonRpc/transports/transport.d.ts +18 -0
  416. package/dist.commonjs/jsonRpc/transports/transport.d.ts.map +1 -0
  417. package/dist.commonjs/jsonRpc/transports/transport.js +2 -0
  418. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts +11 -0
  419. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -0
  420. package/dist.commonjs/jsonRpc/transports/webSocket.js +94 -0
  421. package/dist.commonjs/keystore/index.d.ts +31 -0
  422. package/dist.commonjs/keystore/index.d.ts.map +1 -0
  423. package/dist.commonjs/keystore/index.js +110 -0
  424. package/dist.commonjs/molecule/barrel.d.ts +4 -0
  425. package/dist.commonjs/molecule/barrel.d.ts.map +1 -0
  426. package/dist.commonjs/molecule/barrel.js +19 -0
  427. package/dist.commonjs/molecule/codec.d.ts +120 -0
  428. package/dist.commonjs/molecule/codec.d.ts.map +1 -0
  429. package/dist.commonjs/molecule/codec.js +483 -0
  430. package/dist.commonjs/molecule/entity.d.ts +119 -0
  431. package/dist.commonjs/molecule/entity.d.ts.map +1 -0
  432. package/dist.commonjs/molecule/entity.js +139 -0
  433. package/dist.commonjs/molecule/index.d.ts +2 -0
  434. package/dist.commonjs/molecule/index.d.ts.map +1 -0
  435. package/dist.commonjs/molecule/index.js +37 -0
  436. package/dist.commonjs/molecule/predefined.d.ts +57 -0
  437. package/dist.commonjs/molecule/predefined.d.ts.map +1 -0
  438. package/dist.commonjs/molecule/predefined.js +87 -0
  439. package/dist.commonjs/num/index.d.ts +148 -0
  440. package/dist.commonjs/num/index.d.ts.map +1 -0
  441. package/dist.commonjs/num/index.js +200 -0
  442. package/dist.commonjs/package.json +3 -0
  443. package/dist.commonjs/signer/btc/index.d.ts +4 -0
  444. package/dist.commonjs/signer/btc/index.d.ts.map +1 -0
  445. package/dist.commonjs/signer/btc/index.js +19 -0
  446. package/dist.commonjs/signer/btc/signerBtc.d.ts +59 -0
  447. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -0
  448. package/dist.commonjs/signer/btc/signerBtc.js +87 -0
  449. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +55 -0
  450. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -0
  451. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +65 -0
  452. package/dist.commonjs/signer/btc/verify.d.ts +19 -0
  453. package/dist.commonjs/signer/btc/verify.d.ts.map +1 -0
  454. package/dist.commonjs/signer/btc/verify.js +42 -0
  455. package/dist.commonjs/signer/ckb/index.d.ts +6 -0
  456. package/dist.commonjs/signer/ckb/index.d.ts.map +1 -0
  457. package/dist.commonjs/signer/ckb/index.js +21 -0
  458. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +16 -0
  459. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
  460. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +46 -0
  461. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +27 -0
  462. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
  463. package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +109 -0
  464. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +56 -0
  465. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -0
  466. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +70 -0
  467. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +11 -0
  468. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
  469. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +24 -0
  470. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +6 -0
  471. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +1 -0
  472. package/dist.commonjs/signer/ckb/verifyJoyId.js +19 -0
  473. package/dist.commonjs/signer/doge/index.d.ts +5 -0
  474. package/dist.commonjs/signer/doge/index.d.ts.map +1 -0
  475. package/dist.commonjs/signer/doge/index.js +20 -0
  476. package/dist.commonjs/signer/doge/signerDoge.d.ts +52 -0
  477. package/dist.commonjs/signer/doge/signerDoge.d.ts.map +1 -0
  478. package/dist.commonjs/signer/doge/signerDoge.js +89 -0
  479. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
  480. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
  481. package/dist.commonjs/signer/doge/signerDogeAddressReadonly.js +49 -0
  482. package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts +52 -0
  483. package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
  484. package/dist.commonjs/signer/doge/signerDogePrivateKey.js +72 -0
  485. package/dist.commonjs/signer/doge/verify.d.ts +6 -0
  486. package/dist.commonjs/signer/doge/verify.d.ts.map +1 -0
  487. package/dist.commonjs/signer/doge/verify.js +22 -0
  488. package/dist.commonjs/signer/dummy/alwaysError.d.ts +12 -0
  489. package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -0
  490. package/dist.commonjs/signer/dummy/alwaysError.js +17 -0
  491. package/dist.commonjs/signer/dummy/dummy.d.ts +15 -0
  492. package/dist.commonjs/signer/dummy/dummy.d.ts.map +1 -0
  493. package/dist.commonjs/signer/dummy/dummy.js +26 -0
  494. package/dist.commonjs/signer/dummy/index.d.ts +4 -0
  495. package/dist.commonjs/signer/dummy/index.d.ts.map +1 -0
  496. package/dist.commonjs/signer/dummy/index.js +19 -0
  497. package/dist.commonjs/signer/dummy/openLink.d.ts +12 -0
  498. package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -0
  499. package/dist.commonjs/signer/dummy/openLink.js +17 -0
  500. package/dist.commonjs/signer/evm/index.d.ts +4 -0
  501. package/dist.commonjs/signer/evm/index.d.ts.map +1 -0
  502. package/dist.commonjs/signer/evm/index.js +19 -0
  503. package/dist.commonjs/signer/evm/signerEvm.d.ts +59 -0
  504. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -0
  505. package/dist.commonjs/signer/evm/signerEvm.js +143 -0
  506. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +47 -0
  507. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -0
  508. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +55 -0
  509. package/dist.commonjs/signer/evm/verify.d.ts +6 -0
  510. package/dist.commonjs/signer/evm/verify.d.ts.map +1 -0
  511. package/dist.commonjs/signer/evm/verify.js +12 -0
  512. package/dist.commonjs/signer/index.d.ts +8 -0
  513. package/dist.commonjs/signer/index.d.ts.map +1 -0
  514. package/dist.commonjs/signer/index.js +23 -0
  515. package/dist.commonjs/signer/nostr/index.d.ts +4 -0
  516. package/dist.commonjs/signer/nostr/index.d.ts.map +1 -0
  517. package/dist.commonjs/signer/nostr/index.js +19 -0
  518. package/dist.commonjs/signer/nostr/signerNostr.d.ts +72 -0
  519. package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +1 -0
  520. package/dist.commonjs/signer/nostr/signerNostr.js +92 -0
  521. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts +12 -0
  522. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts.map +1 -0
  523. package/dist.commonjs/signer/nostr/signerNostrPrivateKey.js +32 -0
  524. package/dist.commonjs/signer/nostr/verify.d.ts +9 -0
  525. package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -0
  526. package/dist.commonjs/signer/nostr/verify.js +60 -0
  527. package/dist.commonjs/signer/signer/index.d.ts +237 -0
  528. package/dist.commonjs/signer/signer/index.d.ts.map +1 -0
  529. package/dist.commonjs/signer/signer/index.js +280 -0
  530. package/dist.commonjs/utils/index.d.ts +97 -0
  531. package/dist.commonjs/utils/index.d.ts.map +1 -0
  532. package/dist.commonjs/utils/index.js +62 -0
  533. package/jest.config.js +5 -0
  534. package/package.json +80 -0
  535. package/src/address/address.advanced.ts +182 -0
  536. package/src/address/advanced.ts +1 -0
  537. package/src/address/index.ts +127 -0
  538. package/src/advanced.ts +2 -0
  539. package/src/advancedBarrel.ts +6 -0
  540. package/src/barrel.ts +13 -0
  541. package/src/bytes/advanced.ts +14 -0
  542. package/src/bytes/index.ts +184 -0
  543. package/src/ckb/advanced.ts +2 -0
  544. package/src/ckb/index.ts +3 -0
  545. package/src/ckb/script.advanced.ts +15 -0
  546. package/src/ckb/script.ts +214 -0
  547. package/src/ckb/transaction.advanced.ts +11 -0
  548. package/src/ckb/transaction.ts +1781 -0
  549. package/src/ckb/transactionLumos.ts +27 -0
  550. package/src/client/advanced.ts +5 -0
  551. package/src/client/cache/advanced.ts +1 -0
  552. package/src/client/cache/cache.ts +188 -0
  553. package/src/client/cache/index.ts +2 -0
  554. package/src/client/cache/memory.advanced.ts +190 -0
  555. package/src/client/cache/memory.ts +219 -0
  556. package/src/client/client.ts +703 -0
  557. package/src/client/clientPublicMainnet.advanced.ts +372 -0
  558. package/src/client/clientPublicMainnet.ts +54 -0
  559. package/src/client/clientPublicTestnet.advanced.ts +384 -0
  560. package/src/client/clientPublicTestnet.ts +54 -0
  561. package/src/client/clientTypes.advanced.ts +30 -0
  562. package/src/client/clientTypes.ts +590 -0
  563. package/src/client/index.ts +6 -0
  564. package/src/client/jsonRpc/advanced.ts +2 -0
  565. package/src/client/jsonRpc/client.ts +397 -0
  566. package/src/client/jsonRpc/index.ts +1 -0
  567. package/src/client/jsonRpc/transformers.ts +358 -0
  568. package/src/client/jsonRpc/types.ts +115 -0
  569. package/src/fixedPoint/index.ts +92 -0
  570. package/src/hasher/advanced.ts +1 -0
  571. package/src/hasher/hasher.ts +38 -0
  572. package/src/hasher/hasherCkb.ts +107 -0
  573. package/src/hasher/hasherKeecak256.ts +55 -0
  574. package/src/hasher/index.ts +3 -0
  575. package/src/hex/index.ts +30 -0
  576. package/src/index.ts +2 -0
  577. package/src/jsonRpc/advanced.ts +1 -0
  578. package/src/jsonRpc/index.ts +1 -0
  579. package/src/jsonRpc/requestor.ts +166 -0
  580. package/src/jsonRpc/transports/advanced.ts +5 -0
  581. package/src/jsonRpc/transports/factory.ts +10 -0
  582. package/src/jsonRpc/transports/fallback.ts +27 -0
  583. package/src/jsonRpc/transports/http.ts +28 -0
  584. package/src/jsonRpc/transports/transport.ts +18 -0
  585. package/src/jsonRpc/transports/webSocket.ts +114 -0
  586. package/src/keystore/index.ts +162 -0
  587. package/src/molecule/barrel.ts +3 -0
  588. package/src/molecule/codec.ts +651 -0
  589. package/src/molecule/entity.ts +183 -0
  590. package/src/molecule/index.ts +1 -0
  591. package/src/molecule/predefined.ts +97 -0
  592. package/src/num/index.ts +217 -0
  593. package/src/signer/btc/index.ts +3 -0
  594. package/src/signer/btc/signerBtc.ts +126 -0
  595. package/src/signer/btc/signerBtcPublicKeyReadonly.ts +73 -0
  596. package/src/signer/btc/verify.ts +49 -0
  597. package/src/signer/ckb/index.ts +5 -0
  598. package/src/signer/ckb/signerCkbPrivateKey.ts +65 -0
  599. package/src/signer/ckb/signerCkbPublicKey.ts +151 -0
  600. package/src/signer/ckb/signerCkbScriptReadonly.ts +78 -0
  601. package/src/signer/ckb/verifyCkbSecp256k1.ts +33 -0
  602. package/src/signer/ckb/verifyJoyId.ts +27 -0
  603. package/src/signer/doge/index.ts +4 -0
  604. package/src/signer/doge/signerDoge.ts +116 -0
  605. package/src/signer/doge/signerDogeAddressReadonly.ts +52 -0
  606. package/src/signer/doge/signerDogePrivateKey.ts +97 -0
  607. package/src/signer/doge/verify.ts +40 -0
  608. package/src/signer/dummy/alwaysError.ts +20 -0
  609. package/src/signer/dummy/dummy.ts +31 -0
  610. package/src/signer/dummy/index.ts +3 -0
  611. package/src/signer/dummy/openLink.ts +20 -0
  612. package/src/signer/evm/index.ts +3 -0
  613. package/src/signer/evm/signerEvm.ts +259 -0
  614. package/src/signer/evm/signerEvmAddressReadonly.ts +60 -0
  615. package/src/signer/evm/verify.ts +19 -0
  616. package/src/signer/index.ts +7 -0
  617. package/src/signer/nostr/index.ts +3 -0
  618. package/src/signer/nostr/signerNostr.ts +141 -0
  619. package/src/signer/nostr/signerNostrPrivateKey.ts +37 -0
  620. package/src/signer/nostr/verify.ts +72 -0
  621. package/src/signer/signer/index.ts +468 -0
  622. package/src/utils/index.ts +198 -0
  623. package/typedoc.json +6 -0
@@ -0,0 +1,30 @@
1
+ import { CellDepLike, CellOutputLike, OutPointLike } from "../ckb/index.js";
2
+ import { HexLike } from "../hex/index.js";
3
+ export interface LumosTransactionSkeletonType {
4
+ cellDeps: {
5
+ toArray(): CellDepLike[];
6
+ };
7
+ headerDeps: {
8
+ toArray(): HexLike[];
9
+ };
10
+ inputs: {
11
+ toArray(): {
12
+ outPoint?: OutPointLike;
13
+ cellOutput: CellOutputLike;
14
+ data: HexLike;
15
+ }[];
16
+ };
17
+ inputSinces: {
18
+ get(i: number, defaultVal: string): HexLike;
19
+ };
20
+ outputs: {
21
+ toArray(): {
22
+ cellOutput: CellOutputLike;
23
+ data: HexLike;
24
+ }[];
25
+ };
26
+ witnesses: {
27
+ toArray(): HexLike[];
28
+ };
29
+ }
30
+ //# sourceMappingURL=transactionLumos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionLumos.d.ts","sourceRoot":"","sources":["../../src/ckb/transactionLumos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE;QACR,OAAO,IAAI,WAAW,EAAE,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE;QACV,OAAO,IAAI,OAAO,EAAE,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,IAAI;YACT,QAAQ,CAAC,EAAE,YAAY,CAAC;YACxB,UAAU,EAAE,cAAc,CAAC;YAC3B,IAAI,EAAE,OAAO,CAAC;SACf,EAAE,CAAC;KACL,CAAC;IACF,WAAW,EAAE;QACX,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;KAC7C,CAAC;IACF,OAAO,EAAE;QACP,OAAO,IAAI;YAAE,UAAU,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,EAAE,CAAC;KAC5D,CAAC;IACF,SAAS,EAAE;QACT,OAAO,IAAI,OAAO,EAAE,CAAC;KACtB,CAAC;CACH"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from "./cache/advanced.js";
2
+ export * from "./clientPublicMainnet.advanced.js";
3
+ export * from "./clientPublicTestnet.advanced.js";
4
+ export * from "./clientTypes.advanced.js";
5
+ export * from "./jsonRpc/advanced.js";
6
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/client/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./cache/advanced.js";
2
+ export * from "./clientPublicMainnet.advanced.js";
3
+ export * from "./clientPublicTestnet.advanced.js";
4
+ export * from "./clientTypes.advanced.js";
5
+ export * from "./jsonRpc/advanced.js";
@@ -0,0 +1,2 @@
1
+ export * from "./memory.advanced.js";
2
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./memory.advanced.js";
@@ -0,0 +1,91 @@
1
+ import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../../ckb/index.js";
2
+ import { HexLike } from "../../hex/index.js";
3
+ import { NumLike } from "../../num/index.js";
4
+ import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
5
+ import { ClientBlock, ClientBlockHeader, ClientBlockHeaderLike, ClientBlockLike, ClientTransactionResponse, ClientTransactionResponseLike } from "../clientTypes.js";
6
+ /**
7
+ * @public
8
+ * The ClientCache class is mainly designed for chained transactions.
9
+ * Consumed & Created cells are "marked" so they can be correctly handled when composing transactions.
10
+ * It also act as cache for rpc requests to reduce cost, but this is optional.
11
+ */
12
+ export declare abstract class ClientCache {
13
+ abstract markUsableNoCache(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
14
+ markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
15
+ abstract markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
16
+ markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
17
+ abstract clear(): Promise<void>;
18
+ abstract findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
19
+ abstract isUnusable(outPointLike: OutPointLike): Promise<boolean>;
20
+ /**
21
+ * Record known cells
22
+ * Implement this method to enable cells query caching
23
+ * @param _cells
24
+ */
25
+ recordCells(..._cells: (CellLike | CellLike[])[]): Promise<void>;
26
+ /**
27
+ * Get a known cell by out point
28
+ * Implement this method to enable cells query caching
29
+ * @param _outPoint
30
+ */
31
+ getCell(_outPoint: OutPointLike): Promise<Cell | undefined>;
32
+ /**
33
+ * Record known transaction responses.
34
+ * Implement this method to enable transactions query caching
35
+ * @param _transactions
36
+ */
37
+ recordTransactionResponses(..._transactions: (ClientTransactionResponseLike | ClientTransactionResponseLike[])[]): Promise<void>;
38
+ /**
39
+ * Get a known transaction response by hash
40
+ * Implement this method to enable transactions query caching
41
+ * @param _txHash
42
+ */
43
+ getTransactionResponse(_txHash: HexLike): Promise<ClientTransactionResponse | undefined>;
44
+ /**
45
+ * Record known transactions.
46
+ * @param transactions
47
+ */
48
+ recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
49
+ /**
50
+ * Get a known transaction by hash
51
+ * @param txHash
52
+ */
53
+ getTransaction(txHash: HexLike): Promise<Transaction | undefined>;
54
+ /**
55
+ * Record known block headers.
56
+ * Implement this method to enable block headers query caching
57
+ * @param _headers
58
+ */
59
+ recordHeaders(..._headers: (ClientBlockHeaderLike | ClientBlockHeaderLike[])[]): Promise<void>;
60
+ /**
61
+ * Get a known block header by hash
62
+ * Implement this method to enable block headers query caching
63
+ * @param _hash
64
+ */
65
+ getHeaderByHash(_hash: HexLike): Promise<ClientBlockHeader | undefined>;
66
+ /**
67
+ * Get a known block header by number
68
+ * Implement this method to enable block headers query caching
69
+ * @param _number
70
+ */
71
+ getHeaderByNumber(_number: NumLike): Promise<ClientBlockHeader | undefined>;
72
+ /**
73
+ * Record known blocks.
74
+ * Implement this method to enable blocks query caching
75
+ * @param _blocks
76
+ */
77
+ recordBlocks(..._blocks: (ClientBlockLike | ClientBlockLike[])[]): Promise<void>;
78
+ /**
79
+ * Get a known block header by hash
80
+ * Implement this method to enable block headers query caching
81
+ * @param _hash
82
+ */
83
+ getBlockByHash(_hash: HexLike): Promise<ClientBlock | undefined>;
84
+ /**
85
+ * Get a known block header by number
86
+ * Implement this method to enable block headers query caching
87
+ * @param _number
88
+ */
89
+ getBlockByNumber(_number: NumLike): Promise<ClientBlock | undefined>;
90
+ }
91
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,iBAAiB,CACxB,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IACV,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,QAAQ,CAAC,YAAY,CACnB,GAAG,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IACV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IA4BhB,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAChB,MAAM,EAAE,8BAA8B,GACrC,cAAc,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjE;;;;OAIG;IACG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAIjE;;;;OAIG;IACG,0BAA0B,CAC9B,GAAG,aAAa,EAAE,CACd,6BAA6B,GAC7B,6BAA6B,EAAE,CAClC,EAAE,GACF,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,sBAAsB,CAC1B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAGjD;;;OAGG;IACG,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAQhB;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIvE;;;;OAIG;IACG,aAAa,CACjB,GAAG,QAAQ,EAAE,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAC/D,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAGzC;;;;OAIG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIzC;;;;OAIG;IACG,YAAY,CAChB,GAAG,OAAO,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAGtE;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAG3E"}
@@ -0,0 +1,128 @@
1
+ import { Transaction, } from "../../ckb/index.js";
2
+ /**
3
+ * @public
4
+ * The ClientCache class is mainly designed for chained transactions.
5
+ * Consumed & Created cells are "marked" so they can be correctly handled when composing transactions.
6
+ * It also act as cache for rpc requests to reduce cost, but this is optional.
7
+ */
8
+ export class ClientCache {
9
+ async markUsable(...cellLikes) {
10
+ await this.recordCells(...cellLikes);
11
+ return this.markUsableNoCache(...cellLikes);
12
+ }
13
+ async markTransactions(...transactionLike) {
14
+ await Promise.all([
15
+ this.recordTransactionResponses(transactionLike.flat().map((transaction) => ({
16
+ transaction: transaction,
17
+ status: "sent",
18
+ }))),
19
+ ...transactionLike.flat().map((transactionLike) => {
20
+ const tx = Transaction.from(transactionLike);
21
+ const txHash = tx.hash();
22
+ return Promise.all([
23
+ ...tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
24
+ ...tx.outputs.map((o, i) => this.markUsable({
25
+ cellOutput: o,
26
+ outputData: tx.outputsData[i],
27
+ outPoint: {
28
+ txHash,
29
+ index: i,
30
+ },
31
+ })),
32
+ ]);
33
+ }),
34
+ ]);
35
+ }
36
+ // ======
37
+ // Following methods are for requests caching and optional.
38
+ // ======
39
+ /**
40
+ * Record known cells
41
+ * Implement this method to enable cells query caching
42
+ * @param _cells
43
+ */
44
+ async recordCells(..._cells) { }
45
+ /**
46
+ * Get a known cell by out point
47
+ * Implement this method to enable cells query caching
48
+ * @param _outPoint
49
+ */
50
+ async getCell(_outPoint) {
51
+ return;
52
+ }
53
+ /**
54
+ * Record known transaction responses.
55
+ * Implement this method to enable transactions query caching
56
+ * @param _transactions
57
+ */
58
+ async recordTransactionResponses(..._transactions) { }
59
+ /**
60
+ * Get a known transaction response by hash
61
+ * Implement this method to enable transactions query caching
62
+ * @param _txHash
63
+ */
64
+ async getTransactionResponse(_txHash) {
65
+ return;
66
+ }
67
+ /**
68
+ * Record known transactions.
69
+ * @param transactions
70
+ */
71
+ async recordTransactions(...transactions) {
72
+ return this.recordTransactionResponses(transactions.flat().map((transaction) => ({
73
+ transaction,
74
+ status: "unknown",
75
+ })));
76
+ }
77
+ /**
78
+ * Get a known transaction by hash
79
+ * @param txHash
80
+ */
81
+ async getTransaction(txHash) {
82
+ return (await this.getTransactionResponse(txHash))?.transaction;
83
+ }
84
+ /**
85
+ * Record known block headers.
86
+ * Implement this method to enable block headers query caching
87
+ * @param _headers
88
+ */
89
+ async recordHeaders(..._headers) { }
90
+ /**
91
+ * Get a known block header by hash
92
+ * Implement this method to enable block headers query caching
93
+ * @param _hash
94
+ */
95
+ async getHeaderByHash(_hash) {
96
+ return;
97
+ }
98
+ /**
99
+ * Get a known block header by number
100
+ * Implement this method to enable block headers query caching
101
+ * @param _number
102
+ */
103
+ async getHeaderByNumber(_number) {
104
+ return;
105
+ }
106
+ /**
107
+ * Record known blocks.
108
+ * Implement this method to enable blocks query caching
109
+ * @param _blocks
110
+ */
111
+ async recordBlocks(..._blocks) { }
112
+ /**
113
+ * Get a known block header by hash
114
+ * Implement this method to enable block headers query caching
115
+ * @param _hash
116
+ */
117
+ async getBlockByHash(_hash) {
118
+ return;
119
+ }
120
+ /**
121
+ * Get a known block header by number
122
+ * Implement this method to enable block headers query caching
123
+ * @param _number
124
+ */
125
+ async getBlockByNumber(_number) {
126
+ return;
127
+ }
128
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./cache.js";
2
+ export * from "./memory.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/cache/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./cache.js";
2
+ export * from "./memory.js";
@@ -0,0 +1,22 @@
1
+ import { Cell, CellLike, ScriptLike } from "../../ckb/index.js";
2
+ import { HexLike } from "../../hex/index.js";
3
+ import { NumLike } from "../../num/index.js";
4
+ import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
5
+ export type CellRecord = [
6
+ false,
7
+ Pick<Cell, "outPoint"> & Partial<Pick<Cell, "cellOutput" | "outputData">>
8
+ ] | [true, Cell] | [undefined, Cell];
9
+ export declare function filterData(dataLike: HexLike, filterLike: HexLike | undefined, filterMode: "exact" | "prefix" | "partial"): boolean;
10
+ export declare function filterScript(valueLike: ScriptLike | undefined, filterLike: ScriptLike | undefined, filterMode: "prefix" | "exact" | "partial"): boolean;
11
+ export declare function filterNumByRange(lengthLike: NumLike, range: [NumLike, NumLike] | undefined): boolean;
12
+ export declare function filterScriptByLenRange(valueLike?: ScriptLike, scriptLenRange?: [NumLike, NumLike]): boolean;
13
+ export declare function filterCell(searchKeyLike: ClientCollectableSearchKeyLike, cellLike: CellLike): boolean;
14
+ export declare class MapLru<K, V> extends Map<K, V> {
15
+ private readonly capacity;
16
+ private readonly lru;
17
+ constructor(capacity: number);
18
+ get(key: K): (V & ({} | null)) | undefined;
19
+ set(key: K, value: V): this;
20
+ delete(key: K): boolean;
21
+ }
22
+ //# sourceMappingURL=memory.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAU,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,8BAA8B,EAE/B,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,UAAU,GAClB;IACE,KAAK;IACL,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;CAC1E,GACD,CAAC,IAAI,EAAE,IAAI,CAAC,GACZ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEtB,wBAAgB,UAAU,CACxB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAgBT;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GACzC,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,GACpC,OAAO,CAQT;AAED,wBAAgB,sBAAsB,CACpC,SAAS,CAAC,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAClC,OAAO,CAYT;AAED,wBAAgB,UAAU,CACxB,aAAa,EAAE,8BAA8B,EAC7C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CA4CT;AAED,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;gBAEF,QAAQ,EAAE,MAAM;IAI7C,GAAG,CAAC,GAAG,EAAE,CAAC;IAmBV,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAOpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;CAYxB"}
@@ -0,0 +1,118 @@
1
+ import { bytesFrom } from "../../bytes/index.js";
2
+ import { Cell, Script } from "../../ckb/index.js";
3
+ import { hexFrom } from "../../hex/index.js";
4
+ import { numFrom } from "../../num/index.js";
5
+ import { clientSearchKeyRangeFrom, } from "../clientTypes.advanced.js";
6
+ import { ClientIndexerSearchKey } from "../clientTypes.js";
7
+ export function filterData(dataLike, filterLike, filterMode) {
8
+ if (!filterLike) {
9
+ return true;
10
+ }
11
+ const data = hexFrom(dataLike);
12
+ const filter = hexFrom(filterLike);
13
+ if ((filterMode === "exact" && data !== filter) ||
14
+ (filterMode === "prefix" && !data.startsWith(filter)) ||
15
+ (filterMode === "partial" && data.search(filter) === -1)) {
16
+ return false;
17
+ }
18
+ return true;
19
+ }
20
+ export function filterScript(valueLike, filterLike, filterMode) {
21
+ if (!filterLike) {
22
+ return true;
23
+ }
24
+ if (!valueLike) {
25
+ return false;
26
+ }
27
+ const value = Script.from(valueLike);
28
+ const filter = Script.from(filterLike);
29
+ if (value.codeHash !== filter.codeHash ||
30
+ value.hashType !== filter.hashType) {
31
+ return false;
32
+ }
33
+ return filterData(value.args, filter?.args, filterMode);
34
+ }
35
+ export function filterNumByRange(lengthLike, range) {
36
+ if (!range) {
37
+ return true;
38
+ }
39
+ const length = numFrom(lengthLike);
40
+ const [lower, upper] = clientSearchKeyRangeFrom(range);
41
+ return lower <= length && length < upper;
42
+ }
43
+ export function filterScriptByLenRange(valueLike, scriptLenRange) {
44
+ if (!scriptLenRange) {
45
+ return true;
46
+ }
47
+ const len = (() => {
48
+ if (!valueLike) {
49
+ return 0;
50
+ }
51
+ return bytesFrom(Script.from(valueLike).args).length + 33;
52
+ })();
53
+ return filterNumByRange(len, scriptLenRange);
54
+ }
55
+ export function filterCell(searchKeyLike, cellLike) {
56
+ const key = ClientIndexerSearchKey.from(searchKeyLike);
57
+ const cell = Cell.from(cellLike);
58
+ if (key.scriptType === "lock") {
59
+ if (!filterScript(cell.cellOutput.lock, key.script, key.scriptSearchMode) ||
60
+ !filterScript(cell.cellOutput.type, key.filter?.script, "prefix") ||
61
+ !filterScriptByLenRange(cell.cellOutput.type, key.filter?.scriptLenRange)) {
62
+ return false;
63
+ }
64
+ }
65
+ if (key.scriptType === "type") {
66
+ if (!filterScript(cell.cellOutput.type, key.script, key.scriptSearchMode) ||
67
+ !filterScript(cell.cellOutput.lock, key.filter?.script, "prefix") ||
68
+ !filterScriptByLenRange(cell.cellOutput.lock, key.filter?.scriptLenRange)) {
69
+ return false;
70
+ }
71
+ }
72
+ if (!filterData(cell.outputData, key.filter?.outputData, key.filter?.outputDataSearchMode ?? "prefix") ||
73
+ !filterNumByRange(bytesFrom(cell.outputData).length, key.filter?.outputDataLenRange)) {
74
+ return false;
75
+ }
76
+ if (!filterNumByRange(cell.cellOutput.capacity, key.filter?.outputCapacityRange)) {
77
+ return false;
78
+ }
79
+ return true;
80
+ }
81
+ export class MapLru extends Map {
82
+ constructor(capacity) {
83
+ super();
84
+ this.capacity = capacity;
85
+ this.lru = [];
86
+ }
87
+ get(key) {
88
+ const val = super.get(key);
89
+ if (val === undefined) {
90
+ return;
91
+ }
92
+ const index = this.lru.indexOf(key);
93
+ if (index !== -1) {
94
+ this.lru.splice(index, 1);
95
+ }
96
+ this.lru.push(key);
97
+ if (this.lru.length > this.capacity) {
98
+ this.delete(this.lru[0]);
99
+ this.lru.shift();
100
+ }
101
+ return val;
102
+ }
103
+ set(key, value) {
104
+ this.get(key);
105
+ super.set(key, value);
106
+ return this;
107
+ }
108
+ delete(key) {
109
+ if (!super.delete(key)) {
110
+ return false;
111
+ }
112
+ const index = this.lru.indexOf(key);
113
+ if (index !== -1) {
114
+ this.lru.splice(index, 1);
115
+ }
116
+ return true;
117
+ }
118
+ }
@@ -0,0 +1,44 @@
1
+ import { Cell, CellLike, OutPointLike } from "../../ckb/index.js";
2
+ import { HexLike } from "../../hex/index.js";
3
+ import { NumLike } from "../../num/index.js";
4
+ import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
5
+ import { ClientBlock, ClientBlockHeader, ClientBlockHeaderLike, ClientBlockLike, ClientTransactionResponse, ClientTransactionResponseLike } from "../clientTypes.js";
6
+ import { ClientCache } from "./cache.js";
7
+ export declare class ClientCacheMemory extends ClientCache {
8
+ private readonly maxCells;
9
+ private readonly maxTxs;
10
+ private readonly maxBlocks;
11
+ /**
12
+ * OutPoint => [isLive, Cell | OutPoint]
13
+ */
14
+ private readonly cells;
15
+ /**
16
+ * TX Hash => Transaction Response
17
+ */
18
+ private readonly knownTransactions;
19
+ /**
20
+ * Block Number => Block Hash
21
+ */
22
+ private readonly knownBlockHashes;
23
+ /**
24
+ * Block Hash => Block Header / Full Block
25
+ */
26
+ private readonly knownBlocks;
27
+ constructor(maxCells?: number, maxTxs?: number, maxBlocks?: number);
28
+ markUsableNoCache(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
29
+ markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
30
+ clear(): Promise<void>;
31
+ findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
32
+ isUnusable(outPointLike: OutPointLike): Promise<boolean>;
33
+ recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
34
+ getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
35
+ recordTransactionResponses(...transactions: (ClientTransactionResponseLike | ClientTransactionResponseLike[])[]): Promise<void>;
36
+ getTransactionResponse(txHashLike: HexLike): Promise<ClientTransactionResponse | undefined>;
37
+ recordHeaders(...headers: (ClientBlockHeaderLike | ClientBlockHeaderLike[])[]): Promise<void>;
38
+ getHeaderByHash(hashLike: HexLike): Promise<ClientBlockHeader | undefined>;
39
+ getHeaderByNumber(numberLike: NumLike): Promise<ClientBlockHeader | undefined>;
40
+ recordBlocks(...blocks: (ClientBlockLike | ClientBlockLike[])[]): Promise<void>;
41
+ getBlockByHash(hashLike: HexLike): Promise<ClientBlock | undefined>;
42
+ getBlockByNumber(numberLike: NumLike): Promise<ClientBlock | undefined>;
43
+ }
44
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAY,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAW,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAgB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAyB9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA1B5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4C;IAE9E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;gBAGiB,QAAQ,SAAM,EACd,MAAM,SAAM,EACZ,SAAS,SAAM;IAe5B,iBAAiB,CACrB,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IASV,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAcV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAcjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS9D,0BAA0B,CAC9B,GAAG,YAAY,EAAE,CACb,6BAA6B,GAC7B,6BAA6B,EAAE,CAClC,EAAE,GACF,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAK3C,aAAa,CACjB,GAAG,OAAO,EAAE,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAC9D,OAAO,CAAC,IAAI,CAAC;IAaV,eAAe,CACnB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQnC,iBAAiB,CACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAUnC,YAAY,CAChB,GAAG,MAAM,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IAQV,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAWnE,gBAAgB,CACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CASpC"}
@@ -0,0 +1,137 @@
1
+ import { Cell, OutPoint } from "../../ckb/index.js";
2
+ import { hexFrom } from "../../hex/index.js";
3
+ import { numFrom } from "../../num/index.js";
4
+ import { ClientBlock, ClientBlockHeader, ClientTransactionResponse, } from "../clientTypes.js";
5
+ import { ClientCache } from "./cache.js";
6
+ import { filterCell, MapLru } from "./memory.advanced.js";
7
+ export class ClientCacheMemory extends ClientCache {
8
+ constructor(maxCells = 512, maxTxs = 256, maxBlocks = 128) {
9
+ super();
10
+ this.maxCells = maxCells;
11
+ this.maxTxs = maxTxs;
12
+ this.maxBlocks = maxBlocks;
13
+ this.cells = new MapLru(this.maxCells);
14
+ this.knownTransactions = new MapLru(this.maxTxs);
15
+ this.knownBlockHashes = new MapLru(this.maxBlocks);
16
+ this.knownBlocks = new MapLru(this.maxBlocks);
17
+ }
18
+ async markUsableNoCache(...cellLikes) {
19
+ cellLikes.flat().forEach((cellLike) => {
20
+ const cell = Cell.from(cellLike).clone();
21
+ const outPointStr = hexFrom(cell.outPoint.toBytes());
22
+ this.cells.set(outPointStr, [true, cell]);
23
+ });
24
+ }
25
+ async markUnusable(...outPointLikes) {
26
+ outPointLikes.flat().forEach((outPointLike) => {
27
+ const outPoint = OutPoint.from(outPointLike);
28
+ const outPointStr = hexFrom(outPoint.toBytes());
29
+ const existed = this.cells.get(outPointStr);
30
+ if (existed) {
31
+ existed[0] = false;
32
+ return;
33
+ }
34
+ this.cells.set(outPointStr, [false, { outPoint }]);
35
+ });
36
+ }
37
+ async clear() {
38
+ this.cells.clear();
39
+ this.knownTransactions.clear();
40
+ }
41
+ async *findCells(keyLike) {
42
+ for (const [key, [isLive, cell]] of this.cells.entries()) {
43
+ if (!isLive) {
44
+ continue;
45
+ }
46
+ if (!filterCell(keyLike, cell)) {
47
+ continue;
48
+ }
49
+ this.cells.get(key);
50
+ yield cell.clone();
51
+ }
52
+ }
53
+ async isUnusable(outPointLike) {
54
+ const outPoint = OutPoint.from(outPointLike);
55
+ return !(this.cells.get(hexFrom(outPoint.toBytes()))?.[0] ?? true);
56
+ }
57
+ async recordCells(...cells) {
58
+ cells.flat().map((cellLike) => {
59
+ const cell = Cell.from(cellLike);
60
+ const outPointStr = hexFrom(cell.outPoint.toBytes());
61
+ if (this.cells.get(outPointStr)) {
62
+ return;
63
+ }
64
+ this.cells.set(outPointStr, [undefined, cell]);
65
+ });
66
+ }
67
+ async getCell(outPointLike) {
68
+ const outPoint = OutPoint.from(outPointLike);
69
+ const cell = this.cells.get(hexFrom(outPoint.toBytes()))?.[1];
70
+ if (cell && cell.cellOutput && cell.outputData) {
71
+ return Cell.from(cell.clone());
72
+ }
73
+ }
74
+ async recordTransactionResponses(...transactions) {
75
+ transactions.flat().map((txLike) => {
76
+ const tx = ClientTransactionResponse.from(txLike);
77
+ this.knownTransactions.set(tx.transaction.hash(), tx);
78
+ });
79
+ }
80
+ async getTransactionResponse(txHashLike) {
81
+ const txHash = hexFrom(txHashLike);
82
+ return this.knownTransactions.get(txHash)?.clone();
83
+ }
84
+ async recordHeaders(...headers) {
85
+ headers.flat().map((headerLike) => {
86
+ const header = ClientBlockHeader.from(headerLike);
87
+ this.knownBlockHashes.set(header.number, header.hash);
88
+ const existed = this.knownBlocks.get(header.hash);
89
+ if (existed) {
90
+ return;
91
+ }
92
+ this.knownBlocks.set(header.hash, { header });
93
+ });
94
+ }
95
+ async getHeaderByHash(hashLike) {
96
+ const hash = hexFrom(hashLike);
97
+ const block = this.knownBlocks.get(hash);
98
+ if (block) {
99
+ this.knownBlockHashes.get(block.header.number); // For LRU
100
+ }
101
+ return block?.header;
102
+ }
103
+ async getHeaderByNumber(numberLike) {
104
+ const number = numFrom(numberLike);
105
+ const hash = this.knownBlockHashes.get(number);
106
+ if (!hash) {
107
+ return;
108
+ }
109
+ return this.getHeaderByHash(hash);
110
+ }
111
+ async recordBlocks(...blocks) {
112
+ blocks.flat().map((blockLike) => {
113
+ const block = ClientBlock.from(blockLike);
114
+ this.knownBlockHashes.set(block.header.number, block.header.hash);
115
+ this.knownBlocks.set(block.header.hash, block);
116
+ });
117
+ }
118
+ async getBlockByHash(hashLike) {
119
+ const hash = hexFrom(hashLike);
120
+ const block = this.knownBlocks.get(hash);
121
+ if (block) {
122
+ this.knownBlockHashes.get(block.header.number); // For LRU
123
+ if ("transactions" in block) {
124
+ return block;
125
+ }
126
+ }
127
+ return;
128
+ }
129
+ async getBlockByNumber(numberLike) {
130
+ const number = numFrom(numberLike);
131
+ const hash = this.knownBlockHashes.get(number);
132
+ if (!hash) {
133
+ return;
134
+ }
135
+ return this.getBlockByHash(hash);
136
+ }
137
+ }