project-cpu-mcp 0.9.1 → 0.11.1

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 (989) hide show
  1. package/README.md +134 -40
  2. package/dist/api/authentication-required.error.d.ts +6 -0
  3. package/dist/api/authentication-required.error.d.ts.map +1 -0
  4. package/dist/api/authentication-required.error.js +9 -0
  5. package/dist/api/authentication-required.error.js.map +1 -0
  6. package/dist/api/client.d.ts +7 -5
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/api/client.js +29 -14
  9. package/dist/api/client.js.map +1 -1
  10. package/dist/api/constants.d.ts +2 -0
  11. package/dist/api/constants.d.ts.map +1 -1
  12. package/dist/api/constants.js +6 -0
  13. package/dist/api/constants.js.map +1 -1
  14. package/dist/api/types.d.ts +1539 -299
  15. package/dist/api/types.d.ts.map +1 -1
  16. package/dist/api/types.js +160 -60
  17. package/dist/api/types.js.map +1 -1
  18. package/dist/config/boolean-env.utils.d.ts +2 -0
  19. package/dist/config/boolean-env.utils.d.ts.map +1 -0
  20. package/dist/config/boolean-env.utils.js +15 -0
  21. package/dist/config/boolean-env.utils.js.map +1 -0
  22. package/dist/config/constants.d.ts +12 -2
  23. package/dist/config/constants.d.ts.map +1 -1
  24. package/dist/config/constants.js +12 -2
  25. package/dist/config/constants.js.map +1 -1
  26. package/dist/config/env.d.ts.map +1 -1
  27. package/dist/config/env.js +3 -0
  28. package/dist/config/env.js.map +1 -1
  29. package/dist/config/network.types.d.ts +8 -0
  30. package/dist/config/network.types.d.ts.map +1 -0
  31. package/dist/config/network.types.js +10 -0
  32. package/dist/config/network.types.js.map +1 -0
  33. package/dist/config/types.d.ts +11 -12
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/config/types.js +5 -12
  36. package/dist/config/types.js.map +1 -1
  37. package/dist/contracts/cell.abi.d.ts +74 -2
  38. package/dist/contracts/cell.abi.d.ts.map +1 -1
  39. package/dist/contracts/cell.abi.js +35 -2
  40. package/dist/contracts/cell.abi.js.map +1 -1
  41. package/dist/contracts/erc20.abi.d.ts.map +1 -1
  42. package/dist/contracts/erc20.abi.js +1 -2
  43. package/dist/contracts/erc20.abi.js.map +1 -1
  44. package/dist/contracts/trade.abi.d.ts +346 -0
  45. package/dist/contracts/trade.abi.d.ts.map +1 -1
  46. package/dist/contracts/trade.abi.js +164 -0
  47. package/dist/contracts/trade.abi.js.map +1 -1
  48. package/dist/contracts/trade.types.d.ts +14 -0
  49. package/dist/contracts/trade.types.d.ts.map +1 -0
  50. package/dist/contracts/trade.types.js +15 -0
  51. package/dist/contracts/trade.types.js.map +1 -0
  52. package/dist/contracts/transport.abi.d.ts +14 -0
  53. package/dist/contracts/transport.abi.d.ts.map +1 -1
  54. package/dist/contracts/transport.abi.js +3 -0
  55. package/dist/contracts/transport.abi.js.map +1 -1
  56. package/dist/geometry/adjacency.data.d.ts +1 -1
  57. package/dist/geometry/adjacency.data.d.ts.map +1 -1
  58. package/dist/geometry/adjacency.data.js +115 -193
  59. package/dist/geometry/adjacency.data.js.map +1 -1
  60. package/dist/geometry/constants.d.ts +1 -1
  61. package/dist/geometry/constants.js +1 -1
  62. package/dist/index.js +47 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/logger/constants.d.ts +7 -0
  65. package/dist/logger/constants.d.ts.map +1 -1
  66. package/dist/logger/constants.js +11 -0
  67. package/dist/logger/constants.js.map +1 -1
  68. package/dist/logger/file-log.utils.d.ts +4 -0
  69. package/dist/logger/file-log.utils.d.ts.map +1 -0
  70. package/dist/logger/file-log.utils.js +23 -0
  71. package/dist/logger/file-log.utils.js.map +1 -0
  72. package/dist/logger/index.d.ts +1 -1
  73. package/dist/logger/index.d.ts.map +1 -1
  74. package/dist/logger/index.js +7 -4
  75. package/dist/logger/index.js.map +1 -1
  76. package/dist/logger/logger.d.ts +4 -0
  77. package/dist/logger/logger.d.ts.map +1 -1
  78. package/dist/logger/logger.js +48 -3
  79. package/dist/logger/logger.js.map +1 -1
  80. package/dist/logger/redact.utils.d.ts.map +1 -1
  81. package/dist/logger/redact.utils.js +7 -2
  82. package/dist/logger/redact.utils.js.map +1 -1
  83. package/dist/logger/types.d.ts +8 -0
  84. package/dist/logger/types.d.ts.map +1 -1
  85. package/dist/map/attention.utils.d.ts +2 -3
  86. package/dist/map/attention.utils.d.ts.map +1 -1
  87. package/dist/map/attention.utils.js +30 -14
  88. package/dist/map/attention.utils.js.map +1 -1
  89. package/dist/map/cell-view.utils.d.ts.map +1 -1
  90. package/dist/map/cell-view.utils.js +24 -20
  91. package/dist/map/cell-view.utils.js.map +1 -1
  92. package/dist/map/constants.d.ts +0 -1
  93. package/dist/map/constants.d.ts.map +1 -1
  94. package/dist/map/constants.js +0 -1
  95. package/dist/map/constants.js.map +1 -1
  96. package/dist/map/map.utils.d.ts +8 -3
  97. package/dist/map/map.utils.d.ts.map +1 -1
  98. package/dist/map/map.utils.js.map +1 -1
  99. package/dist/map/process-projection.utils.d.ts +4 -0
  100. package/dist/map/process-projection.utils.d.ts.map +1 -0
  101. package/dist/map/process-projection.utils.js +144 -0
  102. package/dist/map/process-projection.utils.js.map +1 -0
  103. package/dist/map/reader.d.ts +2 -2
  104. package/dist/map/reader.d.ts.map +1 -1
  105. package/dist/map/reader.js +12 -4
  106. package/dist/map/reader.js.map +1 -1
  107. package/dist/map/reader.utils.d.ts +4 -4
  108. package/dist/map/reader.utils.d.ts.map +1 -1
  109. package/dist/map/reader.utils.js +16 -9
  110. package/dist/map/reader.utils.js.map +1 -1
  111. package/dist/map/socket.d.ts.map +1 -1
  112. package/dist/map/socket.js +1 -0
  113. package/dist/map/socket.js.map +1 -1
  114. package/dist/map/storage.utils.d.ts +3 -6
  115. package/dist/map/storage.utils.d.ts.map +1 -1
  116. package/dist/map/storage.utils.js +12 -40
  117. package/dist/map/storage.utils.js.map +1 -1
  118. package/dist/map/store.d.ts +7 -0
  119. package/dist/map/store.d.ts.map +1 -1
  120. package/dist/map/store.js +28 -0
  121. package/dist/map/store.js.map +1 -1
  122. package/dist/map/sync.d.ts +4 -0
  123. package/dist/map/sync.d.ts.map +1 -1
  124. package/dist/map/sync.js +42 -2
  125. package/dist/map/sync.js.map +1 -1
  126. package/dist/map/types.d.ts +144 -28
  127. package/dist/map/types.d.ts.map +1 -1
  128. package/dist/map/types.js +9 -1
  129. package/dist/map/types.js.map +1 -1
  130. package/dist/paybox/auth/authority.d.ts +46 -0
  131. package/dist/paybox/auth/authority.d.ts.map +1 -0
  132. package/dist/paybox/auth/authority.js +410 -0
  133. package/dist/paybox/auth/authority.js.map +1 -0
  134. package/dist/paybox/auth/browser-opener.d.ts +8 -0
  135. package/dist/paybox/auth/browser-opener.d.ts.map +1 -0
  136. package/dist/paybox/auth/browser-opener.js +22 -0
  137. package/dist/paybox/auth/browser-opener.js.map +1 -0
  138. package/dist/paybox/auth/browser-opener.utils.d.ts +2 -0
  139. package/dist/paybox/auth/browser-opener.utils.d.ts.map +1 -0
  140. package/dist/paybox/auth/browser-opener.utils.js +10 -0
  141. package/dist/paybox/auth/browser-opener.utils.js.map +1 -0
  142. package/dist/paybox/auth/constants.d.ts +16 -0
  143. package/dist/paybox/auth/constants.d.ts.map +1 -0
  144. package/dist/paybox/auth/constants.js +16 -0
  145. package/dist/paybox/auth/constants.js.map +1 -0
  146. package/dist/paybox/auth/coordinator.d.ts +21 -0
  147. package/dist/paybox/auth/coordinator.d.ts.map +1 -0
  148. package/dist/paybox/auth/coordinator.factory.d.ts +5 -0
  149. package/dist/paybox/auth/coordinator.factory.d.ts.map +1 -0
  150. package/dist/paybox/auth/coordinator.factory.js +5 -0
  151. package/dist/paybox/auth/coordinator.factory.js.map +1 -0
  152. package/dist/paybox/auth/coordinator.js +87 -0
  153. package/dist/paybox/auth/coordinator.js.map +1 -0
  154. package/dist/paybox/auth/coordinator.utils.d.ts +4 -0
  155. package/dist/paybox/auth/coordinator.utils.d.ts.map +1 -0
  156. package/dist/paybox/auth/coordinator.utils.js +8 -0
  157. package/dist/paybox/auth/coordinator.utils.js.map +1 -0
  158. package/dist/paybox/auth/flow-session.d.ts +24 -0
  159. package/dist/paybox/auth/flow-session.d.ts.map +1 -0
  160. package/dist/paybox/auth/flow-session.js +155 -0
  161. package/dist/paybox/auth/flow-session.js.map +1 -0
  162. package/dist/paybox/auth/loopback-flow.d.ts +49 -0
  163. package/dist/paybox/auth/loopback-flow.d.ts.map +1 -0
  164. package/dist/paybox/auth/loopback-flow.js +381 -0
  165. package/dist/paybox/auth/loopback-flow.js.map +1 -0
  166. package/dist/paybox/auth/loopback-flow.utils.d.ts +7 -0
  167. package/dist/paybox/auth/loopback-flow.utils.d.ts.map +1 -0
  168. package/dist/paybox/auth/loopback-flow.utils.js +47 -0
  169. package/dist/paybox/auth/loopback-flow.utils.js.map +1 -0
  170. package/dist/paybox/auth/loopback-page-fonts.constants.d.ts +3 -0
  171. package/dist/paybox/auth/loopback-page-fonts.constants.d.ts.map +1 -0
  172. package/dist/paybox/auth/loopback-page-fonts.constants.js +228 -0
  173. package/dist/paybox/auth/loopback-page-fonts.constants.js.map +1 -0
  174. package/dist/paybox/auth/loopback-page.utils.d.ts +4 -0
  175. package/dist/paybox/auth/loopback-page.utils.d.ts.map +1 -0
  176. package/dist/paybox/auth/loopback-page.utils.js +261 -0
  177. package/dist/paybox/auth/loopback-page.utils.js.map +1 -0
  178. package/dist/paybox/auth/provisioning.utils.d.ts +3 -0
  179. package/dist/paybox/auth/provisioning.utils.d.ts.map +1 -0
  180. package/dist/paybox/auth/provisioning.utils.js +27 -0
  181. package/dist/paybox/auth/provisioning.utils.js.map +1 -0
  182. package/dist/paybox/auth/signing-key.utils.d.ts +2 -0
  183. package/dist/paybox/auth/signing-key.utils.d.ts.map +1 -0
  184. package/dist/paybox/auth/signing-key.utils.js +14 -0
  185. package/dist/paybox/auth/signing-key.utils.js.map +1 -0
  186. package/dist/paybox/auth/types.d.ts +18 -0
  187. package/dist/paybox/auth/types.d.ts.map +1 -0
  188. package/dist/paybox/auth/types.js +6 -0
  189. package/dist/paybox/auth/types.js.map +1 -0
  190. package/dist/paybox/auth/utils.d.ts +5 -0
  191. package/dist/paybox/auth/utils.d.ts.map +1 -0
  192. package/dist/paybox/auth/utils.js +17 -0
  193. package/dist/paybox/auth/utils.js.map +1 -0
  194. package/dist/paybox/constants.d.ts +11 -0
  195. package/dist/paybox/constants.d.ts.map +1 -0
  196. package/dist/paybox/constants.js +11 -0
  197. package/dist/paybox/constants.js.map +1 -0
  198. package/dist/paybox/errors.d.ts +43 -0
  199. package/dist/paybox/errors.d.ts.map +1 -0
  200. package/dist/paybox/errors.js +141 -0
  201. package/dist/paybox/errors.js.map +1 -0
  202. package/dist/paybox/sdk/adapter.d.ts +16 -0
  203. package/dist/paybox/sdk/adapter.d.ts.map +1 -0
  204. package/dist/paybox/sdk/adapter.js +104 -0
  205. package/dist/paybox/sdk/adapter.js.map +1 -0
  206. package/dist/paybox/sdk/constants.d.ts +19 -0
  207. package/dist/paybox/sdk/constants.d.ts.map +1 -0
  208. package/dist/paybox/sdk/constants.js +28 -0
  209. package/dist/paybox/sdk/constants.js.map +1 -0
  210. package/dist/paybox/sdk/factory.d.ts +4 -0
  211. package/dist/paybox/sdk/factory.d.ts.map +1 -0
  212. package/dist/paybox/sdk/factory.js +24 -0
  213. package/dist/paybox/sdk/factory.js.map +1 -0
  214. package/dist/paybox/sdk/logging.utils.d.ts +4 -0
  215. package/dist/paybox/sdk/logging.utils.d.ts.map +1 -0
  216. package/dist/paybox/sdk/logging.utils.js +19 -0
  217. package/dist/paybox/sdk/logging.utils.js.map +1 -0
  218. package/dist/paybox/sdk/utils.d.ts +9 -0
  219. package/dist/paybox/sdk/utils.d.ts.map +1 -0
  220. package/dist/paybox/sdk/utils.js +238 -0
  221. package/dist/paybox/sdk/utils.js.map +1 -0
  222. package/dist/paybox/storage.d.ts +17 -0
  223. package/dist/paybox/storage.d.ts.map +1 -0
  224. package/dist/paybox/storage.js +87 -0
  225. package/dist/paybox/storage.js.map +1 -0
  226. package/dist/paybox/types.d.ts +487 -0
  227. package/dist/paybox/types.d.ts.map +1 -0
  228. package/dist/paybox/types.js +144 -0
  229. package/dist/paybox/types.js.map +1 -0
  230. package/dist/paybox/wallet/manager.d.ts +22 -0
  231. package/dist/paybox/wallet/manager.d.ts.map +1 -0
  232. package/dist/paybox/wallet/manager.js +111 -0
  233. package/dist/paybox/wallet/manager.js.map +1 -0
  234. package/dist/paybox/wallet/rpc.client.d.ts +16 -0
  235. package/dist/paybox/wallet/rpc.client.d.ts.map +1 -0
  236. package/dist/paybox/wallet/rpc.client.js +53 -0
  237. package/dist/paybox/wallet/rpc.client.js.map +1 -0
  238. package/dist/paybox/wallet/utils.d.ts +5 -0
  239. package/dist/paybox/wallet/utils.d.ts.map +1 -0
  240. package/dist/paybox/wallet/utils.js +62 -0
  241. package/dist/paybox/wallet/utils.js.map +1 -0
  242. package/dist/server.constants.d.ts +3 -0
  243. package/dist/server.constants.d.ts.map +1 -0
  244. package/dist/server.constants.js +27 -0
  245. package/dist/server.constants.js.map +1 -0
  246. package/dist/server.d.ts.map +1 -1
  247. package/dist/server.js +38 -78
  248. package/dist/server.js.map +1 -1
  249. package/dist/services/app-config.service.d.ts.map +1 -1
  250. package/dist/services/app-config.service.js +3 -48
  251. package/dist/services/app-config.service.js.map +1 -1
  252. package/dist/services/app-config.utils.d.ts +2 -12
  253. package/dist/services/app-config.utils.d.ts.map +1 -1
  254. package/dist/services/app-config.utils.js +70 -18
  255. package/dist/services/app-config.utils.js.map +1 -1
  256. package/dist/services/auth.service.d.ts +3 -5
  257. package/dist/services/auth.service.d.ts.map +1 -1
  258. package/dist/services/auth.service.js +20 -77
  259. package/dist/services/auth.service.js.map +1 -1
  260. package/dist/services/build.service.d.ts +0 -3
  261. package/dist/services/build.service.d.ts.map +1 -1
  262. package/dist/services/build.service.js +15 -35
  263. package/dist/services/build.service.js.map +1 -1
  264. package/dist/services/cell.client.d.ts.map +1 -1
  265. package/dist/services/cell.client.js +22 -9
  266. package/dist/services/cell.client.js.map +1 -1
  267. package/dist/services/craft-quote.constants.d.ts +2 -0
  268. package/dist/services/craft-quote.constants.d.ts.map +1 -0
  269. package/dist/services/craft-quote.constants.js +2 -0
  270. package/dist/services/craft-quote.constants.js.map +1 -0
  271. package/dist/services/craft-quote.utils.d.ts +4 -0
  272. package/dist/services/craft-quote.utils.d.ts.map +1 -0
  273. package/dist/services/craft-quote.utils.js +12 -0
  274. package/dist/services/craft-quote.utils.js.map +1 -0
  275. package/dist/services/craft.service.d.ts +1 -7
  276. package/dist/services/craft.service.d.ts.map +1 -1
  277. package/dist/services/craft.service.js +60 -90
  278. package/dist/services/craft.service.js.map +1 -1
  279. package/dist/services/lot-return.constants.d.ts +3 -0
  280. package/dist/services/lot-return.constants.d.ts.map +1 -0
  281. package/dist/services/lot-return.constants.js +35 -0
  282. package/dist/services/lot-return.constants.js.map +1 -0
  283. package/dist/services/lot-return.service.d.ts +25 -0
  284. package/dist/services/lot-return.service.d.ts.map +1 -0
  285. package/dist/services/lot-return.service.js +151 -0
  286. package/dist/services/lot-return.service.js.map +1 -0
  287. package/dist/services/lot-return.types.d.ts +19 -0
  288. package/dist/services/lot-return.types.d.ts.map +1 -0
  289. package/dist/services/lot-return.types.js +2 -0
  290. package/dist/services/lot-return.types.js.map +1 -0
  291. package/dist/services/lot-return.utils.d.ts +33 -0
  292. package/dist/services/lot-return.utils.d.ts.map +1 -0
  293. package/dist/services/lot-return.utils.js +128 -0
  294. package/dist/services/lot-return.utils.js.map +1 -0
  295. package/dist/services/lot-terms.constants.d.ts +4 -0
  296. package/dist/services/lot-terms.constants.d.ts.map +1 -0
  297. package/dist/services/lot-terms.constants.js +5 -0
  298. package/dist/services/lot-terms.constants.js.map +1 -0
  299. package/dist/services/lot-terms.helpers.d.ts +11 -0
  300. package/dist/services/lot-terms.helpers.d.ts.map +1 -0
  301. package/dist/services/lot-terms.helpers.js +45 -0
  302. package/dist/services/lot-terms.helpers.js.map +1 -0
  303. package/dist/services/lot-terms.service.d.ts +20 -0
  304. package/dist/services/lot-terms.service.d.ts.map +1 -0
  305. package/dist/services/lot-terms.service.js +119 -0
  306. package/dist/services/lot-terms.service.js.map +1 -0
  307. package/dist/services/lot-terms.types.d.ts +25 -0
  308. package/dist/services/lot-terms.types.d.ts.map +1 -0
  309. package/dist/services/lot-terms.types.js +2 -0
  310. package/dist/services/lot-terms.types.js.map +1 -0
  311. package/dist/services/mining.service.d.ts +1 -4
  312. package/dist/services/mining.service.d.ts.map +1 -1
  313. package/dist/services/mining.service.js +41 -72
  314. package/dist/services/mining.service.js.map +1 -1
  315. package/dist/services/mint.constants.d.ts +1 -0
  316. package/dist/services/mint.constants.d.ts.map +1 -1
  317. package/dist/services/mint.constants.js +3 -0
  318. package/dist/services/mint.constants.js.map +1 -1
  319. package/dist/services/mint.service.d.ts +0 -1
  320. package/dist/services/mint.service.d.ts.map +1 -1
  321. package/dist/services/mint.service.js +10 -17
  322. package/dist/services/mint.service.js.map +1 -1
  323. package/dist/services/mode-switch.d.ts +9 -0
  324. package/dist/services/mode-switch.d.ts.map +1 -0
  325. package/dist/services/mode-switch.js +71 -0
  326. package/dist/services/mode-switch.js.map +1 -0
  327. package/dist/services/mode-switch.types.d.ts +60 -0
  328. package/dist/services/mode-switch.types.d.ts.map +1 -0
  329. package/dist/services/mode-switch.types.js +6 -0
  330. package/dist/services/mode-switch.types.js.map +1 -0
  331. package/dist/services/paid-action.constants.d.ts +3 -0
  332. package/dist/services/paid-action.constants.d.ts.map +1 -0
  333. package/dist/services/paid-action.constants.js +11 -0
  334. package/dist/services/paid-action.constants.js.map +1 -0
  335. package/dist/services/paid-action.d.ts +3 -0
  336. package/dist/services/paid-action.d.ts.map +1 -0
  337. package/dist/services/paid-action.js +23 -0
  338. package/dist/services/paid-action.js.map +1 -0
  339. package/dist/services/paid-action.types.d.ts +22 -0
  340. package/dist/services/paid-action.types.d.ts.map +1 -0
  341. package/dist/services/paid-action.types.js +11 -0
  342. package/dist/services/paid-action.types.js.map +1 -0
  343. package/dist/services/reveal-fulfilment.service.d.ts.map +1 -1
  344. package/dist/services/reveal-fulfilment.service.js +2 -5
  345. package/dist/services/reveal-fulfilment.service.js.map +1 -1
  346. package/dist/services/reveal-revert.utils.d.ts +1 -0
  347. package/dist/services/reveal-revert.utils.d.ts.map +1 -1
  348. package/dist/services/reveal-revert.utils.js +20 -0
  349. package/dist/services/reveal-revert.utils.js.map +1 -1
  350. package/dist/services/reveal.constants.d.ts +1 -1
  351. package/dist/services/reveal.constants.d.ts.map +1 -1
  352. package/dist/services/reveal.constants.js +1 -1
  353. package/dist/services/reveal.constants.js.map +1 -1
  354. package/dist/services/reveal.service.d.ts +4 -3
  355. package/dist/services/reveal.service.d.ts.map +1 -1
  356. package/dist/services/reveal.service.js +40 -19
  357. package/dist/services/reveal.service.js.map +1 -1
  358. package/dist/services/reveal.utils.d.ts +7 -8
  359. package/dist/services/reveal.utils.d.ts.map +1 -1
  360. package/dist/services/reveal.utils.js +15 -8
  361. package/dist/services/reveal.utils.js.map +1 -1
  362. package/dist/services/route.artifact.d.ts +4 -0
  363. package/dist/services/route.artifact.d.ts.map +1 -0
  364. package/dist/services/route.artifact.js +18 -0
  365. package/dist/services/route.artifact.js.map +1 -0
  366. package/dist/services/route.constants.d.ts +26 -1
  367. package/dist/services/route.constants.d.ts.map +1 -1
  368. package/dist/services/route.constants.js +135 -8
  369. package/dist/services/route.constants.js.map +1 -1
  370. package/dist/services/route.lots.d.ts +18 -0
  371. package/dist/services/route.lots.d.ts.map +1 -0
  372. package/dist/services/route.lots.js +33 -0
  373. package/dist/services/route.lots.js.map +1 -0
  374. package/dist/services/route.service.d.ts +17 -4
  375. package/dist/services/route.service.d.ts.map +1 -1
  376. package/dist/services/route.service.js +195 -92
  377. package/dist/services/route.service.js.map +1 -1
  378. package/dist/services/route.types.d.ts +76 -0
  379. package/dist/services/route.types.d.ts.map +1 -0
  380. package/dist/services/route.types.js +8 -0
  381. package/dist/services/route.types.js.map +1 -0
  382. package/dist/services/route.utils.d.ts +115 -5
  383. package/dist/services/route.utils.d.ts.map +1 -1
  384. package/dist/services/route.utils.js +231 -37
  385. package/dist/services/route.utils.js.map +1 -1
  386. package/dist/services/swap.service.d.ts +0 -1
  387. package/dist/services/swap.service.d.ts.map +1 -1
  388. package/dist/services/swap.service.js +11 -17
  389. package/dist/services/swap.service.js.map +1 -1
  390. package/dist/services/syndicate.constants.d.ts +3 -0
  391. package/dist/services/syndicate.constants.d.ts.map +1 -0
  392. package/dist/services/syndicate.constants.js +3 -0
  393. package/dist/services/syndicate.constants.js.map +1 -0
  394. package/dist/services/syndicate.helpers.d.ts.map +1 -1
  395. package/dist/services/syndicate.helpers.js +0 -2
  396. package/dist/services/syndicate.helpers.js.map +1 -1
  397. package/dist/services/syndicate.service.d.ts +3 -3
  398. package/dist/services/syndicate.service.d.ts.map +1 -1
  399. package/dist/services/syndicate.service.js +27 -32
  400. package/dist/services/syndicate.service.js.map +1 -1
  401. package/dist/services/trade-eviction.constants.d.ts +12 -0
  402. package/dist/services/trade-eviction.constants.d.ts.map +1 -0
  403. package/dist/services/trade-eviction.constants.js +25 -0
  404. package/dist/services/trade-eviction.constants.js.map +1 -0
  405. package/dist/services/trade-eviction.service.d.ts +22 -0
  406. package/dist/services/trade-eviction.service.d.ts.map +1 -0
  407. package/dist/services/trade-eviction.service.js +101 -0
  408. package/dist/services/trade-eviction.service.js.map +1 -0
  409. package/dist/services/trade-eviction.types.d.ts +30 -0
  410. package/dist/services/trade-eviction.types.d.ts.map +1 -0
  411. package/dist/services/trade-eviction.types.js +2 -0
  412. package/dist/services/trade-eviction.types.js.map +1 -0
  413. package/dist/services/trade-eviction.utils.d.ts +9 -0
  414. package/dist/services/trade-eviction.utils.d.ts.map +1 -0
  415. package/dist/services/trade-eviction.utils.js +38 -0
  416. package/dist/services/trade-eviction.utils.js.map +1 -0
  417. package/dist/services/trade-rules.service.d.ts +15 -0
  418. package/dist/services/trade-rules.service.d.ts.map +1 -0
  419. package/dist/services/trade-rules.service.js +45 -0
  420. package/dist/services/trade-rules.service.js.map +1 -0
  421. package/dist/services/trade.client.d.ts +11 -1
  422. package/dist/services/trade.client.d.ts.map +1 -1
  423. package/dist/services/trade.client.js +87 -0
  424. package/dist/services/trade.client.js.map +1 -1
  425. package/dist/services/trade.constants.d.ts +9 -0
  426. package/dist/services/trade.constants.d.ts.map +1 -0
  427. package/dist/services/trade.constants.js +28 -0
  428. package/dist/services/trade.constants.js.map +1 -0
  429. package/dist/services/trade.helpers.d.ts +9 -1
  430. package/dist/services/trade.helpers.d.ts.map +1 -1
  431. package/dist/services/trade.helpers.js +40 -27
  432. package/dist/services/trade.helpers.js.map +1 -1
  433. package/dist/services/trade.service.d.ts +0 -3
  434. package/dist/services/trade.service.d.ts.map +1 -1
  435. package/dist/services/trade.service.js +27 -47
  436. package/dist/services/trade.service.js.map +1 -1
  437. package/dist/services/transport-revert.utils.d.ts +3 -0
  438. package/dist/services/transport-revert.utils.d.ts.map +1 -0
  439. package/dist/services/transport-revert.utils.js +15 -0
  440. package/dist/services/transport-revert.utils.js.map +1 -0
  441. package/dist/services/transport.client.d.ts.map +1 -1
  442. package/dist/services/transport.client.js +14 -6
  443. package/dist/services/transport.client.js.map +1 -1
  444. package/dist/services/transport.service.d.ts +0 -2
  445. package/dist/services/transport.service.d.ts.map +1 -1
  446. package/dist/services/transport.service.js +16 -33
  447. package/dist/services/transport.service.js.map +1 -1
  448. package/dist/services/types.d.ts +337 -65
  449. package/dist/services/types.d.ts.map +1 -1
  450. package/dist/services/types.js +25 -0
  451. package/dist/services/types.js.map +1 -1
  452. package/dist/services/warehouse.utils.d.ts +8 -0
  453. package/dist/services/warehouse.utils.d.ts.map +1 -1
  454. package/dist/services/warehouse.utils.js +25 -0
  455. package/dist/services/warehouse.utils.js.map +1 -1
  456. package/dist/services/withdraw.service.d.ts +0 -2
  457. package/dist/services/withdraw.service.d.ts.map +1 -1
  458. package/dist/services/withdraw.service.js +6 -17
  459. package/dist/services/withdraw.service.js.map +1 -1
  460. package/dist/session/manager.d.ts +1 -0
  461. package/dist/session/manager.d.ts.map +1 -1
  462. package/dist/session/manager.js +13 -0
  463. package/dist/session/manager.js.map +1 -1
  464. package/dist/session/storage.d.ts +0 -3
  465. package/dist/session/storage.d.ts.map +1 -1
  466. package/dist/session/storage.js +6 -43
  467. package/dist/session/storage.js.map +1 -1
  468. package/dist/session/types.d.ts +4 -98
  469. package/dist/session/types.d.ts.map +1 -1
  470. package/dist/session/types.js +0 -15
  471. package/dist/session/types.js.map +1 -1
  472. package/dist/tools/authenticate.d.ts +1 -1
  473. package/dist/tools/authenticate.d.ts.map +1 -1
  474. package/dist/tools/authenticate.js +21 -45
  475. package/dist/tools/authenticate.js.map +1 -1
  476. package/dist/tools/build/build.d.ts +1 -1
  477. package/dist/tools/build/build.d.ts.map +1 -1
  478. package/dist/tools/build/build.js +10 -35
  479. package/dist/tools/build/build.js.map +1 -1
  480. package/dist/tools/build/constants.d.ts +36 -0
  481. package/dist/tools/build/constants.d.ts.map +1 -1
  482. package/dist/tools/build/constants.js +36 -0
  483. package/dist/tools/build/constants.js.map +1 -1
  484. package/dist/tools/build/demolish.d.ts +1 -1
  485. package/dist/tools/build/demolish.d.ts.map +1 -1
  486. package/dist/tools/build/demolish.js +5 -1
  487. package/dist/tools/build/demolish.js.map +1 -1
  488. package/dist/tools/build/panel.utils.d.ts +4 -0
  489. package/dist/tools/build/panel.utils.d.ts.map +1 -0
  490. package/dist/tools/build/panel.utils.js +103 -0
  491. package/dist/tools/build/panel.utils.js.map +1 -0
  492. package/dist/tools/build/types.d.ts +9 -0
  493. package/dist/tools/build/types.d.ts.map +1 -1
  494. package/dist/tools/build/types.js.map +1 -1
  495. package/dist/tools/build/upgrade.d.ts +1 -1
  496. package/dist/tools/build/upgrade.d.ts.map +1 -1
  497. package/dist/tools/build/upgrade.js +10 -22
  498. package/dist/tools/build/upgrade.js.map +1 -1
  499. package/dist/tools/config/building-card/building-card.d.ts +4 -0
  500. package/dist/tools/config/building-card/building-card.d.ts.map +1 -0
  501. package/dist/tools/config/building-card/building-card.js +20 -0
  502. package/dist/tools/config/building-card/building-card.js.map +1 -0
  503. package/dist/tools/config/building-card/building-card.utils.d.ts +10 -0
  504. package/dist/tools/config/building-card/building-card.utils.d.ts.map +1 -0
  505. package/dist/tools/config/building-card/building-card.utils.js +206 -0
  506. package/dist/tools/config/building-card/building-card.utils.js.map +1 -0
  507. package/dist/tools/config/building-card/constants.d.ts +39 -0
  508. package/dist/tools/config/building-card/constants.d.ts.map +1 -0
  509. package/dist/tools/config/building-card/constants.js +43 -0
  510. package/dist/tools/config/building-card/constants.js.map +1 -0
  511. package/dist/tools/config/building-card/types.d.ts +63 -0
  512. package/dist/tools/config/building-card/types.d.ts.map +1 -0
  513. package/dist/tools/config/building-card/types.js +8 -0
  514. package/dist/tools/config/building-card/types.js.map +1 -0
  515. package/dist/tools/config/find-buildings/constants.d.ts +9 -0
  516. package/dist/tools/config/find-buildings/constants.d.ts.map +1 -0
  517. package/dist/tools/config/find-buildings/constants.js +19 -0
  518. package/dist/tools/config/find-buildings/constants.js.map +1 -0
  519. package/dist/tools/config/find-buildings/find-buildings.d.ts +4 -0
  520. package/dist/tools/config/find-buildings/find-buildings.d.ts.map +1 -0
  521. package/dist/tools/config/find-buildings/find-buildings.js +31 -0
  522. package/dist/tools/config/find-buildings/find-buildings.js.map +1 -0
  523. package/dist/tools/config/find-buildings/find-buildings.utils.d.ts +14 -0
  524. package/dist/tools/config/find-buildings/find-buildings.utils.d.ts.map +1 -0
  525. package/dist/tools/config/find-buildings/find-buildings.utils.js +85 -0
  526. package/dist/tools/config/find-buildings/find-buildings.utils.js.map +1 -0
  527. package/dist/tools/config/find-buildings/types.d.ts +36 -0
  528. package/dist/tools/config/find-buildings/types.d.ts.map +1 -0
  529. package/dist/tools/config/find-buildings/types.js +40 -0
  530. package/dist/tools/config/find-buildings/types.js.map +1 -0
  531. package/dist/tools/config/get-game-config/constants.d.ts +22 -7
  532. package/dist/tools/config/get-game-config/constants.d.ts.map +1 -1
  533. package/dist/tools/config/get-game-config/constants.js +60 -16
  534. package/dist/tools/config/get-game-config/constants.js.map +1 -1
  535. package/dist/tools/config/get-game-config/get-game-config.d.ts.map +1 -1
  536. package/dist/tools/config/get-game-config/get-game-config.js +8 -44
  537. package/dist/tools/config/get-game-config/get-game-config.js.map +1 -1
  538. package/dist/tools/config/get-game-config/get-game-config.utils.d.ts +9 -5
  539. package/dist/tools/config/get-game-config/get-game-config.utils.d.ts.map +1 -1
  540. package/dist/tools/config/get-game-config/get-game-config.utils.js +92 -79
  541. package/dist/tools/config/get-game-config/get-game-config.utils.js.map +1 -1
  542. package/dist/tools/config/get-game-config/types.d.ts +40 -0
  543. package/dist/tools/config/get-game-config/types.d.ts.map +1 -0
  544. package/dist/tools/config/get-game-config/types.js +2 -0
  545. package/dist/tools/config/get-game-config/types.js.map +1 -0
  546. package/dist/tools/config/resource-lens/constants.d.ts +24 -0
  547. package/dist/tools/config/resource-lens/constants.d.ts.map +1 -0
  548. package/dist/tools/config/resource-lens/constants.js +36 -0
  549. package/dist/tools/config/resource-lens/constants.js.map +1 -0
  550. package/dist/tools/config/resource-lens/resource-lens.d.ts +4 -0
  551. package/dist/tools/config/resource-lens/resource-lens.d.ts.map +1 -0
  552. package/dist/tools/config/resource-lens/resource-lens.js +16 -0
  553. package/dist/tools/config/resource-lens/resource-lens.js.map +1 -0
  554. package/dist/tools/config/resource-lens/resource-lens.utils.d.ts +6 -0
  555. package/dist/tools/config/resource-lens/resource-lens.utils.d.ts.map +1 -0
  556. package/dist/tools/config/resource-lens/resource-lens.utils.js +109 -0
  557. package/dist/tools/config/resource-lens/resource-lens.utils.js.map +1 -0
  558. package/dist/tools/config/resource-lens/types.d.ts +34 -0
  559. package/dist/tools/config/resource-lens/types.d.ts.map +1 -0
  560. package/dist/tools/config/resource-lens/types.js +8 -0
  561. package/dist/tools/config/resource-lens/types.js.map +1 -0
  562. package/dist/tools/craft/claim/claim-craft.d.ts +1 -1
  563. package/dist/tools/craft/claim/claim-craft.d.ts.map +1 -1
  564. package/dist/tools/craft/claim/claim-craft.js +5 -1
  565. package/dist/tools/craft/claim/claim-craft.js.map +1 -1
  566. package/dist/tools/craft/craft.d.ts +1 -1
  567. package/dist/tools/craft/craft.d.ts.map +1 -1
  568. package/dist/tools/craft/craft.js +5 -1
  569. package/dist/tools/craft/craft.js.map +1 -1
  570. package/dist/tools/map/attention/attention.d.ts.map +1 -1
  571. package/dist/tools/map/attention/attention.js +28 -11
  572. package/dist/tools/map/attention/attention.js.map +1 -1
  573. package/dist/tools/map/attention/constants.d.ts +25 -0
  574. package/dist/tools/map/attention/constants.d.ts.map +1 -1
  575. package/dist/tools/map/attention/constants.js +38 -2
  576. package/dist/tools/map/attention/constants.js.map +1 -1
  577. package/dist/tools/map/attention/evicted.service.d.ts +19 -0
  578. package/dist/tools/map/attention/evicted.service.d.ts.map +1 -0
  579. package/dist/tools/map/attention/evicted.service.js +73 -0
  580. package/dist/tools/map/attention/evicted.service.js.map +1 -0
  581. package/dist/tools/map/attention/evicted.utils.d.ts +16 -0
  582. package/dist/tools/map/attention/evicted.utils.d.ts.map +1 -0
  583. package/dist/tools/map/attention/evicted.utils.js +72 -0
  584. package/dist/tools/map/attention/evicted.utils.js.map +1 -0
  585. package/dist/tools/map/attention/panel.utils.d.ts +3 -0
  586. package/dist/tools/map/attention/panel.utils.d.ts.map +1 -0
  587. package/dist/tools/map/attention/panel.utils.js +58 -0
  588. package/dist/tools/map/attention/panel.utils.js.map +1 -0
  589. package/dist/tools/map/attention/types.d.ts +29 -1
  590. package/dist/tools/map/attention/types.d.ts.map +1 -1
  591. package/dist/tools/map/attention/types.js.map +1 -1
  592. package/dist/tools/map/get-cell/constants.d.ts +20 -0
  593. package/dist/tools/map/get-cell/constants.d.ts.map +1 -1
  594. package/dist/tools/map/get-cell/constants.js +20 -0
  595. package/dist/tools/map/get-cell/constants.js.map +1 -1
  596. package/dist/tools/map/get-cell/demolish.utils.d.ts +1 -1
  597. package/dist/tools/map/get-cell/demolish.utils.d.ts.map +1 -1
  598. package/dist/tools/map/get-cell/demolish.utils.js +3 -5
  599. package/dist/tools/map/get-cell/demolish.utils.js.map +1 -1
  600. package/dist/tools/map/get-cell/get-cell.d.ts.map +1 -1
  601. package/dist/tools/map/get-cell/get-cell.js +12 -5
  602. package/dist/tools/map/get-cell/get-cell.js.map +1 -1
  603. package/dist/tools/map/get-cell/panel.utils.d.ts +3 -0
  604. package/dist/tools/map/get-cell/panel.utils.d.ts.map +1 -0
  605. package/dist/tools/map/get-cell/panel.utils.js +65 -0
  606. package/dist/tools/map/get-cell/panel.utils.js.map +1 -0
  607. package/dist/tools/map/get-cell/types.d.ts +9 -0
  608. package/dist/tools/map/get-cell/types.d.ts.map +1 -1
  609. package/dist/tools/map/get-cell/types.js.map +1 -1
  610. package/dist/tools/map/get-changes/constants.d.ts +31 -0
  611. package/dist/tools/map/get-changes/constants.d.ts.map +1 -1
  612. package/dist/tools/map/get-changes/constants.js +47 -0
  613. package/dist/tools/map/get-changes/constants.js.map +1 -1
  614. package/dist/tools/map/get-changes/get-changes.d.ts.map +1 -1
  615. package/dist/tools/map/get-changes/get-changes.js +9 -3
  616. package/dist/tools/map/get-changes/get-changes.js.map +1 -1
  617. package/dist/tools/map/get-changes/panel.utils.d.ts +3 -0
  618. package/dist/tools/map/get-changes/panel.utils.d.ts.map +1 -0
  619. package/dist/tools/map/get-changes/panel.utils.js +46 -0
  620. package/dist/tools/map/get-changes/panel.utils.js.map +1 -0
  621. package/dist/tools/map/get-changes/types.d.ts +9 -0
  622. package/dist/tools/map/get-changes/types.d.ts.map +1 -1
  623. package/dist/tools/map/get-changes/types.js.map +1 -1
  624. package/dist/tools/map/get-map/constants.d.ts.map +1 -1
  625. package/dist/tools/map/get-map/constants.js +5 -3
  626. package/dist/tools/map/get-map/constants.js.map +1 -1
  627. package/dist/tools/map/label.utils.d.ts +1 -0
  628. package/dist/tools/map/label.utils.d.ts.map +1 -1
  629. package/dist/tools/mining/claim/claim-mining.d.ts +1 -1
  630. package/dist/tools/mining/claim/claim-mining.d.ts.map +1 -1
  631. package/dist/tools/mining/claim/claim-mining.js +5 -1
  632. package/dist/tools/mining/claim/claim-mining.js.map +1 -1
  633. package/dist/tools/mining/start/start-mining.d.ts +1 -1
  634. package/dist/tools/mining/start/start-mining.d.ts.map +1 -1
  635. package/dist/tools/mining/start/start-mining.js +5 -1
  636. package/dist/tools/mining/start/start-mining.js.map +1 -1
  637. package/dist/tools/mint/constants.d.ts.map +1 -1
  638. package/dist/tools/mint/constants.js +10 -9
  639. package/dist/tools/mint/constants.js.map +1 -1
  640. package/dist/tools/mint/format.utils.js +4 -4
  641. package/dist/tools/mint/format.utils.js.map +1 -1
  642. package/dist/tools/mint/mint-cell.d.ts +1 -1
  643. package/dist/tools/mint/mint-cell.d.ts.map +1 -1
  644. package/dist/tools/mint/mint-cell.js +2 -1
  645. package/dist/tools/mint/mint-cell.js.map +1 -1
  646. package/dist/tools/persona/constants.d.ts +12 -0
  647. package/dist/tools/persona/constants.d.ts.map +1 -0
  648. package/dist/tools/persona/constants.js +144 -0
  649. package/dist/tools/persona/constants.js.map +1 -0
  650. package/dist/tools/persona/persona.d.ts +4 -0
  651. package/dist/tools/persona/persona.d.ts.map +1 -0
  652. package/dist/tools/persona/persona.gate.d.ts +5 -0
  653. package/dist/tools/persona/persona.gate.d.ts.map +1 -0
  654. package/dist/tools/persona/persona.gate.js +21 -0
  655. package/dist/tools/persona/persona.gate.js.map +1 -0
  656. package/dist/tools/persona/persona.js +9 -0
  657. package/dist/tools/persona/persona.js.map +1 -0
  658. package/dist/tools/persona/persona.utils.d.ts +2 -0
  659. package/dist/tools/persona/persona.utils.d.ts.map +1 -0
  660. package/dist/tools/persona/persona.utils.js +17 -0
  661. package/dist/tools/persona/persona.utils.js.map +1 -0
  662. package/dist/tools/persona/types.d.ts +14 -0
  663. package/dist/tools/persona/types.d.ts.map +1 -0
  664. package/dist/tools/persona/types.js +11 -0
  665. package/dist/tools/persona/types.js.map +1 -0
  666. package/dist/tools/reveal/constants.d.ts.map +1 -1
  667. package/dist/tools/reveal/constants.js +3 -1
  668. package/dist/tools/reveal/constants.js.map +1 -1
  669. package/dist/tools/reveal/fulfill-reveal.d.ts +1 -1
  670. package/dist/tools/reveal/fulfill-reveal.d.ts.map +1 -1
  671. package/dist/tools/reveal/fulfill-reveal.js +11 -1
  672. package/dist/tools/reveal/fulfill-reveal.js.map +1 -1
  673. package/dist/tools/reveal/reveal.d.ts +1 -1
  674. package/dist/tools/reveal/reveal.d.ts.map +1 -1
  675. package/dist/tools/reveal/reveal.js +11 -1
  676. package/dist/tools/reveal/reveal.js.map +1 -1
  677. package/dist/tools/swap/swap.d.ts +1 -1
  678. package/dist/tools/swap/swap.d.ts.map +1 -1
  679. package/dist/tools/swap/swap.js +2 -1
  680. package/dist/tools/swap/swap.js.map +1 -1
  681. package/dist/tools/syndicate/create/create-syndicate.d.ts.map +1 -1
  682. package/dist/tools/syndicate/create/create-syndicate.js +6 -9
  683. package/dist/tools/syndicate/create/create-syndicate.js.map +1 -1
  684. package/dist/tools/syndicate/format.utils.d.ts.map +1 -1
  685. package/dist/tools/syndicate/format.utils.js +7 -9
  686. package/dist/tools/syndicate/format.utils.js.map +1 -1
  687. package/dist/tools/syndicate/get/constants.d.ts.map +1 -1
  688. package/dist/tools/syndicate/get/constants.js +3 -2
  689. package/dist/tools/syndicate/get/constants.js.map +1 -1
  690. package/dist/tools/syndicate/get/get-syndicate.d.ts.map +1 -1
  691. package/dist/tools/syndicate/get/get-syndicate.js +6 -9
  692. package/dist/tools/syndicate/get/get-syndicate.js.map +1 -1
  693. package/dist/tools/syndicate/join/constants.d.ts.map +1 -1
  694. package/dist/tools/syndicate/join/constants.js +2 -1
  695. package/dist/tools/syndicate/join/constants.js.map +1 -1
  696. package/dist/tools/syndicate/join/join-syndicate.d.ts.map +1 -1
  697. package/dist/tools/syndicate/join/join-syndicate.js +6 -9
  698. package/dist/tools/syndicate/join/join-syndicate.js.map +1 -1
  699. package/dist/tools/syndicate/leave/leave-syndicate.d.ts.map +1 -1
  700. package/dist/tools/syndicate/leave/leave-syndicate.js +6 -9
  701. package/dist/tools/syndicate/leave/leave-syndicate.js.map +1 -1
  702. package/dist/tools/syndicate/list/constants.d.ts.map +1 -1
  703. package/dist/tools/syndicate/list/constants.js +3 -2
  704. package/dist/tools/syndicate/list/constants.js.map +1 -1
  705. package/dist/tools/syndicate/list/list-syndicates.d.ts.map +1 -1
  706. package/dist/tools/syndicate/list/list-syndicates.js +6 -9
  707. package/dist/tools/syndicate/list/list-syndicates.js.map +1 -1
  708. package/dist/tools/syndicate/membership/constants.js +2 -2
  709. package/dist/tools/syndicate/membership/constants.js.map +1 -1
  710. package/dist/tools/syndicate/membership/get-membership.d.ts.map +1 -1
  711. package/dist/tools/syndicate/membership/get-membership.js +6 -9
  712. package/dist/tools/syndicate/membership/get-membership.js.map +1 -1
  713. package/dist/tools/syndicate/player-content/constants.d.ts +3 -0
  714. package/dist/tools/syndicate/player-content/constants.d.ts.map +1 -0
  715. package/dist/tools/syndicate/player-content/constants.js +13 -0
  716. package/dist/tools/syndicate/player-content/constants.js.map +1 -0
  717. package/dist/tools/syndicate/player-content/get-syndicate-player-content.d.ts +4 -0
  718. package/dist/tools/syndicate/player-content/get-syndicate-player-content.d.ts.map +1 -0
  719. package/dist/tools/syndicate/player-content/get-syndicate-player-content.js +13 -0
  720. package/dist/tools/syndicate/player-content/get-syndicate-player-content.js.map +1 -0
  721. package/dist/tools/syndicate/player-content/presentation.utils.d.ts +21 -0
  722. package/dist/tools/syndicate/player-content/presentation.utils.d.ts.map +1 -0
  723. package/dist/tools/syndicate/player-content/presentation.utils.js +22 -0
  724. package/dist/tools/syndicate/player-content/presentation.utils.js.map +1 -0
  725. package/dist/tools/syndicate/player-content/types.d.ts +71 -0
  726. package/dist/tools/syndicate/player-content/types.d.ts.map +1 -0
  727. package/dist/tools/syndicate/player-content/types.js +30 -0
  728. package/dist/tools/syndicate/player-content/types.js.map +1 -0
  729. package/dist/tools/syndicate/presentation.utils.d.ts +8 -0
  730. package/dist/tools/syndicate/presentation.utils.d.ts.map +1 -0
  731. package/dist/tools/syndicate/presentation.utils.js +121 -0
  732. package/dist/tools/syndicate/presentation.utils.js.map +1 -0
  733. package/dist/tools/syndicate/set-params/constants.d.ts.map +1 -1
  734. package/dist/tools/syndicate/set-params/constants.js +4 -2
  735. package/dist/tools/syndicate/set-params/constants.js.map +1 -1
  736. package/dist/tools/syndicate/set-params/set-syndicate-params.d.ts.map +1 -1
  737. package/dist/tools/syndicate/set-params/set-syndicate-params.js +6 -9
  738. package/dist/tools/syndicate/set-params/set-syndicate-params.js.map +1 -1
  739. package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.d.ts.map +1 -1
  740. package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.js +6 -9
  741. package/dist/tools/syndicate/transfer-manager/transfer-syndicate-manager.js.map +1 -1
  742. package/dist/tools/syndicate/types.d.ts +36 -0
  743. package/dist/tools/syndicate/types.d.ts.map +1 -1
  744. package/dist/tools/syndicate/types.js +11 -0
  745. package/dist/tools/syndicate/types.js.map +1 -1
  746. package/dist/tools/trade/buy-lot/buy-lot.d.ts +1 -1
  747. package/dist/tools/trade/buy-lot/buy-lot.d.ts.map +1 -1
  748. package/dist/tools/trade/buy-lot/buy-lot.js +4 -1
  749. package/dist/tools/trade/buy-lot/buy-lot.js.map +1 -1
  750. package/dist/tools/trade/buy-lot/constants.d.ts.map +1 -1
  751. package/dist/tools/trade/buy-lot/constants.js +2 -0
  752. package/dist/tools/trade/buy-lot/constants.js.map +1 -1
  753. package/dist/tools/trade/buyer-guard/constants.d.ts +4 -0
  754. package/dist/tools/trade/buyer-guard/constants.d.ts.map +1 -0
  755. package/dist/tools/trade/buyer-guard/constants.js +11 -0
  756. package/dist/tools/trade/buyer-guard/constants.js.map +1 -0
  757. package/dist/tools/trade/buyer-guard/lot-open.guard.d.ts +9 -0
  758. package/dist/tools/trade/buyer-guard/lot-open.guard.d.ts.map +1 -0
  759. package/dist/tools/trade/buyer-guard/lot-open.guard.js +15 -0
  760. package/dist/tools/trade/buyer-guard/lot-open.guard.js.map +1 -0
  761. package/dist/tools/trade/buyer-guard/types.d.ts +6 -0
  762. package/dist/tools/trade/buyer-guard/types.d.ts.map +1 -0
  763. package/dist/tools/trade/buyer-guard/types.js +2 -0
  764. package/dist/tools/trade/buyer-guard/types.js.map +1 -0
  765. package/dist/tools/trade/constants.d.ts +5 -0
  766. package/dist/tools/trade/constants.d.ts.map +1 -0
  767. package/dist/tools/trade/constants.js +14 -0
  768. package/dist/tools/trade/constants.js.map +1 -0
  769. package/dist/tools/trade/create-lot/constants.d.ts.map +1 -1
  770. package/dist/tools/trade/create-lot/constants.js +4 -1
  771. package/dist/tools/trade/create-lot/constants.js.map +1 -1
  772. package/dist/tools/trade/create-lot/create-lot.d.ts +3 -2
  773. package/dist/tools/trade/create-lot/create-lot.d.ts.map +1 -1
  774. package/dist/tools/trade/create-lot/create-lot.js +17 -2
  775. package/dist/tools/trade/create-lot/create-lot.js.map +1 -1
  776. package/dist/tools/trade/evict-lot/constants.d.ts +4 -0
  777. package/dist/tools/trade/evict-lot/constants.d.ts.map +1 -0
  778. package/dist/tools/trade/evict-lot/constants.js +13 -0
  779. package/dist/tools/trade/evict-lot/constants.js.map +1 -0
  780. package/dist/tools/trade/evict-lot/evict-lot.d.ts +6 -0
  781. package/dist/tools/trade/evict-lot/evict-lot.d.ts.map +1 -0
  782. package/dist/tools/trade/evict-lot/evict-lot.js +35 -0
  783. package/dist/tools/trade/evict-lot/evict-lot.js.map +1 -0
  784. package/dist/tools/trade/evict-lot/format.utils.d.ts +5 -0
  785. package/dist/tools/trade/evict-lot/format.utils.d.ts.map +1 -0
  786. package/dist/tools/trade/evict-lot/format.utils.js +10 -0
  787. package/dist/tools/trade/evict-lot/format.utils.js.map +1 -0
  788. package/dist/tools/trade/evict-lot/types.d.ts +5 -0
  789. package/dist/tools/trade/evict-lot/types.d.ts.map +1 -0
  790. package/dist/tools/trade/evict-lot/types.js +8 -0
  791. package/dist/tools/trade/evict-lot/types.js.map +1 -0
  792. package/dist/tools/trade/format.utils.d.ts +2 -4
  793. package/dist/tools/trade/format.utils.d.ts.map +1 -1
  794. package/dist/tools/trade/format.utils.js +11 -13
  795. package/dist/tools/trade/format.utils.js.map +1 -1
  796. package/dist/tools/trade/get-lot/constants.d.ts.map +1 -1
  797. package/dist/tools/trade/get-lot/constants.js +2 -1
  798. package/dist/tools/trade/get-lot/constants.js.map +1 -1
  799. package/dist/tools/trade/list-lots/constants.d.ts +2 -0
  800. package/dist/tools/trade/list-lots/constants.d.ts.map +1 -1
  801. package/dist/tools/trade/list-lots/constants.js +5 -1
  802. package/dist/tools/trade/list-lots/constants.js.map +1 -1
  803. package/dist/tools/trade/list-lots/list-lots.d.ts.map +1 -1
  804. package/dist/tools/trade/list-lots/list-lots.js +2 -1
  805. package/dist/tools/trade/list-lots/list-lots.js.map +1 -1
  806. package/dist/tools/trade/list-lots/list-lots.utils.d.ts +8 -0
  807. package/dist/tools/trade/list-lots/list-lots.utils.d.ts.map +1 -0
  808. package/dist/tools/trade/list-lots/list-lots.utils.js +10 -0
  809. package/dist/tools/trade/list-lots/list-lots.utils.js.map +1 -0
  810. package/dist/tools/trade/list-mine/constants.d.ts.map +1 -1
  811. package/dist/tools/trade/list-mine/constants.js +3 -1
  812. package/dist/tools/trade/list-mine/constants.js.map +1 -1
  813. package/dist/tools/trade/lot-terms/constants.d.ts +5 -0
  814. package/dist/tools/trade/lot-terms/constants.d.ts.map +1 -0
  815. package/dist/tools/trade/lot-terms/constants.js +13 -0
  816. package/dist/tools/trade/lot-terms/constants.js.map +1 -0
  817. package/dist/tools/trade/lot-terms/factory.d.ts +4 -0
  818. package/dist/tools/trade/lot-terms/factory.d.ts.map +1 -0
  819. package/dist/tools/trade/lot-terms/factory.js +14 -0
  820. package/dist/tools/trade/lot-terms/factory.js.map +1 -0
  821. package/dist/tools/trade/lot-terms/format.utils.d.ts +4 -0
  822. package/dist/tools/trade/lot-terms/format.utils.d.ts.map +1 -0
  823. package/dist/tools/trade/lot-terms/format.utils.js +30 -0
  824. package/dist/tools/trade/lot-terms/format.utils.js.map +1 -0
  825. package/dist/tools/trade/lot-terms/lot-terms.d.ts +5 -0
  826. package/dist/tools/trade/lot-terms/lot-terms.d.ts.map +1 -0
  827. package/dist/tools/trade/lot-terms/lot-terms.js +23 -0
  828. package/dist/tools/trade/lot-terms/lot-terms.js.map +1 -0
  829. package/dist/tools/trade/lot-terms/types.d.ts +6 -0
  830. package/dist/tools/trade/lot-terms/types.d.ts.map +1 -0
  831. package/dist/tools/trade/lot-terms/types.js +7 -0
  832. package/dist/tools/trade/lot-terms/types.js.map +1 -0
  833. package/dist/tools/trade/market-index/constants.d.ts.map +1 -1
  834. package/dist/tools/trade/market-index/constants.js +2 -0
  835. package/dist/tools/trade/market-index/constants.js.map +1 -1
  836. package/dist/tools/trade/markets/constants.d.ts.map +1 -1
  837. package/dist/tools/trade/markets/constants.js +2 -1
  838. package/dist/tools/trade/markets/constants.js.map +1 -1
  839. package/dist/tools/trade/quote-buy/constants.d.ts.map +1 -1
  840. package/dist/tools/trade/quote-buy/constants.js +4 -2
  841. package/dist/tools/trade/quote-buy/constants.js.map +1 -1
  842. package/dist/tools/trade/quote-buy/quote-buy.d.ts.map +1 -1
  843. package/dist/tools/trade/quote-buy/quote-buy.js +2 -0
  844. package/dist/tools/trade/quote-buy/quote-buy.js.map +1 -1
  845. package/dist/tools/trade/quote-lot-return/constants.d.ts +2 -0
  846. package/dist/tools/trade/quote-lot-return/constants.d.ts.map +1 -0
  847. package/dist/tools/trade/quote-lot-return/constants.js +11 -0
  848. package/dist/tools/trade/quote-lot-return/constants.js.map +1 -0
  849. package/dist/tools/trade/quote-lot-return/quote-lot-return.d.ts +5 -0
  850. package/dist/tools/trade/quote-lot-return/quote-lot-return.d.ts.map +1 -0
  851. package/dist/tools/trade/quote-lot-return/quote-lot-return.js +20 -0
  852. package/dist/tools/trade/quote-lot-return/quote-lot-return.js.map +1 -0
  853. package/dist/tools/trade/return-lot/constants.d.ts +5 -0
  854. package/dist/tools/trade/return-lot/constants.d.ts.map +1 -0
  855. package/dist/tools/trade/return-lot/constants.js +26 -0
  856. package/dist/tools/trade/return-lot/constants.js.map +1 -0
  857. package/dist/tools/trade/return-lot/factory.d.ts +4 -0
  858. package/dist/tools/trade/return-lot/factory.d.ts.map +1 -0
  859. package/dist/tools/trade/return-lot/factory.js +18 -0
  860. package/dist/tools/trade/return-lot/factory.js.map +1 -0
  861. package/dist/tools/trade/return-lot/format.utils.d.ts +5 -0
  862. package/dist/tools/trade/return-lot/format.utils.d.ts.map +1 -0
  863. package/dist/tools/trade/return-lot/format.utils.js +39 -0
  864. package/dist/tools/trade/return-lot/format.utils.js.map +1 -0
  865. package/dist/tools/trade/return-lot/return-lot.d.ts +5 -0
  866. package/dist/tools/trade/return-lot/return-lot.d.ts.map +1 -0
  867. package/dist/tools/trade/return-lot/return-lot.js +25 -0
  868. package/dist/tools/trade/return-lot/return-lot.js.map +1 -0
  869. package/dist/tools/trade/return-lot/types.d.ts +11 -0
  870. package/dist/tools/trade/return-lot/types.d.ts.map +1 -0
  871. package/dist/tools/trade/return-lot/types.js +21 -0
  872. package/dist/tools/trade/return-lot/types.js.map +1 -0
  873. package/dist/tools/trade/set-sale-fee/set-sale-fee.d.ts +1 -1
  874. package/dist/tools/trade/set-sale-fee/set-sale-fee.d.ts.map +1 -1
  875. package/dist/tools/trade/set-sale-fee/set-sale-fee.js +2 -1
  876. package/dist/tools/trade/set-sale-fee/set-sale-fee.js.map +1 -1
  877. package/dist/tools/trade/types.d.ts +0 -4
  878. package/dist/tools/trade/types.d.ts.map +1 -1
  879. package/dist/tools/trade/types.js +4 -12
  880. package/dist/tools/trade/types.js.map +1 -1
  881. package/dist/tools/transport/constants.d.ts.map +1 -1
  882. package/dist/tools/transport/constants.js +54 -29
  883. package/dist/tools/transport/constants.js.map +1 -1
  884. package/dist/tools/transport/finalize/finalize-delivery.d.ts +1 -1
  885. package/dist/tools/transport/finalize/finalize-delivery.d.ts.map +1 -1
  886. package/dist/tools/transport/finalize/finalize-delivery.js +2 -1
  887. package/dist/tools/transport/finalize/finalize-delivery.js.map +1 -1
  888. package/dist/tools/transport/network/constants.d.ts +18 -0
  889. package/dist/tools/transport/network/constants.d.ts.map +1 -1
  890. package/dist/tools/transport/network/constants.js +18 -0
  891. package/dist/tools/transport/network/constants.js.map +1 -1
  892. package/dist/tools/transport/network/panel.utils.d.ts +3 -0
  893. package/dist/tools/transport/network/panel.utils.d.ts.map +1 -0
  894. package/dist/tools/transport/network/panel.utils.js +52 -0
  895. package/dist/tools/transport/network/panel.utils.js.map +1 -0
  896. package/dist/tools/transport/network/route-network.d.ts.map +1 -1
  897. package/dist/tools/transport/network/route-network.js +4 -21
  898. package/dist/tools/transport/network/route-network.js.map +1 -1
  899. package/dist/tools/transport/next-hops/constants.d.ts +1 -0
  900. package/dist/tools/transport/next-hops/constants.d.ts.map +1 -1
  901. package/dist/tools/transport/next-hops/constants.js +2 -0
  902. package/dist/tools/transport/next-hops/constants.js.map +1 -1
  903. package/dist/tools/transport/next-hops/next-hops.d.ts.map +1 -1
  904. package/dist/tools/transport/next-hops/next-hops.js +33 -12
  905. package/dist/tools/transport/next-hops/next-hops.js.map +1 -1
  906. package/dist/tools/transport/quote/constants.d.ts.map +1 -1
  907. package/dist/tools/transport/quote/constants.js +10 -3
  908. package/dist/tools/transport/quote/constants.js.map +1 -1
  909. package/dist/tools/transport/transport.d.ts +1 -1
  910. package/dist/tools/transport/transport.d.ts.map +1 -1
  911. package/dist/tools/transport/transport.js +2 -1
  912. package/dist/tools/transport/transport.js.map +1 -1
  913. package/dist/tools/transport/types.d.ts +5 -2
  914. package/dist/tools/transport/types.d.ts.map +1 -1
  915. package/dist/tools/transport/types.js +37 -14
  916. package/dist/tools/transport/types.js.map +1 -1
  917. package/dist/tools/types.d.ts +31 -0
  918. package/dist/tools/types.d.ts.map +1 -1
  919. package/dist/tools/types.js +41 -1
  920. package/dist/tools/types.js.map +1 -1
  921. package/dist/tools/withdraw/withdraw.d.ts +1 -1
  922. package/dist/tools/withdraw/withdraw.d.ts.map +1 -1
  923. package/dist/tools/withdraw/withdraw.js +2 -1
  924. package/dist/tools/withdraw/withdraw.js.map +1 -1
  925. package/dist/types.d.ts +3 -1
  926. package/dist/types.d.ts.map +1 -1
  927. package/dist/types.js +1 -1
  928. package/dist/types.js.map +1 -1
  929. package/dist/utils/panel.constants.d.ts +18 -0
  930. package/dist/utils/panel.constants.d.ts.map +1 -0
  931. package/dist/utils/panel.constants.js +24 -0
  932. package/dist/utils/panel.constants.js.map +1 -0
  933. package/dist/utils/panel.types.d.ts +10 -0
  934. package/dist/utils/panel.types.d.ts.map +1 -0
  935. package/dist/utils/panel.types.js +2 -0
  936. package/dist/utils/panel.types.js.map +1 -0
  937. package/dist/utils/panel.utils.d.ts +4 -0
  938. package/dist/utils/panel.utils.d.ts.map +1 -0
  939. package/dist/utils/panel.utils.js +117 -0
  940. package/dist/utils/panel.utils.js.map +1 -0
  941. package/dist/utils/safe-json.constants.d.ts +2 -0
  942. package/dist/utils/safe-json.constants.d.ts.map +1 -0
  943. package/dist/utils/safe-json.constants.js +20 -0
  944. package/dist/utils/safe-json.constants.js.map +1 -0
  945. package/dist/utils/safe-json.utils.d.ts +3 -0
  946. package/dist/utils/safe-json.utils.d.ts.map +1 -0
  947. package/dist/utils/safe-json.utils.js +44 -0
  948. package/dist/utils/safe-json.utils.js.map +1 -0
  949. package/dist/utils/wei.constants.d.ts +6 -0
  950. package/dist/utils/wei.constants.d.ts.map +1 -0
  951. package/dist/utils/wei.constants.js +6 -0
  952. package/dist/utils/wei.constants.js.map +1 -0
  953. package/dist/version/tool-guard.d.ts +1 -1
  954. package/dist/version/tool-guard.d.ts.map +1 -1
  955. package/dist/version/tool-guard.js +3 -3
  956. package/dist/version/tool-guard.js.map +1 -1
  957. package/dist/version/types.d.ts +1 -1
  958. package/dist/version/types.d.ts.map +1 -1
  959. package/dist/wallet/index.d.ts.map +1 -1
  960. package/dist/wallet/index.js +2 -3
  961. package/dist/wallet/index.js.map +1 -1
  962. package/dist/wallet/types.d.ts +0 -9
  963. package/dist/wallet/types.d.ts.map +1 -1
  964. package/dist/wallet/types.js.map +1 -1
  965. package/package.json +2 -2
  966. package/dist/map/process.utils.d.ts +0 -32
  967. package/dist/map/process.utils.d.ts.map +0 -1
  968. package/dist/map/process.utils.js +0 -30
  969. package/dist/map/process.utils.js.map +0 -1
  970. package/dist/map/settle.utils.d.ts +0 -20
  971. package/dist/map/settle.utils.d.ts.map +0 -1
  972. package/dist/map/settle.utils.js +0 -77
  973. package/dist/map/settle.utils.js.map +0 -1
  974. package/dist/tools/trade/cancel-lot/cancel-lot.d.ts +0 -4
  975. package/dist/tools/trade/cancel-lot/cancel-lot.d.ts.map +0 -1
  976. package/dist/tools/trade/cancel-lot/cancel-lot.js +0 -19
  977. package/dist/tools/trade/cancel-lot/cancel-lot.js.map +0 -1
  978. package/dist/tools/trade/cancel-lot/constants.d.ts +0 -2
  979. package/dist/tools/trade/cancel-lot/constants.d.ts.map +0 -1
  980. package/dist/tools/trade/cancel-lot/constants.js +0 -8
  981. package/dist/tools/trade/cancel-lot/constants.js.map +0 -1
  982. package/dist/wallet/agw.manager.d.ts +0 -20
  983. package/dist/wallet/agw.manager.d.ts.map +0 -1
  984. package/dist/wallet/agw.manager.js +0 -90
  985. package/dist/wallet/agw.manager.js.map +0 -1
  986. package/dist/wallet/agw.provider.d.ts +0 -14
  987. package/dist/wallet/agw.provider.d.ts.map +0 -1
  988. package/dist/wallet/agw.provider.js +0 -48
  989. package/dist/wallet/agw.provider.js.map +0 -1
@@ -0,0 +1,151 @@
1
+ import { decodeDeliveryScheduled, settleTransitFees } from './delivery.helpers.js';
2
+ import { assertFeeWithinCeiling, assertReturnRoute, assertReturnableLot, assertRouteStartsAtHub, assertWholeRemainder, decodeReturnedUnits, describeCapacityRefusal, describeLotReturnRevert, parseFeeCeilingWei, returnBranchOf, } from './lot-return.utils.js';
3
+ import { preparePaidAction } from './paid-action.js';
4
+ import { AppContract } from './paid-action.types.js';
5
+ import { LotReturnBranch, } from './types.js';
6
+ import { assessDestinationCapacity } from './warehouse.utils.js';
7
+ import { toProjectionConfig } from '../map/reader.utils.js';
8
+ import { configuredStorageCap, usesHubShelf } from '../map/storage.utils.js';
9
+ import { cpuFromWei } from '../utils/format.utils.js';
10
+ /**
11
+ * One seller intent — send a lot's whole unsold remainder home — over the two contract branches that can
12
+ * carry it: `cancel` for an Open lot, `reclaim` for an Evicted one. Both are priced by `Trade.quoteReturn`
13
+ * and both carry the ceiling the seller passes in, never a figure this service picked for them: the route is
14
+ * re-priced on-chain to decide, and a fee that outgrew the seller's ceiling refuses before anything is spent.
15
+ */
16
+ export class LotReturnService {
17
+ wallet;
18
+ appConfig;
19
+ allowance;
20
+ contracts;
21
+ tradeClient;
22
+ mapReader;
23
+ logger;
24
+ constructor(options) {
25
+ this.wallet = options.wallet;
26
+ this.appConfig = options.appConfig;
27
+ this.allowance = options.allowance;
28
+ this.contracts = options.contracts;
29
+ this.tradeClient = options.tradeClient;
30
+ this.mapReader = options.mapReader;
31
+ this.logger = options.logger;
32
+ }
33
+ async quoteReturn(input) {
34
+ const prepared = await this.prepare(input);
35
+ const quote = await this.quoteOnChain(prepared);
36
+ const capacity = await this.assessDestination(prepared, quote.amount);
37
+ return this.toQuoteView(prepared, quote, capacity);
38
+ }
39
+ async returnLot(input) {
40
+ const maxFee = parseFeeCeilingWei(input.maxTransitFeeWei, input.lotId);
41
+ const prepared = await this.prepare(input);
42
+ const { action, trade, lot, state, lotId, returnTokenIds } = prepared;
43
+ const transport = action.requireContract(AppContract.Transport, 'cannot route goods');
44
+ const quote = await this.quoteOnChain(prepared);
45
+ assertWholeRemainder(quote.amount, lot.remaining, input.lotId);
46
+ assertFeeWithinCeiling(quote.transitFee, maxFee, input.lotId);
47
+ const capacity = await this.assessDestination(prepared, quote.amount);
48
+ if (!capacity.fits) {
49
+ throw new Error(describeCapacityRefusal(capacity, prepared.destinationTokenId, input.lotId));
50
+ }
51
+ const branch = returnBranchOf(state);
52
+ // The price decides whether an allowance is needed at all; the ceiling only decides how much it caps.
53
+ // Keying this on the ceiling would send an unbounded approve for a route that costs nothing.
54
+ const approveTxHash = quote.transitFee === 0n
55
+ ? null
56
+ : await this.allowance.ensureAllowance(action.requireContract(AppContract.CpuToken, 'cannot pay for transit'), transport, maxFee);
57
+ this.logger.info('returning lot', {
58
+ lotId: input.lotId,
59
+ branch,
60
+ maxFeeWei: maxFee.toString(),
61
+ quotedFeeWei: quote.transitFee.toString(),
62
+ amount: quote.amount.toString(),
63
+ });
64
+ let confirmed;
65
+ try {
66
+ const txHash = branch === LotReturnBranch.Reclaimed
67
+ ? await this.tradeClient.reclaim({ trade, lotId, returnTokenIds, maxFee })
68
+ : await this.tradeClient.cancel({ trade, lotId, returnTokenIds, maxFee });
69
+ confirmed = await this.contracts.confirm(txHash, `Return lot ${input.lotId}`);
70
+ }
71
+ catch (error) {
72
+ throw describeLotReturnRevert(error, branch);
73
+ }
74
+ const scheduled = decodeDeliveryScheduled(confirmed.logs, transport);
75
+ const transit = settleTransitFees(confirmed.logs, transport, quote.transitFee);
76
+ const returned = decodeReturnedUnits(confirmed.logs, trade, quote.amount, this.logger);
77
+ return {
78
+ lotId: input.lotId,
79
+ originalState: state,
80
+ branch,
81
+ hubTokenId: lot.hub.toString(),
82
+ resourceId: lot.resource,
83
+ returned: returned.toString(),
84
+ transitPaid: cpuFromWei(transit.transitPaid.toString()),
85
+ transitDiscount: cpuFromWei(transit.transitDiscount.toString()),
86
+ destinationTokenId: scheduled.targetId.toString(),
87
+ deliveryId: scheduled.deliveryId.toString(),
88
+ arrivalAt: Number(scheduled.arrivalAt),
89
+ approveTxHash,
90
+ txHash: confirmed.txHash,
91
+ status: confirmed.status,
92
+ blockNumber: confirmed.blockNumber,
93
+ };
94
+ }
95
+ async prepare(input) {
96
+ const action = await preparePaidAction({ appConfig: this.appConfig, wallet: this.wallet });
97
+ const trade = action.requireContract(AppContract.Trade, 'cannot return a lot');
98
+ assertReturnRoute(input.chain);
99
+ const seller = action.wallet.getAddress();
100
+ const lotId = BigInt(input.lotId);
101
+ const lot = await this.tradeClient.getLot({ trade, lotId });
102
+ const state = assertReturnableLot(lot, seller, input.lotId);
103
+ assertRouteStartsAtHub(input.chain, lot.hub, input.lotId);
104
+ return {
105
+ action,
106
+ trade,
107
+ lot,
108
+ state,
109
+ seller,
110
+ lotId,
111
+ returnTokenIds: input.chain.map((tokenId) => BigInt(tokenId)),
112
+ destinationTokenId: String(input.chain[input.chain.length - 1]),
113
+ };
114
+ }
115
+ async quoteOnChain(prepared) {
116
+ return this.tradeClient.quoteReturn({
117
+ trade: prepared.trade,
118
+ lotId: prepared.lotId,
119
+ returnTokenIds: prepared.returnTokenIds,
120
+ seller: prepared.seller,
121
+ });
122
+ }
123
+ async assessDestination(prepared, required) {
124
+ await this.mapReader.refresh();
125
+ const cell = await this.mapReader.readRevealCell(prepared.destinationTokenId);
126
+ if (cell === null) {
127
+ throw new Error(`Cell ${prepared.destinationTokenId} is not in the world map, so the room it has for the ` +
128
+ `remainder cannot be checked. Nothing was sent — retry shortly, or route the return to a ` +
129
+ `revealed cell of your own.`);
130
+ }
131
+ const projection = toProjectionConfig(prepared.action.config);
132
+ const emptyStorageCap = configuredStorageCap(prepared.lot.resource, usesHubShelf(cell.building, cell.ready, projection), projection);
133
+ return assessDestinationCapacity(cell, prepared.lot.resource, required, emptyStorageCap);
134
+ }
135
+ toQuoteView(prepared, quote, capacity) {
136
+ return {
137
+ lotId: prepared.lotId.toString(),
138
+ hubTokenId: prepared.lot.hub.toString(),
139
+ resourceId: prepared.lot.resource,
140
+ amount: quote.amount.toString(),
141
+ destinationTokenId: prepared.destinationTokenId,
142
+ maxTransitFee: cpuFromWei(quote.transitFee.toString()),
143
+ maxTransitFeeWei: quote.transitFee.toString(),
144
+ transitDiscount: cpuFromWei(quote.transitDiscount.toString()),
145
+ totalDistance: Number(quote.totalDistance),
146
+ arrivalAt: Number(quote.arrivalAt),
147
+ capacity,
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=lot-return.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-return.service.js","sourceRoot":"","sources":["../../src/services/lot-return.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { IAllowanceService, IAppConfig, ITradeClient, LotReturnInput, LotReturnQuote, LotReturnQuoteInput, LotReturnResult } from './types.js';
2
+ import type { ILogger } from '../logger/types.js';
3
+ import type { RevealCellReader } from '../map/types.js';
4
+ import type { IContractClient, WalletProvider } from '../wallet/types.js';
5
+ export interface LotReturnServiceOptions {
6
+ wallet: WalletProvider;
7
+ appConfig: IAppConfig;
8
+ allowance: IAllowanceService;
9
+ contracts: IContractClient;
10
+ tradeClient: ITradeClient;
11
+ mapReader: RevealCellReader;
12
+ logger: ILogger;
13
+ }
14
+ /** One player intent — send a lot's whole remainder home — quoted and then settled. */
15
+ export interface ILotReturnService {
16
+ quoteReturn(input: LotReturnQuoteInput): Promise<LotReturnQuote>;
17
+ returnLot(input: LotReturnInput): Promise<LotReturnResult>;
18
+ }
19
+ //# sourceMappingURL=lot-return.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-return.types.d.ts","sourceRoot":"","sources":["../../src/services/lot-return.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lot-return.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-return.types.js","sourceRoot":"","sources":["../../src/services/lot-return.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { type Address, type Log } from 'viem';
2
+ import { LotReturnBranch, type DestinationCapacityView, type OnChainLot } from './types.js';
3
+ import { LotState } from '../api/types.js';
4
+ import type { ILogger } from '../logger/types.js';
5
+ export declare function assertReturnRoute(chain: Array<number>): void;
6
+ /**
7
+ * The chain is the arbiter of what a lot is: the projection can lag an eviction or a sell-out by a block,
8
+ * and a return sent against a stale state is a spend that reverts.
9
+ */
10
+ export declare function assertReturnableLot(lot: OnChainLot, seller: Address, lotId: string): LotState;
11
+ export declare function assertRouteStartsAtHub(chain: Array<number>, hub: bigint, lotId: string): void;
12
+ /** A lot return is all-or-nothing; a quote for anything but the current remainder is a partial return. */
13
+ export declare function assertWholeRemainder(quoted: bigint, remaining: bigint, lotId: string): void;
14
+ /** The ceiling travels as wei precisely so nothing rounds it; a figure that is not whole wei is not a ceiling. */
15
+ export declare function parseFeeCeilingWei(maxTransitFeeWei: string, lotId: string): bigint;
16
+ /**
17
+ * The client half of the fee promise. Only the source hub's rate is pinned on-chain, at the figure recorded
18
+ * when the lot was listed, so any later waypoint can raise its own between the quote and this call. The
19
+ * ceiling itself does travel with the transaction and caps the whole route total there, but that backstop
20
+ * only fires once gas is committed: refusing here — before the allowance, before the transaction — is what
21
+ * makes a stale ceiling cost a re-quote instead of a reverted spend.
22
+ */
23
+ export declare function assertFeeWithinCeiling(quotedWei: bigint, ceilingWei: bigint, lotId: string): void;
24
+ export declare function returnBranchOf(state: LotState): LotReturnBranch;
25
+ export declare function describeCapacityRefusal(capacity: DestinationCapacityView, destinationTokenId: string, lotId: string): string;
26
+ export declare function describeLotReturnRevert(error: unknown, branch: LotReturnBranch): unknown;
27
+ /**
28
+ * Both branches close the lot with the same lifecycle event. When a receipt carries none — a contract that
29
+ * settles a reclaim silently — the quote the contract itself just priced is the only honest figure left, and
30
+ * refusing to answer would report a settled return as a failure.
31
+ */
32
+ export declare function decodeReturnedUnits(logs: Array<Log>, trade: Address, quoted: bigint, logger: ILogger): bigint;
33
+ //# sourceMappingURL=lot-return.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-return.utils.d.ts","sourceRoot":"","sources":["../../src/services/lot-return.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAKpF,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAc5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAiB7F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ7F;AAED,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ3F;AAED,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBlF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWjG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,CAE/D;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,uBAAuB,EACjC,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAWxF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAU7G"}
@@ -0,0 +1,128 @@
1
+ import { maxUint256, parseEventLogs } from 'viem';
2
+ import { LOT_RETURN_REVERT_NAMES, LOT_RETURN_REVERT_REASONS } from './lot-return.constants.js';
3
+ import { decodeKnownRevert } from './revert-decode.utils.js';
4
+ import { lotStateFromChain } from './trade.helpers.js';
5
+ import { LotReturnBranch } from './types.js';
6
+ import { LotState } from '../api/types.js';
7
+ import { TRADE_ABI } from '../contracts/trade.abi.js';
8
+ import { TRANSPORT_ABI } from '../contracts/transport.abi.js';
9
+ import { cpuFromWei } from '../utils/format.utils.js';
10
+ import { WEI_STRING_PATTERN } from '../utils/wei.constants.js';
11
+ const RETURN_ERROR_ABI = [...TRADE_ABI, ...TRANSPORT_ABI];
12
+ export function assertReturnRoute(chain) {
13
+ if (chain.length < 2) {
14
+ throw new Error('A lot return needs the full route home: [hub, ...waypoints, your destination cell]. ' +
15
+ 'Give at least the hub and one cell of your own.');
16
+ }
17
+ const seen = new Set();
18
+ for (const tokenId of chain) {
19
+ if (seen.has(tokenId)) {
20
+ throw new Error(`The route visits cell ${tokenId} twice; a lot return travels each cell once.`);
21
+ }
22
+ seen.add(tokenId);
23
+ }
24
+ }
25
+ /**
26
+ * The chain is the arbiter of what a lot is: the projection can lag an eviction or a sell-out by a block,
27
+ * and a return sent against a stale state is a spend that reverts.
28
+ */
29
+ export function assertReturnableLot(lot, seller, lotId) {
30
+ const state = lotStateFromChain(lot.state);
31
+ if (state === null) {
32
+ throw new Error(`Lot ${lotId} is closed: it was sold out, already returned, or never existed. Nothing is left to send home.`);
33
+ }
34
+ if (lot.seller.toLowerCase() !== seller.toLowerCase()) {
35
+ throw new Error(`Lot ${lotId} is not yours — it belongs to ${lot.seller}. Only its seller can return it.`);
36
+ }
37
+ if (state !== LotState.Open && state !== LotState.Evicted) {
38
+ throw new Error(`Lot ${lotId} is ${state}: its escrow is still delivering to the hub. Finalize that delivery first — ` +
39
+ `only an open or an evicted lot can be sent home.`);
40
+ }
41
+ return state;
42
+ }
43
+ export function assertRouteStartsAtHub(chain, hub, lotId) {
44
+ const start = chain[0];
45
+ if (BigInt(start) !== hub) {
46
+ throw new Error(`The route must start at the lot's hub: lot ${lotId} sits on cell ${hub.toString()}, but the route ` +
47
+ `starts at ${String(start)}.`);
48
+ }
49
+ }
50
+ /** A lot return is all-or-nothing; a quote for anything but the current remainder is a partial return. */
51
+ export function assertWholeRemainder(quoted, remaining, lotId) {
52
+ if (quoted !== remaining) {
53
+ throw new Error(`The return quote for lot ${lotId} covers ${quoted.toString()} units but the lot holds ` +
54
+ `${remaining.toString()}. A lot return always moves the whole remainder, so nothing was sent — ` +
55
+ `re-read the lot and quote it again.`);
56
+ }
57
+ }
58
+ /** The ceiling travels as wei precisely so nothing rounds it; a figure that is not whole wei is not a ceiling. */
59
+ export function parseFeeCeilingWei(maxTransitFeeWei, lotId) {
60
+ if (!WEI_STRING_PATTERN.test(maxTransitFeeWei)) {
61
+ throw new Error(`The fee ceiling for lot ${lotId} must be a whole number of wei, but it reads ` +
62
+ `"${maxTransitFeeWei}". Quote the return with cpu_quote_lot_return and pass the ` +
63
+ `maxTransitFeeWei it answers with, unchanged — that field is already wei, not $CPU.`);
64
+ }
65
+ const ceiling = BigInt(maxTransitFeeWei);
66
+ // A padded ceiling is the way an agent tries to switch the guard off, and it cannot be encoded as the
67
+ // uint256 the contract takes: refusing it here keeps that failure off the allowance and off the chain.
68
+ if (ceiling > maxUint256) {
69
+ throw new Error(`The fee ceiling for lot ${lotId} reads ${maxTransitFeeWei} wei, past the uint256 maximum the ` +
70
+ `contract can hold, so nothing was approved and nothing was sent. The ceiling is a guard, not ` +
71
+ `a switch to turn off — quote the return with cpu_quote_lot_return and pass the ` +
72
+ `maxTransitFeeWei it answers with, unchanged.`);
73
+ }
74
+ return ceiling;
75
+ }
76
+ /**
77
+ * The client half of the fee promise. Only the source hub's rate is pinned on-chain, at the figure recorded
78
+ * when the lot was listed, so any later waypoint can raise its own between the quote and this call. The
79
+ * ceiling itself does travel with the transaction and caps the whole route total there, but that backstop
80
+ * only fires once gas is committed: refusing here — before the allowance, before the transaction — is what
81
+ * makes a stale ceiling cost a re-quote instead of a reverted spend.
82
+ */
83
+ export function assertFeeWithinCeiling(quotedWei, ceilingWei, lotId) {
84
+ if (quotedWei <= ceilingWei) {
85
+ return;
86
+ }
87
+ throw new Error(`Returning lot ${lotId} now costs ${cpuFromWei(quotedWei.toString())} $CPU in transit ` +
88
+ `(${quotedWei.toString()} wei), above the ${cpuFromWei(ceilingWei.toString())} $CPU ceiling you ` +
89
+ `passed (${ceilingWei.toString()} wei): a fee on the route moved since that quote. Nothing was ` +
90
+ `approved and nothing was sent. Quote the return again with cpu_quote_lot_return and send it ` +
91
+ `straight away with the maxTransitFeeWei it answers with, or route around the cell that raised its rate.`);
92
+ }
93
+ export function returnBranchOf(state) {
94
+ return state === LotState.Evicted ? LotReturnBranch.Reclaimed : LotReturnBranch.Cancelled;
95
+ }
96
+ export function describeCapacityRefusal(capacity, destinationTokenId, lotId) {
97
+ const free = capacity.free ?? '0';
98
+ return (`Cell ${destinationTokenId} cannot take the whole remainder of lot ${lotId}: it needs room for ` +
99
+ `${capacity.required} units and only ${free} are free (what it already holds and everything reserved on ` +
100
+ `it are counted). Nothing was approved and nothing was sent. Free the space, or pick another destination ` +
101
+ `you own, then quote the return again.`);
102
+ }
103
+ export function describeLotReturnRevert(error, branch) {
104
+ const decoded = decodeKnownRevert(error, RETURN_ERROR_ABI, LOT_RETURN_REVERT_NAMES);
105
+ if (decoded === null) {
106
+ return error;
107
+ }
108
+ return new Error(`This lot return did not go through: ${LOT_RETURN_REVERT_REASONS[decoded.name]}. ` +
109
+ `The ${branch === LotReturnBranch.Reclaimed ? 'reclaim' : 'cancel'} was refused on-chain, so the lot ` +
110
+ `and its units are untouched.`, { cause: error });
111
+ }
112
+ /**
113
+ * Both branches close the lot with the same lifecycle event. When a receipt carries none — a contract that
114
+ * settles a reclaim silently — the quote the contract itself just priced is the only honest figure left, and
115
+ * refusing to answer would report a settled return as a failure.
116
+ */
117
+ export function decodeReturnedUnits(logs, trade, quoted, logger) {
118
+ const events = parseEventLogs({ abi: TRADE_ABI, eventName: 'LotCancelled', logs });
119
+ const event = events.find((e) => e.address.toLowerCase() === trade.toLowerCase());
120
+ if (event === undefined) {
121
+ logger.warn('lot return confirmed without a lifecycle event; reporting the quoted remainder', {
122
+ quoted: quoted.toString(),
123
+ });
124
+ return quoted;
125
+ }
126
+ return event.args.returned;
127
+ }
128
+ //# sourceMappingURL=lot-return.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-return.utils.js","sourceRoot":"","sources":["../../src/services/lot-return.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const WHOLE_UNITS_PATTERN: RegExp;
2
+ export declare const LIVE_LOT_COUNT_NOTE = "delivering, open and evicted lots all count";
3
+ export declare const EVICTED_BLOCK_NOTE: string;
4
+ //# sourceMappingURL=lot-terms.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.constants.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB,gDAAgD,CAAC;AAEjF,eAAO,MAAM,kBAAkB,QAEqC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const WHOLE_UNITS_PATTERN = /^\d+$/;
2
+ export const LIVE_LOT_COUNT_NOTE = 'delivering, open and evicted lots all count';
3
+ export const EVICTED_BLOCK_NOTE = 'an evicted lot keeps its per-seller slot until its remainder is on the way home, and it blocks every ' +
4
+ 'resource on that hub while it waits; other hubs are unaffected';
5
+ //# sourceMappingURL=lot-terms.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.constants.js","sourceRoot":"","sources":["../../src/services/lot-terms.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,6CAA6C,CAAC;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAC3B,uGAAuG;IACvG,gEAAgE,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare function parseListedValue(value: string): bigint | null;
2
+ export declare function evictedPendingMessage(count: number, hubTokenId: string): string;
3
+ export declare function invalidValueMessage(value: string): string;
4
+ export declare function invalidPriceMessage(pricePerUnit: string): string;
5
+ export declare function priceBelowFloorMessage(pricePerUnit: string, floor: string): string;
6
+ export declare function emptyWindowMessage(hubTokenId: string, resourceId: number, min: string, max: string): string;
7
+ export declare function belowMinimumMessage(value: string, min: string, hubTokenId: string, resourceId: number): string;
8
+ export declare function aboveMaximumMessage(value: string, max: string, hubTokenId: string, resourceId: number): string;
9
+ export declare function sellerLotLimitMessage(count: number, limit: number, hubTokenId: string, resourceId: number): string;
10
+ export declare function saleFeeToleranceMessage(livePercent: number, tolerancePercent: number, hubTokenId: string): string;
11
+ //# sourceMappingURL=lot-terms.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.helpers.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM/E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM3G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKlH;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjH"}
@@ -0,0 +1,45 @@
1
+ import { EVICTED_BLOCK_NOTE, LIVE_LOT_COUNT_NOTE, WHOLE_UNITS_PATTERN } from './lot-terms.constants.js';
2
+ export function parseListedValue(value) {
3
+ if (!WHOLE_UNITS_PATTERN.test(value)) {
4
+ return null;
5
+ }
6
+ const units = BigInt(value);
7
+ return units > 0n ? units : null;
8
+ }
9
+ export function evictedPendingMessage(count, hubTokenId) {
10
+ return (`You still owe ${count} evicted lot return${count === 1 ? '' : 's'} on hub ${hubTokenId}, so this hub ` +
11
+ `refuses every new lot of yours. Schedule the return of each evicted remainder there — ` +
12
+ `${EVICTED_BLOCK_NOTE}.`);
13
+ }
14
+ export function invalidValueMessage(value) {
15
+ return `A lot needs a positive whole number of units; "${value}" is not one.`;
16
+ }
17
+ export function invalidPriceMessage(pricePerUnit) {
18
+ return `An asking price must be a positive $CPU amount per unit; "${pricePerUnit}" is not one.`;
19
+ }
20
+ export function priceBelowFloorMessage(pricePerUnit, floor) {
21
+ return (`Asking ${pricePerUnit} $CPU per unit is below the live floor of ${floor} $CPU per unit. ` +
22
+ `Ask ${floor} or more.`);
23
+ }
24
+ export function emptyWindowMessage(hubTokenId, resourceId, min, max) {
25
+ return (`Hub ${hubTokenId} has no listing window for resource #${resourceId} right now: its live minimum is ` +
26
+ `${min} units and its live maximum is ${max} units, so no amount fits. List on another hub, or wait ` +
27
+ `for this hub's storage for that resource to change.`);
28
+ }
29
+ export function belowMinimumMessage(value, min, hubTokenId, resourceId) {
30
+ return (`A lot of ${value} units is below the live minimum of ${min} units for resource #${resourceId} on hub ` +
31
+ `${hubTokenId}. List at least ${min} units, or pick a hub with a lower minimum.`);
32
+ }
33
+ export function aboveMaximumMessage(value, max, hubTokenId, resourceId) {
34
+ return (`A lot of ${value} units is above the live maximum of ${max} units for resource #${resourceId} on hub ` +
35
+ `${hubTokenId}. List at most ${max} units, and sell the rest in a later lot or on another hub.`);
36
+ }
37
+ export function sellerLotLimitMessage(count, limit, hubTokenId, resourceId) {
38
+ return (`You already hold ${count} of ${limit} live lots for resource #${resourceId} on hub ${hubTokenId} — ` +
39
+ `${LIVE_LOT_COUNT_NOTE}. Wait for one to sell out, or return one remainder home, before listing another.`);
40
+ }
41
+ export function saleFeeToleranceMessage(livePercent, tolerancePercent, hubTokenId) {
42
+ return (`Hub ${hubTokenId} charges ${livePercent}% sale fee, above your tolerance of ${tolerancePercent}%. ` +
43
+ `Raise maxSaleFeePercent to ${livePercent} or more, or list on a cheaper hub.`);
44
+ }
45
+ //# sourceMappingURL=lot-terms.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.helpers.js","sourceRoot":"","sources":["../../src/services/lot-terms.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExG,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,UAAkB;IACnE,OAAO,CACH,iBAAiB,KAAK,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,UAAU,gBAAgB;QACvG,wFAAwF;QACxF,GAAG,kBAAkB,GAAG,CAC3B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC7C,OAAO,kDAAkD,KAAK,eAAe,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACpD,OAAO,6DAA6D,YAAY,eAAe,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB,EAAE,KAAa;IACtE,OAAO,CACH,UAAU,YAAY,6CAA6C,KAAK,kBAAkB;QAC1F,OAAO,KAAK,WAAW,CAC1B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAkB,EAAE,GAAW,EAAE,GAAW;IAC/F,OAAO,CACH,OAAO,UAAU,wCAAwC,UAAU,kCAAkC;QACrG,GAAG,GAAG,kCAAkC,GAAG,0DAA0D;QACrG,qDAAqD,CACxD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAE,UAAkB,EAAE,UAAkB;IAClG,OAAO,CACH,YAAY,KAAK,uCAAuC,GAAG,wBAAwB,UAAU,UAAU;QACvG,GAAG,UAAU,mBAAmB,GAAG,6CAA6C,CACnF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAE,UAAkB,EAAE,UAAkB;IAClG,OAAO,CACH,YAAY,KAAK,uCAAuC,GAAG,wBAAwB,UAAU,UAAU;QACvG,GAAG,UAAU,kBAAkB,GAAG,6DAA6D,CAClG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,KAAa,EAAE,UAAkB,EAAE,UAAkB;IACtG,OAAO,CACH,oBAAoB,KAAK,OAAO,KAAK,4BAA4B,UAAU,WAAW,UAAU,KAAK;QACrG,GAAG,mBAAmB,mFAAmF,CAC5G,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,gBAAwB,EAAE,UAAkB;IACrG,OAAO,CACH,OAAO,UAAU,YAAY,WAAW,uCAAuC,gBAAgB,KAAK;QACpG,8BAA8B,WAAW,qCAAqC,CACjF,CAAC;AACN,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ILotTerms, ListingPreflightInput, LotTermsServiceOptions } from './lot-terms.types.js';
2
+ import { type LotTermsInput, type LotTermsResult } from './types.js';
3
+ /**
4
+ * The listing terms of one hub and resource, and the gate `cpu_create_lot` passes through. The window is
5
+ * read from the contract's own bound views and never worked out from the configured shares, and every
6
+ * deterministic refusal happens here — before the allowance and before the transaction — so a listing the
7
+ * contract already refuses never costs the seller an approval or gas.
8
+ */
9
+ export declare class LotTermsService implements ILotTerms {
10
+ private readonly appConfig;
11
+ private readonly wallet;
12
+ private readonly tradeClient;
13
+ private readonly logger;
14
+ constructor(options: LotTermsServiceOptions);
15
+ getLotTerms(input: LotTermsInput): Promise<LotTermsResult>;
16
+ assertListingAllowed(input: ListingPreflightInput): Promise<LotTermsResult>;
17
+ private readLiveTerms;
18
+ private parsePrice;
19
+ }
20
+ //# sourceMappingURL=lot-terms.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.service.d.ts","sourceRoot":"","sources":["../../src/services/lot-terms.service.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGrG,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,cAAc,EAEtB,MAAM,YAAY,CAAC;AAYpB;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,OAAO,EAAE,sBAAsB;IAOrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1D,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;YA2CnE,aAAa;IAkD3B,OAAO,CAAC,UAAU;CAQrB"}
@@ -0,0 +1,119 @@
1
+ import { formatEther, parseEther } from 'viem';
2
+ import { aboveMaximumMessage, belowMinimumMessage, emptyWindowMessage, evictedPendingMessage, invalidPriceMessage, invalidValueMessage, parseListedValue, priceBelowFloorMessage, saleFeeToleranceMessage, sellerLotLimitMessage, } from './lot-terms.helpers.js';
3
+ import { preparePaidAction } from './paid-action.js';
4
+ import { AppContract } from './paid-action.types.js';
5
+ import { LotListingBlocker, } from './types.js';
6
+ import { bpToPercent } from '../utils/format.utils.js';
7
+ /**
8
+ * The listing terms of one hub and resource, and the gate `cpu_create_lot` passes through. The window is
9
+ * read from the contract's own bound views and never worked out from the configured shares, and every
10
+ * deterministic refusal happens here — before the allowance and before the transaction — so a listing the
11
+ * contract already refuses never costs the seller an approval or gas.
12
+ */
13
+ export class LotTermsService {
14
+ appConfig;
15
+ wallet;
16
+ tradeClient;
17
+ logger;
18
+ constructor(options) {
19
+ this.appConfig = options.appConfig;
20
+ this.wallet = options.wallet;
21
+ this.tradeClient = options.tradeClient;
22
+ this.logger = options.logger;
23
+ }
24
+ async getLotTerms(input) {
25
+ return (await this.readLiveTerms(input.hubTokenId, input.resourceId)).terms;
26
+ }
27
+ async assertListingAllowed(input) {
28
+ const { terms, config, trade, hub } = await this.readLiveTerms(input.hubTokenId, input.resourceId);
29
+ const { hubTokenId, resourceId } = input;
30
+ if (terms.outstandingEvictedCount > 0) {
31
+ throw new Error(evictedPendingMessage(terms.outstandingEvictedCount, hubTokenId));
32
+ }
33
+ const value = parseListedValue(input.value);
34
+ if (value === null) {
35
+ throw new Error(invalidValueMessage(input.value));
36
+ }
37
+ const price = this.parsePrice(input.pricePerUnit);
38
+ if (price === null) {
39
+ throw new Error(invalidPriceMessage(input.pricePerUnit));
40
+ }
41
+ if (price < config.minPricePerUnit) {
42
+ throw new Error(priceBelowFloorMessage(input.pricePerUnit, formatEther(config.minPricePerUnit)));
43
+ }
44
+ if (terms.blockers.includes(LotListingBlocker.EmptyWindow)) {
45
+ throw new Error(emptyWindowMessage(hubTokenId, resourceId, terms.effectiveMin, terms.effectiveMax));
46
+ }
47
+ if (value < BigInt(terms.effectiveMin)) {
48
+ throw new Error(belowMinimumMessage(input.value, terms.effectiveMin, hubTokenId, resourceId));
49
+ }
50
+ if (value > BigInt(terms.effectiveMax)) {
51
+ throw new Error(aboveMaximumMessage(input.value, terms.effectiveMax, hubTokenId, resourceId));
52
+ }
53
+ if (terms.blockers.includes(LotListingBlocker.SellerLotLimit)) {
54
+ throw new Error(sellerLotLimitMessage(terms.sellerLotCount, terms.sellerLotLimit, hubTokenId, resourceId));
55
+ }
56
+ if (input.maxSaleFeePercent !== null) {
57
+ const livePercent = bpToPercent(await this.tradeClient.getSaleFee({ trade, hub, res: resourceId }));
58
+ if (livePercent > input.maxSaleFeePercent) {
59
+ throw new Error(saleFeeToleranceMessage(livePercent, input.maxSaleFeePercent, hubTokenId));
60
+ }
61
+ }
62
+ return terms;
63
+ }
64
+ async readLiveTerms(hubTokenId, resourceId) {
65
+ const action = await preparePaidAction({ appConfig: this.appConfig, wallet: this.wallet });
66
+ const trade = action.requireContract(AppContract.Trade, 'cannot read the lot listing terms');
67
+ const seller = action.wallet.getAddress();
68
+ const hub = BigInt(hubTokenId);
69
+ const evicted = await this.tradeClient.getSellerEvictedCount({ trade, seller, hub });
70
+ const config = await this.tradeClient.getConfig({ trade });
71
+ const min = await this.tradeClient.getMinLotValue({ trade, hub, res: resourceId });
72
+ const max = await this.tradeClient.getMaxLotValue({ trade, hub, res: resourceId });
73
+ const lotCount = await this.tradeClient.getSellerLotCount({ trade, seller, hub, res: resourceId });
74
+ const blockers = [];
75
+ if (evicted > 0n) {
76
+ blockers.push(LotListingBlocker.EvictedPending);
77
+ }
78
+ if (max === 0n || min > max) {
79
+ blockers.push(LotListingBlocker.EmptyWindow);
80
+ }
81
+ if (lotCount >= BigInt(config.maxLotsPerSellerResource)) {
82
+ blockers.push(LotListingBlocker.SellerLotLimit);
83
+ }
84
+ this.logger.info('read lot terms', {
85
+ hubTokenId,
86
+ resourceId,
87
+ effectiveMin: min.toString(),
88
+ effectiveMax: max.toString(),
89
+ blockers,
90
+ });
91
+ return {
92
+ trade,
93
+ hub,
94
+ config,
95
+ terms: {
96
+ hubTokenId,
97
+ resourceId,
98
+ sellerAddress: seller,
99
+ effectiveMin: min.toString(),
100
+ effectiveMax: max.toString(),
101
+ sellerLotCount: Number(lotCount),
102
+ sellerLotLimit: config.maxLotsPerSellerResource,
103
+ outstandingEvictedCount: Number(evicted),
104
+ canList: blockers.length === 0,
105
+ blockers,
106
+ },
107
+ };
108
+ }
109
+ parsePrice(pricePerUnit) {
110
+ try {
111
+ const wei = parseEther(pricePerUnit);
112
+ return wei > 0n ? wei : null;
113
+ }
114
+ catch {
115
+ return null;
116
+ }
117
+ }
118
+ }
119
+ //# sourceMappingURL=lot-terms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lot-terms.service.js","sourceRoot":"","sources":["../../src/services/lot-terms.service.ts"],"names":[],"mappings":"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"}