@antseed/ants 0.1.5 → 0.1.7

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 (251) hide show
  1. package/dist/ants-web/assets/Arc-VDBY7LNS-BChRXCXW.js +1 -0
  2. package/dist/ants-web/assets/Brave-BRAKJXDS-mq-Xo37j.js +1 -0
  3. package/dist/ants-web/assets/Browser-76IHF3Y2-BMhRaC5Z.js +1 -0
  4. package/dist/ants-web/assets/Chrome-65Q5P54Y-DR9MQEVr.js +1 -0
  5. package/dist/ants-web/assets/Edge-XSPUTORV-DEoZslQE.js +1 -0
  6. package/dist/ants-web/assets/Firefox-AAHGJQIP-Bp_Hm04m.js +1 -0
  7. package/dist/ants-web/assets/Linux-OO4TNCLJ-B0aw93n9.js +1 -0
  8. package/dist/ants-web/assets/Macos-MW4AE7LN-Vvm8Drw3.js +1 -0
  9. package/dist/ants-web/assets/Opera-KQZLSACL-Cwv5MDFy.js +1 -0
  10. package/dist/ants-web/assets/Safari-ZPL37GXR-C4Ggg6rz.js +1 -0
  11. package/dist/ants-web/assets/Windows-PPTHQER6-BlyV2p7Y.js +1 -0
  12. package/dist/ants-web/assets/add-1qQ_SVL6.js +15 -0
  13. package/dist/ants-web/assets/all-wallets-D0QF065k.js +6 -0
  14. package/dist/ants-web/assets/apechain-SX5YFU6N-q5qBv-mp.js +1 -0
  15. package/dist/ants-web/assets/app-store-j-2thKGl.js +17 -0
  16. package/dist/ants-web/assets/apple-CCcInWVX.js +18 -0
  17. package/dist/ants-web/assets/ar_AR-44JUQ6EW-BMX-am0v.js +1487 -0
  18. package/dist/ants-web/assets/arbitrum-WURIBY6W-CqVkHBr5.js +1 -0
  19. package/dist/ants-web/assets/arrow-bottom-DVZa97G2.js +8 -0
  20. package/dist/ants-web/assets/arrow-bottom-circle-tt2k5BWG.js +11 -0
  21. package/dist/ants-web/assets/arrow-left-DnjqXMe0.js +8 -0
  22. package/dist/ants-web/assets/arrow-right-De8QMymS.js +8 -0
  23. package/dist/ants-web/assets/arrow-top-BS2oLt_x.js +8 -0
  24. package/dist/ants-web/assets/assets-Q6ZU7ZJ5-P8HioiAD.js +1 -0
  25. package/dist/ants-web/assets/avalanche-KOMJD3XY-Dsn_JPR4.js +1 -0
  26. package/dist/ants-web/assets/bank-DIxCskFM.js +14 -0
  27. package/dist/ants-web/assets/base-OAXLRA4F-CoYTVIiL.js +1 -0
  28. package/dist/ants-web/assets/baseAccount-44UITRK7-CsjdbWCf.js +1 -0
  29. package/dist/ants-web/assets/basic-D0Dg7j2v.js +2128 -0
  30. package/dist/ants-web/assets/berachain-NJECWIVC-DumxnFvf.js +1 -0
  31. package/dist/ants-web/assets/blast-V555OVXZ-BbhJh1tj.js +1 -0
  32. package/dist/ants-web/assets/browser-n9VVPree.js +14 -0
  33. package/dist/ants-web/assets/bsc-N647EYR2-B2nLKXWV.js +1 -0
  34. package/dist/ants-web/assets/card-Bl7AHEuE.js +14 -0
  35. package/dist/ants-web/assets/ccip-C_ifxkiT.js +1 -0
  36. package/dist/ants-web/assets/celo-GEP4TUHG-CenIBYLU.js +1 -0
  37. package/dist/ants-web/assets/checkmark-DXB1SsFx.js +11 -0
  38. package/dist/ants-web/assets/checkmark-bold-CIMnw7st.js +8 -0
  39. package/dist/ants-web/assets/chevron-bottom-DGkVb8CY.js +8 -0
  40. package/dist/ants-web/assets/chevron-left-D8vC6sW_.js +8 -0
  41. package/dist/ants-web/assets/chevron-right-CP8tyhU4.js +8 -0
  42. package/dist/ants-web/assets/chevron-top-DUqp6O8b.js +8 -0
  43. package/dist/ants-web/assets/chrome-store-CDk6Jfiv.js +61 -0
  44. package/dist/ants-web/assets/clock-t0Dwo5ck.js +8 -0
  45. package/dist/ants-web/assets/close-BiTlv6FX.js +8 -0
  46. package/dist/ants-web/assets/coinPlaceholder-PJZCh_De.js +8 -0
  47. package/dist/ants-web/assets/compass-CctP2ZVM.js +8 -0
  48. package/dist/ants-web/assets/connect-UA7M4XW6-IY3X6Bmr.js +1 -0
  49. package/dist/ants-web/assets/copy-b1i5dSZT.js +15 -0
  50. package/dist/ants-web/assets/core-4w9H32as.js +908 -0
  51. package/dist/ants-web/assets/create-FASO7PVG-D_rvSpre.js +1 -0
  52. package/dist/ants-web/assets/cronos-HJPAQTAE-BEOvlOC4.js +1 -0
  53. package/dist/ants-web/assets/cursor-kLCZuRWK.js +3 -0
  54. package/dist/ants-web/assets/cursor-transparent-C1IxvCBs.js +12 -0
  55. package/dist/ants-web/assets/de_DE-PYAO5YD6-BWlqPWgO.js +1487 -0
  56. package/dist/ants-web/assets/degen-FQQ4XGHB-CeHTs88l.js +1 -0
  57. package/dist/ants-web/assets/desktop-Qa_41eha.js +9 -0
  58. package/dist/ants-web/assets/disconnect-7QBZVVG8.js +8 -0
  59. package/dist/ants-web/assets/discord-DuRr0OMy.js +17 -0
  60. package/dist/ants-web/assets/es_419-HRGOJ6VT-D-qzxUM-.js +1487 -0
  61. package/dist/ants-web/assets/ethereum-RGGVA4PY-SWGOlkuk.js +1 -0
  62. package/dist/ants-web/assets/etherscan-BOImzSgC.js +6 -0
  63. package/dist/ants-web/assets/events-DQ172AOg.js +1 -0
  64. package/dist/ants-web/assets/exclamation-triangle-evZ54TSt.js +4 -0
  65. package/dist/ants-web/assets/extension-YSvzNEgu.js +8 -0
  66. package/dist/ants-web/assets/external-link-BukU3aK3.js +8 -0
  67. package/dist/ants-web/assets/facebook-WJZQGI9M.js +26 -0
  68. package/dist/ants-web/assets/farcaster-Dt0XRvlP.js +12 -0
  69. package/dist/ants-web/assets/filters-CFC5g--u.js +8 -0
  70. package/dist/ants-web/assets/flow-5FQJFCTK-CUie2reO.js +1 -0
  71. package/dist/ants-web/assets/fr_FR-IGGVC6RM-D8LpUM75.js +1487 -0
  72. package/dist/ants-web/assets/github-Bhz0AnGj.js +18 -0
  73. package/dist/ants-web/assets/gnosis-37ZC4RBL-B137OtHZ.js +1 -0
  74. package/dist/ants-web/assets/google-CGzSUXjP.js +18 -0
  75. package/dist/ants-web/assets/gravity-J5YQHTYH-Bj6B0uod.js +1 -0
  76. package/dist/ants-web/assets/hardhat-TX56IT5N-CV1FY-wE.js +1 -0
  77. package/dist/ants-web/assets/help-circle-BoGPtVJY.js +12 -0
  78. package/dist/ants-web/assets/hi_IN-XSKAA3MF-C3QUpWyP.js +1487 -0
  79. package/dist/ants-web/assets/hyperevm-VKPAA4SA-CHwraEsx.js +1 -0
  80. package/dist/ants-web/assets/id-ir8rS0J_.js +12 -0
  81. package/dist/ants-web/assets/id_ID-KUOB4UAL-K9y-nRWm.js +1487 -0
  82. package/dist/ants-web/assets/image-DXBUHwz_.js +4 -0
  83. package/dist/ants-web/assets/index-9ALlRD6p.css +1 -0
  84. package/dist/ants-web/assets/index-B7p3jPAJ.js +1 -0
  85. package/dist/ants-web/assets/index-BqWNkBzB.js +395 -0
  86. package/dist/ants-web/assets/index-C-I4ROfT.js +16 -0
  87. package/dist/ants-web/assets/index-Chq8yV_g.js +47 -0
  88. package/dist/ants-web/assets/index-Ci5bF__2.js +1729 -0
  89. package/dist/ants-web/assets/index-kzlEvkEN.js +1 -0
  90. package/dist/ants-web/assets/index.es-D1GdDJUC.js +39 -0
  91. package/dist/ants-web/assets/info-DzGq_QPQ.js +3 -0
  92. package/dist/ants-web/assets/info-circle-z91TqQxH.js +12 -0
  93. package/dist/ants-web/assets/ink-FZMYZWHG-62p-5IK5.js +1 -0
  94. package/dist/ants-web/assets/ja_JP-4WRQ63RX-Ct5pF4ug.js +1487 -0
  95. package/dist/ants-web/assets/kaia-65D2U3PU-JmuLQ4gC.js +1 -0
  96. package/dist/ants-web/assets/ko_KR-I2K7AIEP-B5gw8Mwb.js +1487 -0
  97. package/dist/ants-web/assets/lightbulb-CgYwiQYs.js +3 -0
  98. package/dist/ants-web/assets/linea-QRMVQ5DY-DuI3vv0d.js +1 -0
  99. package/dist/ants-web/assets/login-UP3DZBGS-Db_wM5oQ.js +1 -0
  100. package/dist/ants-web/assets/mail-FLPFIbqi.js +8 -0
  101. package/dist/ants-web/assets/manta-SI27YFEJ-CpVOKa06.js +1 -0
  102. package/dist/ants-web/assets/mantle-CKIUT334-DR2WgqzU.js +1 -0
  103. package/dist/ants-web/assets/metaMaskWallet-SITXT2FV-BlemcphV.js +1 -0
  104. package/dist/ants-web/assets/metamask-sdk-QG4PtQco.js +542 -0
  105. package/dist/ants-web/assets/mobile--kHpa5NK.js +9 -0
  106. package/dist/ants-web/assets/monad-4KWC6TSS-DVXSkpiz.js +1 -0
  107. package/dist/ants-web/assets/more-CJbReLy0.js +11 -0
  108. package/dist/ants-web/assets/ms_MY-6VZW6Q3Z-BtFD07hR.js +1487 -0
  109. package/dist/ants-web/assets/network-placeholder-BfSizFBN.js +14 -0
  110. package/dist/ants-web/assets/nftPlaceholder-BTfly2G8.js +8 -0
  111. package/dist/ants-web/assets/off-DCMXa6Y2.js +8 -0
  112. package/dist/ants-web/assets/optimism-HAF2GUT7-ec6Nqxs9.js +1 -0
  113. package/dist/ants-web/assets/play-store-CbbevixE.js +32 -0
  114. package/dist/ants-web/assets/plus-BxINT2r_.js +13 -0
  115. package/dist/ants-web/assets/polygon-WW6ZI7PM-DXlmm4L1.js +1 -0
  116. package/dist/ants-web/assets/pt_BR-N3XOZ4SV-CvVpfsHb.js +1487 -0
  117. package/dist/ants-web/assets/qr-code-CMEsvGrE.js +6 -0
  118. package/dist/ants-web/assets/rainbowWallet-O26YNBMX-DUhYus-9.js +1 -0
  119. package/dist/ants-web/assets/recycle-horizontal-BldRTXPT.js +9 -0
  120. package/dist/ants-web/assets/refresh-82vLCcdB.js +8 -0
  121. package/dist/ants-web/assets/refresh-S4T5V5GX-CwqIaaxK.js +1 -0
  122. package/dist/ants-web/assets/reown-logo-BPGalyzg.js +12 -0
  123. package/dist/ants-web/assets/ronin-EMCPYXZT-N-QBHZdV.js +1 -0
  124. package/dist/ants-web/assets/ru_RU-IITAPRET-DOj6Jzj7.js +1487 -0
  125. package/dist/ants-web/assets/safeWallet-5MNKTR5Z-D-5imDLD.js +1 -0
  126. package/dist/ants-web/assets/sanko-RHQYXGM5-OX010CbN.js +1 -0
  127. package/dist/ants-web/assets/scan-4UYSQ56Q-CjMz6-XC.js +1 -0
  128. package/dist/ants-web/assets/scroll-5OBGQVOV-DJFECiai.js +1 -0
  129. package/dist/ants-web/assets/search-CADsyV1c.js +8 -0
  130. package/dist/ants-web/assets/secp256k1-B5byVYSZ.js +1 -0
  131. package/dist/ants-web/assets/secp256k1-Cb4vPU9D.js +1 -0
  132. package/dist/ants-web/assets/send-DyAisqGO.js +15 -0
  133. package/dist/ants-web/assets/sign-A7IJEUT5-CGsRnPrd.js +1 -0
  134. package/dist/ants-web/assets/superposition-HG6MMR2Y-bRkgatRO.js +1 -0
  135. package/dist/ants-web/assets/swapHorizontal-BfHwXZPT.js +8 -0
  136. package/dist/ants-web/assets/swapHorizontalBold-FIoCjqnp.js +8 -0
  137. package/dist/ants-web/assets/swapHorizontalMedium-CzDDCY_G.js +16 -0
  138. package/dist/ants-web/assets/swapHorizontalRoundedBold-CvMRJeWj.js +8 -0
  139. package/dist/ants-web/assets/swapVertical-BgSezaow.js +8 -0
  140. package/dist/ants-web/assets/telegram-CsMNhXCs.js +16 -0
  141. package/dist/ants-web/assets/th_TH-3ZQCKCQE-BcHUN2Q4.js +1487 -0
  142. package/dist/ants-web/assets/three-dots-DYf4gmVW.js +5 -0
  143. package/dist/ants-web/assets/tr_TR-QUPUGMUF-CwpF6ZFn.js +1487 -0
  144. package/dist/ants-web/assets/twitch-BtBr-NTg.js +18 -0
  145. package/dist/ants-web/assets/twitterIcon-BmRf6M77.js +6 -0
  146. package/dist/ants-web/assets/uk_UA-SSN6SV5E-IlYYyRC6.js +1487 -0
  147. package/dist/ants-web/assets/unichain-C5BWO2ZY-BfguYsnu.js +1 -0
  148. package/dist/ants-web/assets/verify-cxA8gdP6.js +8 -0
  149. package/dist/ants-web/assets/verify-filled-DHnnW8EE.js +8 -0
  150. package/dist/ants-web/assets/vi_VN-7BUVRNYY-CZ9S75qZ.js +1487 -0
  151. package/dist/ants-web/assets/w3m-modal-D1ucMOAa.js +642 -0
  152. package/dist/ants-web/assets/wallet-BT4Fue1R.js +8 -0
  153. package/dist/ants-web/assets/wallet-placeholder-C2J5s6Yp.js +14 -0
  154. package/dist/ants-web/assets/walletConnectWallet-YHWKVTDY-D3lyiczV.js +1 -0
  155. package/dist/ants-web/assets/walletconnect-B5k8iJl-.js +30 -0
  156. package/dist/ants-web/assets/warning-circle-9rNSUSsX.js +12 -0
  157. package/dist/ants-web/assets/x-CpRc85jR.js +12 -0
  158. package/dist/ants-web/assets/xdc-KJ3TDBYO-DNV6zchh.js +1 -0
  159. package/dist/ants-web/assets/zetachain-TLDS5IPW-Udhyw16T.js +1 -0
  160. package/dist/ants-web/assets/zh_CN-HJBN674C-Baf0GEeT.js +1487 -0
  161. package/dist/ants-web/assets/zh_HK-JW3WLRKE-VztJKXL5.js +1487 -0
  162. package/dist/ants-web/assets/zh_TW-VNNRNXY7-aWfg7Qp4.js +1487 -0
  163. package/dist/ants-web/assets/zksync-DH7HK5U4-Dt4usFw6.js +1 -0
  164. package/dist/ants-web/assets/zora-FYL5H3IO-iB4wygST.js +1 -0
  165. package/dist/ants-web/index.html +2 -2
  166. package/dist/api-types.d.ts +168 -6
  167. package/dist/browser-signer.d.ts +30 -0
  168. package/dist/browser-signer.js +189 -0
  169. package/dist/browser-signer.js.map +1 -0
  170. package/dist/jobs.d.ts +10 -3
  171. package/dist/jobs.js +97 -20
  172. package/dist/jobs.js.map +1 -1
  173. package/dist/position-actions.d.ts +13 -0
  174. package/dist/position-actions.js +25 -0
  175. package/dist/position-actions.js.map +1 -0
  176. package/dist/routes.d.ts +7 -0
  177. package/dist/routes.js +63 -5
  178. package/dist/routes.js.map +1 -1
  179. package/dist/server.d.ts +8 -0
  180. package/dist/server.js +157 -12
  181. package/dist/server.js.map +1 -1
  182. package/dist/service/context.d.ts +25 -3
  183. package/dist/service/context.js +56 -5
  184. package/dist/service/context.js.map +1 -1
  185. package/dist/service/display-snapshot.d.ts +28 -0
  186. package/dist/service/display-snapshot.js +144 -0
  187. package/dist/service/display-snapshot.js.map +1 -0
  188. package/dist/service/emissions.js +11 -19
  189. package/dist/service/emissions.js.map +1 -1
  190. package/dist/service/explorer.js +2 -1
  191. package/dist/service/explorer.js.map +1 -1
  192. package/dist/service/format.d.ts +1 -1
  193. package/dist/service/format.js +2 -0
  194. package/dist/service/format.js.map +1 -1
  195. package/dist/service/indexed-wallet.d.ts +7 -0
  196. package/dist/service/indexed-wallet.js +58 -0
  197. package/dist/service/indexed-wallet.js.map +1 -0
  198. package/dist/service/indexer.d.ts +32 -3
  199. package/dist/service/indexer.js +64 -8
  200. package/dist/service/indexer.js.map +1 -1
  201. package/dist/service/legacy-payout.d.ts +3 -0
  202. package/dist/service/legacy-payout.js +32 -0
  203. package/dist/service/legacy-payout.js.map +1 -0
  204. package/dist/service/network.d.ts +5 -0
  205. package/dist/service/network.js +185 -0
  206. package/dist/service/network.js.map +1 -0
  207. package/dist/service/overview-reads.d.ts +30 -0
  208. package/dist/service/overview-reads.js +69 -0
  209. package/dist/service/overview-reads.js.map +1 -0
  210. package/dist/service/overview.js +14 -36
  211. package/dist/service/overview.js.map +1 -1
  212. package/dist/service/pool-merge.d.ts +2 -1
  213. package/dist/service/pool-merge.js +11 -4
  214. package/dist/service/pool-merge.js.map +1 -1
  215. package/dist/service/pools.d.ts +22 -1
  216. package/dist/service/pools.js +257 -98
  217. package/dist/service/pools.js.map +1 -1
  218. package/dist/service/position-feed.d.ts +73 -0
  219. package/dist/service/position-feed.js +173 -0
  220. package/dist/service/position-feed.js.map +1 -0
  221. package/dist/service/positions.d.ts +3 -5
  222. package/dist/service/positions.js +155 -93
  223. package/dist/service/positions.js.map +1 -1
  224. package/dist/service/rewards.d.ts +1 -0
  225. package/dist/service/rewards.js +117 -56
  226. package/dist/service/rewards.js.map +1 -1
  227. package/dist/service/rpc-provider.d.ts +4 -0
  228. package/dist/service/rpc-provider.js +44 -3
  229. package/dist/service/rpc-provider.js.map +1 -1
  230. package/dist/service/seller-models.d.ts +2 -0
  231. package/dist/service/seller-models.js +94 -0
  232. package/dist/service/seller-models.js.map +1 -0
  233. package/dist/service/seller.js +33 -30
  234. package/dist/service/seller.js.map +1 -1
  235. package/dist/service/stake-eligibility.d.ts +6 -0
  236. package/dist/service/stake-eligibility.js +68 -0
  237. package/dist/service/stake-eligibility.js.map +1 -0
  238. package/dist/service/usage.js +5 -13
  239. package/dist/service/usage.js.map +1 -1
  240. package/dist/service/yield.d.ts +3 -0
  241. package/dist/service/yield.js +12 -0
  242. package/dist/service/yield.js.map +1 -0
  243. package/dist/view-cache.d.ts +5 -10
  244. package/dist/view-cache.js +12 -14
  245. package/dist/view-cache.js.map +1 -1
  246. package/dist/wallet-errors.d.ts +9 -0
  247. package/dist/wallet-errors.js +32 -0
  248. package/dist/wallet-errors.js.map +1 -0
  249. package/package.json +8 -3
  250. package/dist/ants-web/assets/index-BunPfgXh.css +0 -1
  251. package/dist/ants-web/assets/index-zCPoF694.js +0 -40
@@ -1,62 +1,67 @@
1
+ import { Interface, isError } from 'ethers';
1
2
  import { estimateEarlyExit, positionState, projectedEarlyExitSlashBps } from '@antseed/node/payments';
2
3
  import { parseAnts, formatAnts } from './format.js';
3
4
  import { toJson } from './json.js';
4
5
  import { IndexerError } from './indexer.js';
6
+ import { stakeEligibility } from './stake-eligibility.js';
5
7
  import { assertAgentId, assertEpochs, assertPositiveIds, silentReporter } from './steps.js';
6
- async function safe(read, fallback) {
7
- try {
8
- return await read();
9
- }
10
- catch {
11
- return fallback;
12
- }
8
+ import { liveWalletPositions, validateWalletRewards } from './indexed-wallet.js';
9
+ import { positionActionEpoch, positionActionProblem } from '../position-actions.js';
10
+ /** A position still earns until its close epoch passes (split, merge and move sources close next epoch). */
11
+ function isOpenAt(position, epoch) {
12
+ return !position.withdrawn && (position.closedAtEpoch === 0 || position.closedAtEpoch > epoch);
13
13
  }
14
- async function describePositions(ctx, positions, currentEpoch, config) {
15
- const pools = ctx.requirePools();
14
+ async function describePositions(ctx, positions, currentEpoch, config, sources = {}) {
15
+ const { live, indexedRewards } = sources;
16
16
  const poolRewards = ctx.poolRewards();
17
- // Closed positions keep the reward earned up to their close epoch, so every id is previewed.
18
- const rewardIds = positions.map((position) => position.id);
17
+ // Closed positions keep the reward earned up to their close epoch, so every id is previewed when no reward feed exists.
19
18
  const rewards = new Map();
20
- if (poolRewards && rewardIds.length > 0) {
21
- const amounts = await safe(() => poolRewards.previewStakerRewards(rewardIds), rewardIds.map(() => 0n));
22
- rewardIds.forEach((id, index) => rewards.set(id, amounts[index] ?? 0n));
23
- }
24
- const details = [];
25
- for (let offset = 0; offset < positions.length; offset += 8) {
26
- details.push(...await Promise.all(positions.slice(offset, offset + 8).map(async (position) => {
27
- const open = !position.withdrawn && position.closedAtEpoch === 0;
28
- const [withdrawableEpoch, maxLocked] = await Promise.all([
29
- safe(() => pools.positionWithdrawableEpoch(position.id), 0),
30
- open ? safe(() => pools.isMaxLocked(position.id, Math.max(currentEpoch, position.stakeStartEpoch)), false) : Promise.resolve(false),
31
- ]);
32
- const changePending = currentEpoch < withdrawableEpoch;
33
- const slashBps = open && !changePending ? await safe(() => pools.earlyExitSlashBps(position.id), null) : null;
34
- const projectedSlashBps = open ? projectedEarlyExitSlashBps(position, currentEpoch, config, maxLocked) : 0;
35
- const estimate = estimateEarlyExit(position, slashBps ?? projectedSlashBps);
36
- return {
37
- id: position.id,
38
- agentId: position.agentId,
39
- owner: position.owner,
40
- amount: position.amount.toString(),
41
- weightAmount: position.weightAmount.toString(),
42
- stakeStartEpoch: position.stakeStartEpoch,
43
- stakeEndEpoch: position.stakeEndEpoch,
44
- closedAtEpoch: position.closedAtEpoch,
45
- withdrawn: position.withdrawn,
46
- state: positionState(position, currentEpoch),
47
- withdrawableEpoch,
48
- changePending,
49
- maxLocked,
50
- slashBps,
51
- projectedSlashBps,
52
- slashedAmount: open ? estimate.slashedAmount.toString() : '0',
53
- returnedAmount: open ? estimate.returnedAmount.toString() : '0',
54
- pendingReward: (rewards.get(position.id) ?? 0n).toString(),
55
- epochsRemaining: open ? Math.max(0, position.stakeEndEpoch - Math.max(currentEpoch, position.stakeStartEpoch)) : 0,
56
- raw: position,
57
- };
58
- })));
19
+ if (indexedRewards === undefined && poolRewards && positions.length > 0) {
20
+ const ids = positions.map((position) => position.id);
21
+ const amounts = await poolRewards.previewStakerRewards(ids);
22
+ ids.forEach((id, index) => rewards.set(id, amounts[index] ?? 0n));
59
23
  }
24
+ const liveById = new Map(live?.positions.map(row => [row.id, row]));
25
+ const statuses = live ? null : await ctx.requirePools().positionStatusesBatch(positions, currentEpoch);
26
+ const pendingReward = (id) => {
27
+ if (indexedRewards === undefined)
28
+ return (rewards.get(id) ?? 0n).toString();
29
+ return indexedRewards?.get(id) ?? null;
30
+ };
31
+ const details = positions.map((position, index) => {
32
+ const open = isOpenAt(position, currentEpoch);
33
+ const liveRow = liveById.get(position.id);
34
+ const { withdrawableEpoch, maxLocked, maxLockedNext, slashBps } = liveRow
35
+ ? { withdrawableEpoch: liveRow.withdrawableEpoch, maxLocked: liveRow.maxLocked, maxLockedNext: liveRow.maxLockedNext, slashBps: null }
36
+ : statuses[index];
37
+ const changePending = liveRow?.changePending ?? currentEpoch < withdrawableEpoch;
38
+ const projectedSlashBps = open ? projectedEarlyExitSlashBps(position, currentEpoch, config, maxLocked) : 0;
39
+ const estimate = estimateEarlyExit(position, slashBps ?? projectedSlashBps);
40
+ return {
41
+ id: position.id,
42
+ agentId: position.agentId,
43
+ owner: position.owner,
44
+ amount: position.amount.toString(),
45
+ weightAmount: position.weightAmount.toString(),
46
+ stakeStartEpoch: position.stakeStartEpoch,
47
+ stakeEndEpoch: position.stakeEndEpoch,
48
+ closedAtEpoch: position.closedAtEpoch,
49
+ withdrawn: position.withdrawn,
50
+ state: liveRow?.state ?? positionState(position, currentEpoch),
51
+ withdrawableEpoch,
52
+ changePending,
53
+ maxLocked,
54
+ maxLockedNext,
55
+ slashBps,
56
+ projectedSlashBps,
57
+ slashedAmount: open ? estimate.slashedAmount.toString() : '0',
58
+ returnedAmount: open ? estimate.returnedAmount.toString() : '0',
59
+ pendingReward: pendingReward(position.id),
60
+ ...(liveRow ? { power: liveRow.power, nextPower: liveRow.nextPower } : {}),
61
+ epochsRemaining: open ? Math.max(0, position.stakeEndEpoch - Math.max(currentEpoch, position.stakeStartEpoch)) : 0,
62
+ raw: position,
63
+ };
64
+ });
60
65
  return details.sort((a, b) => b.id - a.id);
61
66
  }
62
67
  /**
@@ -65,43 +70,74 @@ async function describePositions(ctx, positions, currentEpoch, config) {
65
70
  * an indexer; never reconstructed from log scans.
66
71
  */
67
72
  export async function closedPositionIds(ctx) {
73
+ const local = [...ctx.localPositionIds].filter(([, owner]) => owner.toLowerCase() === ctx.address.toLowerCase()).map(([id]) => id);
74
+ const verified = local.length ? (await ctx.requirePools().positionsBatch(local)).filter(p => p.owner.toLowerCase() === ctx.address.toLowerCase() && (p.closedAtEpoch !== 0 || p.withdrawn)).map(p => p.id) : [];
75
+ const fallback = { ids: verified, source: verified.length ? 'local' : 'chain', rows: [] };
68
76
  const indexer = ctx.indexer();
69
77
  if (!indexer)
70
- return { ids: [], source: 'chain', rows: [] };
78
+ return fallback;
71
79
  try {
72
80
  const rows = (await indexer.positions(ctx.address, true)).filter((row) => row.closedAtEpoch !== 0 || row.withdrawn);
73
- return { ids: rows.map((row) => row.id), source: 'indexer', rows };
81
+ return { ids: [...new Set([...verified, ...rows.map((row) => row.id)])], source: 'indexer', rows };
74
82
  }
75
83
  catch (error) {
76
84
  if (error instanceof IndexerError)
77
- return { ids: [], source: 'chain', rows: [] };
85
+ return fallback;
78
86
  throw error;
79
87
  }
80
88
  }
81
- /**
82
- * The wallet's open positions from the on-chain `stakerPositionIds`
83
- * enumeration, plus its closed positions from the indexer (with the reward
84
- * still pending on them read live). The chain is never scanned for history.
85
- */
86
89
  export async function positions(ctx) {
87
90
  const stack = await ctx.stack();
88
91
  const pools = ctx.requirePools();
89
92
  const config = await pools.poolConfig();
90
- const [openIds, closed] = await Promise.all([pools.allStakerPositionIds(ctx.address), closedPositionIds(ctx)]);
91
- const list = await pools.positionsBatch([...new Set([...openIds, ...closed.ids])]);
92
- const details = await describePositions(ctx, list, stack.currentEpoch, config);
93
+ let live;
94
+ let indexedRewards;
95
+ let rewardSource;
96
+ if (ctx.indexer()) {
97
+ const snapshot = await liveWalletPositions(ctx, stack.currentEpoch);
98
+ live = snapshot;
99
+ indexedRewards = null;
100
+ try {
101
+ validateWalletRewards(ctx, stack.currentEpoch, snapshot);
102
+ indexedRewards = new Map(snapshot.positions.map(row => [row.id, row.rewards.pending]));
103
+ rewardSource = { indexedBlock: snapshot.source.indexedBlock, indexedAt: snapshot.source.indexedAt };
104
+ }
105
+ catch (error) {
106
+ rewardSource = { error: error instanceof Error ? error.message : String(error) };
107
+ }
108
+ }
109
+ let list;
110
+ let closed;
111
+ if (live) {
112
+ list = live.positions.map(row => ({ ...row, amount: BigInt(row.amount), weightAmount: BigInt(row.weightAmount) }));
113
+ closed = { source: 'indexer', rows: live.positions };
114
+ }
115
+ else {
116
+ const [openIds, history] = await Promise.all([pools.allStakerPositionIds(ctx.address), closedPositionIds(ctx)]);
117
+ list = await pools.positionsBatch([...new Set([...openIds, ...history.ids])]);
118
+ closed = history;
119
+ }
120
+ const details = await describePositions(ctx, list, stack.currentEpoch, config, { live, indexedRewards });
121
+ const rewardsKnown = indexedRewards !== null && details.every(position => position.pendingReward !== null);
122
+ if (indexedRewards && !rewardsKnown)
123
+ rewardSource = { ...rewardSource, error: 'Antscan rewards have not indexed every position yet' };
93
124
  const closedById = new Map(closed.rows.map((row) => [row.id, row]));
94
- const activeStake = details.filter((position) => position.state === 'active' || position.state === 'matured').reduce((sum, position) => sum + BigInt(position.amount), 0n);
95
- const pendingRewards = details.reduce((sum, position) => sum + BigInt(position.pendingReward), 0n);
125
+ const stakeIn = (states) => details.filter((position) => states.includes(position.state)).reduce((sum, position) => sum + BigInt(position.amount), 0n);
126
+ const activeStake = live ? BigInt(live.totals.activeStake) : stakeIn(['active', 'matured']);
127
+ const pendingStake = live ? BigInt(live.totals.pendingStake) : stakeIn(['pending']);
128
+ const pendingRewards = rewardsKnown ? details.reduce((sum, position) => sum + BigInt(position.pendingReward), 0n) : null;
96
129
  return toJson({
97
130
  currentEpoch: stack.currentEpoch,
98
131
  config,
99
132
  positions: details.map(({ raw: _raw, ...view }) => {
100
133
  const meta = closedById.get(view.id);
101
- return meta ? { ...view, closedBy: meta.closedBy, replacementIds: meta.replacementIds } : view;
134
+ return meta && meta.closedAtEpoch === view.closedAtEpoch && meta.withdrawn === view.withdrawn
135
+ ? { ...view, closedBy: meta.closedBy, replacementIds: meta.replacementIds } : view;
102
136
  }),
103
- totals: { activeStake: activeStake.toString(), pendingRewards: pendingRewards.toString(), open: details.filter((position) => !position.withdrawn && position.closedAtEpoch === 0).length },
137
+ totals: { activeStake: activeStake.toString(), pendingStake: pendingStake.toString(), pendingRewards: pendingRewards?.toString() ?? null, open: list.filter((position) => isOpenAt(position, stack.currentEpoch)).length },
138
+ ...(rewardSource ? { rewardSource } : {}),
104
139
  historySource: closed.source,
140
+ displaySource: live ? { source: 'indexer', indexedAt: live.liveSource.fetchedAt } : { source: 'chain' },
105
141
  });
106
142
  }
107
143
  async function ownedOpenPositions(ctx, ids) {
@@ -126,13 +162,24 @@ async function requireNoPendingChange(ctx, list) {
126
162
  if (pending.length > 0)
127
163
  throw new Error(`Position(s) ${pending.join(', ')} changed this epoch; try again after the next epoch boundary.`);
128
164
  }
165
+ async function requireActionState(ctx, list, action) {
166
+ const pools = ctx.requirePools();
167
+ const currentEpoch = await pools.currentEpoch();
168
+ const sharedEpoch = positionActionEpoch(action, currentEpoch, list);
169
+ const states = await Promise.all(list.map(async (position) => {
170
+ const effectiveEpoch = action === 'merge' ? sharedEpoch : positionActionEpoch(action, currentEpoch, [position]);
171
+ const segment = await pools.positionPowerSegmentAt(position.id, effectiveEpoch);
172
+ const problem = positionActionProblem({ ...position, stakeEndEpoch: segment.normalEndEpoch, maxLocked: segment.maxLockPower > 0n }, action, effectiveEpoch);
173
+ if (problem)
174
+ throw new Error(`Position ${position.id}: ${problem}`);
175
+ return { effectiveEpoch, normalEndEpoch: segment.normalEndEpoch };
176
+ }));
177
+ return states;
178
+ }
129
179
  async function requireStakeableAgent(ctx, agentId) {
130
- const registry = ctx.sellerRegistry();
131
- if (!registry)
132
- return;
133
- const seller = await registry.agentSeller(agentId).catch(() => null);
134
- if (!seller || /^0x0{40}$/.test(seller)) {
135
- throw new Error(`Agent ${agentId} has no seller bound in the seller registry, so it has no stakeable pool. The seller must run \`antseed seller register\` first.`);
180
+ const eligibility = await stakeEligibility(ctx, [agentId]);
181
+ if (!eligibility.get(agentId)?.stakeable) {
182
+ throw new Error(`Agent ${agentId} is not registered to its current owner in the pool's staking source.`);
136
183
  }
137
184
  }
138
185
  export async function stake(ctx, request, report = silentReporter) {
@@ -156,6 +203,8 @@ export async function stake(ctx, request, report = silentReporter) {
156
203
  return { hash, amount: amount.toString(), agentId, epochs };
157
204
  }
158
205
  export async function move(ctx, request, report = silentReporter) {
206
+ if ('amount' in request)
207
+ throw new Error('Partial moves are not supported. Move whole positions instead.');
159
208
  const pools = ctx.requirePools();
160
209
  const signer = ctx.requireSigner();
161
210
  const ids = assertPositiveIds(request.positionIds);
@@ -164,10 +213,11 @@ export async function move(ctx, request, report = silentReporter) {
164
213
  const already = list.filter((position) => position.agentId === toAgentId);
165
214
  if (already.length > 0)
166
215
  throw new Error(`Position(s) ${already.map((position) => position.id).join(', ')} already stake agent ${toAgentId}.`);
167
- await requireNoPendingChange(ctx, list);
168
216
  await requireStakeableAgent(ctx, toAgentId);
217
+ await requireActionState(ctx, list, 'move');
169
218
  await report(`Moving ${ids.length} position(s) to agent ${toAgentId} (effective next epoch)`);
170
219
  const hash = ids.length === 1 ? await pools.moveStake(signer, ids[0], toAgentId) : await pools.moveStakes(signer, ids, toAgentId);
220
+ ids.forEach(id => ctx.localPositionIds.set(id, ctx.address));
171
221
  await report('Move confirmed', hash);
172
222
  return { hash };
173
223
  }
@@ -182,7 +232,7 @@ export async function split(ctx, request, report = silentReporter) {
182
232
  const secondWeight = position.weightAmount * splitAmount / position.amount;
183
233
  if (secondWeight === 0n || position.weightAmount - secondWeight === 0n)
184
234
  throw new Error('Split amount is too small: both parts need non-zero weight.');
185
- await requireNoPendingChange(ctx, [position]);
235
+ await requireActionState(ctx, [position], 'split');
186
236
  await report(`Splitting ${formatAnts(splitAmount)} ANTS out of position ${id}`);
187
237
  const hash = await pools.splitStake(signer, id, splitAmount);
188
238
  await report('Split confirmed', hash);
@@ -198,15 +248,19 @@ export async function merge(ctx, request, report = silentReporter) {
198
248
  const agents = new Set(list.map((position) => position.agentId));
199
249
  if (agents.size !== 1)
200
250
  throw new Error('All merged positions must stake the same agent pool.');
201
- const ends = new Set(list.map((position) => position.stakeEndEpoch));
251
+ const states = await requireActionState(ctx, list, 'merge');
252
+ const ends = new Set(states.map(state => state.normalEndEpoch));
202
253
  if (ends.size !== 1)
203
254
  throw new Error('All merged positions must share the same lock end epoch (extend or disable max lock first to align them).');
204
- await requireNoPendingChange(ctx, list);
205
- const stack = await ctx.stack();
206
- for (const position of list) {
207
- if (await pools.isMaxLocked(position.id, Math.max(stack.currentEpoch, position.stakeStartEpoch))) {
208
- throw new Error(`Position ${position.id} is max-locked; disable max lock before merging.`);
209
- }
255
+ const iface = new Interface(['function mergeStakes(uint256[] positionIds) returns (uint256)']);
256
+ try {
257
+ await ctx.provider().call({ from: ctx.address, to: pools.contractAddress, data: iface.encodeFunctionData('mergeStakes', [ids]) });
258
+ }
259
+ catch (error) {
260
+ const message = isError(error, 'CALL_EXCEPTION')
261
+ ? 'The contract rejected the merge. Positions must share the same effective lock start and end; matching unlock dates alone are not sufficient.'
262
+ : 'Merge simulation could not reach a reliable RPC result. No wallet request was submitted; try again when the RPC is available.';
263
+ throw new Error(message, { cause: error });
210
264
  }
211
265
  await report(`Merging ${ids.length} positions in agent ${list[0].agentId}`);
212
266
  const hash = await pools.mergeStakes(signer, ids);
@@ -218,14 +272,13 @@ export async function extend(ctx, request, report = silentReporter) {
218
272
  const signer = ctx.requireSigner();
219
273
  const [id] = assertPositiveIds([request.positionId]);
220
274
  const config = await pools.poolConfig();
221
- const additional = assertEpochs(request.epochs, 1, config.maxStakeEpochs);
275
+ const additional = assertEpochs(request.epochs, 1, Number.MAX_SAFE_INTEGER);
222
276
  const [position] = await ownedOpenPositions(ctx, [id]);
223
- const stack = await ctx.stack();
224
- const effective = stack.currentEpoch + 1;
225
- const newEnd = Math.max(position.stakeEndEpoch, effective) + additional;
226
- if (newEnd - effective > config.maxStakeEpochs)
227
- throw new Error(`The new lock end (epoch ${newEnd}) would exceed ${config.maxStakeEpochs} epochs from the next epoch.`);
228
- await report(`Extending position ${id} by ${additional} epoch(s) to epoch ${newEnd}`);
277
+ const [state] = await requireActionState(ctx, [position], 'extend');
278
+ const newEnd = Math.min(state.normalEndEpoch + additional, state.effectiveEpoch + config.maxStakeEpochs);
279
+ if (newEnd <= state.normalEndEpoch)
280
+ throw new Error(`Position ${id} is already at the maximum lock.`);
281
+ await report(`Extending position ${id} by ${newEnd - state.normalEndEpoch} epoch(s) to epoch ${newEnd}`);
229
282
  const hash = await pools.extendLock(signer, id, additional);
230
283
  await report('Extension confirmed', hash);
231
284
  return { hash };
@@ -235,12 +288,7 @@ export async function maxLock(ctx, request, report = silentReporter) {
235
288
  const signer = ctx.requireSigner();
236
289
  const [id] = assertPositiveIds([request.positionId]);
237
290
  const [position] = await ownedOpenPositions(ctx, [id]);
238
- const stack = await ctx.stack();
239
- const locked = await pools.isMaxLocked(id, Math.max(stack.currentEpoch + 1, position.stakeStartEpoch));
240
- if (request.enable && locked)
241
- throw new Error(`Position ${id} is already max-locked.`);
242
- if (!request.enable && !locked)
243
- throw new Error(`Position ${id} is not max-locked.`);
291
+ await requireActionState(ctx, [position], request.enable ? 'enable-max-lock' : 'disable-max-lock');
244
292
  await report(request.enable ? `Enabling max lock on position ${id} (constant maximum power; withdrawal restarts the full countdown)` : `Disabling max lock on position ${id} (a fresh ${(await pools.poolConfig()).maxStakeEpochs}-epoch countdown starts next epoch)`);
245
293
  const hash = request.enable ? await pools.enableMaxLock(signer, id) : await pools.disableMaxLock(signer, id);
246
294
  await report('Max lock change confirmed', hash);
@@ -251,7 +299,18 @@ export async function previewWithdraw(ctx, ids) {
251
299
  const list = await ownedOpenPositions(ctx, assertPositiveIds(ids));
252
300
  await requireNoPendingChange(ctx, list);
253
301
  const estimates = await Promise.all(list.map(async (position) => estimateEarlyExit(position, await pools.earlyExitSlashBps(position.id))));
302
+ const pending = await ctx.poolRewards()?.previewStakerRewards(ids) ?? [];
303
+ const transfersRestricted = !(await ctx.antsToken().canTransfer(ctx.address));
304
+ let simulationError = null;
305
+ try {
306
+ const iface = new Interface(['function withdrawStakes(uint256[] ids)']);
307
+ await ctx.provider().call({ from: ctx.address, to: pools.contractAddress, data: iface.encodeFunctionData('withdrawStakes', [ids]) });
308
+ }
309
+ catch (error) {
310
+ simulationError = error instanceof Error ? error.message : String(error);
311
+ }
254
312
  return {
313
+ pendingRewards: pending.reduce((sum, amount) => sum + amount, 0n).toString(), transfersRestricted, simulationError,
255
314
  positions: estimates.map((estimate) => ({ id: estimate.id, amount: estimate.amount.toString(), slashBps: estimate.slashBps, slashedAmount: estimate.slashedAmount.toString(), returnedAmount: estimate.returnedAmount.toString() })),
256
315
  totalSlashed: estimates.reduce((sum, estimate) => sum + estimate.slashedAmount, 0n).toString(),
257
316
  totalReturned: estimates.reduce((sum, estimate) => sum + estimate.returnedAmount, 0n).toString(),
@@ -263,6 +322,8 @@ export async function withdraw(ctx, request, report = silentReporter) {
263
322
  const signer = ctx.requireSigner();
264
323
  const ids = assertPositiveIds(request.positionIds);
265
324
  const preview = await previewWithdraw(ctx, ids);
325
+ if (preview.simulationError)
326
+ throw new Error(`Withdrawal cannot execute: ${preview.simulationError}`);
266
327
  if (preview.earlyExit) {
267
328
  if (!request.acceptSlashing)
268
329
  throw new Error(`Early exit burns an estimated ${formatAnts(preview.totalSlashed)} ANTS of principal. Re-run with slashing accepted to proceed.`);
@@ -274,6 +335,7 @@ export async function withdraw(ctx, request, report = silentReporter) {
274
335
  ? `Withdrawing ${ids.length} position(s), burning about ${formatAnts(preview.totalSlashed)} ANTS`
275
336
  : `Withdrawing ${ids.length} matured position(s)`);
276
337
  const hash = await pools.withdrawStakes(signer, ids);
338
+ ids.forEach(id => ctx.localPositionIds.set(id, ctx.address));
277
339
  await report('Withdrawal confirmed', hash);
278
340
  ctx.invalidate();
279
341
  return { hash, preview };
@@ -1 +1 @@
1
- {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/service/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,0BAA0B,EAAkD,MAAM,wBAAwB,CAAC;AAGtJ,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAC;AAE/G,KAAK,UAAU,IAAI,CAAI,IAAsB,EAAE,QAAW;IACxD,IAAI,CAAC;QAAC,OAAO,MAAM,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;AACzD,CAAC;AAID,KAAK,UAAU,iBAAiB,CAAC,GAAgB,EAAE,SAA+B,EAAE,YAAoB,EAAE,MAAwB;IAChI,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACtC,6FAA6F;IAC7F,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAA2B,EAAE;YACpH,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvD,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;aACpI,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,GAAG,iBAAiB,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAgB,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7H,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,IAAI,iBAAiB,CAAC,CAAC;YAC5E,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAClC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAC9C,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC5C,iBAAiB;gBACjB,aAAa;gBACb,SAAS;gBACT,QAAQ;gBACR,iBAAiB;gBACjB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;gBAC7D,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;gBAC/D,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC1D,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClH,GAAG,EAAE,QAAQ;aACd,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAgB;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACpH,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY;YAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAgB;IAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3K,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IACnG,OAAO,MAAM,CAAC;QACZ,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,CAAC,CAAC;QACF,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;QAC1L,aAAa,EAAE,MAAM,CAAC,MAAM;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAgB,EAAE,GAAa;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC1I,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC3I,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,GAAgB,EAAE,IAA0B;IAChF,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,YAAY,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;AAC5I,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,GAAgB,EAAE,OAAe;IACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,kIAAkI,CAAC,CAAC;IACtK,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAgB,EAAE,OAAqB,EAAE,SAAuB,cAAc;IACxG,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1F,MAAM,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjH,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;IAClI,IAAI,OAAO,GAAG,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,OAAO,CAAC,oBAAoB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvI,MAAM,MAAM,CAAC,yBAAyB,UAAU,CAAC,MAAM,CAAC,oBAAoB,OAAO,QAAQ,MAAM,WAAW,CAAC,CAAC;IAC9G,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,UAAU,EAAE,CAAC;IACjB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAgB,EAAE,OAAoB,EAAE,SAAuB,cAAc;IACtG,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,SAAS,GAAG,CAAC,CAAC;IAC9I,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,UAAU,GAAG,CAAC,MAAM,yBAAyB,SAAS,yBAAyB,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACnI,MAAM,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAgB,EAAE,OAAqB,EAAE,SAAuB,cAAc;IACxG,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAG,CAAC,CAAC,CAAC;IACxD,IAAI,WAAW,IAAI,QAAS,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxI,MAAM,YAAY,GAAG,QAAS,CAAC,YAAY,GAAG,WAAW,GAAG,QAAS,CAAC,MAAM,CAAC;IAC7E,IAAI,YAAY,KAAK,EAAE,IAAI,QAAS,CAAC,YAAY,GAAG,YAAY,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACxJ,MAAM,sBAAsB,CAAC,GAAG,EAAE,CAAC,QAAS,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,aAAa,UAAU,CAAC,WAAW,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAG,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAgB,EAAE,OAAqB,EAAE,SAAuB,cAAc;IACxG,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;IAClJ,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,EAAE,kDAAkD,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,MAAM,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,uBAAuB,IAAI,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAgB,EAAE,OAAsB,EAAE,SAAuB,cAAc;IAC1G,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAG,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAS,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC;IACzE,IAAI,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,kBAAkB,MAAM,CAAC,cAAc,8BAA8B,CAAC,CAAC;IACxK,MAAM,MAAM,CAAC,sBAAsB,EAAE,OAAO,UAAU,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAgB,EAAE,OAAuB,EAAE,SAAuB,cAAc;IAC5G,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAG,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,EAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,QAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACvF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IACrF,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,iCAAiC,EAAE,mEAAmE,CAAC,CAAC,CAAC,kCAAkC,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,cAAc,qCAAqC,CAAC,CAAC;IACxQ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAG,CAAC,CAAC;IAC/G,MAAM,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAgB,EAAE,GAAa;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3I,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpO,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC9F,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QAChG,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAgB,EAAE,OAAwB,EAAE,SAAuB,cAAc;IAC9G,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,+DAA+D,CAAC,CAAC;QAC/K,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9G,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS;QAC5B,CAAC,CAAC,eAAe,GAAG,CAAC,MAAM,+BAA+B,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO;QACjG,CAAC,CAAC,eAAe,GAAG,CAAC,MAAM,sBAAsB,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC3C,GAAG,CAAC,UAAU,EAAE,CAAC;IACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/service/positions.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export interface StakeUsageResult {
20
20
  }
21
21
  export declare function stakeUsageRewards(ctx: AntsContext, request: StakeUsageRequest, report?: StepReporter): Promise<StakeUsageResult>;
22
22
  export interface CompoundRequest {
23
+ includeBuyer?: boolean;
23
24
  epochs: number;
24
25
  targetAgentId?: number;
25
26
  stakeAgentId?: number;