crypto-aio 0.0.3 → 0.2.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 (700) hide show
  1. package/CHANGELOG.md +167 -0
  2. package/README.md +163 -13
  3. package/dist/adapters/avalanche/address.d.ts +15 -0
  4. package/dist/adapters/avalanche/address.js +74 -0
  5. package/dist/adapters/avalanche/address.js.map +1 -0
  6. package/dist/adapters/avalanche/api.d.ts +100 -0
  7. package/dist/adapters/avalanche/api.js +381 -0
  8. package/dist/adapters/avalanche/api.js.map +1 -0
  9. package/dist/adapters/avalanche/builder.d.ts +13 -0
  10. package/dist/adapters/avalanche/builder.js +336 -0
  11. package/dist/adapters/avalanche/builder.js.map +1 -0
  12. package/dist/adapters/avalanche/cb58.d.ts +7 -0
  13. package/dist/adapters/avalanche/cb58.js +49 -0
  14. package/dist/adapters/avalanche/cb58.js.map +1 -0
  15. package/dist/adapters/avalanche/chains.d.ts +21 -0
  16. package/dist/adapters/avalanche/chains.js +79 -0
  17. package/dist/adapters/avalanche/chains.js.map +1 -0
  18. package/dist/adapters/avalanche/codec.d.ts +94 -0
  19. package/dist/adapters/avalanche/codec.js +371 -0
  20. package/dist/adapters/avalanche/codec.js.map +1 -0
  21. package/dist/adapters/avalanche/context.d.ts +59 -0
  22. package/dist/adapters/avalanche/context.js +114 -0
  23. package/dist/adapters/avalanche/context.js.map +1 -0
  24. package/dist/adapters/avalanche/decode.d.ts +16 -0
  25. package/dist/adapters/avalanche/decode.js +101 -0
  26. package/dist/adapters/avalanche/decode.js.map +1 -0
  27. package/dist/adapters/avalanche/driver.d.ts +22 -0
  28. package/dist/adapters/avalanche/driver.js +81 -0
  29. package/dist/adapters/avalanche/driver.js.map +1 -0
  30. package/dist/adapters/avalanche/errors.d.ts +18 -0
  31. package/dist/adapters/avalanche/errors.js +61 -0
  32. package/dist/adapters/avalanche/errors.js.map +1 -0
  33. package/dist/adapters/avalanche/fees.d.ts +23 -0
  34. package/dist/adapters/avalanche/fees.js +105 -0
  35. package/dist/adapters/avalanche/fees.js.map +1 -0
  36. package/dist/adapters/avalanche/index.d.ts +19 -0
  37. package/dist/adapters/avalanche/index.js +8 -0
  38. package/dist/adapters/avalanche/index.js.map +1 -0
  39. package/dist/adapters/avalanche/network.d.ts +37 -0
  40. package/dist/adapters/avalanche/network.js +135 -0
  41. package/dist/adapters/avalanche/network.js.map +1 -0
  42. package/dist/adapters/avalanche/plugin.d.ts +21 -0
  43. package/dist/adapters/avalanche/plugin.js +46 -0
  44. package/dist/adapters/avalanche/plugin.js.map +1 -0
  45. package/dist/adapters/avalanche/presets.d.ts +6 -0
  46. package/dist/adapters/avalanche/presets.js +86 -0
  47. package/dist/adapters/avalanche/presets.js.map +1 -0
  48. package/dist/adapters/avalanche/proofs.d.ts +41 -0
  49. package/dist/adapters/avalanche/proofs.js +270 -0
  50. package/dist/adapters/avalanche/proofs.js.map +1 -0
  51. package/dist/adapters/avalanche/reader.d.ts +40 -0
  52. package/dist/adapters/avalanche/reader.js +231 -0
  53. package/dist/adapters/avalanche/reader.js.map +1 -0
  54. package/dist/adapters/avalanche/sdk.d.ts +182 -0
  55. package/dist/adapters/avalanche/sdk.js +21 -0
  56. package/dist/adapters/avalanche/sdk.js.map +1 -0
  57. package/dist/adapters/avalanche/types.d.ts +86 -0
  58. package/dist/{type/common.js → adapters/avalanche/types.js} +1 -1
  59. package/dist/adapters/avalanche/types.js.map +1 -0
  60. package/dist/adapters/evm/builder.d.ts +11 -0
  61. package/dist/adapters/evm/builder.js +386 -0
  62. package/dist/adapters/evm/builder.js.map +1 -0
  63. package/dist/adapters/evm/chains.d.ts +6 -0
  64. package/dist/adapters/evm/chains.js +203 -0
  65. package/dist/adapters/evm/chains.js.map +1 -0
  66. package/dist/adapters/evm/client.d.ts +84 -0
  67. package/dist/adapters/evm/client.js +335 -0
  68. package/dist/adapters/evm/client.js.map +1 -0
  69. package/dist/adapters/evm/decode.d.ts +35 -0
  70. package/dist/adapters/evm/decode.js +175 -0
  71. package/dist/adapters/evm/decode.js.map +1 -0
  72. package/dist/adapters/evm/driver.d.ts +8 -0
  73. package/dist/adapters/evm/driver.js +61 -0
  74. package/dist/adapters/evm/driver.js.map +1 -0
  75. package/dist/adapters/evm/errors.d.ts +20 -0
  76. package/dist/adapters/evm/errors.js +110 -0
  77. package/dist/adapters/evm/errors.js.map +1 -0
  78. package/dist/adapters/evm/ethers-client.d.ts +43 -0
  79. package/dist/adapters/evm/ethers-client.js +139 -0
  80. package/dist/adapters/evm/ethers-client.js.map +1 -0
  81. package/dist/adapters/evm/fees.d.ts +103 -0
  82. package/dist/adapters/evm/fees.js +277 -0
  83. package/dist/adapters/evm/fees.js.map +1 -0
  84. package/dist/adapters/evm/index.d.ts +20 -0
  85. package/dist/adapters/evm/index.js +12 -0
  86. package/dist/adapters/evm/index.js.map +1 -0
  87. package/dist/adapters/evm/network.d.ts +65 -0
  88. package/dist/adapters/evm/network.js +150 -0
  89. package/dist/adapters/evm/network.js.map +1 -0
  90. package/dist/adapters/evm/plugin.d.ts +35 -0
  91. package/dist/adapters/evm/plugin.js +150 -0
  92. package/dist/adapters/evm/plugin.js.map +1 -0
  93. package/dist/adapters/evm/presets.d.ts +2 -0
  94. package/dist/adapters/evm/presets.js +105 -0
  95. package/dist/adapters/evm/presets.js.map +1 -0
  96. package/dist/adapters/evm/proofs.d.ts +19 -0
  97. package/dist/adapters/evm/proofs.js +370 -0
  98. package/dist/adapters/evm/proofs.js.map +1 -0
  99. package/dist/adapters/evm/rawtx.d.ts +25 -0
  100. package/dist/adapters/evm/rawtx.js +176 -0
  101. package/dist/adapters/evm/rawtx.js.map +1 -0
  102. package/dist/adapters/evm/reader.d.ts +83 -0
  103. package/dist/adapters/evm/reader.js +326 -0
  104. package/dist/adapters/evm/reader.js.map +1 -0
  105. package/dist/adapters/evm/rpc.d.ts +39 -0
  106. package/dist/adapters/evm/rpc.js +152 -0
  107. package/dist/adapters/evm/rpc.js.map +1 -0
  108. package/dist/adapters/evm/tokens.d.ts +10 -0
  109. package/dist/adapters/evm/tokens.js +23 -0
  110. package/dist/adapters/evm/tokens.js.map +1 -0
  111. package/dist/adapters/evm/types.d.ts +265 -0
  112. package/dist/{type/account.js → adapters/evm/types.js} +1 -1
  113. package/dist/adapters/evm/types.js.map +1 -0
  114. package/dist/adapters/evm/web3-client.d.ts +26 -0
  115. package/dist/adapters/evm/web3-client.js +176 -0
  116. package/dist/adapters/evm/web3-client.js.map +1 -0
  117. package/dist/adapters/solana/builder.d.ts +18 -0
  118. package/dist/adapters/solana/builder.js +556 -0
  119. package/dist/adapters/solana/builder.js.map +1 -0
  120. package/dist/adapters/solana/chains.d.ts +13 -0
  121. package/dist/adapters/solana/chains.js +37 -0
  122. package/dist/adapters/solana/chains.js.map +1 -0
  123. package/dist/adapters/solana/decode.d.ts +111 -0
  124. package/dist/adapters/solana/decode.js +595 -0
  125. package/dist/adapters/solana/decode.js.map +1 -0
  126. package/dist/adapters/solana/driver.d.ts +15 -0
  127. package/dist/adapters/solana/driver.js +72 -0
  128. package/dist/adapters/solana/driver.js.map +1 -0
  129. package/dist/adapters/solana/errors.d.ts +36 -0
  130. package/dist/adapters/solana/errors.js +154 -0
  131. package/dist/adapters/solana/errors.js.map +1 -0
  132. package/dist/adapters/solana/fees.d.ts +77 -0
  133. package/dist/adapters/solana/fees.js +214 -0
  134. package/dist/adapters/solana/fees.js.map +1 -0
  135. package/dist/adapters/solana/heights.d.ts +47 -0
  136. package/dist/adapters/solana/heights.js +185 -0
  137. package/dist/adapters/solana/heights.js.map +1 -0
  138. package/dist/adapters/solana/history.d.ts +10 -0
  139. package/dist/adapters/solana/history.js +71 -0
  140. package/dist/adapters/solana/history.js.map +1 -0
  141. package/dist/adapters/solana/index.d.ts +16 -0
  142. package/dist/adapters/solana/index.js +9 -0
  143. package/dist/adapters/solana/index.js.map +1 -0
  144. package/dist/adapters/solana/keys.d.ts +13 -0
  145. package/dist/adapters/solana/keys.js +69 -0
  146. package/dist/adapters/solana/keys.js.map +1 -0
  147. package/dist/adapters/solana/message.d.ts +15 -0
  148. package/dist/adapters/solana/message.js +120 -0
  149. package/dist/adapters/solana/message.js.map +1 -0
  150. package/dist/adapters/solana/network.d.ts +24 -0
  151. package/dist/adapters/solana/network.js +95 -0
  152. package/dist/adapters/solana/network.js.map +1 -0
  153. package/dist/adapters/solana/plugin.d.ts +18 -0
  154. package/dist/adapters/solana/plugin.js +44 -0
  155. package/dist/adapters/solana/plugin.js.map +1 -0
  156. package/dist/adapters/solana/presets.d.ts +2 -0
  157. package/dist/adapters/solana/presets.js +77 -0
  158. package/dist/adapters/solana/presets.js.map +1 -0
  159. package/dist/adapters/solana/programs.d.ts +44 -0
  160. package/dist/adapters/solana/programs.js +159 -0
  161. package/dist/adapters/solana/programs.js.map +1 -0
  162. package/dist/adapters/solana/proofs.d.ts +56 -0
  163. package/dist/adapters/solana/proofs.js +540 -0
  164. package/dist/adapters/solana/proofs.js.map +1 -0
  165. package/dist/adapters/solana/reader.d.ts +82 -0
  166. package/dist/adapters/solana/reader.js +326 -0
  167. package/dist/adapters/solana/reader.js.map +1 -0
  168. package/dist/adapters/solana/rpc.d.ts +102 -0
  169. package/dist/adapters/solana/rpc.js +301 -0
  170. package/dist/adapters/solana/rpc.js.map +1 -0
  171. package/dist/adapters/solana/tokens.d.ts +7 -0
  172. package/dist/adapters/solana/tokens.js +19 -0
  173. package/dist/adapters/solana/tokens.js.map +1 -0
  174. package/dist/adapters/solana/types.d.ts +124 -0
  175. package/dist/{type/contract.js → adapters/solana/types.js} +1 -1
  176. package/dist/adapters/solana/types.js.map +1 -0
  177. package/dist/adapters/solana/web3.d.ts +5 -0
  178. package/dist/adapters/solana/web3.js +61 -0
  179. package/dist/adapters/solana/web3.js.map +1 -0
  180. package/dist/adapters/solana/wire.d.ts +62 -0
  181. package/dist/adapters/solana/wire.js +168 -0
  182. package/dist/adapters/solana/wire.js.map +1 -0
  183. package/dist/adapters/ton/address.d.ts +43 -0
  184. package/dist/adapters/ton/address.js +168 -0
  185. package/dist/adapters/ton/address.js.map +1 -0
  186. package/dist/adapters/ton/api.d.ts +344 -0
  187. package/dist/adapters/ton/api.js +942 -0
  188. package/dist/adapters/ton/api.js.map +1 -0
  189. package/dist/adapters/ton/builder.d.ts +18 -0
  190. package/dist/adapters/ton/builder.js +701 -0
  191. package/dist/adapters/ton/builder.js.map +1 -0
  192. package/dist/adapters/ton/chains.d.ts +16 -0
  193. package/dist/adapters/ton/chains.js +39 -0
  194. package/dist/adapters/ton/chains.js.map +1 -0
  195. package/dist/adapters/ton/decode.d.ts +43 -0
  196. package/dist/adapters/ton/decode.js +219 -0
  197. package/dist/adapters/ton/decode.js.map +1 -0
  198. package/dist/adapters/ton/driver.d.ts +10 -0
  199. package/dist/adapters/ton/driver.js +117 -0
  200. package/dist/adapters/ton/driver.js.map +1 -0
  201. package/dist/adapters/ton/errors.d.ts +36 -0
  202. package/dist/adapters/ton/errors.js +89 -0
  203. package/dist/adapters/ton/errors.js.map +1 -0
  204. package/dist/adapters/ton/fees.d.ts +28 -0
  205. package/dist/adapters/ton/fees.js +121 -0
  206. package/dist/adapters/ton/fees.js.map +1 -0
  207. package/dist/adapters/ton/index.d.ts +16 -0
  208. package/dist/adapters/ton/index.js +9 -0
  209. package/dist/adapters/ton/index.js.map +1 -0
  210. package/dist/adapters/ton/messages.d.ts +157 -0
  211. package/dist/adapters/ton/messages.js +397 -0
  212. package/dist/adapters/ton/messages.js.map +1 -0
  213. package/dist/adapters/ton/native-client.d.ts +10 -0
  214. package/dist/adapters/ton/native-client.js +47 -0
  215. package/dist/adapters/ton/native-client.js.map +1 -0
  216. package/dist/adapters/ton/network.d.ts +58 -0
  217. package/dist/adapters/ton/network.js +207 -0
  218. package/dist/adapters/ton/network.js.map +1 -0
  219. package/dist/adapters/ton/plugin.d.ts +24 -0
  220. package/dist/adapters/ton/plugin.js +57 -0
  221. package/dist/adapters/ton/plugin.js.map +1 -0
  222. package/dist/adapters/ton/presets.d.ts +6 -0
  223. package/dist/adapters/ton/presets.js +94 -0
  224. package/dist/adapters/ton/presets.js.map +1 -0
  225. package/dist/adapters/ton/proofs.d.ts +66 -0
  226. package/dist/adapters/ton/proofs.js +755 -0
  227. package/dist/adapters/ton/proofs.js.map +1 -0
  228. package/dist/adapters/ton/reader.d.ts +235 -0
  229. package/dist/adapters/ton/reader.js +976 -0
  230. package/dist/adapters/ton/reader.js.map +1 -0
  231. package/dist/adapters/ton/tokens.d.ts +10 -0
  232. package/dist/adapters/ton/tokens.js +27 -0
  233. package/dist/adapters/ton/tokens.js.map +1 -0
  234. package/dist/adapters/ton/trace.d.ts +74 -0
  235. package/dist/adapters/ton/trace.js +303 -0
  236. package/dist/adapters/ton/trace.js.map +1 -0
  237. package/dist/adapters/ton/types.d.ts +105 -0
  238. package/dist/{type/transact.js → adapters/ton/types.js} +1 -1
  239. package/dist/adapters/ton/types.js.map +1 -0
  240. package/dist/adapters/ton/wallets.d.ts +86 -0
  241. package/dist/adapters/ton/wallets.js +373 -0
  242. package/dist/adapters/ton/wallets.js.map +1 -0
  243. package/dist/adapters/tron/abi.d.ts +41 -0
  244. package/dist/adapters/tron/abi.js +112 -0
  245. package/dist/adapters/tron/abi.js.map +1 -0
  246. package/dist/adapters/tron/address.d.ts +20 -0
  247. package/dist/adapters/tron/address.js +110 -0
  248. package/dist/adapters/tron/address.js.map +1 -0
  249. package/dist/adapters/tron/builder.d.ts +12 -0
  250. package/dist/adapters/tron/builder.js +569 -0
  251. package/dist/adapters/tron/builder.js.map +1 -0
  252. package/dist/adapters/tron/chains.d.ts +12 -0
  253. package/dist/adapters/tron/chains.js +35 -0
  254. package/dist/adapters/tron/chains.js.map +1 -0
  255. package/dist/adapters/tron/codec.d.ts +10 -0
  256. package/dist/adapters/tron/codec.js +322 -0
  257. package/dist/adapters/tron/codec.js.map +1 -0
  258. package/dist/adapters/tron/decode.d.ts +52 -0
  259. package/dist/adapters/tron/decode.js +280 -0
  260. package/dist/adapters/tron/decode.js.map +1 -0
  261. package/dist/adapters/tron/driver.d.ts +12 -0
  262. package/dist/adapters/tron/driver.js +106 -0
  263. package/dist/adapters/tron/driver.js.map +1 -0
  264. package/dist/adapters/tron/errors.d.ts +74 -0
  265. package/dist/adapters/tron/errors.js +261 -0
  266. package/dist/adapters/tron/errors.js.map +1 -0
  267. package/dist/adapters/tron/fees.d.ts +49 -0
  268. package/dist/adapters/tron/fees.js +166 -0
  269. package/dist/adapters/tron/fees.js.map +1 -0
  270. package/dist/adapters/tron/http.d.ts +173 -0
  271. package/dist/adapters/tron/http.js +729 -0
  272. package/dist/adapters/tron/http.js.map +1 -0
  273. package/dist/adapters/tron/index.d.ts +16 -0
  274. package/dist/adapters/tron/index.js +15 -0
  275. package/dist/adapters/tron/index.js.map +1 -0
  276. package/dist/adapters/tron/network.d.ts +44 -0
  277. package/dist/adapters/tron/network.js +163 -0
  278. package/dist/adapters/tron/network.js.map +1 -0
  279. package/dist/adapters/tron/plugin.d.ts +17 -0
  280. package/dist/adapters/tron/plugin.js +39 -0
  281. package/dist/adapters/tron/plugin.js.map +1 -0
  282. package/dist/adapters/tron/presets.d.ts +5 -0
  283. package/dist/adapters/tron/presets.js +68 -0
  284. package/dist/adapters/tron/presets.js.map +1 -0
  285. package/dist/adapters/tron/proofs.d.ts +80 -0
  286. package/dist/adapters/tron/proofs.js +371 -0
  287. package/dist/adapters/tron/proofs.js.map +1 -0
  288. package/dist/adapters/tron/protobuf.d.ts +36 -0
  289. package/dist/adapters/tron/protobuf.js +90 -0
  290. package/dist/adapters/tron/protobuf.js.map +1 -0
  291. package/dist/adapters/tron/reader.d.ts +57 -0
  292. package/dist/adapters/tron/reader.js +220 -0
  293. package/dist/adapters/tron/reader.js.map +1 -0
  294. package/dist/adapters/tron/tokens.d.ts +9 -0
  295. package/dist/adapters/tron/tokens.js +14 -0
  296. package/dist/adapters/tron/tokens.js.map +1 -0
  297. package/dist/adapters/tron/types.d.ts +166 -0
  298. package/dist/adapters/tron/types.js +3 -0
  299. package/dist/adapters/tron/types.js.map +1 -0
  300. package/dist/adapters/utxo/address.d.ts +51 -0
  301. package/dist/adapters/utxo/address.js +341 -0
  302. package/dist/adapters/utxo/address.js.map +1 -0
  303. package/dist/adapters/utxo/builder.d.ts +35 -0
  304. package/dist/adapters/utxo/builder.js +380 -0
  305. package/dist/adapters/utxo/builder.js.map +1 -0
  306. package/dist/adapters/utxo/chains.d.ts +17 -0
  307. package/dist/adapters/utxo/chains.js +100 -0
  308. package/dist/adapters/utxo/chains.js.map +1 -0
  309. package/dist/adapters/utxo/codec.d.ts +120 -0
  310. package/dist/adapters/utxo/codec.js +408 -0
  311. package/dist/adapters/utxo/codec.js.map +1 -0
  312. package/dist/adapters/utxo/coinselect.d.ts +48 -0
  313. package/dist/adapters/utxo/coinselect.js +131 -0
  314. package/dist/adapters/utxo/coinselect.js.map +1 -0
  315. package/dist/adapters/utxo/context.d.ts +63 -0
  316. package/dist/adapters/utxo/context.js +125 -0
  317. package/dist/adapters/utxo/context.js.map +1 -0
  318. package/dist/adapters/utxo/decode.d.ts +22 -0
  319. package/dist/adapters/utxo/decode.js +121 -0
  320. package/dist/adapters/utxo/decode.js.map +1 -0
  321. package/dist/adapters/utxo/driver.d.ts +16 -0
  322. package/dist/adapters/utxo/driver.js +79 -0
  323. package/dist/adapters/utxo/driver.js.map +1 -0
  324. package/dist/adapters/utxo/ecc.d.ts +9 -0
  325. package/dist/adapters/utxo/ecc.js +26 -0
  326. package/dist/adapters/utxo/ecc.js.map +1 -0
  327. package/dist/adapters/utxo/errors.d.ts +52 -0
  328. package/dist/adapters/utxo/errors.js +191 -0
  329. package/dist/adapters/utxo/errors.js.map +1 -0
  330. package/dist/adapters/utxo/esplora.d.ts +100 -0
  331. package/dist/adapters/utxo/esplora.js +498 -0
  332. package/dist/adapters/utxo/esplora.js.map +1 -0
  333. package/dist/adapters/utxo/fees.d.ts +41 -0
  334. package/dist/adapters/utxo/fees.js +125 -0
  335. package/dist/adapters/utxo/fees.js.map +1 -0
  336. package/dist/adapters/utxo/index.d.ts +17 -0
  337. package/dist/adapters/utxo/index.js +8 -0
  338. package/dist/adapters/utxo/index.js.map +1 -0
  339. package/dist/adapters/utxo/network.d.ts +50 -0
  340. package/dist/adapters/utxo/network.js +165 -0
  341. package/dist/adapters/utxo/network.js.map +1 -0
  342. package/dist/adapters/utxo/plugin.d.ts +17 -0
  343. package/dist/adapters/utxo/plugin.js +41 -0
  344. package/dist/adapters/utxo/plugin.js.map +1 -0
  345. package/dist/adapters/utxo/presets.d.ts +12 -0
  346. package/dist/adapters/utxo/presets.js +47 -0
  347. package/dist/adapters/utxo/presets.js.map +1 -0
  348. package/dist/adapters/utxo/preview.d.ts +3 -0
  349. package/dist/adapters/utxo/preview.js +65 -0
  350. package/dist/adapters/utxo/preview.js.map +1 -0
  351. package/dist/adapters/utxo/proofs.d.ts +66 -0
  352. package/dist/adapters/utxo/proofs.js +469 -0
  353. package/dist/adapters/utxo/proofs.js.map +1 -0
  354. package/dist/adapters/utxo/rawblock.d.ts +46 -0
  355. package/dist/adapters/utxo/rawblock.js +159 -0
  356. package/dist/adapters/utxo/rawblock.js.map +1 -0
  357. package/dist/adapters/utxo/rawtx.d.ts +73 -0
  358. package/dist/adapters/utxo/rawtx.js +264 -0
  359. package/dist/adapters/utxo/rawtx.js.map +1 -0
  360. package/dist/adapters/utxo/reader.d.ts +36 -0
  361. package/dist/adapters/utxo/reader.js +265 -0
  362. package/dist/adapters/utxo/reader.js.map +1 -0
  363. package/dist/adapters/utxo/sdk.d.ts +18 -0
  364. package/dist/adapters/utxo/sdk.js +17 -0
  365. package/dist/adapters/utxo/sdk.js.map +1 -0
  366. package/dist/adapters/utxo/signed-psbt.d.ts +36 -0
  367. package/dist/adapters/utxo/signed-psbt.js +428 -0
  368. package/dist/adapters/utxo/signed-psbt.js.map +1 -0
  369. package/dist/adapters/utxo/spend.d.ts +59 -0
  370. package/dist/adapters/utxo/spend.js +230 -0
  371. package/dist/adapters/utxo/spend.js.map +1 -0
  372. package/dist/adapters/utxo/types.d.ts +167 -0
  373. package/dist/adapters/utxo/types.js +3 -0
  374. package/dist/adapters/utxo/types.js.map +1 -0
  375. package/dist/core/assets/service.d.ts +18 -0
  376. package/dist/core/assets/service.js +69 -0
  377. package/dist/core/assets/service.js.map +1 -0
  378. package/dist/core/blockchain/default-ref.d.ts +4 -0
  379. package/dist/core/blockchain/default-ref.js +16 -0
  380. package/dist/core/blockchain/default-ref.js.map +1 -0
  381. package/dist/core/blockchain/handle.d.ts +179 -0
  382. package/dist/core/blockchain/handle.js +579 -0
  383. package/dist/core/blockchain/handle.js.map +1 -0
  384. package/dist/core/blockchain/internal.d.ts +19 -0
  385. package/dist/core/blockchain/internal.js +16 -0
  386. package/dist/core/blockchain/internal.js.map +1 -0
  387. package/dist/core/blockchain/mapping.d.ts +22 -0
  388. package/dist/core/blockchain/mapping.js +136 -0
  389. package/dist/core/blockchain/mapping.js.map +1 -0
  390. package/dist/core/config/env.d.ts +8 -0
  391. package/dist/core/config/env.js +60 -0
  392. package/dist/core/config/env.js.map +1 -0
  393. package/dist/core/config/merge.d.ts +26 -0
  394. package/dist/core/config/merge.js +144 -0
  395. package/dist/core/config/merge.js.map +1 -0
  396. package/dist/core/config/resolve.d.ts +12 -0
  397. package/dist/core/config/resolve.js +251 -0
  398. package/dist/core/config/resolve.js.map +1 -0
  399. package/dist/core/config/types.d.ts +180 -0
  400. package/dist/core/config/types.js +3 -0
  401. package/dist/core/config/types.js.map +1 -0
  402. package/dist/core/container/builtins.d.ts +4 -0
  403. package/dist/core/container/builtins.js +13 -0
  404. package/dist/core/container/builtins.js.map +1 -0
  405. package/dist/core/container/container.d.ts +62 -0
  406. package/dist/core/container/container.js +500 -0
  407. package/dist/core/container/container.js.map +1 -0
  408. package/dist/core/container/default.d.ts +15 -0
  409. package/dist/core/container/default.js +70 -0
  410. package/dist/core/container/default.js.map +1 -0
  411. package/dist/core/container/internals.d.ts +54 -0
  412. package/dist/core/container/internals.js +21 -0
  413. package/dist/core/container/internals.js.map +1 -0
  414. package/dist/core/container/pool.d.ts +27 -0
  415. package/dist/core/container/pool.js +77 -0
  416. package/dist/core/container/pool.js.map +1 -0
  417. package/dist/core/driver/types.d.ts +379 -0
  418. package/dist/core/driver/types.js +3 -0
  419. package/dist/core/driver/types.js.map +1 -0
  420. package/dist/core/errors/codes.d.ts +163 -0
  421. package/dist/core/errors/codes.js +53 -0
  422. package/dist/core/errors/codes.js.map +1 -0
  423. package/dist/core/errors/error.d.ts +66 -0
  424. package/dist/core/errors/error.js +129 -0
  425. package/dist/core/errors/error.js.map +1 -0
  426. package/dist/core/events/bus.d.ts +12 -0
  427. package/dist/core/events/bus.js +46 -0
  428. package/dist/core/events/bus.js.map +1 -0
  429. package/dist/core/events/logger.d.ts +13 -0
  430. package/dist/core/events/logger.js +42 -0
  431. package/dist/core/events/logger.js.map +1 -0
  432. package/dist/core/events/types.d.ts +131 -0
  433. package/dist/core/events/types.js +3 -0
  434. package/dist/core/events/types.js.map +1 -0
  435. package/dist/core/lifecycle/engine-rules.d.ts +106 -0
  436. package/dist/core/lifecycle/engine-rules.js +267 -0
  437. package/dist/core/lifecycle/engine-rules.js.map +1 -0
  438. package/dist/core/lifecycle/engine.d.ts +502 -0
  439. package/dist/core/lifecycle/engine.js +1750 -0
  440. package/dist/core/lifecycle/engine.js.map +1 -0
  441. package/dist/core/lifecycle/evaluate.d.ts +19 -0
  442. package/dist/core/lifecycle/evaluate.js +77 -0
  443. package/dist/core/lifecycle/evaluate.js.map +1 -0
  444. package/dist/core/lifecycle/intent.d.ts +11 -0
  445. package/dist/core/lifecycle/intent.js +88 -0
  446. package/dist/core/lifecycle/intent.js.map +1 -0
  447. package/dist/core/lifecycle/monitor.d.ts +138 -0
  448. package/dist/core/lifecycle/monitor.js +616 -0
  449. package/dist/core/lifecycle/monitor.js.map +1 -0
  450. package/dist/core/lifecycle/observations.d.ts +17 -0
  451. package/dist/core/lifecycle/observations.js +59 -0
  452. package/dist/core/lifecycle/observations.js.map +1 -0
  453. package/dist/core/lifecycle/reconcile.d.ts +58 -0
  454. package/dist/core/lifecycle/reconcile.js +112 -0
  455. package/dist/core/lifecycle/reconcile.js.map +1 -0
  456. package/dist/core/lifecycle/views.d.ts +49 -0
  457. package/dist/core/lifecycle/views.js +57 -0
  458. package/dist/core/lifecycle/views.js.map +1 -0
  459. package/dist/core/lifecycle/workers.d.ts +88 -0
  460. package/dist/core/lifecycle/workers.js +347 -0
  461. package/dist/core/lifecycle/workers.js.map +1 -0
  462. package/dist/core/model/address.d.ts +32 -0
  463. package/dist/core/model/address.js +43 -0
  464. package/dist/core/model/address.js.map +1 -0
  465. package/dist/core/model/amount.d.ts +25 -0
  466. package/dist/core/model/amount.js +102 -0
  467. package/dist/core/model/amount.js.map +1 -0
  468. package/dist/core/model/asset.d.ts +28 -0
  469. package/dist/core/model/asset.js +47 -0
  470. package/dist/core/model/asset.js.map +1 -0
  471. package/dist/core/model/capability.d.ts +3 -0
  472. package/dist/core/model/capability.js +18 -0
  473. package/dist/core/model/capability.js.map +1 -0
  474. package/dist/core/model/chain.d.ts +63 -0
  475. package/dist/core/model/chain.js +8 -0
  476. package/dist/core/model/chain.js.map +1 -0
  477. package/dist/core/model/fee.d.ts +36 -0
  478. package/dist/core/model/fee.js +17 -0
  479. package/dist/core/model/fee.js.map +1 -0
  480. package/dist/core/model/ids.d.ts +38 -0
  481. package/dist/core/model/ids.js +14 -0
  482. package/dist/core/model/ids.js.map +1 -0
  483. package/dist/core/model/intent.d.ts +63 -0
  484. package/dist/core/model/intent.js +81 -0
  485. package/dist/core/model/intent.js.map +1 -0
  486. package/dist/core/model/ordering.d.ts +28 -0
  487. package/dist/core/model/ordering.js +29 -0
  488. package/dist/core/model/ordering.js.map +1 -0
  489. package/dist/core/model/transaction.d.ts +123 -0
  490. package/dist/{type/lib-types.js → core/model/transaction.js} +1 -1
  491. package/dist/core/model/transaction.js.map +1 -0
  492. package/dist/core/observe/scanner.d.ts +135 -0
  493. package/dist/core/observe/scanner.js +358 -0
  494. package/dist/core/observe/scanner.js.map +1 -0
  495. package/dist/core/ordering/reservations.d.ts +16 -0
  496. package/dist/core/ordering/reservations.js +53 -0
  497. package/dist/core/ordering/reservations.js.map +1 -0
  498. package/dist/core/ordering/sequence.d.ts +61 -0
  499. package/dist/core/ordering/sequence.js +155 -0
  500. package/dist/core/ordering/sequence.js.map +1 -0
  501. package/dist/core/registry/adapters.d.ts +10 -0
  502. package/dist/core/registry/adapters.js +56 -0
  503. package/dist/core/registry/adapters.js.map +1 -0
  504. package/dist/core/registry/assets.d.ts +18 -0
  505. package/dist/core/registry/assets.js +90 -0
  506. package/dist/core/registry/assets.js.map +1 -0
  507. package/dist/core/registry/chains.d.ts +10 -0
  508. package/dist/core/registry/chains.js +80 -0
  509. package/dist/core/registry/chains.js.map +1 -0
  510. package/dist/core/registry/plugin.d.ts +41 -0
  511. package/dist/core/registry/plugin.js +109 -0
  512. package/dist/core/registry/plugin.js.map +1 -0
  513. package/dist/core/registry/providers.d.ts +31 -0
  514. package/dist/core/registry/providers.js +43 -0
  515. package/dist/core/registry/providers.js.map +1 -0
  516. package/dist/core/registry/schemes.d.ts +30 -0
  517. package/dist/core/registry/schemes.js +84 -0
  518. package/dist/core/registry/schemes.js.map +1 -0
  519. package/dist/core/secret/fragments.d.ts +33 -0
  520. package/dist/core/secret/fragments.js +110 -0
  521. package/dist/core/secret/fragments.js.map +1 -0
  522. package/dist/core/secret/redact.d.ts +10 -0
  523. package/dist/core/secret/redact.js +110 -0
  524. package/dist/core/secret/redact.js.map +1 -0
  525. package/dist/core/secret/secret.d.ts +14 -0
  526. package/dist/core/secret/secret.js +42 -0
  527. package/dist/core/secret/secret.js.map +1 -0
  528. package/dist/core/signing/callback.d.ts +10 -0
  529. package/dist/core/signing/callback.js +22 -0
  530. package/dist/core/signing/callback.js.map +1 -0
  531. package/dist/core/signing/guard.d.ts +18 -0
  532. package/dist/core/signing/guard.js +72 -0
  533. package/dist/core/signing/guard.js.map +1 -0
  534. package/dist/core/signing/hd.d.ts +36 -0
  535. package/dist/core/signing/hd.js +167 -0
  536. package/dist/core/signing/hd.js.map +1 -0
  537. package/dist/core/signing/local.d.ts +48 -0
  538. package/dist/core/signing/local.js +190 -0
  539. package/dist/core/signing/local.js.map +1 -0
  540. package/dist/core/signing/orchestrator.d.ts +40 -0
  541. package/dist/core/signing/orchestrator.js +300 -0
  542. package/dist/core/signing/orchestrator.js.map +1 -0
  543. package/dist/core/signing/types.d.ts +64 -0
  544. package/dist/core/signing/types.js +3 -0
  545. package/dist/core/signing/types.js.map +1 -0
  546. package/dist/core/signing/wallet.d.ts +48 -0
  547. package/dist/core/signing/wallet.js +161 -0
  548. package/dist/core/signing/wallet.js.map +1 -0
  549. package/dist/core/store/clone.d.ts +25 -0
  550. package/dist/core/store/clone.js +71 -0
  551. package/dist/core/store/clone.js.map +1 -0
  552. package/dist/core/store/format.d.ts +20 -0
  553. package/dist/core/store/format.js +86 -0
  554. package/dist/core/store/format.js.map +1 -0
  555. package/dist/core/store/memory.d.ts +38 -0
  556. package/dist/core/store/memory.js +325 -0
  557. package/dist/core/store/memory.js.map +1 -0
  558. package/dist/core/store/types.d.ts +258 -0
  559. package/dist/core/store/types.js +119 -0
  560. package/dist/core/store/types.js.map +1 -0
  561. package/dist/core/transport/backoff.d.ts +8 -0
  562. package/dist/core/transport/backoff.js +27 -0
  563. package/dist/core/transport/backoff.js.map +1 -0
  564. package/dist/core/transport/circuit.d.ts +25 -0
  565. package/dist/core/transport/circuit.js +61 -0
  566. package/dist/core/transport/circuit.js.map +1 -0
  567. package/dist/core/transport/http-transport.d.ts +30 -0
  568. package/dist/core/transport/http-transport.js +1703 -0
  569. package/dist/core/transport/http-transport.js.map +1 -0
  570. package/dist/core/transport/rate-limit.d.ts +27 -0
  571. package/dist/core/transport/rate-limit.js +78 -0
  572. package/dist/core/transport/rate-limit.js.map +1 -0
  573. package/dist/core/transport/stale-view.d.ts +11 -0
  574. package/dist/core/transport/stale-view.js +17 -0
  575. package/dist/core/transport/stale-view.js.map +1 -0
  576. package/dist/core/transport/types.d.ts +159 -0
  577. package/dist/core/transport/types.js +6 -0
  578. package/dist/core/transport/types.js.map +1 -0
  579. package/dist/core/util/bytes.d.ts +9 -0
  580. package/dist/core/util/bytes.js +40 -0
  581. package/dist/core/util/bytes.js.map +1 -0
  582. package/dist/core/util/clock.d.ts +6 -0
  583. package/dist/core/util/clock.js +26 -0
  584. package/dist/core/util/clock.js.map +1 -0
  585. package/dist/core/util/freeze.d.ts +8 -0
  586. package/dist/core/util/freeze.js +31 -0
  587. package/dist/core/util/freeze.js.map +1 -0
  588. package/dist/core/util/json.d.ts +35 -0
  589. package/dist/core/util/json.js +174 -0
  590. package/dist/core/util/json.js.map +1 -0
  591. package/dist/core/util/names.d.ts +27 -0
  592. package/dist/core/util/names.js +56 -0
  593. package/dist/core/util/names.js.map +1 -0
  594. package/dist/index.d.ts +65 -14
  595. package/dist/index.js +107 -49
  596. package/dist/index.js.map +1 -1
  597. package/dist/native.d.ts +21 -0
  598. package/dist/native.js +44 -0
  599. package/dist/native.js.map +1 -0
  600. package/dist/testing/contracts/api.d.ts +12 -0
  601. package/dist/testing/contracts/api.js +58 -0
  602. package/dist/testing/contracts/api.js.map +1 -0
  603. package/dist/testing/contracts/cursors.d.ts +6 -0
  604. package/dist/testing/contracts/cursors.js +43 -0
  605. package/dist/testing/contracts/cursors.js.map +1 -0
  606. package/dist/testing/contracts/locks.d.ts +10 -0
  607. package/dist/testing/contracts/locks.js +63 -0
  608. package/dist/testing/contracts/locks.js.map +1 -0
  609. package/dist/testing/contracts/operations.d.ts +21 -0
  610. package/dist/testing/contracts/operations.js +737 -0
  611. package/dist/testing/contracts/operations.js.map +1 -0
  612. package/dist/testing/contracts/sequences.d.ts +6 -0
  613. package/dist/testing/contracts/sequences.js +68 -0
  614. package/dist/testing/contracts/sequences.js.map +1 -0
  615. package/dist/testing/env.d.ts +68 -0
  616. package/dist/testing/env.js +105 -0
  617. package/dist/testing/env.js.map +1 -0
  618. package/dist/testing/fake-chain.d.ts +118 -0
  619. package/dist/testing/fake-chain.js +536 -0
  620. package/dist/testing/fake-chain.js.map +1 -0
  621. package/dist/testing/fake-clock.d.ts +15 -0
  622. package/dist/testing/fake-clock.js +86 -0
  623. package/dist/testing/fake-clock.js.map +1 -0
  624. package/dist/testing/fake-driver.d.ts +15 -0
  625. package/dist/testing/fake-driver.js +458 -0
  626. package/dist/testing/fake-driver.js.map +1 -0
  627. package/dist/testing/fake-fetch.d.ts +32 -0
  628. package/dist/testing/fake-fetch.js +81 -0
  629. package/dist/testing/fake-fetch.js.map +1 -0
  630. package/dist/testing/fake-plugin.d.ts +30 -0
  631. package/dist/testing/fake-plugin.js +66 -0
  632. package/dist/testing/fake-plugin.js.map +1 -0
  633. package/dist/testing/faulty-store.d.ts +38 -0
  634. package/dist/testing/faulty-store.js +71 -0
  635. package/dist/testing/faulty-store.js.map +1 -0
  636. package/dist/testing/generation.d.ts +60 -0
  637. package/dist/testing/generation.js +252 -0
  638. package/dist/testing/generation.js.map +1 -0
  639. package/dist/testing/index.d.ts +28 -0
  640. package/dist/testing/index.js +51 -0
  641. package/dist/testing/index.js.map +1 -0
  642. package/package.json +198 -45
  643. package/dist/libs/eth/account.d.ts +0 -9
  644. package/dist/libs/eth/account.js +0 -58
  645. package/dist/libs/eth/account.js.map +0 -1
  646. package/dist/libs/eth/contract.d.ts +0 -7
  647. package/dist/libs/eth/contract.js +0 -42
  648. package/dist/libs/eth/contract.js.map +0 -1
  649. package/dist/libs/eth/index.d.ts +0 -24
  650. package/dist/libs/eth/index.js +0 -72
  651. package/dist/libs/eth/index.js.map +0 -1
  652. package/dist/libs/eth/transact.d.ts +0 -7
  653. package/dist/libs/eth/transact.js +0 -26
  654. package/dist/libs/eth/transact.js.map +0 -1
  655. package/dist/libs/index.d.ts +0 -2
  656. package/dist/libs/index.js +0 -19
  657. package/dist/libs/index.js.map +0 -1
  658. package/dist/libs/trx/account.d.ts +0 -9
  659. package/dist/libs/trx/account.js +0 -55
  660. package/dist/libs/trx/account.js.map +0 -1
  661. package/dist/libs/trx/contract.d.ts +0 -7
  662. package/dist/libs/trx/contract.js +0 -27
  663. package/dist/libs/trx/contract.js.map +0 -1
  664. package/dist/libs/trx/index.d.ts +0 -22
  665. package/dist/libs/trx/index.js +0 -64
  666. package/dist/libs/trx/index.js.map +0 -1
  667. package/dist/libs/trx/transact.d.ts +0 -7
  668. package/dist/libs/trx/transact.js +0 -26
  669. package/dist/libs/trx/transact.js.map +0 -1
  670. package/dist/tool/common.d.ts +0 -28
  671. package/dist/tool/common.js +0 -33
  672. package/dist/tool/common.js.map +0 -1
  673. package/dist/tool/eth-tools.d.ts +0 -3
  674. package/dist/tool/eth-tools.js +0 -33
  675. package/dist/tool/eth-tools.js.map +0 -1
  676. package/dist/tool/index.d.ts +0 -5
  677. package/dist/tool/index.js +0 -22
  678. package/dist/tool/index.js.map +0 -1
  679. package/dist/tool/logging.d.ts +0 -3
  680. package/dist/tool/logging.js +0 -11
  681. package/dist/tool/logging.js.map +0 -1
  682. package/dist/tool/options.d.ts +0 -6
  683. package/dist/tool/options.js +0 -41
  684. package/dist/tool/options.js.map +0 -1
  685. package/dist/tool/trx-tools.d.ts +0 -3
  686. package/dist/tool/trx-tools.js +0 -20
  687. package/dist/tool/trx-tools.js.map +0 -1
  688. package/dist/type/account.d.ts +0 -9
  689. package/dist/type/account.js.map +0 -1
  690. package/dist/type/common.d.ts +0 -18
  691. package/dist/type/common.js.map +0 -1
  692. package/dist/type/contract.d.ts +0 -10
  693. package/dist/type/contract.js.map +0 -1
  694. package/dist/type/index.d.ts +0 -5
  695. package/dist/type/index.js +0 -22
  696. package/dist/type/index.js.map +0 -1
  697. package/dist/type/lib-types.d.ts +0 -9
  698. package/dist/type/lib-types.js.map +0 -1
  699. package/dist/type/transact.d.ts +0 -7
  700. package/dist/type/transact.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../../src/core/errors/codes.ts"],"names":[],"mappings":"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","sourcesContent":["export type ErrorCategory =\n | 'config'\n | 'unsupported'\n | 'validation'\n | 'provider'\n | 'chain'\n | 'signing'\n | 'state'\n | 'timeout';\n\ninterface CodeDefinition {\n readonly category: ErrorCategory;\n readonly retryable: boolean;\n}\n\n/** Frozen, with every entry: the table is shared by every error and every caller. */\nexport const ERROR_CODES = deepFreezeCodes({\n CONFIG_INVALID: { category: 'config', retryable: false },\n DEPENDENCY_MISSING: { category: 'config', retryable: false },\n INCOMPATIBLE_SELECTION: { category: 'config', retryable: false },\n UNSUPPORTED_CAPABILITY: { category: 'unsupported', retryable: false },\n INVALID_ADDRESS: { category: 'validation', retryable: false },\n INVALID_AMOUNT: { category: 'validation', retryable: false },\n ASSET_RESOLUTION: { category: 'validation', retryable: false },\n INVALID_INTENT: { category: 'validation', retryable: false },\n PROVIDER_UNAVAILABLE: { category: 'provider', retryable: true },\n RATE_LIMITED: { category: 'provider', retryable: true },\n PROVIDER_MISCONFIGURED: { category: 'provider', retryable: false },\n PROVIDER_INCONSISTENT: { category: 'provider', retryable: true },\n RPC_ERROR: { category: 'provider', retryable: false },\n INSUFFICIENT_FUNDS: { category: 'chain', retryable: false },\n NONCE_CONFLICT: { category: 'chain', retryable: false },\n NONCE_TOO_HIGH: { category: 'chain', retryable: false },\n FEE_TOO_LOW: { category: 'chain', retryable: false },\n TX_REFUSED: { category: 'chain', retryable: false },\n TX_REJECTED: { category: 'chain', retryable: false },\n TX_REVERTED: { category: 'chain', retryable: false },\n /** Included and executed, but no transfer to the recipient shows: value may have moved. */\n TX_UNEVIDENCED: { category: 'chain', retryable: false },\n TX_EXPIRED: { category: 'chain', retryable: false },\n TX_REPLACED: { category: 'chain', retryable: false },\n SIGNER_UNAVAILABLE: { category: 'signing', retryable: false },\n SIGNING_FAILED: { category: 'signing', retryable: false },\n SIGNATURE_MISMATCH: { category: 'signing', retryable: false },\n POLICY_REJECTED: { category: 'signing', retryable: false },\n KEY_NOT_EXPORTABLE: { category: 'signing', retryable: false },\n IDEMPOTENCY_CONFLICT: { category: 'state', retryable: false },\n FENCING: { category: 'state', retryable: false },\n VERSION_CONFLICT: { category: 'state', retryable: true },\n INVALID_TRANSITION: { category: 'state', retryable: false },\n NOT_FOUND: { category: 'state', retryable: false },\n SEQUENCE_BUSY: { category: 'state', retryable: true },\n /** The outcome may have happened (e.g. a delivered broadcast) but was not recorded. */\n STATE_UNRECORDED: { category: 'state', retryable: true },\n SCANNER_REORG_TOO_DEEP: { category: 'state', retryable: false },\n /** A stored Operation's record format is newer than this version reads. */\n RECORD_FORMAT_UNSUPPORTED: { category: 'state', retryable: false },\n TIMEOUT: { category: 'timeout', retryable: true },\n} as const satisfies Record<string, CodeDefinition>);\n\nfunction deepFreezeCodes<T extends Record<string, CodeDefinition>>(codes: T): T {\n for (const definition of Object.values(codes)) Object.freeze(definition);\n return Object.freeze(codes);\n}\n\nexport type ErrorCode = keyof typeof ERROR_CODES;\n\nexport type CodesOf<C extends ErrorCategory> = {\n [K in ErrorCode]: (typeof ERROR_CODES)[K]['category'] extends C ? K : never;\n}[ErrorCode];\n"]}
@@ -0,0 +1,66 @@
1
+ import { type CodesOf, type ErrorCategory, type ErrorCode } from './codes';
2
+ export type { CodesOf, ErrorCategory, ErrorCode } from './codes';
3
+ export type ErrorContextValue = string | number | boolean | undefined;
4
+ export type ErrorContext = Readonly<Record<string, ErrorContextValue>>;
5
+ export interface CryptoAioErrorOptions {
6
+ readonly cause?: unknown;
7
+ readonly context?: ErrorContext;
8
+ readonly details?: Readonly<Record<string, unknown>>;
9
+ readonly retryable?: boolean;
10
+ readonly ambiguous?: boolean;
11
+ }
12
+ export interface SerializedError {
13
+ readonly name: string;
14
+ readonly code: ErrorCode;
15
+ readonly category: ErrorCategory;
16
+ readonly message: string;
17
+ readonly retryable: boolean;
18
+ readonly ambiguous: boolean;
19
+ readonly context: ErrorContext;
20
+ readonly details?: Readonly<Record<string, unknown>>;
21
+ }
22
+ export declare class CryptoAioError extends Error {
23
+ readonly code: ErrorCode;
24
+ readonly category: ErrorCategory;
25
+ readonly retryable: boolean;
26
+ readonly ambiguous: boolean;
27
+ readonly context: ErrorContext;
28
+ readonly details?: Readonly<Record<string, unknown>>;
29
+ constructor(code: ErrorCode, message: string, options?: CryptoAioErrorOptions);
30
+ toJSON(): SerializedError;
31
+ }
32
+ export declare class ConfigError extends CryptoAioError {
33
+ constructor(code: CodesOf<'config'>, message: string, options?: CryptoAioErrorOptions);
34
+ }
35
+ export declare class UnsupportedCapabilityError extends CryptoAioError {
36
+ constructor(code: CodesOf<'unsupported'>, message: string, options?: CryptoAioErrorOptions);
37
+ }
38
+ export declare class ValidationError extends CryptoAioError {
39
+ constructor(code: CodesOf<'validation'>, message: string, options?: CryptoAioErrorOptions);
40
+ }
41
+ export declare class ProviderError extends CryptoAioError {
42
+ constructor(code: CodesOf<'provider'>, message: string, options?: CryptoAioErrorOptions);
43
+ }
44
+ export declare class ChainError extends CryptoAioError {
45
+ constructor(code: CodesOf<'chain'>, message: string, options?: CryptoAioErrorOptions);
46
+ }
47
+ export declare class SigningError extends CryptoAioError {
48
+ constructor(code: CodesOf<'signing'>, message: string, options?: CryptoAioErrorOptions);
49
+ }
50
+ export declare class StateError extends CryptoAioError {
51
+ constructor(code: CodesOf<'state'>, message: string, options?: CryptoAioErrorOptions);
52
+ }
53
+ export declare class TimeoutError extends CryptoAioError {
54
+ constructor(code: CodesOf<'timeout'>, message: string, options?: CryptoAioErrorOptions);
55
+ }
56
+ export declare function createError(code: ErrorCode, message: string, options?: CryptoAioErrorOptions): CryptoAioError;
57
+ export declare function isCryptoAioError(value: unknown, code?: ErrorCode): value is CryptoAioError;
58
+ /**
59
+ * Returns a copy of `error` (same class, same stack) with merged context, and optional flag
60
+ * and `details` overrides. The copy keeps the stack of the error it reports.
61
+ */
62
+ export declare function withContext(error: CryptoAioError, context: ErrorContext, overrides?: {
63
+ readonly ambiguous?: boolean;
64
+ readonly retryable?: boolean;
65
+ readonly details?: Readonly<Record<string, unknown>>;
66
+ }): CryptoAioError;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeoutError = exports.StateError = exports.SigningError = exports.ChainError = exports.ProviderError = exports.ValidationError = exports.UnsupportedCapabilityError = exports.ConfigError = exports.CryptoAioError = void 0;
4
+ exports.createError = createError;
5
+ exports.isCryptoAioError = isCryptoAioError;
6
+ exports.withContext = withContext;
7
+ const codes_1 = require("./codes");
8
+ class CryptoAioError extends Error {
9
+ code;
10
+ category;
11
+ retryable;
12
+ ambiguous;
13
+ context;
14
+ details;
15
+ constructor(code, message, options = {}) {
16
+ super(message, options.cause === undefined ? undefined : { cause: options.cause });
17
+ this.name = new.target.name;
18
+ const definition = codes_1.ERROR_CODES[code];
19
+ this.code = code;
20
+ this.category = definition.category;
21
+ this.retryable = options.retryable ?? definition.retryable;
22
+ this.ambiguous = options.ambiguous ?? false;
23
+ this.context = Object.freeze({ ...options.context });
24
+ if (options.details)
25
+ this.details = Object.freeze({ ...options.details });
26
+ }
27
+ toJSON() {
28
+ return {
29
+ name: this.name,
30
+ code: this.code,
31
+ category: this.category,
32
+ message: this.message,
33
+ retryable: this.retryable,
34
+ ambiguous: this.ambiguous,
35
+ context: this.context,
36
+ ...(this.details ? { details: this.details } : {}),
37
+ };
38
+ }
39
+ }
40
+ exports.CryptoAioError = CryptoAioError;
41
+ class ConfigError extends CryptoAioError {
42
+ constructor(code, message, options) {
43
+ super(code, message, options);
44
+ }
45
+ }
46
+ exports.ConfigError = ConfigError;
47
+ class UnsupportedCapabilityError extends CryptoAioError {
48
+ constructor(code, message, options) {
49
+ super(code, message, options);
50
+ }
51
+ }
52
+ exports.UnsupportedCapabilityError = UnsupportedCapabilityError;
53
+ class ValidationError extends CryptoAioError {
54
+ constructor(code, message, options) {
55
+ super(code, message, options);
56
+ }
57
+ }
58
+ exports.ValidationError = ValidationError;
59
+ class ProviderError extends CryptoAioError {
60
+ constructor(code, message, options) {
61
+ super(code, message, options);
62
+ }
63
+ }
64
+ exports.ProviderError = ProviderError;
65
+ class ChainError extends CryptoAioError {
66
+ constructor(code, message, options) {
67
+ super(code, message, options);
68
+ }
69
+ }
70
+ exports.ChainError = ChainError;
71
+ class SigningError extends CryptoAioError {
72
+ constructor(code, message, options) {
73
+ super(code, message, options);
74
+ }
75
+ }
76
+ exports.SigningError = SigningError;
77
+ class StateError extends CryptoAioError {
78
+ constructor(code, message, options) {
79
+ super(code, message, options);
80
+ }
81
+ }
82
+ exports.StateError = StateError;
83
+ class TimeoutError extends CryptoAioError {
84
+ constructor(code, message, options) {
85
+ super(code, message, options);
86
+ }
87
+ }
88
+ exports.TimeoutError = TimeoutError;
89
+ const BY_CATEGORY = {
90
+ config: ConfigError,
91
+ unsupported: UnsupportedCapabilityError,
92
+ validation: ValidationError,
93
+ provider: ProviderError,
94
+ chain: ChainError,
95
+ signing: SigningError,
96
+ state: StateError,
97
+ timeout: TimeoutError,
98
+ };
99
+ function createError(code, message, options) {
100
+ const Ctor = BY_CATEGORY[codes_1.ERROR_CODES[code].category];
101
+ return new Ctor(code, message, options);
102
+ }
103
+ function isCryptoAioError(value, code) {
104
+ return value instanceof CryptoAioError && (code === undefined || value.code === code);
105
+ }
106
+ /**
107
+ * Returns a copy of `error` (same class, same stack) with merged context, and optional flag
108
+ * and `details` overrides. The copy keeps the stack of the error it reports.
109
+ */
110
+ function withContext(error, context, overrides = {}) {
111
+ const Ctor = error.constructor;
112
+ const details = overrides.details ?? error.details;
113
+ const copy = new Ctor(error.code, error.message, {
114
+ cause: error.cause,
115
+ context: { ...error.context, ...context },
116
+ ...(details ? { details } : {}),
117
+ retryable: overrides.retryable ?? error.retryable,
118
+ ambiguous: overrides.ambiguous ?? error.ambiguous,
119
+ });
120
+ if (error.stack !== undefined) {
121
+ Object.defineProperty(copy, 'stack', {
122
+ value: error.stack,
123
+ writable: true,
124
+ configurable: true,
125
+ });
126
+ }
127
+ return copy;
128
+ }
129
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/core/errors/error.ts"],"names":[],"mappings":";;;AA0IA,kCAOC;AAED,4CAKC;AAMD,kCA0BC;AAxLD,mCAAwF;AA0BxF,MAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAY;IAChB,QAAQ,CAAgB;IACxB,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,OAAO,CAAe;IACtB,OAAO,CAAqC;IAErD,YAAY,IAAe,EAAE,OAAe,EAAE,UAAiC,EAAE;QAC/E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,UAAU,GAAG,mBAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC;CACF;AAhCD,wCAgCC;AAED,MAAa,WAAY,SAAQ,cAAc;IAC7C,YAAY,IAAuB,EAAE,OAAe,EAAE,OAA+B;QACnF,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAJD,kCAIC;AACD,MAAa,0BAA2B,SAAQ,cAAc;IAC5D,YACE,IAA4B,EAC5B,OAAe,EACf,OAA+B;QAE/B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AARD,gEAQC;AACD,MAAa,eAAgB,SAAQ,cAAc;IACjD,YACE,IAA2B,EAC3B,OAAe,EACf,OAA+B;QAE/B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AARD,0CAQC;AACD,MAAa,aAAc,SAAQ,cAAc;IAC/C,YACE,IAAyB,EACzB,OAAe,EACf,OAA+B;QAE/B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AARD,sCAQC;AACD,MAAa,UAAW,SAAQ,cAAc;IAC5C,YAAY,IAAsB,EAAE,OAAe,EAAE,OAA+B;QAClF,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAJD,gCAIC;AACD,MAAa,YAAa,SAAQ,cAAc;IAC9C,YACE,IAAwB,EACxB,OAAe,EACf,OAA+B;QAE/B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AARD,oCAQC;AACD,MAAa,UAAW,SAAQ,cAAc;IAC5C,YAAY,IAAsB,EAAE,OAAe,EAAE,OAA+B;QAClF,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAJD,gCAIC;AACD,MAAa,YAAa,SAAQ,cAAc;IAC9C,YACE,IAAwB,EACxB,OAAe,EACf,OAA+B;QAE/B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AARD,oCAQC;AAQD,MAAM,WAAW,GAA+C;IAC9D,MAAM,EAAE,WAAkC;IAC1C,WAAW,EAAE,0BAAiD;IAC9D,UAAU,EAAE,eAAsC;IAClD,QAAQ,EAAE,aAAoC;IAC9C,KAAK,EAAE,UAAiC;IACxC,OAAO,EAAE,YAAmC;IAC5C,KAAK,EAAE,UAAiC;IACxC,OAAO,EAAE,YAAmC;CAC7C,CAAC;AAEF,SAAgB,WAAW,CACzB,IAAe,EACf,OAAe,EACf,OAA+B;IAE/B,MAAM,IAAI,GAAG,WAAW,CAAC,mBAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAc,EACd,IAAgB;IAEhB,OAAO,KAAK,YAAY,cAAc,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxF,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,KAAqB,EACrB,OAAqB,EACrB,YAII,EAAE;IAEN,MAAM,IAAI,GAAG,KAAK,CAAC,WAAkC,CAAC;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;QAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;QACzC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;QACjD,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;KAClD,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { ERROR_CODES, type CodesOf, type ErrorCategory, type ErrorCode } from './codes';\n\nexport type { CodesOf, ErrorCategory, ErrorCode } from './codes';\n\nexport type ErrorContextValue = string | number | boolean | undefined;\nexport type ErrorContext = Readonly<Record<string, ErrorContextValue>>;\n\nexport interface CryptoAioErrorOptions {\n readonly cause?: unknown;\n readonly context?: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n readonly retryable?: boolean;\n readonly ambiguous?: boolean;\n}\n\nexport interface SerializedError {\n readonly name: string;\n readonly code: ErrorCode;\n readonly category: ErrorCategory;\n readonly message: string;\n readonly retryable: boolean;\n readonly ambiguous: boolean;\n readonly context: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n}\n\nexport class CryptoAioError extends Error {\n readonly code: ErrorCode;\n readonly category: ErrorCategory;\n readonly retryable: boolean;\n readonly ambiguous: boolean;\n readonly context: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n\n constructor(code: ErrorCode, message: string, options: CryptoAioErrorOptions = {}) {\n super(message, options.cause === undefined ? undefined : { cause: options.cause });\n this.name = new.target.name;\n const definition = ERROR_CODES[code];\n this.code = code;\n this.category = definition.category;\n this.retryable = options.retryable ?? definition.retryable;\n this.ambiguous = options.ambiguous ?? false;\n this.context = Object.freeze({ ...options.context });\n if (options.details) this.details = Object.freeze({ ...options.details });\n }\n\n toJSON(): SerializedError {\n return {\n name: this.name,\n code: this.code,\n category: this.category,\n message: this.message,\n retryable: this.retryable,\n ambiguous: this.ambiguous,\n context: this.context,\n ...(this.details ? { details: this.details } : {}),\n };\n }\n}\n\nexport class ConfigError extends CryptoAioError {\n constructor(code: CodesOf<'config'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class UnsupportedCapabilityError extends CryptoAioError {\n constructor(\n code: CodesOf<'unsupported'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ValidationError extends CryptoAioError {\n constructor(\n code: CodesOf<'validation'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ProviderError extends CryptoAioError {\n constructor(\n code: CodesOf<'provider'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ChainError extends CryptoAioError {\n constructor(code: CodesOf<'chain'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class SigningError extends CryptoAioError {\n constructor(\n code: CodesOf<'signing'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class StateError extends CryptoAioError {\n constructor(code: CodesOf<'state'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class TimeoutError extends CryptoAioError {\n constructor(\n code: CodesOf<'timeout'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\n\ntype AnyErrorConstructor = new (\n code: ErrorCode,\n message: string,\n options?: CryptoAioErrorOptions,\n) => CryptoAioError;\n\nconst BY_CATEGORY: Record<ErrorCategory, AnyErrorConstructor> = {\n config: ConfigError as AnyErrorConstructor,\n unsupported: UnsupportedCapabilityError as AnyErrorConstructor,\n validation: ValidationError as AnyErrorConstructor,\n provider: ProviderError as AnyErrorConstructor,\n chain: ChainError as AnyErrorConstructor,\n signing: SigningError as AnyErrorConstructor,\n state: StateError as AnyErrorConstructor,\n timeout: TimeoutError as AnyErrorConstructor,\n};\n\nexport function createError(\n code: ErrorCode,\n message: string,\n options?: CryptoAioErrorOptions,\n): CryptoAioError {\n const Ctor = BY_CATEGORY[ERROR_CODES[code].category];\n return new Ctor(code, message, options);\n}\n\nexport function isCryptoAioError(\n value: unknown,\n code?: ErrorCode,\n): value is CryptoAioError {\n return value instanceof CryptoAioError && (code === undefined || value.code === code);\n}\n\n/**\n * Returns a copy of `error` (same class, same stack) with merged context, and optional flag\n * and `details` overrides. The copy keeps the stack of the error it reports.\n */\nexport function withContext(\n error: CryptoAioError,\n context: ErrorContext,\n overrides: {\n readonly ambiguous?: boolean;\n readonly retryable?: boolean;\n readonly details?: Readonly<Record<string, unknown>>;\n } = {},\n): CryptoAioError {\n const Ctor = error.constructor as AnyErrorConstructor;\n const details = overrides.details ?? error.details;\n const copy = new Ctor(error.code, error.message, {\n cause: error.cause,\n context: { ...error.context, ...context },\n ...(details ? { details } : {}),\n retryable: overrides.retryable ?? error.retryable,\n ambiguous: overrides.ambiguous ?? error.ambiguous,\n });\n if (error.stack !== undefined) {\n Object.defineProperty(copy, 'stack', {\n value: error.stack,\n writable: true,\n configurable: true,\n });\n }\n return copy;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import type { Clock } from '../util/clock';
2
+ import type { Logger } from './logger';
3
+ import type { AioEvent, AioEventName, AioEvents } from './types';
4
+ export declare class EventBus {
5
+ #private;
6
+ private readonly clock;
7
+ private readonly log;
8
+ constructor(clock: Clock, log: Logger);
9
+ on<E extends AioEventName>(type: E, handler: (event: AioEvent<E>) => void): () => void;
10
+ onAny(handler: (event: AioEvent) => void): () => void;
11
+ emit<E extends AioEventName>(type: E, payload: AioEvents[E]): void;
12
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventBus = void 0;
4
+ const error_1 = require("../errors/error");
5
+ class EventBus {
6
+ clock;
7
+ log;
8
+ #handlers = new Map();
9
+ #any = new Set();
10
+ constructor(clock, log) {
11
+ this.clock = clock;
12
+ this.log = log;
13
+ }
14
+ on(type, handler) {
15
+ const set = this.#handlers.get(type) ?? new Set();
16
+ this.#handlers.set(type, set);
17
+ const h = handler;
18
+ set.add(h);
19
+ return () => {
20
+ set.delete(h);
21
+ };
22
+ }
23
+ onAny(handler) {
24
+ this.#any.add(handler);
25
+ return () => {
26
+ this.#any.delete(handler);
27
+ };
28
+ }
29
+ emit(type, payload) {
30
+ const event = { ...payload, type, at: this.clock.now() };
31
+ for (const handler of [...(this.#handlers.get(type) ?? []), ...this.#any]) {
32
+ try {
33
+ handler(event);
34
+ }
35
+ catch (error) {
36
+ // The code only; a handler's error message may carry anything.
37
+ this.log.warn('event handler threw', {
38
+ type,
39
+ code: (0, error_1.isCryptoAioError)(error) ? error.code : 'UNKNOWN',
40
+ });
41
+ }
42
+ }
43
+ }
44
+ }
45
+ exports.EventBus = EventBus;
46
+ //# sourceMappingURL=bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/core/events/bus.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAOnD,MAAa,QAAQ;IAKA;IACA;IALV,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IACrD,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;IAEtC,YACmB,KAAY,EACZ,GAAW;QADX,UAAK,GAAL,KAAK,CAAO;QACZ,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,EAAE,CAAyB,IAAO,EAAE,OAAqC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAc,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,OAAgC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAkC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAyB,IAAO,EAAE,OAAqB;QACzD,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAc,CAAC;QACrE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,+DAA+D;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBACnC,IAAI;oBACJ,IAAI,EAAE,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxCD,4BAwCC","sourcesContent":["import { isCryptoAioError } from '../errors/error';\nimport type { Clock } from '../util/clock';\nimport type { Logger } from './logger';\nimport type { AioEvent, AioEventName, AioEvents } from './types';\n\ntype AnyHandler = (event: AioEvent) => void;\n\nexport class EventBus {\n readonly #handlers = new Map<AioEventName, Set<AnyHandler>>();\n readonly #any = new Set<AnyHandler>();\n\n constructor(\n private readonly clock: Clock,\n private readonly log: Logger,\n ) {}\n\n on<E extends AioEventName>(type: E, handler: (event: AioEvent<E>) => void): () => void {\n const set = this.#handlers.get(type) ?? new Set<AnyHandler>();\n this.#handlers.set(type, set);\n const h = handler as unknown as AnyHandler;\n set.add(h);\n return () => {\n set.delete(h);\n };\n }\n\n onAny(handler: (event: AioEvent) => void): () => void {\n this.#any.add(handler);\n return () => {\n this.#any.delete(handler);\n };\n }\n\n emit<E extends AioEventName>(type: E, payload: AioEvents[E]): void {\n const event = { ...payload, type, at: this.clock.now() } as AioEvent;\n for (const handler of [...(this.#handlers.get(type) ?? []), ...this.#any]) {\n try {\n handler(event);\n } catch (error) {\n // The code only; a handler's error message may carry anything.\n this.log.warn('event handler threw', {\n type,\n code: isCryptoAioError(error) ? error.code : 'UNKNOWN',\n });\n }\n }\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export type LogFields = Readonly<Record<string, unknown>>;
3
+ export interface Logger {
4
+ debug(message: string, fields?: LogFields): void;
5
+ info(message: string, fields?: LogFields): void;
6
+ warn(message: string, fields?: LogFields): void;
7
+ error(message: string, fields?: LogFields): void;
8
+ child(namespace: string): Logger;
9
+ }
10
+ export type LogWriter = (level: LogLevel, namespace: string, message: string, fields?: Record<string, unknown>) => void;
11
+ /** Structured logger; fields are always redacted before they reach the writer. */
12
+ export declare function createLogger(namespace?: string, write?: LogWriter): Logger;
13
+ export declare const noopLogger: Logger;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.noopLogger = void 0;
7
+ exports.createLogger = createLogger;
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const redact_1 = require("../secret/redact");
10
+ const debuggers = new Map();
11
+ const debugWriter = (level, namespace, message, fields) => {
12
+ const name = `${namespace}:${level}`;
13
+ let log = debuggers.get(name);
14
+ if (!log) {
15
+ log = (0, debug_1.default)(name);
16
+ debuggers.set(name, log);
17
+ }
18
+ if (fields && Object.keys(fields).length > 0)
19
+ log('%s %o', message, fields);
20
+ else
21
+ log('%s', message);
22
+ };
23
+ /** Structured logger; fields are always redacted before they reach the writer. */
24
+ function createLogger(namespace = 'crypto-aio', write = debugWriter) {
25
+ const emit = (level) => (message, fields) => write(level, namespace, (0, redact_1.redactText)(message), fields ? (0, redact_1.redactDeep)(fields) : undefined);
26
+ return {
27
+ debug: emit('debug'),
28
+ info: emit('info'),
29
+ warn: emit('warn'),
30
+ error: emit('error'),
31
+ child: (child) => createLogger(`${namespace}:${child}`, write),
32
+ };
33
+ }
34
+ const noop = () => undefined;
35
+ exports.noopLogger = {
36
+ debug: noop,
37
+ info: noop,
38
+ warn: noop,
39
+ error: noop,
40
+ child: () => exports.noopLogger,
41
+ };
42
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/events/logger.ts"],"names":[],"mappings":";;;;;;AAmCA,oCAkBC;AArDD,kDAAgC;AAChC,6CAA0D;AAoB1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE1D,MAAM,WAAW,GAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACnE,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,IAAA,eAAW,EAAC,IAAI,CAAC,CAAC;QACxB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;;QACvE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,kFAAkF;AAClF,SAAgB,YAAY,CAC1B,SAAS,GAAG,YAAY,EACxB,QAAmB,WAAW;IAE9B,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,MAAkB,EAAE,EAAE,CACxE,KAAK,CACH,KAAK,EACL,SAAS,EACT,IAAA,mBAAU,EAAC,OAAO,CAAC,EACnB,MAAM,CAAC,CAAC,CAAE,IAAA,mBAAU,EAAC,MAAM,CAA6B,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC;IACJ,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QACpB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;AAEtB,QAAA,UAAU,GAAW;IAChC,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG,EAAE,CAAC,kBAAU;CACxB,CAAC","sourcesContent":["import createDebug from 'debug';\nimport { redactDeep, redactText } from '../secret/redact';\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\nexport type LogFields = Readonly<Record<string, unknown>>;\n\nexport interface Logger {\n debug(message: string, fields?: LogFields): void;\n info(message: string, fields?: LogFields): void;\n warn(message: string, fields?: LogFields): void;\n error(message: string, fields?: LogFields): void;\n child(namespace: string): Logger;\n}\n\nexport type LogWriter = (\n level: LogLevel,\n namespace: string,\n message: string,\n fields?: Record<string, unknown>,\n) => void;\n\nconst debuggers = new Map<string, createDebug.Debugger>();\n\nconst debugWriter: LogWriter = (level, namespace, message, fields) => {\n const name = `${namespace}:${level}`;\n let log = debuggers.get(name);\n if (!log) {\n log = createDebug(name);\n debuggers.set(name, log);\n }\n if (fields && Object.keys(fields).length > 0) log('%s %o', message, fields);\n else log('%s', message);\n};\n\n/** Structured logger; fields are always redacted before they reach the writer. */\nexport function createLogger(\n namespace = 'crypto-aio',\n write: LogWriter = debugWriter,\n): Logger {\n const emit = (level: LogLevel) => (message: string, fields?: LogFields) =>\n write(\n level,\n namespace,\n redactText(message),\n fields ? (redactDeep(fields) as Record<string, unknown>) : undefined,\n );\n return {\n debug: emit('debug'),\n info: emit('info'),\n warn: emit('warn'),\n error: emit('error'),\n child: (child) => createLogger(`${namespace}:${child}`, write),\n };\n}\n\nconst noop = (): void => undefined;\n\nexport const noopLogger: Logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n child: () => noopLogger,\n};\n"]}
@@ -0,0 +1,131 @@
1
+ import type { Evidence, TxState } from '../model/transaction';
2
+ import type { OperationState } from '../store/types';
3
+ /** Every payload is operational-class data only (no addresses, amounts, raw txs or URLs). */
4
+ export interface AioEvents {
5
+ 'rpc.request': {
6
+ transportId: string;
7
+ endpointId: string;
8
+ method: string;
9
+ attempt: number;
10
+ };
11
+ 'rpc.response': {
12
+ transportId: string;
13
+ endpointId: string;
14
+ method: string;
15
+ latencyMs: number;
16
+ bytes: number;
17
+ };
18
+ 'rpc.error': {
19
+ transportId: string;
20
+ endpointId: string;
21
+ method: string;
22
+ latencyMs: number;
23
+ code: string;
24
+ retryable: boolean;
25
+ };
26
+ 'provider.health': {
27
+ transportId: string;
28
+ endpointId: string;
29
+ state: 'healthy' | 'lagging' | 'open' | 'disabled';
30
+ height?: string;
31
+ lag?: string;
32
+ };
33
+ 'provider.misconfigured': {
34
+ transportId: string;
35
+ endpointId: string;
36
+ expected: string;
37
+ actual: string;
38
+ };
39
+ 'provider.inconsistent': {
40
+ transportId: string;
41
+ method: string;
42
+ endpointIds: readonly string[];
43
+ };
44
+ 'operation.state': {
45
+ namespace: string;
46
+ operationId: string;
47
+ chain: string;
48
+ network: string;
49
+ from: OperationState | null;
50
+ to: OperationState;
51
+ code?: string;
52
+ };
53
+ 'operation.stalled': {
54
+ namespace: string;
55
+ operationId: string;
56
+ code: string;
57
+ };
58
+ 'attempt.state': {
59
+ namespace: string;
60
+ operationId: string;
61
+ attemptId: string;
62
+ state: TxState;
63
+ evidence: Evidence;
64
+ };
65
+ 'tx.reorged': {
66
+ namespace: string;
67
+ operationId?: string;
68
+ attemptId?: string;
69
+ previousBlockHash: string;
70
+ };
71
+ 'nonce.allocated': {
72
+ namespace: string;
73
+ chain: string;
74
+ network: string;
75
+ operationId: string;
76
+ /** The nonce or seqno: an operational identifier, never UTXO inputs. */
77
+ value: string;
78
+ };
79
+ /**
80
+ * A submitted Operation has waited past the grace period while the chain's pending nonce
81
+ * (`expected`) is below its own. At-least-once: a monitor reports each (Operation,
82
+ * expected) once, but that memory is per process and bounded, so the same gap is reported
83
+ * again after a restart, by another process, or once it was forgotten.
84
+ */
85
+ 'nonce.gap': {
86
+ namespace: string;
87
+ chain: string;
88
+ network: string;
89
+ operationId: string;
90
+ /** The chain's pending nonce: an operational identifier. */
91
+ expected: string;
92
+ blockingOperationId?: string;
93
+ };
94
+ 'signer.requested': {
95
+ namespace: string;
96
+ operationId: string;
97
+ signerId: string;
98
+ requests: number;
99
+ };
100
+ 'signer.completed': {
101
+ namespace: string;
102
+ operationId: string;
103
+ signerId: string;
104
+ status: 'signed' | 'pending' | 'error';
105
+ latencyMs: number;
106
+ };
107
+ 'scanner.block': {
108
+ namespace: string;
109
+ cursorKey: string;
110
+ height: string;
111
+ };
112
+ 'scanner.rollback': {
113
+ namespace: string;
114
+ cursorKey: string;
115
+ toHeight: string;
116
+ removed: number;
117
+ };
118
+ 'recovery.skipped': {
119
+ namespace: string;
120
+ operationId: string;
121
+ state: OperationState;
122
+ reason: string;
123
+ };
124
+ }
125
+ export type AioEventName = keyof AioEvents;
126
+ export type AioEvent<E extends AioEventName = AioEventName> = {
127
+ [K in E]: AioEvents[K] & {
128
+ readonly type: K;
129
+ readonly at: number;
130
+ };
131
+ }[E];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/events/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Evidence, TxState } from '../model/transaction';\nimport type { OperationState } from '../store/types';\n\n/** Every payload is operational-class data only (no addresses, amounts, raw txs or URLs). */\nexport interface AioEvents {\n 'rpc.request': {\n transportId: string;\n endpointId: string;\n method: string;\n attempt: number;\n };\n 'rpc.response': {\n transportId: string;\n endpointId: string;\n method: string;\n latencyMs: number;\n bytes: number;\n };\n 'rpc.error': {\n transportId: string;\n endpointId: string;\n method: string;\n latencyMs: number;\n code: string;\n retryable: boolean;\n };\n 'provider.health': {\n transportId: string;\n endpointId: string;\n state: 'healthy' | 'lagging' | 'open' | 'disabled';\n height?: string;\n lag?: string;\n };\n 'provider.misconfigured': {\n transportId: string;\n endpointId: string;\n expected: string;\n actual: string;\n };\n 'provider.inconsistent': {\n transportId: string;\n method: string;\n endpointIds: readonly string[];\n };\n 'operation.state': {\n namespace: string;\n operationId: string;\n chain: string;\n network: string;\n from: OperationState | null;\n to: OperationState;\n code?: string;\n };\n 'operation.stalled': { namespace: string; operationId: string; code: string };\n 'attempt.state': {\n namespace: string;\n operationId: string;\n attemptId: string;\n state: TxState;\n evidence: Evidence;\n };\n 'tx.reorged': {\n namespace: string;\n operationId?: string;\n attemptId?: string;\n previousBlockHash: string;\n };\n 'nonce.allocated': {\n namespace: string;\n chain: string;\n network: string;\n operationId: string;\n /** The nonce or seqno: an operational identifier, never UTXO inputs. */\n value: string;\n };\n /**\n * A submitted Operation has waited past the grace period while the chain's pending nonce\n * (`expected`) is below its own. At-least-once: a monitor reports each (Operation,\n * expected) once, but that memory is per process and bounded, so the same gap is reported\n * again after a restart, by another process, or once it was forgotten.\n */\n 'nonce.gap': {\n namespace: string;\n chain: string;\n network: string;\n operationId: string;\n /** The chain's pending nonce: an operational identifier. */\n expected: string;\n blockingOperationId?: string;\n };\n 'signer.requested': {\n namespace: string;\n operationId: string;\n signerId: string;\n requests: number;\n };\n 'signer.completed': {\n namespace: string;\n operationId: string;\n signerId: string;\n status: 'signed' | 'pending' | 'error';\n latencyMs: number;\n };\n 'scanner.block': { namespace: string; cursorKey: string; height: string };\n 'scanner.rollback': {\n namespace: string;\n cursorKey: string;\n toHeight: string;\n removed: number;\n };\n 'recovery.skipped': {\n namespace: string;\n operationId: string;\n state: OperationState;\n reason: string;\n };\n}\n\nexport type AioEventName = keyof AioEvents;\n\nexport type AioEvent<E extends AioEventName = AioEventName> = {\n [K in E]: AioEvents[K] & { readonly type: K; readonly at: number };\n}[E];\n"]}
@@ -0,0 +1,106 @@
1
+ import type { LifecycleOptions } from '../config/types';
2
+ import { type CryptoAioError, type ErrorCode, type SerializedError } from '../errors/error';
3
+ import type { FeeOverride, FeeSpeed } from '../model/fee';
4
+ import type { OrderingData, OrderingKind } from '../model/ordering';
5
+ import type { TxState, UnsignedTx } from '../model/transaction';
6
+ import type { AttemptObservation, AttemptRecord, OperationRecord, OperationState, SequenceState } from '../store/types';
7
+ import type { ObservationPatch } from './observations';
8
+ export type ResolvedLifecycle = Required<LifecycleOptions>;
9
+ export declare const LIFECYCLE_DEFAULTS: ResolvedLifecycle;
10
+ export declare function withLifecycleDefaults(options: LifecycleOptions): ResolvedLifecycle;
11
+ export declare const PRE_SIGNING_STATES: ReadonlySet<OperationState>;
12
+ export declare const LEASED_ORDERINGS: Set<string>;
13
+ export declare const DEFINITIVE_CATEGORIES: Set<string>;
14
+ /**
15
+ * A crypto-aio error as it is; anything else under `fallback`, the most specific
16
+ * existing code for the caller's context (there is no generic code), with a sanitized message.
17
+ */
18
+ export declare function serializeError(error: unknown, fallback: ErrorCode): SerializedError;
19
+ export declare function rehydrateError(serialized: SerializedError, operationId: string): Error;
20
+ /**
21
+ * The error's crypto-aio code, or `'UNKNOWN'`. Logs carry this, never the error itself:
22
+ * messages may hold addresses, amounts or store detail.
23
+ */
24
+ export declare function errorCode(error: unknown): string;
25
+ export declare function isDefinitive(error: unknown): error is CryptoAioError;
26
+ /**
27
+ * Observation states backed by chain evidence: the Attempt was mined, or its slot or expiry
28
+ * was consumed. No broadcast answer ever overwrites them; `replacedBy` is kept.
29
+ */
30
+ export declare const CHAIN_EVIDENCE_STATES: ReadonlySet<TxState>;
31
+ /**
32
+ * A node once accepted these bytes, or they may be live. `firstSeenAt` is the durable
33
+ * marker: set when a node accepted them or the monitor saw them held, and kept by a refusal
34
+ * that found them possibly live. A `pending`, `mempool` or `dropped` observation also
35
+ * counts: one left by an accepted or ambiguous send, and the `pending` the monitor
36
+ * writes for a signed Attempt that was never broadcast, which errs in the safe direction
37
+ * (a genuine rejection then stalls it and keeps its nonce instead of failing it). A later
38
+ * rejection says nothing about bytes that may still sit in a mempool, so it is only a
39
+ * refusal: never terminal, the nonce is kept.
40
+ */
41
+ export declare function mayBeLive(observation: AttemptObservation | null): boolean;
42
+ /**
43
+ * A send that may have delivered the bytes (accepted, already known or ambiguous): a
44
+ * missing, `refused` or `dropped` observation becomes `pending`, and a refusal's reason no
45
+ * longer applies. Stronger evidence (chain or proven states) is left alone. The one rule
46
+ * for every such send, so they cannot drift apart. Known gap: an ambiguous send clears a
47
+ * refusal and its reason, so the monitor then shows bytes the node still refuses as
48
+ * `dropped`, not `refused`; only a resend through the engine (a same-key repeat,
49
+ * `rebroadcast`, recovery) records the refusal again.
50
+ */
51
+ export declare function pendingAfterSend(current: AttemptObservation | null): ObservationPatch;
52
+ /** Every nonce a live Operation holds: its reservation, unsigned payload and Attempts. */
53
+ export declare function heldNonces(op: OperationRecord): bigint[];
54
+ /** Failures proven on chain at finality: their nonce was consumed. */
55
+ export declare const CONSUMED_FAILURES: ReadonlySet<string>;
56
+ /** Whether some value in [from, next) is neither released nor held. */
57
+ export declare function hasReclaimable(state: SequenceState | null, from: bigint, held: readonly bigint[]): boolean;
58
+ /** `signed`, or `submitted` with an unknown broadcast outcome: its stored bytes are (re)sent. */
59
+ export declare function awaitsBroadcast(op: OperationRecord): boolean;
60
+ /** The node's own answer (refused, rejected): not ambiguous, so the bytes were not taken. */
61
+ export declare function isRefusal(error: unknown): boolean;
62
+ /**
63
+ * A replacement records the fee spec it was asked for (plain data, as every store record
64
+ * must be) in its fee details, so a repeat of the same request is recognised instead of
65
+ * signed again. The core adds it after `build`, so a driver never sets or reads it: its
66
+ * `assemble` reads only the fee fields it named itself.
67
+ */
68
+ export declare function withRequestedFee(unsigned: UnsignedTx, fee: FeeSpeed | FeeOverride): UnsignedTx;
69
+ /** An Attempt's total fee, summed over its charges. */
70
+ export declare function feeOf(attempt: AttemptRecord): bigint;
71
+ /**
72
+ * The cancel a new cancel is bumped from: among the earlier cancels that superseded
73
+ * the active Attempt `previous` (refused ones gave it the active role back), the one paying
74
+ * the most, so repeated bumps climb; otherwise `previous` itself, so a cancel never starts
75
+ * below a newer, higher replacement. Fees are compared only between cancels: by the
76
+ * driver's `comparePrice` when it has one, otherwise by total charges.
77
+ */
78
+ export declare function cancelBase(op: OperationRecord, previous: AttemptRecord, comparePrice?: (a: UnsignedTx, b: UnsignedTx) => number): AttemptRecord;
79
+ /** The same `FeeSpeed` name, or a canonically equal `FeeOverride`. */
80
+ export declare function sameFeeSpec(attempt: AttemptRecord, fee: FeeSpeed | FeeOverride | undefined): boolean;
81
+ /**
82
+ * What `restoreAfterRefusal` puts back: the Operation as the refused Attempt found it.
83
+ * Without `state`, only the active Attempt is swapped (state and error are kept).
84
+ */
85
+ export interface RestorePoint {
86
+ readonly state?: OperationState;
87
+ readonly activeAttemptId: string;
88
+ readonly error?: SerializedError;
89
+ readonly ambiguous?: boolean;
90
+ }
91
+ /** A node's refusal or rejection of these bytes; both are handled alike. */
92
+ export declare const NODE_REFUSED_STATES: ReadonlySet<TxState>;
93
+ /** Observations under which a superseded Attempt may still be live on the network. */
94
+ export declare const LIVE_STATES: ReadonlySet<TxState>;
95
+ /** The states in which a replacement or cancel may supersede the active Attempt. */
96
+ export declare const CONFLICTABLE_STATES: ReadonlySet<OperationState>;
97
+ /** The only state `rebuild` reopens. */
98
+ export declare const REBUILDABLE_STATES: ReadonlySet<OperationState>;
99
+ /** Where the stored bytes of a new Attempt whose broadcast never completed are resent. */
100
+ export declare const RESUMABLE_STATES: ReadonlySet<OperationState>;
101
+ /**
102
+ * The built transaction must use exactly the slot the engine reserved: the ordering
103
+ * kind of the driver, the allocated nonce or seqno, and no input held by another live
104
+ * Operation. Anything else would persist a reservation nobody allocated.
105
+ */
106
+ export declare function assertBuiltOrdering(operationId: string, kind: OrderingKind, allocated: OrderingData | undefined, excluded: readonly string[] | undefined, built: OrderingData): void;