crypto-aio 0.0.2 → 0.1.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 (672) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +144 -14
  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 +326 -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 +170 -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 +135 -0
  80. package/dist/adapters/evm/ethers-client.js.map +1 -0
  81. package/dist/adapters/evm/fees.d.ts +79 -0
  82. package/dist/adapters/evm/fees.js +234 -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 +11 -0
  86. package/dist/adapters/evm/index.js.map +1 -0
  87. package/dist/adapters/evm/network.d.ts +60 -0
  88. package/dist/adapters/evm/network.js +131 -0
  89. package/dist/adapters/evm/network.js.map +1 -0
  90. package/dist/adapters/evm/plugin.d.ts +36 -0
  91. package/dist/adapters/evm/plugin.js +102 -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 +358 -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 +65 -0
  103. package/dist/adapters/evm/reader.js +292 -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 +7 -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 +255 -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 +23 -0
  115. package/dist/adapters/evm/web3-client.js +159 -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 +545 -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 +68 -0
  133. package/dist/adapters/solana/fees.js +205 -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/network.d.ts +24 -0
  148. package/dist/adapters/solana/network.js +95 -0
  149. package/dist/adapters/solana/network.js.map +1 -0
  150. package/dist/adapters/solana/plugin.d.ts +18 -0
  151. package/dist/adapters/solana/plugin.js +41 -0
  152. package/dist/adapters/solana/plugin.js.map +1 -0
  153. package/dist/adapters/solana/presets.d.ts +2 -0
  154. package/dist/adapters/solana/presets.js +77 -0
  155. package/dist/adapters/solana/presets.js.map +1 -0
  156. package/dist/adapters/solana/programs.d.ts +44 -0
  157. package/dist/adapters/solana/programs.js +159 -0
  158. package/dist/adapters/solana/programs.js.map +1 -0
  159. package/dist/adapters/solana/proofs.d.ts +56 -0
  160. package/dist/adapters/solana/proofs.js +540 -0
  161. package/dist/adapters/solana/proofs.js.map +1 -0
  162. package/dist/adapters/solana/reader.d.ts +82 -0
  163. package/dist/adapters/solana/reader.js +326 -0
  164. package/dist/adapters/solana/reader.js.map +1 -0
  165. package/dist/adapters/solana/rpc.d.ts +102 -0
  166. package/dist/adapters/solana/rpc.js +301 -0
  167. package/dist/adapters/solana/rpc.js.map +1 -0
  168. package/dist/adapters/solana/tokens.d.ts +7 -0
  169. package/dist/adapters/solana/tokens.js +19 -0
  170. package/dist/adapters/solana/tokens.js.map +1 -0
  171. package/dist/adapters/solana/types.d.ts +121 -0
  172. package/dist/{type/lib-types.js → adapters/solana/types.js} +1 -1
  173. package/dist/adapters/solana/types.js.map +1 -0
  174. package/dist/adapters/solana/web3.d.ts +5 -0
  175. package/dist/adapters/solana/web3.js +83 -0
  176. package/dist/adapters/solana/web3.js.map +1 -0
  177. package/dist/adapters/solana/wire.d.ts +62 -0
  178. package/dist/adapters/solana/wire.js +168 -0
  179. package/dist/adapters/solana/wire.js.map +1 -0
  180. package/dist/adapters/ton/address.d.ts +43 -0
  181. package/dist/adapters/ton/address.js +168 -0
  182. package/dist/adapters/ton/address.js.map +1 -0
  183. package/dist/adapters/ton/api.d.ts +344 -0
  184. package/dist/adapters/ton/api.js +942 -0
  185. package/dist/adapters/ton/api.js.map +1 -0
  186. package/dist/adapters/ton/builder.d.ts +18 -0
  187. package/dist/adapters/ton/builder.js +701 -0
  188. package/dist/adapters/ton/builder.js.map +1 -0
  189. package/dist/adapters/ton/chains.d.ts +16 -0
  190. package/dist/adapters/ton/chains.js +39 -0
  191. package/dist/adapters/ton/chains.js.map +1 -0
  192. package/dist/adapters/ton/decode.d.ts +43 -0
  193. package/dist/adapters/ton/decode.js +219 -0
  194. package/dist/adapters/ton/decode.js.map +1 -0
  195. package/dist/adapters/ton/driver.d.ts +10 -0
  196. package/dist/adapters/ton/driver.js +117 -0
  197. package/dist/adapters/ton/driver.js.map +1 -0
  198. package/dist/adapters/ton/errors.d.ts +36 -0
  199. package/dist/adapters/ton/errors.js +89 -0
  200. package/dist/adapters/ton/errors.js.map +1 -0
  201. package/dist/adapters/ton/fees.d.ts +28 -0
  202. package/dist/adapters/ton/fees.js +121 -0
  203. package/dist/adapters/ton/fees.js.map +1 -0
  204. package/dist/adapters/ton/index.d.ts +16 -0
  205. package/dist/adapters/ton/index.js +9 -0
  206. package/dist/adapters/ton/index.js.map +1 -0
  207. package/dist/adapters/ton/messages.d.ts +157 -0
  208. package/dist/adapters/ton/messages.js +397 -0
  209. package/dist/adapters/ton/messages.js.map +1 -0
  210. package/dist/adapters/ton/native-client.d.ts +10 -0
  211. package/dist/adapters/ton/native-client.js +47 -0
  212. package/dist/adapters/ton/native-client.js.map +1 -0
  213. package/dist/adapters/ton/network.d.ts +58 -0
  214. package/dist/adapters/ton/network.js +207 -0
  215. package/dist/adapters/ton/network.js.map +1 -0
  216. package/dist/adapters/ton/plugin.d.ts +24 -0
  217. package/dist/adapters/ton/plugin.js +57 -0
  218. package/dist/adapters/ton/plugin.js.map +1 -0
  219. package/dist/adapters/ton/presets.d.ts +6 -0
  220. package/dist/adapters/ton/presets.js +94 -0
  221. package/dist/adapters/ton/presets.js.map +1 -0
  222. package/dist/adapters/ton/proofs.d.ts +66 -0
  223. package/dist/adapters/ton/proofs.js +813 -0
  224. package/dist/adapters/ton/proofs.js.map +1 -0
  225. package/dist/adapters/ton/reader.d.ts +194 -0
  226. package/dist/adapters/ton/reader.js +781 -0
  227. package/dist/adapters/ton/reader.js.map +1 -0
  228. package/dist/adapters/ton/tokens.d.ts +10 -0
  229. package/dist/adapters/ton/tokens.js +27 -0
  230. package/dist/adapters/ton/tokens.js.map +1 -0
  231. package/dist/adapters/ton/trace.d.ts +48 -0
  232. package/dist/adapters/ton/trace.js +277 -0
  233. package/dist/adapters/ton/trace.js.map +1 -0
  234. package/dist/adapters/ton/types.d.ts +105 -0
  235. package/dist/adapters/ton/types.js +3 -0
  236. package/dist/adapters/ton/types.js.map +1 -0
  237. package/dist/adapters/ton/wallets.d.ts +86 -0
  238. package/dist/adapters/ton/wallets.js +373 -0
  239. package/dist/adapters/ton/wallets.js.map +1 -0
  240. package/dist/adapters/tron/abi.d.ts +39 -0
  241. package/dist/adapters/tron/abi.js +110 -0
  242. package/dist/adapters/tron/abi.js.map +1 -0
  243. package/dist/adapters/tron/address.d.ts +20 -0
  244. package/dist/adapters/tron/address.js +110 -0
  245. package/dist/adapters/tron/address.js.map +1 -0
  246. package/dist/adapters/tron/builder.d.ts +12 -0
  247. package/dist/adapters/tron/builder.js +553 -0
  248. package/dist/adapters/tron/builder.js.map +1 -0
  249. package/dist/adapters/tron/chains.d.ts +12 -0
  250. package/dist/adapters/tron/chains.js +35 -0
  251. package/dist/adapters/tron/chains.js.map +1 -0
  252. package/dist/adapters/tron/codec.d.ts +10 -0
  253. package/dist/adapters/tron/codec.js +322 -0
  254. package/dist/adapters/tron/codec.js.map +1 -0
  255. package/dist/adapters/tron/decode.d.ts +50 -0
  256. package/dist/adapters/tron/decode.js +280 -0
  257. package/dist/adapters/tron/decode.js.map +1 -0
  258. package/dist/adapters/tron/driver.d.ts +12 -0
  259. package/dist/adapters/tron/driver.js +106 -0
  260. package/dist/adapters/tron/driver.js.map +1 -0
  261. package/dist/adapters/tron/errors.d.ts +74 -0
  262. package/dist/adapters/tron/errors.js +261 -0
  263. package/dist/adapters/tron/errors.js.map +1 -0
  264. package/dist/adapters/tron/fees.d.ts +49 -0
  265. package/dist/adapters/tron/fees.js +166 -0
  266. package/dist/adapters/tron/fees.js.map +1 -0
  267. package/dist/adapters/tron/http.d.ts +173 -0
  268. package/dist/adapters/tron/http.js +729 -0
  269. package/dist/adapters/tron/http.js.map +1 -0
  270. package/dist/adapters/tron/index.d.ts +16 -0
  271. package/dist/adapters/tron/index.js +15 -0
  272. package/dist/adapters/tron/index.js.map +1 -0
  273. package/dist/adapters/tron/network.d.ts +44 -0
  274. package/dist/adapters/tron/network.js +163 -0
  275. package/dist/adapters/tron/network.js.map +1 -0
  276. package/dist/adapters/tron/plugin.d.ts +17 -0
  277. package/dist/adapters/tron/plugin.js +39 -0
  278. package/dist/adapters/tron/plugin.js.map +1 -0
  279. package/dist/adapters/tron/presets.d.ts +5 -0
  280. package/dist/adapters/tron/presets.js +68 -0
  281. package/dist/adapters/tron/presets.js.map +1 -0
  282. package/dist/adapters/tron/proofs.d.ts +80 -0
  283. package/dist/adapters/tron/proofs.js +370 -0
  284. package/dist/adapters/tron/proofs.js.map +1 -0
  285. package/dist/adapters/tron/protobuf.d.ts +36 -0
  286. package/dist/adapters/tron/protobuf.js +90 -0
  287. package/dist/adapters/tron/protobuf.js.map +1 -0
  288. package/dist/adapters/tron/reader.d.ts +47 -0
  289. package/dist/adapters/tron/reader.js +203 -0
  290. package/dist/adapters/tron/reader.js.map +1 -0
  291. package/dist/adapters/tron/tokens.d.ts +7 -0
  292. package/dist/adapters/tron/tokens.js +14 -0
  293. package/dist/adapters/tron/tokens.js.map +1 -0
  294. package/dist/adapters/tron/types.d.ts +166 -0
  295. package/dist/adapters/tron/types.js +3 -0
  296. package/dist/adapters/tron/types.js.map +1 -0
  297. package/dist/adapters/utxo/address.d.ts +51 -0
  298. package/dist/adapters/utxo/address.js +341 -0
  299. package/dist/adapters/utxo/address.js.map +1 -0
  300. package/dist/adapters/utxo/builder.d.ts +35 -0
  301. package/dist/adapters/utxo/builder.js +380 -0
  302. package/dist/adapters/utxo/builder.js.map +1 -0
  303. package/dist/adapters/utxo/chains.d.ts +17 -0
  304. package/dist/adapters/utxo/chains.js +99 -0
  305. package/dist/adapters/utxo/chains.js.map +1 -0
  306. package/dist/adapters/utxo/codec.d.ts +120 -0
  307. package/dist/adapters/utxo/codec.js +408 -0
  308. package/dist/adapters/utxo/codec.js.map +1 -0
  309. package/dist/adapters/utxo/coinselect.d.ts +48 -0
  310. package/dist/adapters/utxo/coinselect.js +131 -0
  311. package/dist/adapters/utxo/coinselect.js.map +1 -0
  312. package/dist/adapters/utxo/context.d.ts +57 -0
  313. package/dist/adapters/utxo/context.js +118 -0
  314. package/dist/adapters/utxo/context.js.map +1 -0
  315. package/dist/adapters/utxo/decode.d.ts +14 -0
  316. package/dist/adapters/utxo/decode.js +85 -0
  317. package/dist/adapters/utxo/decode.js.map +1 -0
  318. package/dist/adapters/utxo/driver.d.ts +16 -0
  319. package/dist/adapters/utxo/driver.js +74 -0
  320. package/dist/adapters/utxo/driver.js.map +1 -0
  321. package/dist/adapters/utxo/ecc.d.ts +9 -0
  322. package/dist/adapters/utxo/ecc.js +26 -0
  323. package/dist/adapters/utxo/ecc.js.map +1 -0
  324. package/dist/adapters/utxo/errors.d.ts +52 -0
  325. package/dist/adapters/utxo/errors.js +191 -0
  326. package/dist/adapters/utxo/errors.js.map +1 -0
  327. package/dist/adapters/utxo/esplora.d.ts +79 -0
  328. package/dist/adapters/utxo/esplora.js +451 -0
  329. package/dist/adapters/utxo/esplora.js.map +1 -0
  330. package/dist/adapters/utxo/fees.d.ts +41 -0
  331. package/dist/adapters/utxo/fees.js +125 -0
  332. package/dist/adapters/utxo/fees.js.map +1 -0
  333. package/dist/adapters/utxo/index.d.ts +17 -0
  334. package/dist/adapters/utxo/index.js +8 -0
  335. package/dist/adapters/utxo/index.js.map +1 -0
  336. package/dist/adapters/utxo/network.d.ts +50 -0
  337. package/dist/adapters/utxo/network.js +165 -0
  338. package/dist/adapters/utxo/network.js.map +1 -0
  339. package/dist/adapters/utxo/plugin.d.ts +17 -0
  340. package/dist/adapters/utxo/plugin.js +41 -0
  341. package/dist/adapters/utxo/plugin.js.map +1 -0
  342. package/dist/adapters/utxo/presets.d.ts +12 -0
  343. package/dist/adapters/utxo/presets.js +47 -0
  344. package/dist/adapters/utxo/presets.js.map +1 -0
  345. package/dist/adapters/utxo/preview.d.ts +3 -0
  346. package/dist/adapters/utxo/preview.js +65 -0
  347. package/dist/adapters/utxo/preview.js.map +1 -0
  348. package/dist/adapters/utxo/proofs.d.ts +57 -0
  349. package/dist/adapters/utxo/proofs.js +331 -0
  350. package/dist/adapters/utxo/proofs.js.map +1 -0
  351. package/dist/adapters/utxo/rawtx.d.ts +59 -0
  352. package/dist/adapters/utxo/rawtx.js +234 -0
  353. package/dist/adapters/utxo/rawtx.js.map +1 -0
  354. package/dist/adapters/utxo/reader.d.ts +36 -0
  355. package/dist/adapters/utxo/reader.js +265 -0
  356. package/dist/adapters/utxo/reader.js.map +1 -0
  357. package/dist/adapters/utxo/sdk.d.ts +18 -0
  358. package/dist/adapters/utxo/sdk.js +17 -0
  359. package/dist/adapters/utxo/sdk.js.map +1 -0
  360. package/dist/adapters/utxo/signed-psbt.d.ts +36 -0
  361. package/dist/adapters/utxo/signed-psbt.js +428 -0
  362. package/dist/adapters/utxo/signed-psbt.js.map +1 -0
  363. package/dist/adapters/utxo/spend.d.ts +59 -0
  364. package/dist/adapters/utxo/spend.js +230 -0
  365. package/dist/adapters/utxo/spend.js.map +1 -0
  366. package/dist/adapters/utxo/types.d.ts +167 -0
  367. package/dist/adapters/utxo/types.js +3 -0
  368. package/dist/adapters/utxo/types.js.map +1 -0
  369. package/dist/core/assets/service.d.ts +18 -0
  370. package/dist/core/assets/service.js +69 -0
  371. package/dist/core/assets/service.js.map +1 -0
  372. package/dist/core/blockchain/default-ref.d.ts +4 -0
  373. package/dist/core/blockchain/default-ref.js +16 -0
  374. package/dist/core/blockchain/default-ref.js.map +1 -0
  375. package/dist/core/blockchain/handle.d.ts +200 -0
  376. package/dist/core/blockchain/handle.js +579 -0
  377. package/dist/core/blockchain/handle.js.map +1 -0
  378. package/dist/core/blockchain/internal.d.ts +19 -0
  379. package/dist/core/blockchain/internal.js +16 -0
  380. package/dist/core/blockchain/internal.js.map +1 -0
  381. package/dist/core/blockchain/mapping.d.ts +22 -0
  382. package/dist/core/blockchain/mapping.js +136 -0
  383. package/dist/core/blockchain/mapping.js.map +1 -0
  384. package/dist/core/config/env.d.ts +8 -0
  385. package/dist/core/config/env.js +60 -0
  386. package/dist/core/config/env.js.map +1 -0
  387. package/dist/core/config/merge.d.ts +26 -0
  388. package/dist/core/config/merge.js +144 -0
  389. package/dist/core/config/merge.js.map +1 -0
  390. package/dist/core/config/resolve.d.ts +12 -0
  391. package/dist/core/config/resolve.js +251 -0
  392. package/dist/core/config/resolve.js.map +1 -0
  393. package/dist/core/config/types.d.ts +165 -0
  394. package/dist/core/config/types.js +3 -0
  395. package/dist/core/config/types.js.map +1 -0
  396. package/dist/core/container/builtins.d.ts +4 -0
  397. package/dist/core/container/builtins.js +13 -0
  398. package/dist/core/container/builtins.js.map +1 -0
  399. package/dist/core/container/container.d.ts +69 -0
  400. package/dist/core/container/container.js +466 -0
  401. package/dist/core/container/container.js.map +1 -0
  402. package/dist/core/container/default.d.ts +15 -0
  403. package/dist/core/container/default.js +70 -0
  404. package/dist/core/container/default.js.map +1 -0
  405. package/dist/core/container/internals.d.ts +54 -0
  406. package/dist/core/container/internals.js +21 -0
  407. package/dist/core/container/internals.js.map +1 -0
  408. package/dist/core/container/pool.d.ts +27 -0
  409. package/dist/core/container/pool.js +77 -0
  410. package/dist/core/container/pool.js.map +1 -0
  411. package/dist/core/driver/types.d.ts +346 -0
  412. package/dist/core/driver/types.js +3 -0
  413. package/dist/core/driver/types.js.map +1 -0
  414. package/dist/core/errors/codes.d.ts +153 -0
  415. package/dist/core/errors/codes.js +49 -0
  416. package/dist/core/errors/codes.js.map +1 -0
  417. package/dist/core/errors/error.d.ts +66 -0
  418. package/dist/core/errors/error.js +129 -0
  419. package/dist/core/errors/error.js.map +1 -0
  420. package/dist/core/events/bus.d.ts +12 -0
  421. package/dist/core/events/bus.js +46 -0
  422. package/dist/core/events/bus.js.map +1 -0
  423. package/dist/core/events/logger.d.ts +13 -0
  424. package/dist/core/events/logger.js +42 -0
  425. package/dist/core/events/logger.js.map +1 -0
  426. package/dist/core/events/types.d.ts +131 -0
  427. package/dist/core/events/types.js +3 -0
  428. package/dist/core/events/types.js.map +1 -0
  429. package/dist/core/lifecycle/engine-rules.d.ts +107 -0
  430. package/dist/core/lifecycle/engine-rules.js +257 -0
  431. package/dist/core/lifecycle/engine-rules.js.map +1 -0
  432. package/dist/core/lifecycle/engine.d.ts +500 -0
  433. package/dist/core/lifecycle/engine.js +1732 -0
  434. package/dist/core/lifecycle/engine.js.map +1 -0
  435. package/dist/core/lifecycle/evaluate.d.ts +19 -0
  436. package/dist/core/lifecycle/evaluate.js +72 -0
  437. package/dist/core/lifecycle/evaluate.js.map +1 -0
  438. package/dist/core/lifecycle/intent.d.ts +11 -0
  439. package/dist/core/lifecycle/intent.js +88 -0
  440. package/dist/core/lifecycle/intent.js.map +1 -0
  441. package/dist/core/lifecycle/monitor.d.ts +138 -0
  442. package/dist/core/lifecycle/monitor.js +606 -0
  443. package/dist/core/lifecycle/monitor.js.map +1 -0
  444. package/dist/core/lifecycle/observations.d.ts +17 -0
  445. package/dist/core/lifecycle/observations.js +59 -0
  446. package/dist/core/lifecycle/observations.js.map +1 -0
  447. package/dist/core/lifecycle/reconcile.d.ts +58 -0
  448. package/dist/core/lifecycle/reconcile.js +112 -0
  449. package/dist/core/lifecycle/reconcile.js.map +1 -0
  450. package/dist/core/lifecycle/views.d.ts +49 -0
  451. package/dist/core/lifecycle/views.js +57 -0
  452. package/dist/core/lifecycle/views.js.map +1 -0
  453. package/dist/core/lifecycle/workers.d.ts +82 -0
  454. package/dist/core/lifecycle/workers.js +329 -0
  455. package/dist/core/lifecycle/workers.js.map +1 -0
  456. package/dist/core/model/address.d.ts +32 -0
  457. package/dist/core/model/address.js +43 -0
  458. package/dist/core/model/address.js.map +1 -0
  459. package/dist/core/model/amount.d.ts +25 -0
  460. package/dist/core/model/amount.js +102 -0
  461. package/dist/core/model/amount.js.map +1 -0
  462. package/dist/core/model/asset.d.ts +28 -0
  463. package/dist/core/model/asset.js +47 -0
  464. package/dist/core/model/asset.js.map +1 -0
  465. package/dist/core/model/capability.d.ts +3 -0
  466. package/dist/core/model/capability.js +18 -0
  467. package/dist/core/model/capability.js.map +1 -0
  468. package/dist/core/model/chain.d.ts +63 -0
  469. package/dist/core/model/chain.js +8 -0
  470. package/dist/core/model/chain.js.map +1 -0
  471. package/dist/core/model/fee.d.ts +36 -0
  472. package/dist/core/model/fee.js +17 -0
  473. package/dist/core/model/fee.js.map +1 -0
  474. package/dist/core/model/ids.d.ts +37 -0
  475. package/dist/core/model/ids.js +13 -0
  476. package/dist/core/model/ids.js.map +1 -0
  477. package/dist/core/model/intent.d.ts +63 -0
  478. package/dist/core/model/intent.js +81 -0
  479. package/dist/core/model/intent.js.map +1 -0
  480. package/dist/core/model/ordering.d.ts +20 -0
  481. package/dist/core/model/ordering.js +29 -0
  482. package/dist/core/model/ordering.js.map +1 -0
  483. package/dist/core/model/transaction.d.ts +116 -0
  484. package/dist/core/model/transaction.js +3 -0
  485. package/dist/core/model/transaction.js.map +1 -0
  486. package/dist/core/observe/scanner.d.ts +135 -0
  487. package/dist/core/observe/scanner.js +355 -0
  488. package/dist/core/observe/scanner.js.map +1 -0
  489. package/dist/core/ordering/reservations.d.ts +16 -0
  490. package/dist/core/ordering/reservations.js +53 -0
  491. package/dist/core/ordering/reservations.js.map +1 -0
  492. package/dist/core/ordering/sequence.d.ts +61 -0
  493. package/dist/core/ordering/sequence.js +155 -0
  494. package/dist/core/ordering/sequence.js.map +1 -0
  495. package/dist/core/registry/adapters.d.ts +10 -0
  496. package/dist/core/registry/adapters.js +56 -0
  497. package/dist/core/registry/adapters.js.map +1 -0
  498. package/dist/core/registry/assets.d.ts +18 -0
  499. package/dist/core/registry/assets.js +90 -0
  500. package/dist/core/registry/assets.js.map +1 -0
  501. package/dist/core/registry/chains.d.ts +10 -0
  502. package/dist/core/registry/chains.js +80 -0
  503. package/dist/core/registry/chains.js.map +1 -0
  504. package/dist/core/registry/plugin.d.ts +41 -0
  505. package/dist/core/registry/plugin.js +109 -0
  506. package/dist/core/registry/plugin.js.map +1 -0
  507. package/dist/core/registry/providers.d.ts +31 -0
  508. package/dist/core/registry/providers.js +43 -0
  509. package/dist/core/registry/providers.js.map +1 -0
  510. package/dist/core/registry/schemes.d.ts +30 -0
  511. package/dist/core/registry/schemes.js +84 -0
  512. package/dist/core/registry/schemes.js.map +1 -0
  513. package/dist/core/secret/fragments.d.ts +33 -0
  514. package/dist/core/secret/fragments.js +110 -0
  515. package/dist/core/secret/fragments.js.map +1 -0
  516. package/dist/core/secret/redact.d.ts +10 -0
  517. package/dist/core/secret/redact.js +110 -0
  518. package/dist/core/secret/redact.js.map +1 -0
  519. package/dist/core/secret/secret.d.ts +14 -0
  520. package/dist/core/secret/secret.js +42 -0
  521. package/dist/core/secret/secret.js.map +1 -0
  522. package/dist/core/signing/callback.d.ts +10 -0
  523. package/dist/core/signing/callback.js +22 -0
  524. package/dist/core/signing/callback.js.map +1 -0
  525. package/dist/core/signing/guard.d.ts +18 -0
  526. package/dist/core/signing/guard.js +72 -0
  527. package/dist/core/signing/guard.js.map +1 -0
  528. package/dist/core/signing/hd.d.ts +36 -0
  529. package/dist/core/signing/hd.js +167 -0
  530. package/dist/core/signing/hd.js.map +1 -0
  531. package/dist/core/signing/local.d.ts +48 -0
  532. package/dist/core/signing/local.js +190 -0
  533. package/dist/core/signing/local.js.map +1 -0
  534. package/dist/core/signing/orchestrator.d.ts +40 -0
  535. package/dist/core/signing/orchestrator.js +300 -0
  536. package/dist/core/signing/orchestrator.js.map +1 -0
  537. package/dist/core/signing/types.d.ts +64 -0
  538. package/dist/core/signing/types.js +3 -0
  539. package/dist/core/signing/types.js.map +1 -0
  540. package/dist/core/signing/wallet.d.ts +48 -0
  541. package/dist/core/signing/wallet.js +153 -0
  542. package/dist/core/signing/wallet.js.map +1 -0
  543. package/dist/core/store/clone.d.ts +25 -0
  544. package/dist/core/store/clone.js +71 -0
  545. package/dist/core/store/clone.js.map +1 -0
  546. package/dist/core/store/memory.d.ts +38 -0
  547. package/dist/core/store/memory.js +325 -0
  548. package/dist/core/store/memory.js.map +1 -0
  549. package/dist/core/store/types.d.ts +246 -0
  550. package/dist/core/store/types.js +117 -0
  551. package/dist/core/store/types.js.map +1 -0
  552. package/dist/core/transport/backoff.d.ts +8 -0
  553. package/dist/core/transport/backoff.js +27 -0
  554. package/dist/core/transport/backoff.js.map +1 -0
  555. package/dist/core/transport/circuit.d.ts +25 -0
  556. package/dist/core/transport/circuit.js +61 -0
  557. package/dist/core/transport/circuit.js.map +1 -0
  558. package/dist/core/transport/http-transport.d.ts +30 -0
  559. package/dist/core/transport/http-transport.js +1695 -0
  560. package/dist/core/transport/http-transport.js.map +1 -0
  561. package/dist/core/transport/rate-limit.d.ts +27 -0
  562. package/dist/core/transport/rate-limit.js +78 -0
  563. package/dist/core/transport/rate-limit.js.map +1 -0
  564. package/dist/core/transport/stale-view.d.ts +11 -0
  565. package/dist/core/transport/stale-view.js +17 -0
  566. package/dist/core/transport/stale-view.js.map +1 -0
  567. package/dist/core/transport/types.d.ts +144 -0
  568. package/dist/core/transport/types.js +6 -0
  569. package/dist/core/transport/types.js.map +1 -0
  570. package/dist/core/util/bytes.d.ts +9 -0
  571. package/dist/core/util/bytes.js +40 -0
  572. package/dist/core/util/bytes.js.map +1 -0
  573. package/dist/core/util/clock.d.ts +6 -0
  574. package/dist/core/util/clock.js +26 -0
  575. package/dist/core/util/clock.js.map +1 -0
  576. package/dist/core/util/freeze.d.ts +8 -0
  577. package/dist/core/util/freeze.js +31 -0
  578. package/dist/core/util/freeze.js.map +1 -0
  579. package/dist/core/util/json.d.ts +29 -0
  580. package/dist/core/util/json.js +165 -0
  581. package/dist/core/util/json.js.map +1 -0
  582. package/dist/core/util/names.d.ts +21 -0
  583. package/dist/core/util/names.js +46 -0
  584. package/dist/core/util/names.js.map +1 -0
  585. package/dist/index.d.ts +64 -14
  586. package/dist/index.js +105 -49
  587. package/dist/index.js.map +1 -1
  588. package/dist/native.d.ts +21 -0
  589. package/dist/native.js +44 -0
  590. package/dist/native.js.map +1 -0
  591. package/dist/testing/contracts/api.d.ts +12 -0
  592. package/dist/testing/contracts/api.js +58 -0
  593. package/dist/testing/contracts/api.js.map +1 -0
  594. package/dist/testing/contracts/cursors.d.ts +6 -0
  595. package/dist/testing/contracts/cursors.js +43 -0
  596. package/dist/testing/contracts/cursors.js.map +1 -0
  597. package/dist/testing/contracts/locks.d.ts +10 -0
  598. package/dist/testing/contracts/locks.js +63 -0
  599. package/dist/testing/contracts/locks.js.map +1 -0
  600. package/dist/testing/contracts/operations.d.ts +21 -0
  601. package/dist/testing/contracts/operations.js +718 -0
  602. package/dist/testing/contracts/operations.js.map +1 -0
  603. package/dist/testing/contracts/sequences.d.ts +6 -0
  604. package/dist/testing/contracts/sequences.js +68 -0
  605. package/dist/testing/contracts/sequences.js.map +1 -0
  606. package/dist/testing/env.d.ts +63 -0
  607. package/dist/testing/env.js +105 -0
  608. package/dist/testing/env.js.map +1 -0
  609. package/dist/testing/fake-chain.d.ts +118 -0
  610. package/dist/testing/fake-chain.js +536 -0
  611. package/dist/testing/fake-chain.js.map +1 -0
  612. package/dist/testing/fake-clock.d.ts +15 -0
  613. package/dist/testing/fake-clock.js +86 -0
  614. package/dist/testing/fake-clock.js.map +1 -0
  615. package/dist/testing/fake-driver.d.ts +15 -0
  616. package/dist/testing/fake-driver.js +458 -0
  617. package/dist/testing/fake-driver.js.map +1 -0
  618. package/dist/testing/fake-fetch.d.ts +32 -0
  619. package/dist/testing/fake-fetch.js +81 -0
  620. package/dist/testing/fake-fetch.js.map +1 -0
  621. package/dist/testing/fake-plugin.d.ts +30 -0
  622. package/dist/testing/fake-plugin.js +66 -0
  623. package/dist/testing/fake-plugin.js.map +1 -0
  624. package/dist/testing/faulty-store.d.ts +36 -0
  625. package/dist/testing/faulty-store.js +66 -0
  626. package/dist/testing/faulty-store.js.map +1 -0
  627. package/dist/testing/generation.d.ts +60 -0
  628. package/dist/testing/generation.js +252 -0
  629. package/dist/testing/generation.js.map +1 -0
  630. package/dist/testing/index.d.ts +28 -0
  631. package/dist/testing/index.js +51 -0
  632. package/dist/testing/index.js.map +1 -0
  633. package/package.json +188 -44
  634. package/dist/libs/eth/account.d.ts +0 -9
  635. package/dist/libs/eth/account.js +0 -58
  636. package/dist/libs/eth/account.js.map +0 -1
  637. package/dist/libs/eth/contract.d.ts +0 -2
  638. package/dist/libs/eth/contract.js +0 -7
  639. package/dist/libs/eth/contract.js.map +0 -1
  640. package/dist/libs/eth/index.d.ts +0 -20
  641. package/dist/libs/eth/index.js +0 -62
  642. package/dist/libs/eth/index.js.map +0 -1
  643. package/dist/libs/eth/transact.d.ts +0 -2
  644. package/dist/libs/eth/transact.js +0 -7
  645. package/dist/libs/eth/transact.js.map +0 -1
  646. package/dist/libs/index.d.ts +0 -1
  647. package/dist/libs/index.js +0 -18
  648. package/dist/libs/index.js.map +0 -1
  649. package/dist/tool/common.d.ts +0 -28
  650. package/dist/tool/common.js +0 -33
  651. package/dist/tool/common.js.map +0 -1
  652. package/dist/tool/eth-tools.d.ts +0 -3
  653. package/dist/tool/eth-tools.js +0 -33
  654. package/dist/tool/eth-tools.js.map +0 -1
  655. package/dist/tool/index.d.ts +0 -4
  656. package/dist/tool/index.js +0 -21
  657. package/dist/tool/index.js.map +0 -1
  658. package/dist/tool/logging.d.ts +0 -3
  659. package/dist/tool/logging.js +0 -11
  660. package/dist/tool/logging.js.map +0 -1
  661. package/dist/tool/options.d.ts +0 -4
  662. package/dist/tool/options.js +0 -28
  663. package/dist/tool/options.js.map +0 -1
  664. package/dist/type/account.d.ts +0 -9
  665. package/dist/type/account.js.map +0 -1
  666. package/dist/type/common.d.ts +0 -18
  667. package/dist/type/common.js.map +0 -1
  668. package/dist/type/index.d.ts +0 -3
  669. package/dist/type/index.js +0 -20
  670. package/dist/type/index.js.map +0 -1
  671. package/dist/type/lib-types.d.ts +0 -7
  672. package/dist/type/lib-types.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetId = assetId;
4
+ exports.isAssetId = isAssetId;
5
+ exports.parseAssetId = parseAssetId;
6
+ exports.sameAssetRef = sameAssetRef;
7
+ exports.metadataProblem = metadataProblem;
8
+ const error_1 = require("../errors/error");
9
+ const ASSET_ID = /^([a-z][a-z0-9-]*):([a-z0-9-]+)\/(?:(native)|([a-z0-9-]+):(.+))$/;
10
+ function assetId(chain, network, ref) {
11
+ return ref === 'native'
12
+ ? `${chain}:${network}/native`
13
+ : `${chain}:${network}/${ref.standard}:${ref.contract}`;
14
+ }
15
+ function isAssetId(value) {
16
+ return ASSET_ID.test(value);
17
+ }
18
+ function parseAssetId(id) {
19
+ const match = ASSET_ID.exec(id);
20
+ // A malformed id is the caller's text, which may be a pasted secret: never repeated.
21
+ if (!match)
22
+ throw new error_1.ValidationError('ASSET_RESOLUTION', 'malformed asset id');
23
+ const [, chain, network, native, standard, contract] = match;
24
+ return {
25
+ chain: chain,
26
+ network: network,
27
+ ref: native
28
+ ? 'native'
29
+ : { standard: standard, contract: contract },
30
+ };
31
+ }
32
+ function sameAssetRef(a, b) {
33
+ if (a === 'native' || b === 'native')
34
+ return a === b;
35
+ return a.standard === b.standard && a.contract === b.contract;
36
+ }
37
+ /** Returns a reason when metadata is unusable, otherwise `undefined`. */
38
+ function metadataProblem(metadata) {
39
+ if (!metadata.symbol)
40
+ return 'symbol must not be empty';
41
+ const { decimals } = metadata;
42
+ if (!Number.isInteger(decimals) || decimals < 0 || decimals > 255) {
43
+ return 'decimals must be an integer in [0, 255]';
44
+ }
45
+ return undefined;
46
+ }
47
+ //# sourceMappingURL=asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/core/model/asset.ts"],"names":[],"mappings":";;AAuBA,0BAIC;AAED,8BAEC;AAED,oCAgBC;AAED,oCAGC;AAGD,0CAOC;AAhED,2CAAkD;AAqBlD,MAAM,QAAQ,GAAG,kEAAkE,CAAC;AAEpF,SAAgB,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,GAAa;IACnE,OAAO,GAAG,KAAK,QAAQ;QACrB,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,SAAS;QAC9B,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,YAAY,CAAC,EAAU;IAKrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,qFAAqF;IACrF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,uBAAe,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAChF,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC7D,OAAO;QACL,KAAK,EAAE,KAAe;QACtB,OAAO,EAAE,OAAiB;QAC1B,GAAG,EAAE,MAAM;YACT,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAkB,EAAE,QAAQ,EAAE,QAAkB,EAAE;KACnE,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,CAAW,EAAE,CAAW;IACnD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED,yEAAyE;AACzE,SAAgB,eAAe,CAAC,QAAuB;IACrD,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,0BAA0B,CAAC;IACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QAClE,OAAO,yCAAyC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { ValidationError } from '../errors/error';\n\nexport type AssetRef =\n 'native' | { readonly standard: string; readonly contract: string };\nexport type TokenRef = Exclude<AssetRef, 'native'>;\nexport type AssetId = string;\n\nexport interface AssetMetadata {\n readonly symbol: string;\n readonly decimals: number;\n readonly name?: string;\n}\n\nexport interface AssetInfo {\n readonly id: AssetId;\n readonly chain: string;\n readonly network: string;\n readonly ref: AssetRef;\n readonly metadata: AssetMetadata;\n}\n\nconst ASSET_ID = /^([a-z][a-z0-9-]*):([a-z0-9-]+)\\/(?:(native)|([a-z0-9-]+):(.+))$/;\n\nexport function assetId(chain: string, network: string, ref: AssetRef): AssetId {\n return ref === 'native'\n ? `${chain}:${network}/native`\n : `${chain}:${network}/${ref.standard}:${ref.contract}`;\n}\n\nexport function isAssetId(value: string): boolean {\n return ASSET_ID.test(value);\n}\n\nexport function parseAssetId(id: string): {\n chain: string;\n network: string;\n ref: AssetRef;\n} {\n const match = ASSET_ID.exec(id);\n // A malformed id is the caller's text, which may be a pasted secret: never repeated.\n if (!match) throw new ValidationError('ASSET_RESOLUTION', 'malformed asset id');\n const [, chain, network, native, standard, contract] = match;\n return {\n chain: chain as string,\n network: network as string,\n ref: native\n ? 'native'\n : { standard: standard as string, contract: contract as string },\n };\n}\n\nexport function sameAssetRef(a: AssetRef, b: AssetRef): boolean {\n if (a === 'native' || b === 'native') return a === b;\n return a.standard === b.standard && a.contract === b.contract;\n}\n\n/** Returns a reason when metadata is unusable, otherwise `undefined`. */\nexport function metadataProblem(metadata: AssetMetadata): string | undefined {\n if (!metadata.symbol) return 'symbol must not be empty';\n const { decimals } = metadata;\n if (!Number.isInteger(decimals) || decimals < 0 || decimals > 255) {\n return 'decimals must be an integer in [0, 255]';\n }\n return undefined;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const KNOWN_CAPABILITIES: readonly ["tokens", "memo", "batch-transfer", "replace-fee", "cancel", "block-scan", "address-history", "finality-tag", "hd-public-derivation", "contract-read", "fee-market-1559", "expiry"];
2
+ export type KnownCapability = (typeof KNOWN_CAPABILITIES)[number];
3
+ export type Capability = KnownCapability | (string & {});
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KNOWN_CAPABILITIES = void 0;
4
+ exports.KNOWN_CAPABILITIES = Object.freeze([
5
+ 'tokens',
6
+ 'memo',
7
+ 'batch-transfer',
8
+ 'replace-fee',
9
+ 'cancel',
10
+ 'block-scan',
11
+ 'address-history',
12
+ 'finality-tag',
13
+ 'hd-public-derivation',
14
+ 'contract-read',
15
+ 'fee-market-1559',
16
+ 'expiry',
17
+ ]);
18
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/core/model/capability.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,QAAQ;IACR,MAAM;IACN,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,iBAAiB;IACjB,QAAQ;CACA,CAAC,CAAC","sourcesContent":["export const KNOWN_CAPABILITIES = Object.freeze([\n 'tokens',\n 'memo',\n 'batch-transfer',\n 'replace-fee',\n 'cancel',\n 'block-scan',\n 'address-history',\n 'finality-tag',\n 'hd-public-derivation',\n 'contract-read',\n 'fee-market-1559',\n 'expiry',\n] as const);\n\nexport type KnownCapability = (typeof KNOWN_CAPABILITIES)[number];\nexport type Capability = KnownCapability | (string & {});\n"]}
@@ -0,0 +1,63 @@
1
+ import type { Capability } from './capability';
2
+ import type { OrderingKind } from './ordering';
3
+ export type FinalityPolicy = {
4
+ readonly kind: 'confirmations';
5
+ readonly confirmations: number;
6
+ } | {
7
+ readonly kind: 'tag';
8
+ readonly tag: 'finalized';
9
+ readonly fallbackConfirmations: number;
10
+ } | {
11
+ readonly kind: 'solidified';
12
+ } | {
13
+ readonly kind: 'commitment';
14
+ readonly level: 'finalized';
15
+ } | {
16
+ readonly kind: 'masterchain';
17
+ };
18
+ export interface NativeAssetInfo {
19
+ readonly symbol: string;
20
+ readonly decimals: number;
21
+ readonly name?: string;
22
+ }
23
+ export interface NetworkInfo {
24
+ readonly id: string;
25
+ /** Expected value of the driver's identity probe (chain id, genesis hash…). */
26
+ readonly identity?: string;
27
+ readonly testnet: boolean;
28
+ readonly feeModel: string;
29
+ readonly finality: FinalityPolicy;
30
+ readonly defaultConfirmations: number;
31
+ /** Recent blocks a scanner retains for rollback detection; independent of finality. */
32
+ readonly reorgWindow: number;
33
+ readonly maxLagBlocks?: number;
34
+ readonly explorer?: {
35
+ readonly tx: string;
36
+ readonly address: string;
37
+ };
38
+ readonly replacement?: {
39
+ readonly minBumpPercent: number;
40
+ };
41
+ readonly capabilities?: {
42
+ readonly add?: readonly Capability[];
43
+ readonly remove?: readonly Capability[];
44
+ };
45
+ readonly params?: Readonly<Record<string, unknown>>;
46
+ }
47
+ export interface ChainInfo {
48
+ readonly id: string;
49
+ readonly family: string;
50
+ readonly model: 'account' | 'utxo';
51
+ readonly ordering: OrderingKind;
52
+ readonly schemes: readonly string[];
53
+ readonly nativeAsset: NativeAssetInfo;
54
+ readonly defaultNetwork: string;
55
+ readonly networks: Readonly<Record<string, NetworkInfo>>;
56
+ /**
57
+ * Whether the chain's extended public keys carry their network class (SLIP-0132: `xpub`
58
+ * on mainnet, `tpub` on test networks), so `deriveAddress` refuses a key of the other
59
+ * class. Default: `true` for `utxo`-model chains, `false` for account-model ones.
60
+ */
61
+ readonly xpubNetworkClass?: boolean;
62
+ }
63
+ export declare function explorerUrl(network: NetworkInfo, kind: 'tx' | 'address', value: string): string | undefined;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.explorerUrl = explorerUrl;
4
+ function explorerUrl(network, kind, value) {
5
+ const template = network.explorer?.[kind];
6
+ return template?.replace(kind === 'tx' ? '{id}' : '{address}', encodeURIComponent(value));
7
+ }
8
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/core/model/chain.ts"],"names":[],"mappings":";;AAyDA,kCAUC;AAVD,SAAgB,WAAW,CACzB,OAAoB,EACpB,IAAsB,EACtB,KAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,QAAQ,EAAE,OAAO,CACtB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EACpC,kBAAkB,CAAC,KAAK,CAAC,CAC1B,CAAC;AACJ,CAAC","sourcesContent":["import type { Capability } from './capability';\nimport type { OrderingKind } from './ordering';\n\nexport type FinalityPolicy =\n | { readonly kind: 'confirmations'; readonly confirmations: number }\n | {\n readonly kind: 'tag';\n readonly tag: 'finalized';\n readonly fallbackConfirmations: number;\n }\n | { readonly kind: 'solidified' }\n | { readonly kind: 'commitment'; readonly level: 'finalized' }\n | { readonly kind: 'masterchain' };\n\nexport interface NativeAssetInfo {\n readonly symbol: string;\n readonly decimals: number;\n readonly name?: string;\n}\n\nexport interface NetworkInfo {\n readonly id: string;\n /** Expected value of the driver's identity probe (chain id, genesis hash…). */\n readonly identity?: string;\n readonly testnet: boolean;\n readonly feeModel: string;\n readonly finality: FinalityPolicy;\n readonly defaultConfirmations: number;\n /** Recent blocks a scanner retains for rollback detection; independent of finality. */\n readonly reorgWindow: number;\n readonly maxLagBlocks?: number;\n readonly explorer?: { readonly tx: string; readonly address: string };\n readonly replacement?: { readonly minBumpPercent: number };\n readonly capabilities?: {\n readonly add?: readonly Capability[];\n readonly remove?: readonly Capability[];\n };\n readonly params?: Readonly<Record<string, unknown>>;\n}\n\nexport interface ChainInfo {\n readonly id: string;\n readonly family: string;\n readonly model: 'account' | 'utxo';\n readonly ordering: OrderingKind;\n readonly schemes: readonly string[];\n readonly nativeAsset: NativeAssetInfo;\n readonly defaultNetwork: string;\n readonly networks: Readonly<Record<string, NetworkInfo>>;\n /**\n * Whether the chain's extended public keys carry their network class (SLIP-0132: `xpub`\n * on mainnet, `tpub` on test networks), so `deriveAddress` refuses a key of the other\n * class. Default: `true` for `utxo`-model chains, `false` for account-model ones.\n */\n readonly xpubNetworkClass?: boolean;\n}\n\nexport function explorerUrl(\n network: NetworkInfo,\n kind: 'tx' | 'address',\n value: string,\n): string | undefined {\n const template = network.explorer?.[kind];\n return template?.replace(\n kind === 'tx' ? '{id}' : '{address}',\n encodeURIComponent(value),\n );\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import type { Address } from './address';
2
+ import type { Amount } from './amount';
3
+ import type { AssetId, AssetRef } from './asset';
4
+ export type FeeSpeed = 'slow' | 'normal' | 'fast';
5
+ /** Family-specific explicit fee parameters (e.g. `{ maxFeePerGas }`, `{ satPerVByte }`). */
6
+ export type FeeOverride = Readonly<Record<string, unknown>>;
7
+ export type FeeBound = 'exact' | 'expected' | 'upper';
8
+ export interface FeeChargeDraft {
9
+ readonly asset: AssetRef;
10
+ readonly amount: bigint;
11
+ readonly label: string;
12
+ }
13
+ /** Driver-level fee estimate (asset refs and base units). */
14
+ export interface FeeEstimateDraft {
15
+ readonly kind: string;
16
+ readonly speed: FeeSpeed | 'custom';
17
+ readonly charges: readonly FeeChargeDraft[];
18
+ readonly bound: FeeBound;
19
+ readonly payer?: string;
20
+ readonly details: Readonly<Record<string, unknown>>;
21
+ }
22
+ export interface FeeCharge {
23
+ readonly amount: Amount;
24
+ readonly label: string;
25
+ }
26
+ export interface FeeEstimate {
27
+ readonly kind: string;
28
+ readonly speed: FeeSpeed | 'custom';
29
+ readonly charges: readonly FeeCharge[];
30
+ readonly bound: FeeBound;
31
+ readonly payer?: Address;
32
+ readonly details: Readonly<Record<string, unknown>>;
33
+ }
34
+ export declare function isFeeSpeed(value: unknown): value is FeeSpeed;
35
+ /** Sum of all charges in one asset, or `undefined` when nothing is charged in it. */
36
+ export declare function feeTotal(fee: FeeEstimate, asset: AssetId): Amount | undefined;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFeeSpeed = isFeeSpeed;
4
+ exports.feeTotal = feeTotal;
5
+ function isFeeSpeed(value) {
6
+ return value === 'slow' || value === 'normal' || value === 'fast';
7
+ }
8
+ /** Sum of all charges in one asset, or `undefined` when nothing is charged in it. */
9
+ function feeTotal(fee, asset) {
10
+ let total;
11
+ for (const charge of fee.charges) {
12
+ if (charge.amount.asset.id === asset)
13
+ total = total ? total.plus(charge.amount) : charge.amount;
14
+ }
15
+ return total;
16
+ }
17
+ //# sourceMappingURL=fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/core/model/fee.ts"],"names":[],"mappings":";;AAuCA,gCAEC;AAGD,4BAOC;AAZD,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC;AACpE,CAAC;AAED,qFAAqF;AACrF,SAAgB,QAAQ,CAAC,GAAgB,EAAE,KAAc;IACvD,IAAI,KAAyB,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK;YAClC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import type { Address } from './address';\nimport type { Amount } from './amount';\nimport type { AssetId, AssetRef } from './asset';\n\nexport type FeeSpeed = 'slow' | 'normal' | 'fast';\n/** Family-specific explicit fee parameters (e.g. `{ maxFeePerGas }`, `{ satPerVByte }`). */\nexport type FeeOverride = Readonly<Record<string, unknown>>;\nexport type FeeBound = 'exact' | 'expected' | 'upper';\n\nexport interface FeeChargeDraft {\n readonly asset: AssetRef;\n readonly amount: bigint;\n readonly label: string;\n}\n\n/** Driver-level fee estimate (asset refs and base units). */\nexport interface FeeEstimateDraft {\n readonly kind: string;\n readonly speed: FeeSpeed | 'custom';\n readonly charges: readonly FeeChargeDraft[];\n readonly bound: FeeBound;\n readonly payer?: string;\n readonly details: Readonly<Record<string, unknown>>;\n}\n\nexport interface FeeCharge {\n readonly amount: Amount;\n readonly label: string;\n}\n\nexport interface FeeEstimate {\n readonly kind: string;\n readonly speed: FeeSpeed | 'custom';\n readonly charges: readonly FeeCharge[];\n readonly bound: FeeBound;\n readonly payer?: Address;\n readonly details: Readonly<Record<string, unknown>>;\n}\n\nexport function isFeeSpeed(value: unknown): value is FeeSpeed {\n return value === 'slow' || value === 'normal' || value === 'fast';\n}\n\n/** Sum of all charges in one asset, or `undefined` when nothing is charged in it. */\nexport function feeTotal(fee: FeeEstimate, asset: AssetId): Amount | undefined {\n let total: Amount | undefined;\n for (const charge of fee.charges) {\n if (charge.amount.asset.id === asset)\n total = total ? total.plus(charge.amount) : charge.amount;\n }\n return total;\n}\n"]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Type-level registries. Users and plugins augment them through the package entry, e.g.
3
+ * `declare module 'crypto-aio' { interface ChainRegistry { ethereum: {...} } }`, and plugins
4
+ * inside this package augment the entry module (`declare module '../index'`). Never augment
5
+ * this file directly: an augmentation here and one through the entry are then merged in file
6
+ * order, and a user's chains can be lost.
7
+ */
8
+ export interface ChainRegistry {
9
+ }
10
+ export interface FamilyRegistry {
11
+ }
12
+ export interface NativeClientMap {
13
+ }
14
+ export type ChainId = Extract<keyof ChainRegistry, string>;
15
+ type ChainEntry<C extends ChainId> = ChainRegistry[C] extends {
16
+ family: string;
17
+ network: string;
18
+ } ? ChainRegistry[C] : never;
19
+ export type NetworkOf<C extends ChainId> = ChainEntry<C>['network'];
20
+ export type FamilyOf<C extends ChainId> = ChainEntry<C>['family'];
21
+ export type LibraryOf<C extends ChainId> = FamilyOf<C> extends keyof FamilyRegistry ? FamilyRegistry[FamilyOf<C>] extends {
22
+ library: infer L;
23
+ } ? L : string : string;
24
+ export type ExtOf<C extends ChainId> = FamilyOf<C> extends keyof FamilyRegistry ? FamilyRegistry[FamilyOf<C>] extends {
25
+ ext: infer E;
26
+ } ? E : unknown : unknown;
27
+ export declare const Library: Readonly<{
28
+ readonly ETHERS: "ethers";
29
+ readonly WEB3: "web3";
30
+ readonly TRONWEB: "tronweb";
31
+ readonly BITCOINJS_LIB: "bitcoinjs-lib";
32
+ readonly SOLANA_WEB3_JS: "@solana/web3.js";
33
+ readonly TON: "@ton/ton";
34
+ readonly AVALANCHEJS: "@avalabs/avalanchejs";
35
+ }>;
36
+ export type KnownLibrary = (typeof Library)[keyof typeof Library];
37
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Library = void 0;
4
+ exports.Library = Object.freeze({
5
+ ETHERS: 'ethers',
6
+ WEB3: 'web3',
7
+ TRONWEB: 'tronweb',
8
+ BITCOINJS_LIB: 'bitcoinjs-lib',
9
+ SOLANA_WEB3_JS: '@solana/web3.js',
10
+ TON: '@ton/ton',
11
+ AVALANCHEJS: '@avalabs/avalanchejs',
12
+ });
13
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/core/model/ids.ts"],"names":[],"mappings":";;;AAmCa,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,iBAAiB;IACjC,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,sBAAsB;CAC3B,CAAC,CAAC","sourcesContent":["/**\n * Type-level registries. Users and plugins augment them through the package entry, e.g.\n * `declare module 'crypto-aio' { interface ChainRegistry { ethereum: {...} } }`, and plugins\n * inside this package augment the entry module (`declare module '../index'`). Never augment\n * this file directly: an augmentation here and one through the entry are then merged in file\n * order, and a user's chains can be lost.\n */\nexport interface ChainRegistry {}\nexport interface FamilyRegistry {}\nexport interface NativeClientMap {}\n\nexport type ChainId = Extract<keyof ChainRegistry, string>;\n\ntype ChainEntry<C extends ChainId> = ChainRegistry[C] extends {\n family: string;\n network: string;\n}\n ? ChainRegistry[C]\n : never;\n\nexport type NetworkOf<C extends ChainId> = ChainEntry<C>['network'];\nexport type FamilyOf<C extends ChainId> = ChainEntry<C>['family'];\nexport type LibraryOf<C extends ChainId> =\n FamilyOf<C> extends keyof FamilyRegistry\n ? FamilyRegistry[FamilyOf<C>] extends { library: infer L }\n ? L\n : string\n : string;\nexport type ExtOf<C extends ChainId> =\n FamilyOf<C> extends keyof FamilyRegistry\n ? FamilyRegistry[FamilyOf<C>] extends { ext: infer E }\n ? E\n : unknown\n : unknown;\n\nexport const Library = Object.freeze({\n ETHERS: 'ethers',\n WEB3: 'web3',\n TRONWEB: 'tronweb',\n BITCOINJS_LIB: 'bitcoinjs-lib',\n SOLANA_WEB3_JS: '@solana/web3.js',\n TON: '@ton/ton',\n AVALANCHEJS: '@avalabs/avalanchejs',\n} as const);\n\nexport type KnownLibrary = (typeof Library)[keyof typeof Library];\n"]}
@@ -0,0 +1,63 @@
1
+ import type { Address } from './address';
2
+ import type { Amount, AmountInput } from './amount';
3
+ import type { AssetId, AssetInfo, AssetRef } from './asset';
4
+ import type { FeeOverride, FeeSpeed } from './fee';
5
+ export interface TransferOutputInput {
6
+ readonly to: string;
7
+ readonly amount: AmountInput;
8
+ }
9
+ export interface TransferIntent {
10
+ readonly to?: string;
11
+ readonly amount?: AmountInput;
12
+ readonly outputs?: readonly TransferOutputInput[];
13
+ /** `'native'`, a token ref, an asset id, or an alias registered for this chain/network. */
14
+ readonly asset?: AssetRef | string;
15
+ readonly from?: string;
16
+ readonly memo?: string;
17
+ readonly fee?: FeeSpeed | FeeOverride;
18
+ }
19
+ export interface NormalizedOutput {
20
+ readonly to: Address;
21
+ readonly amount: Amount;
22
+ }
23
+ export interface NormalizedIntent {
24
+ readonly asset: AssetInfo;
25
+ readonly outputs: readonly NormalizedOutput[];
26
+ readonly from: Address;
27
+ readonly memo?: string;
28
+ readonly fee: FeeSpeed | FeeOverride;
29
+ }
30
+ /**
31
+ * One output as drivers receive it. `variant` is the recipient address's chain-specific
32
+ * meaning (`Address.variant`), present only when its chain has one, e.g. TON's
33
+ * `bounceable` flag (the intent's `to` variant decides bounce behaviour).
34
+ */
35
+ export interface DriverOutput {
36
+ readonly to: string;
37
+ readonly amount: bigint;
38
+ readonly variant?: Readonly<Record<string, unknown>>;
39
+ }
40
+ /** What drivers receive: canonical strings and base units only. */
41
+ export interface DriverIntent {
42
+ readonly asset: AssetRef;
43
+ readonly outputs: readonly DriverOutput[];
44
+ readonly from: string;
45
+ readonly memo?: string;
46
+ readonly fee: FeeSpeed | FeeOverride;
47
+ }
48
+ export interface StoredIntent extends DriverIntent {
49
+ readonly assetId: AssetId;
50
+ }
51
+ export interface IntentSummary {
52
+ readonly asset: AssetId;
53
+ readonly outputs: readonly {
54
+ readonly to: string;
55
+ readonly amount: string;
56
+ }[];
57
+ readonly memo?: string;
58
+ }
59
+ export declare function collectOutputs(intent: TransferIntent): readonly TransferOutputInput[];
60
+ export declare function toStoredIntent(intent: NormalizedIntent): StoredIntent;
61
+ export declare function summarizeIntent(intent: StoredIntent): IntentSummary;
62
+ /** Stable hash of the normalized intent: equal intents in different input forms collide. */
63
+ export declare function intentHash(chain: string, network: string, intent: StoredIntent): string;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectOutputs = collectOutputs;
4
+ exports.toStoredIntent = toStoredIntent;
5
+ exports.summarizeIntent = summarizeIntent;
6
+ exports.intentHash = intentHash;
7
+ const error_1 = require("../errors/error");
8
+ const json_1 = require("../util/json");
9
+ function collectOutputs(intent) {
10
+ const shorthand = intent.to !== undefined || intent.amount !== undefined;
11
+ if (shorthand && intent.outputs !== undefined) {
12
+ throw new error_1.ValidationError('INVALID_INTENT', 'use either { to, amount } or outputs, not both');
13
+ }
14
+ if (shorthand) {
15
+ if (intent.to === undefined || intent.amount === undefined) {
16
+ throw new error_1.ValidationError('INVALID_INTENT', 'both to and amount are required');
17
+ }
18
+ return [{ to: intent.to, amount: intent.amount }];
19
+ }
20
+ if (!intent.outputs || intent.outputs.length === 0) {
21
+ throw new error_1.ValidationError('INVALID_INTENT', 'at least one output is required');
22
+ }
23
+ return intent.outputs;
24
+ }
25
+ function toStoredIntent(intent) {
26
+ return {
27
+ assetId: intent.asset.id,
28
+ asset: intent.asset.ref,
29
+ // A variant is kept (and so hashed) only when the address has one, so intents of
30
+ // chains without variants hash exactly as before. An empty variant is none.
31
+ outputs: intent.outputs.map((o) => {
32
+ const variant = o.to.variant ? plainVariant(o.to.variant) : undefined;
33
+ return {
34
+ to: o.to.canonical,
35
+ amount: o.amount.base,
36
+ ...(variant && Object.keys(variant).length > 0 ? { variant } : {}),
37
+ };
38
+ }),
39
+ from: intent.from.canonical,
40
+ ...(intent.memo !== undefined ? { memo: intent.memo } : {}),
41
+ fee: intent.fee,
42
+ };
43
+ }
44
+ function summarizeIntent(intent) {
45
+ return {
46
+ asset: intent.assetId,
47
+ outputs: intent.outputs.map((o) => ({ to: o.to, amount: o.amount.toString() })),
48
+ ...(intent.memo !== undefined ? { memo: intent.memo } : {}),
49
+ };
50
+ }
51
+ /** Stable hash of the normalized intent: equal intents in different input forms collide. */
52
+ function intentHash(chain, network, intent) {
53
+ return (0, json_1.sha256Hex)((0, json_1.canonicalJson)({
54
+ v: 1,
55
+ chain,
56
+ network,
57
+ asset: intent.assetId,
58
+ outputs: intent.outputs,
59
+ from: intent.from,
60
+ memo: intent.memo ?? null,
61
+ fee: intent.fee,
62
+ }));
63
+ }
64
+ /**
65
+ * A copy of an address variant that holds plain JSON values only (strings, finite
66
+ * numbers, booleans, null) under string keys, so the stored intent stays plain data
67
+ * and hashes stably. A symbol key is refused: the hash would not see it. The
68
+ * message names no address.
69
+ */
70
+ function plainVariant(variant) {
71
+ const plain = Object.getOwnPropertySymbols(variant).length === 0 &&
72
+ Object.values(variant).every((value) => value === null ||
73
+ typeof value === 'string' ||
74
+ typeof value === 'boolean' ||
75
+ (typeof value === 'number' && Number.isFinite(value)));
76
+ if (!plain) {
77
+ throw new error_1.ValidationError('INVALID_ADDRESS', 'an address variant may hold only string keys with strings, finite numbers, booleans or null');
78
+ }
79
+ return { ...variant };
80
+ }
81
+ //# sourceMappingURL=intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/core/model/intent.ts"],"names":[],"mappings":";;AAkEA,wCAkBC;AAED,wCAkBC;AAED,0CAMC;AAGD,gCAaC;AAhID,2CAAkD;AAClD,uCAAwD;AAiExD,SAAgB,cAAc,CAAC,MAAsB;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;IACzE,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,uBAAe,CACvB,gBAAgB,EAChB,gDAAgD,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,uBAAe,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,uBAAe,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,SAAgB,cAAc,CAAC,MAAwB;IACrD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;QACvB,iFAAiF;QACjF,4EAA4E;QAC5E,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS;gBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;gBACrB,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,MAAoB;IAClD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/E,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAgB,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,MAAoB;IAC7E,OAAO,IAAA,gBAAS,EACd,IAAA,oBAAa,EAAC;QACZ,CAAC,EAAE,CAAC;QACJ,KAAK;QACL,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,OAAO;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;QACzB,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,OAA0C;IAE1C,MAAM,KAAK,GACT,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAC1B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS;YAC1B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACxD,CAAC;IACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,uBAAe,CACvB,iBAAiB,EACjB,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AACxB,CAAC","sourcesContent":["import { ValidationError } from '../errors/error';\nimport { canonicalJson, sha256Hex } from '../util/json';\nimport type { Address } from './address';\nimport type { Amount, AmountInput } from './amount';\nimport type { AssetId, AssetInfo, AssetRef } from './asset';\nimport type { FeeOverride, FeeSpeed } from './fee';\n\nexport interface TransferOutputInput {\n readonly to: string;\n readonly amount: AmountInput;\n}\n\nexport interface TransferIntent {\n readonly to?: string;\n readonly amount?: AmountInput;\n readonly outputs?: readonly TransferOutputInput[];\n /** `'native'`, a token ref, an asset id, or an alias registered for this chain/network. */\n readonly asset?: AssetRef | string;\n readonly from?: string;\n readonly memo?: string;\n readonly fee?: FeeSpeed | FeeOverride;\n}\n\nexport interface NormalizedOutput {\n readonly to: Address;\n readonly amount: Amount;\n}\n\nexport interface NormalizedIntent {\n readonly asset: AssetInfo;\n readonly outputs: readonly NormalizedOutput[];\n readonly from: Address;\n readonly memo?: string;\n readonly fee: FeeSpeed | FeeOverride;\n}\n\n/**\n * One output as drivers receive it. `variant` is the recipient address's chain-specific\n * meaning (`Address.variant`), present only when its chain has one, e.g. TON's\n * `bounceable` flag (the intent's `to` variant decides bounce behaviour).\n */\nexport interface DriverOutput {\n readonly to: string;\n readonly amount: bigint;\n readonly variant?: Readonly<Record<string, unknown>>;\n}\n\n/** What drivers receive: canonical strings and base units only. */\nexport interface DriverIntent {\n readonly asset: AssetRef;\n readonly outputs: readonly DriverOutput[];\n readonly from: string;\n readonly memo?: string;\n readonly fee: FeeSpeed | FeeOverride;\n}\n\nexport interface StoredIntent extends DriverIntent {\n readonly assetId: AssetId;\n}\n\nexport interface IntentSummary {\n readonly asset: AssetId;\n readonly outputs: readonly { readonly to: string; readonly amount: string }[];\n readonly memo?: string;\n}\n\nexport function collectOutputs(intent: TransferIntent): readonly TransferOutputInput[] {\n const shorthand = intent.to !== undefined || intent.amount !== undefined;\n if (shorthand && intent.outputs !== undefined) {\n throw new ValidationError(\n 'INVALID_INTENT',\n 'use either { to, amount } or outputs, not both',\n );\n }\n if (shorthand) {\n if (intent.to === undefined || intent.amount === undefined) {\n throw new ValidationError('INVALID_INTENT', 'both to and amount are required');\n }\n return [{ to: intent.to, amount: intent.amount }];\n }\n if (!intent.outputs || intent.outputs.length === 0) {\n throw new ValidationError('INVALID_INTENT', 'at least one output is required');\n }\n return intent.outputs;\n}\n\nexport function toStoredIntent(intent: NormalizedIntent): StoredIntent {\n return {\n assetId: intent.asset.id,\n asset: intent.asset.ref,\n // A variant is kept (and so hashed) only when the address has one, so intents of\n // chains without variants hash exactly as before. An empty variant is none.\n outputs: intent.outputs.map((o) => {\n const variant = o.to.variant ? plainVariant(o.to.variant) : undefined;\n return {\n to: o.to.canonical,\n amount: o.amount.base,\n ...(variant && Object.keys(variant).length > 0 ? { variant } : {}),\n };\n }),\n from: intent.from.canonical,\n ...(intent.memo !== undefined ? { memo: intent.memo } : {}),\n fee: intent.fee,\n };\n}\n\nexport function summarizeIntent(intent: StoredIntent): IntentSummary {\n return {\n asset: intent.assetId,\n outputs: intent.outputs.map((o) => ({ to: o.to, amount: o.amount.toString() })),\n ...(intent.memo !== undefined ? { memo: intent.memo } : {}),\n };\n}\n\n/** Stable hash of the normalized intent: equal intents in different input forms collide. */\nexport function intentHash(chain: string, network: string, intent: StoredIntent): string {\n return sha256Hex(\n canonicalJson({\n v: 1,\n chain,\n network,\n asset: intent.assetId,\n outputs: intent.outputs,\n from: intent.from,\n memo: intent.memo ?? null,\n fee: intent.fee,\n }),\n );\n}\n\n/**\n * A copy of an address variant that holds plain JSON values only (strings, finite\n * numbers, booleans, null) under string keys, so the stored intent stays plain data\n * and hashes stably. A symbol key is refused: the hash would not see it. The\n * message names no address.\n */\nfunction plainVariant(\n variant: Readonly<Record<string, unknown>>,\n): Record<string, unknown> {\n const plain =\n Object.getOwnPropertySymbols(variant).length === 0 &&\n Object.values(variant).every(\n (value) =>\n value === null ||\n typeof value === 'string' ||\n typeof value === 'boolean' ||\n (typeof value === 'number' && Number.isFinite(value)),\n );\n if (!plain) {\n throw new ValidationError(\n 'INVALID_ADDRESS',\n 'an address variant may hold only string keys with strings, finite numbers, booleans or null',\n );\n }\n return { ...variant };\n}\n"]}
@@ -0,0 +1,20 @@
1
+ export type OrderingKind = 'nonce' | 'seqno' | 'inputs' | 'expiry';
2
+ export type OrderingData = {
3
+ readonly kind: 'nonce';
4
+ readonly nonce: bigint;
5
+ } | {
6
+ readonly kind: 'seqno';
7
+ readonly seqno: bigint;
8
+ readonly validUntil: number;
9
+ } | {
10
+ readonly kind: 'inputs';
11
+ readonly inputs: readonly string[];
12
+ } | {
13
+ readonly kind: 'expiry';
14
+ readonly lastValidHeight?: bigint;
15
+ readonly expiresAtMs?: number;
16
+ };
17
+ /** True when at most one of two transactions with these orderings can ever be included. */
18
+ export declare function mutuallyExclusive(a: OrderingData, b: OrderingData): boolean;
19
+ /** Short label safe for events and logs (never lists inputs or addresses). */
20
+ export declare function orderingLabel(ordering: OrderingData): string;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mutuallyExclusive = mutuallyExclusive;
4
+ exports.orderingLabel = orderingLabel;
5
+ /** True when at most one of two transactions with these orderings can ever be included. */
6
+ function mutuallyExclusive(a, b) {
7
+ if (a.kind === 'nonce' && b.kind === 'nonce')
8
+ return a.nonce === b.nonce;
9
+ if (a.kind === 'seqno' && b.kind === 'seqno')
10
+ return a.seqno === b.seqno;
11
+ if (a.kind === 'inputs' && b.kind === 'inputs') {
12
+ return a.inputs.some((input) => b.inputs.includes(input));
13
+ }
14
+ return false;
15
+ }
16
+ /** Short label safe for events and logs (never lists inputs or addresses). */
17
+ function orderingLabel(ordering) {
18
+ switch (ordering.kind) {
19
+ case 'nonce':
20
+ return `nonce:${ordering.nonce}`;
21
+ case 'seqno':
22
+ return `seqno:${ordering.seqno}`;
23
+ case 'inputs':
24
+ return `inputs:${ordering.inputs.length}`;
25
+ case 'expiry':
26
+ return 'expiry';
27
+ }
28
+ }
29
+ //# sourceMappingURL=ordering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordering.js","sourceRoot":"","sources":["../../../src/core/model/ordering.ts"],"names":[],"mappings":";;AAaA,8CAOC;AAGD,sCAWC;AAtBD,2FAA2F;AAC3F,SAAgB,iBAAiB,CAAC,CAAe,EAAE,CAAe;IAChE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAgB,aAAa,CAAC,QAAsB;IAClD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,OAAO;YACV,OAAO,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC","sourcesContent":["export type OrderingKind = 'nonce' | 'seqno' | 'inputs' | 'expiry';\n\nexport type OrderingData =\n | { readonly kind: 'nonce'; readonly nonce: bigint }\n | { readonly kind: 'seqno'; readonly seqno: bigint; readonly validUntil: number }\n | { readonly kind: 'inputs'; readonly inputs: readonly string[] }\n | {\n readonly kind: 'expiry';\n readonly lastValidHeight?: bigint;\n readonly expiresAtMs?: number;\n };\n\n/** True when at most one of two transactions with these orderings can ever be included. */\nexport function mutuallyExclusive(a: OrderingData, b: OrderingData): boolean {\n if (a.kind === 'nonce' && b.kind === 'nonce') return a.nonce === b.nonce;\n if (a.kind === 'seqno' && b.kind === 'seqno') return a.seqno === b.seqno;\n if (a.kind === 'inputs' && b.kind === 'inputs') {\n return a.inputs.some((input) => b.inputs.includes(input));\n }\n return false;\n}\n\n/** Short label safe for events and logs (never lists inputs or addresses). */\nexport function orderingLabel(ordering: OrderingData): string {\n switch (ordering.kind) {\n case 'nonce':\n return `nonce:${ordering.nonce}`;\n case 'seqno':\n return `seqno:${ordering.seqno}`;\n case 'inputs':\n return `inputs:${ordering.inputs.length}`;\n case 'expiry':\n return 'expiry';\n }\n}\n"]}
@@ -0,0 +1,116 @@
1
+ import type { ErrorCode } from '../errors/codes';
2
+ import type { SigningRequest } from '../signing/types';
3
+ import type { Address } from './address';
4
+ import type { Amount } from './amount';
5
+ import type { AssetInfo, AssetRef } from './asset';
6
+ import type { FeeEstimateDraft } from './fee';
7
+ import type { IntentSummary } from './intent';
8
+ import type { OrderingData } from './ordering';
9
+ /** Protocol data only (bytes or protocol JSON), never SDK objects. */
10
+ export interface RawTx {
11
+ readonly encoding: 'hex' | 'base64' | 'json';
12
+ readonly data: string;
13
+ }
14
+ export type AttemptIdKind = 'tx-hash' | 'txid' | 'signature' | 'message-hash';
15
+ /** Identity of a signed payload. `canonical: false` = not the final protocol tx hash (TON). */
16
+ export interface AttemptRef {
17
+ readonly id: string;
18
+ readonly idKind: AttemptIdKind;
19
+ readonly canonical: boolean;
20
+ }
21
+ export type TxState = 'unknown' | 'pending' | 'mempool' | 'included' | 'final' | 'failed' | 'dropped' | 'replaced' | 'expired' | 'refused' | 'rejected';
22
+ export type Evidence = 'observed' | 'proven';
23
+ export type Finality = 'none' | 'probabilistic' | 'final';
24
+ export interface TxStatus {
25
+ readonly state: TxState;
26
+ readonly evidence: Evidence;
27
+ readonly confirmations: number;
28
+ readonly txHash?: string;
29
+ readonly blockHash?: string;
30
+ readonly blockHeight?: bigint;
31
+ readonly finality: Finality;
32
+ /**
33
+ * Why the transaction did not go through. Present only with `failed`, `refused` or
34
+ * `rejected`. It is either a broadcast's refusal or rejection text, or the chain
35
+ * driver's text for an on-chain failure. It is a short, fixed text with no addresses,
36
+ * amounts or node detail. It is `sensitive` data, so it never appears in events
37
+ * or logs.
38
+ */
39
+ readonly reason?: string;
40
+ readonly replacedBy?: string;
41
+ }
42
+ export interface BlockRef {
43
+ readonly height: bigint;
44
+ readonly hash: string;
45
+ readonly timestamp?: number;
46
+ }
47
+ export interface Block {
48
+ readonly height: bigint;
49
+ readonly hash: string;
50
+ readonly parentHash: string;
51
+ readonly timestamp?: number;
52
+ readonly transactionIds?: readonly string[];
53
+ }
54
+ export type TransferSource = 'native' | 'token-event' | 'internal';
55
+ interface TransferBase {
56
+ /** Deterministic: `${txId}:${locator}`. */
57
+ readonly id: string;
58
+ readonly from: readonly Address[];
59
+ readonly to: Address;
60
+ readonly source: TransferSource;
61
+ readonly memo?: string;
62
+ }
63
+ /** A transfer whose asset resolved on this chain and network. */
64
+ export interface ResolvedTransfer extends TransferBase {
65
+ readonly asset: AssetInfo;
66
+ readonly amount: Amount;
67
+ readonly unresolved?: undefined;
68
+ }
69
+ /**
70
+ * A transfer whose asset could not be resolved, for example a token with unusable
71
+ * metadata or a failing decimals call. It has no `asset` and no `amount`: without the
72
+ * asset's decimals there is no `Amount`. `unresolved` keeps the chain's raw data instead,
73
+ * and the transaction's `decoding` is `'partial'`. A read never fails on such a transfer;
74
+ * only a retryable failure fails the read, so it can be retried.
75
+ */
76
+ export interface UnresolvedTransfer extends TransferBase {
77
+ readonly asset?: undefined;
78
+ readonly amount?: undefined;
79
+ readonly unresolved: {
80
+ /** The asset as the chain names it. */
81
+ readonly asset: AssetRef;
82
+ /** The amount in base units, never scaled. */
83
+ readonly amount: bigint;
84
+ /** Why the asset did not resolve, e.g. `ASSET_RESOLUTION`. */
85
+ readonly code: ErrorCode;
86
+ };
87
+ }
88
+ /** Check `unresolved` (or `amount`) before using a transfer's `asset` and `amount`. */
89
+ export type Transfer = ResolvedTransfer | UnresolvedTransfer;
90
+ export type Decoding = 'complete' | 'partial' | 'none';
91
+ export interface Transaction {
92
+ readonly id: string;
93
+ readonly chain: string;
94
+ readonly network: string;
95
+ readonly status: TxStatus;
96
+ readonly block?: BlockRef;
97
+ readonly fee?: readonly Amount[];
98
+ readonly transfers: readonly Transfer[];
99
+ readonly decoding: Decoding;
100
+ readonly raw?: RawTx;
101
+ readonly details: Readonly<Record<string, unknown>>;
102
+ }
103
+ export interface UnsignedTx {
104
+ readonly payload: RawTx;
105
+ /** Only when identity is fixed before signing (Tron; UTXO with witness-only inputs). */
106
+ readonly expectedRef?: AttemptRef;
107
+ readonly signingRequests: readonly SigningRequest[];
108
+ readonly ordering: OrderingData;
109
+ readonly fee: FeeEstimateDraft;
110
+ readonly summary: IntentSummary;
111
+ }
112
+ export interface SignedTx {
113
+ readonly raw: RawTx;
114
+ readonly ref: AttemptRef;
115
+ }
116
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transaction.js.map