@antseed/ants 0.1.4 → 0.1.6
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.
- package/dist/ants-web/assets/Arc-VDBY7LNS-BChRXCXW.js +1 -0
- package/dist/ants-web/assets/Brave-BRAKJXDS-mq-Xo37j.js +1 -0
- package/dist/ants-web/assets/Browser-76IHF3Y2-BMhRaC5Z.js +1 -0
- package/dist/ants-web/assets/Chrome-65Q5P54Y-DR9MQEVr.js +1 -0
- package/dist/ants-web/assets/Edge-XSPUTORV-DEoZslQE.js +1 -0
- package/dist/ants-web/assets/Firefox-AAHGJQIP-Bp_Hm04m.js +1 -0
- package/dist/ants-web/assets/Linux-OO4TNCLJ-B0aw93n9.js +1 -0
- package/dist/ants-web/assets/Macos-MW4AE7LN-Vvm8Drw3.js +1 -0
- package/dist/ants-web/assets/Opera-KQZLSACL-Cwv5MDFy.js +1 -0
- package/dist/ants-web/assets/Safari-ZPL37GXR-C4Ggg6rz.js +1 -0
- package/dist/ants-web/assets/Windows-PPTHQER6-BlyV2p7Y.js +1 -0
- package/dist/ants-web/assets/add-1qQ_SVL6.js +15 -0
- package/dist/ants-web/assets/all-wallets-D0QF065k.js +6 -0
- package/dist/ants-web/assets/apechain-SX5YFU6N-q5qBv-mp.js +1 -0
- package/dist/ants-web/assets/app-store-j-2thKGl.js +17 -0
- package/dist/ants-web/assets/apple-CCcInWVX.js +18 -0
- package/dist/ants-web/assets/ar_AR-44JUQ6EW-BMX-am0v.js +1487 -0
- package/dist/ants-web/assets/arbitrum-WURIBY6W-CqVkHBr5.js +1 -0
- package/dist/ants-web/assets/arrow-bottom-DVZa97G2.js +8 -0
- package/dist/ants-web/assets/arrow-bottom-circle-tt2k5BWG.js +11 -0
- package/dist/ants-web/assets/arrow-left-DnjqXMe0.js +8 -0
- package/dist/ants-web/assets/arrow-right-De8QMymS.js +8 -0
- package/dist/ants-web/assets/arrow-top-BS2oLt_x.js +8 -0
- package/dist/ants-web/assets/assets-Q6ZU7ZJ5-P8HioiAD.js +1 -0
- package/dist/ants-web/assets/avalanche-KOMJD3XY-Dsn_JPR4.js +1 -0
- package/dist/ants-web/assets/bank-DIxCskFM.js +14 -0
- package/dist/ants-web/assets/base-OAXLRA4F-CoYTVIiL.js +1 -0
- package/dist/ants-web/assets/baseAccount-44UITRK7-CsjdbWCf.js +1 -0
- package/dist/ants-web/assets/basic-D0Dg7j2v.js +2128 -0
- package/dist/ants-web/assets/berachain-NJECWIVC-DumxnFvf.js +1 -0
- package/dist/ants-web/assets/blast-V555OVXZ-BbhJh1tj.js +1 -0
- package/dist/ants-web/assets/browser-n9VVPree.js +14 -0
- package/dist/ants-web/assets/bsc-N647EYR2-B2nLKXWV.js +1 -0
- package/dist/ants-web/assets/card-Bl7AHEuE.js +14 -0
- package/dist/ants-web/assets/ccip-C_ifxkiT.js +1 -0
- package/dist/ants-web/assets/celo-GEP4TUHG-CenIBYLU.js +1 -0
- package/dist/ants-web/assets/checkmark-DXB1SsFx.js +11 -0
- package/dist/ants-web/assets/checkmark-bold-CIMnw7st.js +8 -0
- package/dist/ants-web/assets/chevron-bottom-DGkVb8CY.js +8 -0
- package/dist/ants-web/assets/chevron-left-D8vC6sW_.js +8 -0
- package/dist/ants-web/assets/chevron-right-CP8tyhU4.js +8 -0
- package/dist/ants-web/assets/chevron-top-DUqp6O8b.js +8 -0
- package/dist/ants-web/assets/chrome-store-CDk6Jfiv.js +61 -0
- package/dist/ants-web/assets/clock-t0Dwo5ck.js +8 -0
- package/dist/ants-web/assets/close-BiTlv6FX.js +8 -0
- package/dist/ants-web/assets/coinPlaceholder-PJZCh_De.js +8 -0
- package/dist/ants-web/assets/compass-CctP2ZVM.js +8 -0
- package/dist/ants-web/assets/connect-UA7M4XW6-IY3X6Bmr.js +1 -0
- package/dist/ants-web/assets/copy-b1i5dSZT.js +15 -0
- package/dist/ants-web/assets/core-4w9H32as.js +908 -0
- package/dist/ants-web/assets/create-FASO7PVG-D_rvSpre.js +1 -0
- package/dist/ants-web/assets/cronos-HJPAQTAE-BEOvlOC4.js +1 -0
- package/dist/ants-web/assets/cursor-kLCZuRWK.js +3 -0
- package/dist/ants-web/assets/cursor-transparent-C1IxvCBs.js +12 -0
- package/dist/ants-web/assets/de_DE-PYAO5YD6-BWlqPWgO.js +1487 -0
- package/dist/ants-web/assets/degen-FQQ4XGHB-CeHTs88l.js +1 -0
- package/dist/ants-web/assets/desktop-Qa_41eha.js +9 -0
- package/dist/ants-web/assets/disconnect-7QBZVVG8.js +8 -0
- package/dist/ants-web/assets/discord-DuRr0OMy.js +17 -0
- package/dist/ants-web/assets/es_419-HRGOJ6VT-D-qzxUM-.js +1487 -0
- package/dist/ants-web/assets/ethereum-RGGVA4PY-SWGOlkuk.js +1 -0
- package/dist/ants-web/assets/etherscan-BOImzSgC.js +6 -0
- package/dist/ants-web/assets/events-DQ172AOg.js +1 -0
- package/dist/ants-web/assets/exclamation-triangle-evZ54TSt.js +4 -0
- package/dist/ants-web/assets/extension-YSvzNEgu.js +8 -0
- package/dist/ants-web/assets/external-link-BukU3aK3.js +8 -0
- package/dist/ants-web/assets/facebook-WJZQGI9M.js +26 -0
- package/dist/ants-web/assets/farcaster-Dt0XRvlP.js +12 -0
- package/dist/ants-web/assets/filters-CFC5g--u.js +8 -0
- package/dist/ants-web/assets/flow-5FQJFCTK-CUie2reO.js +1 -0
- package/dist/ants-web/assets/fr_FR-IGGVC6RM-D8LpUM75.js +1487 -0
- package/dist/ants-web/assets/github-Bhz0AnGj.js +18 -0
- package/dist/ants-web/assets/gnosis-37ZC4RBL-B137OtHZ.js +1 -0
- package/dist/ants-web/assets/google-CGzSUXjP.js +18 -0
- package/dist/ants-web/assets/gravity-J5YQHTYH-Bj6B0uod.js +1 -0
- package/dist/ants-web/assets/hardhat-TX56IT5N-CV1FY-wE.js +1 -0
- package/dist/ants-web/assets/help-circle-BoGPtVJY.js +12 -0
- package/dist/ants-web/assets/hi_IN-XSKAA3MF-C3QUpWyP.js +1487 -0
- package/dist/ants-web/assets/hyperevm-VKPAA4SA-CHwraEsx.js +1 -0
- package/dist/ants-web/assets/id-ir8rS0J_.js +12 -0
- package/dist/ants-web/assets/id_ID-KUOB4UAL-K9y-nRWm.js +1487 -0
- package/dist/ants-web/assets/image-DXBUHwz_.js +4 -0
- package/dist/ants-web/assets/index-9ALlRD6p.css +1 -0
- package/dist/ants-web/assets/index-B7p3jPAJ.js +1 -0
- package/dist/ants-web/assets/index-BqWNkBzB.js +395 -0
- package/dist/ants-web/assets/index-C-I4ROfT.js +16 -0
- package/dist/ants-web/assets/index-Chq8yV_g.js +47 -0
- package/dist/ants-web/assets/index-Ci5bF__2.js +1729 -0
- package/dist/ants-web/assets/index-kzlEvkEN.js +1 -0
- package/dist/ants-web/assets/index.es-D1GdDJUC.js +39 -0
- package/dist/ants-web/assets/info-DzGq_QPQ.js +3 -0
- package/dist/ants-web/assets/info-circle-z91TqQxH.js +12 -0
- package/dist/ants-web/assets/ink-FZMYZWHG-62p-5IK5.js +1 -0
- package/dist/ants-web/assets/ja_JP-4WRQ63RX-Ct5pF4ug.js +1487 -0
- package/dist/ants-web/assets/kaia-65D2U3PU-JmuLQ4gC.js +1 -0
- package/dist/ants-web/assets/ko_KR-I2K7AIEP-B5gw8Mwb.js +1487 -0
- package/dist/ants-web/assets/lightbulb-CgYwiQYs.js +3 -0
- package/dist/ants-web/assets/linea-QRMVQ5DY-DuI3vv0d.js +1 -0
- package/dist/ants-web/assets/login-UP3DZBGS-Db_wM5oQ.js +1 -0
- package/dist/ants-web/assets/mail-FLPFIbqi.js +8 -0
- package/dist/ants-web/assets/manta-SI27YFEJ-CpVOKa06.js +1 -0
- package/dist/ants-web/assets/mantle-CKIUT334-DR2WgqzU.js +1 -0
- package/dist/ants-web/assets/metaMaskWallet-SITXT2FV-BlemcphV.js +1 -0
- package/dist/ants-web/assets/metamask-sdk-QG4PtQco.js +542 -0
- package/dist/ants-web/assets/mobile--kHpa5NK.js +9 -0
- package/dist/ants-web/assets/monad-4KWC6TSS-DVXSkpiz.js +1 -0
- package/dist/ants-web/assets/more-CJbReLy0.js +11 -0
- package/dist/ants-web/assets/ms_MY-6VZW6Q3Z-BtFD07hR.js +1487 -0
- package/dist/ants-web/assets/network-placeholder-BfSizFBN.js +14 -0
- package/dist/ants-web/assets/nftPlaceholder-BTfly2G8.js +8 -0
- package/dist/ants-web/assets/off-DCMXa6Y2.js +8 -0
- package/dist/ants-web/assets/optimism-HAF2GUT7-ec6Nqxs9.js +1 -0
- package/dist/ants-web/assets/play-store-CbbevixE.js +32 -0
- package/dist/ants-web/assets/plus-BxINT2r_.js +13 -0
- package/dist/ants-web/assets/polygon-WW6ZI7PM-DXlmm4L1.js +1 -0
- package/dist/ants-web/assets/pt_BR-N3XOZ4SV-CvVpfsHb.js +1487 -0
- package/dist/ants-web/assets/qr-code-CMEsvGrE.js +6 -0
- package/dist/ants-web/assets/rainbowWallet-O26YNBMX-DUhYus-9.js +1 -0
- package/dist/ants-web/assets/recycle-horizontal-BldRTXPT.js +9 -0
- package/dist/ants-web/assets/refresh-82vLCcdB.js +8 -0
- package/dist/ants-web/assets/refresh-S4T5V5GX-CwqIaaxK.js +1 -0
- package/dist/ants-web/assets/reown-logo-BPGalyzg.js +12 -0
- package/dist/ants-web/assets/ronin-EMCPYXZT-N-QBHZdV.js +1 -0
- package/dist/ants-web/assets/ru_RU-IITAPRET-DOj6Jzj7.js +1487 -0
- package/dist/ants-web/assets/safeWallet-5MNKTR5Z-D-5imDLD.js +1 -0
- package/dist/ants-web/assets/sanko-RHQYXGM5-OX010CbN.js +1 -0
- package/dist/ants-web/assets/scan-4UYSQ56Q-CjMz6-XC.js +1 -0
- package/dist/ants-web/assets/scroll-5OBGQVOV-DJFECiai.js +1 -0
- package/dist/ants-web/assets/search-CADsyV1c.js +8 -0
- package/dist/ants-web/assets/secp256k1-B5byVYSZ.js +1 -0
- package/dist/ants-web/assets/secp256k1-Cb4vPU9D.js +1 -0
- package/dist/ants-web/assets/send-DyAisqGO.js +15 -0
- package/dist/ants-web/assets/sign-A7IJEUT5-CGsRnPrd.js +1 -0
- package/dist/ants-web/assets/superposition-HG6MMR2Y-bRkgatRO.js +1 -0
- package/dist/ants-web/assets/swapHorizontal-BfHwXZPT.js +8 -0
- package/dist/ants-web/assets/swapHorizontalBold-FIoCjqnp.js +8 -0
- package/dist/ants-web/assets/swapHorizontalMedium-CzDDCY_G.js +16 -0
- package/dist/ants-web/assets/swapHorizontalRoundedBold-CvMRJeWj.js +8 -0
- package/dist/ants-web/assets/swapVertical-BgSezaow.js +8 -0
- package/dist/ants-web/assets/telegram-CsMNhXCs.js +16 -0
- package/dist/ants-web/assets/th_TH-3ZQCKCQE-BcHUN2Q4.js +1487 -0
- package/dist/ants-web/assets/three-dots-DYf4gmVW.js +5 -0
- package/dist/ants-web/assets/tr_TR-QUPUGMUF-CwpF6ZFn.js +1487 -0
- package/dist/ants-web/assets/twitch-BtBr-NTg.js +18 -0
- package/dist/ants-web/assets/twitterIcon-BmRf6M77.js +6 -0
- package/dist/ants-web/assets/uk_UA-SSN6SV5E-IlYYyRC6.js +1487 -0
- package/dist/ants-web/assets/unichain-C5BWO2ZY-BfguYsnu.js +1 -0
- package/dist/ants-web/assets/verify-cxA8gdP6.js +8 -0
- package/dist/ants-web/assets/verify-filled-DHnnW8EE.js +8 -0
- package/dist/ants-web/assets/vi_VN-7BUVRNYY-CZ9S75qZ.js +1487 -0
- package/dist/ants-web/assets/w3m-modal-D1ucMOAa.js +642 -0
- package/dist/ants-web/assets/wallet-BT4Fue1R.js +8 -0
- package/dist/ants-web/assets/wallet-placeholder-C2J5s6Yp.js +14 -0
- package/dist/ants-web/assets/walletConnectWallet-YHWKVTDY-D3lyiczV.js +1 -0
- package/dist/ants-web/assets/walletconnect-B5k8iJl-.js +30 -0
- package/dist/ants-web/assets/warning-circle-9rNSUSsX.js +12 -0
- package/dist/ants-web/assets/x-CpRc85jR.js +12 -0
- package/dist/ants-web/assets/xdc-KJ3TDBYO-DNV6zchh.js +1 -0
- package/dist/ants-web/assets/zetachain-TLDS5IPW-Udhyw16T.js +1 -0
- package/dist/ants-web/assets/zh_CN-HJBN674C-Baf0GEeT.js +1487 -0
- package/dist/ants-web/assets/zh_HK-JW3WLRKE-VztJKXL5.js +1487 -0
- package/dist/ants-web/assets/zh_TW-VNNRNXY7-aWfg7Qp4.js +1487 -0
- package/dist/ants-web/assets/zksync-DH7HK5U4-Dt4usFw6.js +1 -0
- package/dist/ants-web/assets/zora-FYL5H3IO-iB4wygST.js +1 -0
- package/dist/ants-web/index.html +2 -2
- package/dist/api-types.d.ts +168 -6
- package/dist/browser-signer.d.ts +30 -0
- package/dist/browser-signer.js +189 -0
- package/dist/browser-signer.js.map +1 -0
- package/dist/jobs.d.ts +10 -3
- package/dist/jobs.js +97 -20
- package/dist/jobs.js.map +1 -1
- package/dist/position-actions.d.ts +13 -0
- package/dist/position-actions.js +25 -0
- package/dist/position-actions.js.map +1 -0
- package/dist/routes.d.ts +7 -0
- package/dist/routes.js +63 -5
- package/dist/routes.js.map +1 -1
- package/dist/server.d.ts +8 -0
- package/dist/server.js +157 -12
- package/dist/server.js.map +1 -1
- package/dist/service/context.d.ts +13 -2
- package/dist/service/context.js +35 -4
- package/dist/service/context.js.map +1 -1
- package/dist/service/display-snapshot.d.ts +28 -0
- package/dist/service/display-snapshot.js +144 -0
- package/dist/service/display-snapshot.js.map +1 -0
- package/dist/service/emissions.js +11 -19
- package/dist/service/emissions.js.map +1 -1
- package/dist/service/explorer.js +2 -1
- package/dist/service/explorer.js.map +1 -1
- package/dist/service/format.d.ts +1 -1
- package/dist/service/format.js +2 -0
- package/dist/service/format.js.map +1 -1
- package/dist/service/indexed-wallet.d.ts +7 -0
- package/dist/service/indexed-wallet.js +58 -0
- package/dist/service/indexed-wallet.js.map +1 -0
- package/dist/service/indexer.d.ts +32 -3
- package/dist/service/indexer.js +64 -8
- package/dist/service/indexer.js.map +1 -1
- package/dist/service/legacy-payout.d.ts +3 -0
- package/dist/service/legacy-payout.js +32 -0
- package/dist/service/legacy-payout.js.map +1 -0
- package/dist/service/network.d.ts +5 -0
- package/dist/service/network.js +185 -0
- package/dist/service/network.js.map +1 -0
- package/dist/service/overview-reads.d.ts +30 -0
- package/dist/service/overview-reads.js +69 -0
- package/dist/service/overview-reads.js.map +1 -0
- package/dist/service/overview.js +14 -36
- package/dist/service/overview.js.map +1 -1
- package/dist/service/pool-merge.d.ts +2 -1
- package/dist/service/pool-merge.js +11 -4
- package/dist/service/pool-merge.js.map +1 -1
- package/dist/service/pools.d.ts +22 -1
- package/dist/service/pools.js +257 -98
- package/dist/service/pools.js.map +1 -1
- package/dist/service/position-feed.d.ts +73 -0
- package/dist/service/position-feed.js +173 -0
- package/dist/service/position-feed.js.map +1 -0
- package/dist/service/positions.d.ts +3 -5
- package/dist/service/positions.js +155 -93
- package/dist/service/positions.js.map +1 -1
- package/dist/service/rewards.d.ts +1 -0
- package/dist/service/rewards.js +117 -56
- package/dist/service/rewards.js.map +1 -1
- package/dist/service/rpc-provider.d.ts +3 -0
- package/dist/service/rpc-provider.js +32 -3
- package/dist/service/rpc-provider.js.map +1 -1
- package/dist/service/seller-models.d.ts +2 -0
- package/dist/service/seller-models.js +94 -0
- package/dist/service/seller-models.js.map +1 -0
- package/dist/service/seller.js +33 -30
- package/dist/service/seller.js.map +1 -1
- package/dist/service/stake-eligibility.d.ts +6 -0
- package/dist/service/stake-eligibility.js +50 -0
- package/dist/service/stake-eligibility.js.map +1 -0
- package/dist/service/usage.js +5 -13
- package/dist/service/usage.js.map +1 -1
- package/dist/service/yield.d.ts +3 -0
- package/dist/service/yield.js +12 -0
- package/dist/service/yield.js.map +1 -0
- package/dist/view-cache.d.ts +5 -10
- package/dist/view-cache.js +12 -14
- package/dist/view-cache.js.map +1 -1
- package/dist/wallet-errors.d.ts +9 -0
- package/dist/wallet-errors.js +32 -0
- package/dist/wallet-errors.js.map +1 -0
- package/package.json +8 -3
- package/dist/ants-web/assets/index-BunPfgXh.css +0 -1
- package/dist/ants-web/assets/index-zCPoF694.js +0 -40
package/dist/service/pools.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import { closedPositionIds } from './positions.js';
|
|
2
|
+
import { poolYield } from './yield.js';
|
|
1
3
|
import { Interface, ZeroAddress } from 'ethers';
|
|
2
4
|
import { multicallRead } from '@antseed/node/payments';
|
|
3
5
|
import { toJson } from './json.js';
|
|
4
6
|
import { explorerSellers } from './explorer.js';
|
|
5
7
|
import { mergePools, sortPools } from './pool-merge.js';
|
|
6
8
|
import { IndexerError } from './indexer.js';
|
|
7
|
-
|
|
9
|
+
import { stakeEligibility } from './stake-eligibility.js';
|
|
10
|
+
import { displayData } from './display-snapshot.js';
|
|
11
|
+
import { liveWalletPositions } from './indexed-wallet.js';
|
|
12
|
+
const VOLUME_EPOCHS = 9;
|
|
13
|
+
/** Epochs of per-pool history returned by the single-pool endpoint for charts. */
|
|
14
|
+
export const HISTORY_EPOCHS = 16;
|
|
8
15
|
async function safe(read, fallback) {
|
|
9
16
|
try {
|
|
10
17
|
return await read();
|
|
@@ -20,13 +27,14 @@ function per1k(reward, power) {
|
|
|
20
27
|
return power === 0n ? null : (reward * 1000n * 10n ** 18n / power).toString();
|
|
21
28
|
}
|
|
22
29
|
const POOLS_IFACE = new Interface([
|
|
30
|
+
'function minStakeEpochs() view returns (uint256)',
|
|
31
|
+
'function MAX_STAKE_EPOCHS() view returns (uint256)',
|
|
23
32
|
'function poolActiveStakeAtEpoch(uint256 agentId, uint256 epoch) view returns (uint256)',
|
|
24
33
|
'function poolWeightAtEpoch(uint256 agentId, uint256 epoch) view returns (uint256)',
|
|
25
34
|
'function currentPoolSecurityShareBps(uint256 agentId) returns (uint256)',
|
|
26
35
|
'function stakerAgentActiveStake(address staker, uint256 agentId) view returns (uint256)',
|
|
27
36
|
'function positionWeightAtEpoch(uint256 positionId, uint256 epoch) view returns (uint256)',
|
|
28
37
|
]);
|
|
29
|
-
const REGISTRY_IFACE = new Interface(['function agentSeller(uint256 agentId) view returns (address)']);
|
|
30
38
|
const ACCOUNTING_IFACE = new Interface([
|
|
31
39
|
'function agentEpochUsage(uint256 epoch, uint256 agentId) view returns (tuple(uint256 points, uint256 weightedPoints))',
|
|
32
40
|
'function totalWeightedPoolPointsByEpoch(uint256 epoch) view returns (uint256)',
|
|
@@ -37,10 +45,6 @@ const REWARDS_IFACE = new Interface([
|
|
|
37
45
|
'function poolEpochEmissions(uint256 epoch, uint256 agentId) view returns (bool, uint256)',
|
|
38
46
|
'function stakerEpochBudget(uint256 epoch) view returns (uint256)',
|
|
39
47
|
]);
|
|
40
|
-
const LEGACY_IFACE = new Interface([
|
|
41
|
-
'function userSellerPoints(address account, uint256 epoch) view returns (uint256)',
|
|
42
|
-
'function epochTotalSellerPoints(uint256 epoch) view returns (uint256)',
|
|
43
|
-
]);
|
|
44
48
|
/** Collects multicall requests and hands back typed readers once the batch has run. */
|
|
45
49
|
class Batch {
|
|
46
50
|
requests = [];
|
|
@@ -60,81 +64,99 @@ const big = (read, index = 0) => {
|
|
|
60
64
|
const value = read()?.[index];
|
|
61
65
|
return typeof value === 'bigint' ? value : 0n;
|
|
62
66
|
};
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
const recognized = stack.phase === 'active' && epoch >= effective;
|
|
66
|
-
if (recognized) {
|
|
67
|
-
return seller
|
|
68
|
-
? batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'sellerPointsByEpoch', [epoch, seller])
|
|
69
|
-
: batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'totalSellerPointsByEpoch', [epoch]);
|
|
70
|
-
}
|
|
71
|
-
return seller
|
|
72
|
-
? batch.add(stack.legacyEmissions, LEGACY_IFACE, 'userSellerPoints', [seller, epoch])
|
|
73
|
-
: batch.add(stack.legacyEmissions, LEGACY_IFACE, 'epochTotalSellerPoints', [epoch]);
|
|
67
|
+
function totalPending(own) {
|
|
68
|
+
return [...own.values()].reduce((sum, entry) => sum + entry.pending, 0n);
|
|
74
69
|
}
|
|
75
|
-
async function poolContext(ctx) {
|
|
70
|
+
async function poolContext(ctx, indexed) {
|
|
76
71
|
const stack = await ctx.stack();
|
|
77
72
|
const pools = ctx.requirePools();
|
|
78
73
|
const poolRewards = ctx.poolRewards();
|
|
79
74
|
const accounting = ctx.usageAccounting();
|
|
80
75
|
const epoch = stack.currentEpoch;
|
|
76
|
+
const display = await displayData(ctx, stack);
|
|
77
|
+
let live;
|
|
78
|
+
if (ctx.address !== ZeroAddress && ctx.indexer())
|
|
79
|
+
live = await liveWalletPositions(ctx, epoch);
|
|
80
|
+
const current = display.snapshot?.epochs.find(row => row.epoch === epoch) ?? (display.source.error ? null : indexed?.currentEpoch === epoch && indexed.network.current?.epoch === epoch && indexed.network.current.complete !== false ? indexed.network.current : null);
|
|
81
|
+
const last = display.snapshot?.epochs.find(row => row.epoch === epoch - 1) ?? (display.source.error ? null : indexed?.currentEpoch === epoch && indexed.network.last?.epoch === epoch - 1 && indexed.network.last.complete !== false ? indexed.network.last : null);
|
|
81
82
|
const epochs = Array.from({ length: VOLUME_EPOCHS }, (_, index) => epoch - index).filter((value) => value >= 0);
|
|
82
83
|
const [totalPowerWeight, stakerBudget, totalWeightedPoolPoints, lastStakerBudget, lastTotalWeightedPoolPoints, explorer, own] = await Promise.all([
|
|
83
|
-
safe(() => pools.totalPowerWeightAtEpoch(epoch), 0n),
|
|
84
|
-
poolRewards ? safe(() => poolRewards.stakerEpochBudget(epoch), 0n) : Promise.resolve(0n),
|
|
85
|
-
accounting ? safe(() => accounting.totalWeightedPoolPointsByEpoch(epoch), 0n) : Promise.resolve(0n),
|
|
86
|
-
poolRewards && epoch > 0 ? safe(() => poolRewards.stakerEpochBudget(epoch - 1), 0n) : Promise.resolve(0n),
|
|
87
|
-
accounting && epoch > 0 ? safe(() => accounting.totalWeightedPoolPointsByEpoch(epoch - 1), 0n) : Promise.resolve(0n),
|
|
84
|
+
current ? Promise.resolve(BigInt(current.totalPowerWeight)) : safe(() => pools.totalPowerWeightAtEpoch(epoch), 0n),
|
|
85
|
+
current ? Promise.resolve(BigInt(current.stakerBudget)) : poolRewards ? safe(() => poolRewards.stakerEpochBudget(epoch), 0n) : Promise.resolve(0n),
|
|
86
|
+
current ? Promise.resolve(BigInt(current.totalWeightedPoolPoints)) : accounting ? safe(() => accounting.totalWeightedPoolPointsByEpoch(epoch), 0n) : Promise.resolve(0n),
|
|
87
|
+
last ? Promise.resolve(BigInt(last.stakerBudget)) : !ctx.indexer()?.displaySnapshot && poolRewards && epoch > 0 ? safe(() => poolRewards.stakerEpochBudget(epoch - 1), 0n) : Promise.resolve(0n),
|
|
88
|
+
last ? Promise.resolve(BigInt(last.totalWeightedPoolPoints)) : !ctx.indexer()?.displaySnapshot && accounting && epoch > 0 ? safe(() => accounting.totalWeightedPoolPointsByEpoch(epoch - 1), 0n) : Promise.resolve(0n),
|
|
88
89
|
explorerSellers(ctx.chain.explorerApiUrl),
|
|
89
|
-
|
|
90
|
+
(async () => {
|
|
91
|
+
if (ctx.address === ZeroAddress || live)
|
|
92
|
+
return [];
|
|
93
|
+
const [open, closed] = await Promise.all([pools.allStakerPositionIds(ctx.address), closedPositionIds(ctx)]);
|
|
94
|
+
return pools.positionsBatch([...new Set([...open, ...closed.ids])]);
|
|
95
|
+
})(),
|
|
90
96
|
]);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
// A moved/split source keeps its power until its effective epoch, so it still counts as open here.
|
|
98
|
+
const openRows = own.filter((position) => position.owner.toLowerCase() === ctx.address.toLowerCase() && !position.withdrawn && (position.closedAtEpoch === 0 || position.closedAtEpoch > epoch));
|
|
99
|
+
const [totalActiveStake, ownSummary] = await Promise.all([
|
|
100
|
+
current ? Promise.resolve(BigInt(current.totalActiveStake)) : safe(() => pools.totalActiveStakeAtEpoch(epoch), 0n),
|
|
101
|
+
live ? Promise.resolve(ownPoolsFromLive(live)) : ownPools(ctx, openRows, epoch),
|
|
102
|
+
]);
|
|
103
|
+
return { stack, display, totalActiveStake, epochs, totalPowerWeight, stakerBudget, totalWeightedPoolPoints, lastStakerBudget, lastTotalWeightedPoolPoints, explorer, own: ownSummary };
|
|
104
|
+
}
|
|
105
|
+
function ownPoolsFromLive(live) {
|
|
106
|
+
return new Map(live.summary.map(row => [row.agentId, { positionIds: row.positionIds, power: BigInt(row.power), stake: BigInt(row.activeStake), pending: BigInt(row.pendingStake) }]));
|
|
107
|
+
}
|
|
108
|
+
export async function ownPools(ctx, rows, epoch) {
|
|
109
|
+
const power = new Map();
|
|
110
|
+
if (rows.length > 0) {
|
|
111
|
+
const poolsAddress = ctx.requirePools().contractAddress;
|
|
112
|
+
const batch = new Batch();
|
|
113
|
+
const reads = rows.map((position) => batch.add(poolsAddress, POOLS_IFACE, 'positionWeightAtEpoch', [position.id, epoch]));
|
|
114
|
+
await batch.run(ctx);
|
|
115
|
+
rows.forEach((position, index) => power.set(position.id, big(reads[index])));
|
|
96
116
|
}
|
|
97
|
-
|
|
117
|
+
const own = new Map();
|
|
118
|
+
for (const position of rows) {
|
|
119
|
+
const entry = own.get(position.agentId) ?? { positionIds: [], power: 0n, stake: 0n, pending: 0n };
|
|
120
|
+
entry.positionIds.push(position.id);
|
|
121
|
+
entry.power += power.get(position.id) ?? 0n;
|
|
122
|
+
if (position.stakeStartEpoch <= epoch)
|
|
123
|
+
entry.stake += position.amount;
|
|
124
|
+
else if (position.closedAtEpoch === 0)
|
|
125
|
+
entry.pending += position.amount;
|
|
126
|
+
own.set(position.agentId, entry);
|
|
127
|
+
}
|
|
128
|
+
return own;
|
|
98
129
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Describe many pools in two multicall rounds. Round one is cheap for every
|
|
101
|
-
* candidate (seller binding + current power); round two reads the full
|
|
102
|
-
* analytics only for agents with a pool, a binding, or your stake, and just
|
|
103
|
-
* the settled volume for the rest (explorer sellers without a pool yet).
|
|
104
|
-
*/
|
|
105
130
|
async function describePools(ctx, agents, context) {
|
|
106
131
|
const poolsAddress = ctx.requirePools().contractAddress;
|
|
107
132
|
const epoch = context.stack.currentEpoch;
|
|
108
133
|
const first = new Batch();
|
|
109
|
-
const firstReads = agents.map(([agentId
|
|
110
|
-
seller: bound ? null : first.add(ctx.chain.sellerRegistryAddress, REGISTRY_IFACE, 'agentSeller', [agentId]),
|
|
134
|
+
const firstReads = agents.map(([agentId]) => ({
|
|
111
135
|
weight: first.add(poolsAddress, POOLS_IFACE, 'poolWeightAtEpoch', [agentId, epoch]),
|
|
112
136
|
}));
|
|
113
|
-
await first.run(ctx);
|
|
114
|
-
const resolved = agents.map(([agentId
|
|
137
|
+
const [eligibility] = await Promise.all([stakeEligibility(ctx, agents.map(([agentId]) => agentId)), first.run(ctx)]);
|
|
138
|
+
const resolved = agents.map(([agentId], index) => {
|
|
115
139
|
const read = firstReads[index];
|
|
116
|
-
const
|
|
117
|
-
const stakeable =
|
|
118
|
-
const seller = stakeable ?
|
|
140
|
+
const registration = eligibility.get(agentId);
|
|
141
|
+
const stakeable = registration.stakeable;
|
|
142
|
+
const seller = stakeable ? registration.owner : context.explorer.byAgent.get(agentId) ?? null;
|
|
119
143
|
const weight = big(read.weight);
|
|
120
|
-
const
|
|
121
|
-
return { agentId, stakeable, seller, weight,
|
|
144
|
+
const mine = context.own.get(agentId);
|
|
145
|
+
return { agentId, stakeable, seller, weight, mine, full: weight !== 0n || stakeable || mine !== undefined };
|
|
122
146
|
});
|
|
123
147
|
const none = () => null;
|
|
148
|
+
const readHistory = !ctx.indexer()?.displaySnapshot && epoch > 0;
|
|
124
149
|
const batch = new Batch();
|
|
125
|
-
const reads = resolved.map(({ agentId,
|
|
150
|
+
const reads = resolved.map(({ agentId, full }) => ({
|
|
126
151
|
activeStake: full ? batch.add(poolsAddress, POOLS_IFACE, 'poolActiveStakeAtEpoch', [agentId, epoch]) : none,
|
|
127
|
-
lastWeight: full &&
|
|
152
|
+
lastWeight: full && readHistory ? batch.add(poolsAddress, POOLS_IFACE, 'poolWeightAtEpoch', [agentId, epoch - 1]) : none,
|
|
128
153
|
security: full ? batch.add(poolsAddress, POOLS_IFACE, 'currentPoolSecurityShareBps', [agentId]) : none,
|
|
129
154
|
usage: full ? batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'agentEpochUsage', [epoch, agentId]) : none,
|
|
130
|
-
lastUsage: full &&
|
|
131
|
-
lastEmission: full &&
|
|
132
|
-
yourStake: yourIds.length > 0 ? batch.add(poolsAddress, POOLS_IFACE, 'stakerAgentActiveStake', [ctx.address, agentId]) : none,
|
|
133
|
-
yourWeights: yourIds.map((id) => batch.add(poolsAddress, POOLS_IFACE, 'positionWeightAtEpoch', [id, epoch])),
|
|
134
|
-
volumes: context.epochs.map((value) => volumeCall(ctx, context.stack, batch, value, seller)),
|
|
155
|
+
lastUsage: full && readHistory ? batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'agentEpochUsage', [epoch - 1, agentId]) : none,
|
|
156
|
+
lastEmission: full && readHistory ? batch.add(ctx.chain.sellerPoolsRewardsAddress, REWARDS_IFACE, 'poolEpochEmissions', [epoch - 1, agentId]) : none,
|
|
135
157
|
}));
|
|
136
158
|
await batch.run(ctx);
|
|
137
|
-
return resolved.map(({ agentId, stakeable, seller, weight,
|
|
159
|
+
return resolved.map(({ agentId, stakeable, seller, weight, mine }, index) => {
|
|
138
160
|
const read = reads[index];
|
|
139
161
|
const lastWeight = big(read.lastWeight);
|
|
140
162
|
const usage = read.usage()?.[0];
|
|
@@ -150,7 +172,7 @@ async function describePools(ctx, agents, context) {
|
|
|
150
172
|
const emissionAmount = settled
|
|
151
173
|
? emission?.[1]
|
|
152
174
|
: context.lastTotalWeightedPoolPoints > 0n ? context.lastStakerBudget * lastWeightedPoints / context.lastTotalWeightedPoolPoints : 0n;
|
|
153
|
-
const yourPower =
|
|
175
|
+
const yourPower = mine?.power ?? 0n;
|
|
154
176
|
const projected = context.totalWeightedPoolPoints > 0n && weightedPoints > 0n
|
|
155
177
|
? context.stakerBudget * weightedPoints / context.totalWeightedPoolPoints
|
|
156
178
|
: 0n;
|
|
@@ -165,7 +187,8 @@ async function describePools(ctx, agents, context) {
|
|
|
165
187
|
weight: weight.toString(),
|
|
166
188
|
powerShareBps: bps(weight, context.totalPowerWeight),
|
|
167
189
|
securityShareBps: Number(big(read.security)),
|
|
168
|
-
volumes:
|
|
190
|
+
volumes: [],
|
|
191
|
+
volumeStatus: 'unavailable',
|
|
169
192
|
usagePoints: points.toString(),
|
|
170
193
|
weightedUsagePoints: weightedPoints.toString(),
|
|
171
194
|
lastEpochUsagePoints: lastPoints.toString(),
|
|
@@ -173,33 +196,14 @@ async function describePools(ctx, agents, context) {
|
|
|
173
196
|
lastEpochEmissionSettled: settled,
|
|
174
197
|
lastEpochRewardPer1kPower: emissionAmount > 0n ? per1k(emissionAmount, lastWeight) : null,
|
|
175
198
|
projectedRewardPer1kPower: projected > 0n ? per1k(projected, weight) : null,
|
|
176
|
-
yourStake:
|
|
199
|
+
yourStake: (mine?.stake ?? 0n).toString(),
|
|
200
|
+
yourPendingStake: (mine?.pending ?? 0n).toString(),
|
|
177
201
|
yourPower: yourPower.toString(),
|
|
178
202
|
yourPoolShareBps: bps(yourPower, weight),
|
|
179
|
-
yourPositionIds:
|
|
203
|
+
yourPositionIds: mine?.positionIds ?? [],
|
|
180
204
|
};
|
|
181
205
|
});
|
|
182
206
|
}
|
|
183
|
-
async function networkVolumes(ctx, stack, epochs) {
|
|
184
|
-
const batch = new Batch();
|
|
185
|
-
const reads = epochs.map((epoch) => volumeCall(ctx, stack, batch, epoch, null));
|
|
186
|
-
await batch.run(ctx);
|
|
187
|
-
return epochs.map((epoch, index) => ({ epoch, usdc: big(reads[index]).toString() }));
|
|
188
|
-
}
|
|
189
|
-
/** Your open positions grouped by agent, with each position's live power this epoch (a bounded read: only your ids). */
|
|
190
|
-
async function ownPools(ctx, context) {
|
|
191
|
-
const poolsAddress = ctx.requirePools().contractAddress;
|
|
192
|
-
const epoch = context.stack.currentEpoch;
|
|
193
|
-
const batch = new Batch();
|
|
194
|
-
const reads = [...context.ownPositions.entries()].map(([agentId, ids]) => ({
|
|
195
|
-
agentId,
|
|
196
|
-
ids,
|
|
197
|
-
stake: batch.add(poolsAddress, POOLS_IFACE, 'stakerAgentActiveStake', [ctx.address, agentId]),
|
|
198
|
-
weights: ids.map((id) => batch.add(poolsAddress, POOLS_IFACE, 'positionWeightAtEpoch', [id, epoch])),
|
|
199
|
-
}));
|
|
200
|
-
await batch.run(ctx);
|
|
201
|
-
return new Map(reads.map((read) => [read.agentId, { positionIds: read.ids, stake: big(read.stake), power: read.weights.reduce((sum, weight) => sum + big(weight), 0n) }]));
|
|
202
|
-
}
|
|
203
207
|
/**
|
|
204
208
|
* Pool comparison. Statistics for every pool come from the indexer; the
|
|
205
209
|
* chain is read only for this wallet's own positions. Without an indexer
|
|
@@ -207,8 +211,17 @@ async function ownPools(ctx, context) {
|
|
|
207
211
|
* described live, and `source` says so.
|
|
208
212
|
*/
|
|
209
213
|
export async function poolsView(ctx) {
|
|
210
|
-
const context = await poolContext(ctx);
|
|
211
214
|
const indexer = ctx.indexer();
|
|
215
|
+
let indexerError = null;
|
|
216
|
+
// Start public data immediately; do not put it behind wallet/reward RPC work.
|
|
217
|
+
const indexed = indexer ? await indexer.pools().catch(error => {
|
|
218
|
+
if (error instanceof IndexerError) {
|
|
219
|
+
indexerError = error.message;
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
throw error;
|
|
223
|
+
}) : null;
|
|
224
|
+
const context = await poolContext(ctx, indexed ?? undefined);
|
|
212
225
|
const epochs = context.epochs;
|
|
213
226
|
const base = {
|
|
214
227
|
currentEpoch: context.stack.currentEpoch,
|
|
@@ -216,22 +229,28 @@ export async function poolsView(ctx) {
|
|
|
216
229
|
stakerBudget: context.stakerBudget.toString(),
|
|
217
230
|
explorer: ctx.chain.explorerApiUrl ?? null,
|
|
218
231
|
};
|
|
219
|
-
if (indexer) {
|
|
232
|
+
if (indexer && indexed) {
|
|
220
233
|
try {
|
|
221
|
-
const [
|
|
222
|
-
const views = mergePools({ indexed, explorer: context.explorer, sellerEpochs, epochs, own });
|
|
223
|
-
|
|
224
|
-
|
|
234
|
+
const [sellerEpochs, metrics] = await Promise.all([indexer.sellerEpochs(VOLUME_EPOCHS), indexer.epochMetrics()]);
|
|
235
|
+
const views = mergePools({ indexed, explorer: context.explorer, sellerEpochs, epochs, own: context.own });
|
|
236
|
+
await verifyStakeability(ctx, views);
|
|
237
|
+
for (const view of views)
|
|
238
|
+
setVolumeStatus(view, indexed.currentEpoch, context.stack.currentEpoch);
|
|
239
|
+
await enrichYields(ctx, context, views, indexed);
|
|
240
|
+
const totalPower = context.totalPowerWeight;
|
|
241
|
+
const yourTotalPower = [...context.own.values()].reduce((sum, entry) => sum + entry.power, 0n);
|
|
225
242
|
return toJson({
|
|
226
243
|
...base,
|
|
227
|
-
totalActiveStake:
|
|
244
|
+
totalActiveStake: context.totalActiveStake.toString(),
|
|
228
245
|
totalPowerWeight: totalPower.toString(),
|
|
229
|
-
networkVolumes: epochs.map((
|
|
246
|
+
networkVolumes: metrics.filter(row => epochs.includes(row.epoch)).map((row) => ({ epoch: row.epoch, usdc: row.volumeUsdc })),
|
|
230
247
|
yourTotalPower: yourTotalPower.toString(),
|
|
231
248
|
yourNetworkShareBps: bps(yourTotalPower, totalPower),
|
|
249
|
+
yourPendingStake: totalPending(context.own).toString(),
|
|
232
250
|
source: 'indexer',
|
|
233
|
-
sourceError: null,
|
|
234
|
-
|
|
251
|
+
sourceError: context.display.source.error ?? null,
|
|
252
|
+
displaySource: context.display.source,
|
|
253
|
+
pools: sortPools(views),
|
|
235
254
|
});
|
|
236
255
|
}
|
|
237
256
|
catch (error) {
|
|
@@ -240,26 +259,25 @@ export async function poolsView(ctx) {
|
|
|
240
259
|
return chainOnlyPools(ctx, context, base, error.message);
|
|
241
260
|
}
|
|
242
261
|
}
|
|
243
|
-
return chainOnlyPools(ctx, context, base,
|
|
262
|
+
return chainOnlyPools(ctx, context, base, indexerError);
|
|
244
263
|
}
|
|
245
264
|
async function chainOnlyPools(ctx, context, base, sourceError) {
|
|
246
|
-
const
|
|
247
|
-
const agents = [...context.ownPositions.keys()].map((agentId) => [agentId, null]);
|
|
265
|
+
const agents = [...context.own.keys()].map((agentId) => [agentId, null]);
|
|
248
266
|
const views = sortPools(await describePools(ctx, agents, context));
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
networkVolumes(ctx, context.stack, context.epochs),
|
|
252
|
-
]);
|
|
267
|
+
await enrichYields(ctx, context, views);
|
|
268
|
+
const totalActiveStake = context.totalActiveStake;
|
|
253
269
|
const yourTotalPower = views.reduce((sum, pool) => sum + BigInt(pool.yourPower), 0n);
|
|
254
270
|
return toJson({
|
|
255
271
|
...base,
|
|
256
272
|
totalActiveStake: totalActiveStake.toString(),
|
|
257
273
|
totalPowerWeight: context.totalPowerWeight.toString(),
|
|
258
|
-
networkVolumes:
|
|
274
|
+
networkVolumes: [],
|
|
259
275
|
yourTotalPower: yourTotalPower.toString(),
|
|
260
276
|
yourNetworkShareBps: bps(yourTotalPower, context.totalPowerWeight),
|
|
277
|
+
yourPendingStake: totalPending(context.own).toString(),
|
|
261
278
|
source: 'chain',
|
|
262
279
|
sourceError,
|
|
280
|
+
displaySource: context.display.source,
|
|
263
281
|
pools: views,
|
|
264
282
|
});
|
|
265
283
|
}
|
|
@@ -268,13 +286,30 @@ export async function singlePool(ctx, agentId) {
|
|
|
268
286
|
const indexer = ctx.indexer();
|
|
269
287
|
if (indexer) {
|
|
270
288
|
try {
|
|
271
|
-
const [indexed, sellerEpochs
|
|
272
|
-
const ownHere = new Map([...own.entries()].filter(([id]) => id === agentId));
|
|
289
|
+
const [indexed, sellerEpochs] = await Promise.all([indexer.pools(), indexer.sellerEpochs(VOLUME_EPOCHS)]);
|
|
290
|
+
const ownHere = new Map([...context.own.entries()].filter(([id]) => id === agentId));
|
|
273
291
|
const explorer = { byAddress: context.explorer.byAddress, byAgent: new Map([...context.explorer.byAgent.entries()].filter(([id]) => id === agentId)) };
|
|
274
292
|
const merged = mergePools({ indexed: { ...indexed, pools: indexed.pools.filter((pool) => pool.agentId === agentId) }, explorer, sellerEpochs, epochs: context.epochs, own: ownHere });
|
|
275
293
|
const view = merged.find((pool) => pool.agentId === agentId);
|
|
276
|
-
if (view)
|
|
294
|
+
if (view) {
|
|
295
|
+
await verifyStakeability(ctx, [view]);
|
|
296
|
+
setVolumeStatus(view, indexed.currentEpoch, context.stack.currentEpoch);
|
|
297
|
+
await enrichYields(ctx, context, [view], indexed);
|
|
298
|
+
const detail = indexer.displaySnapshot ? await indexer.pool(agentId, HISTORY_EPOCHS).catch(() => null) : null;
|
|
299
|
+
if (detail) {
|
|
300
|
+
view.stakers = detail.stakers;
|
|
301
|
+
if (detail.openPositions != null)
|
|
302
|
+
view.openPositions = detail.openPositions;
|
|
303
|
+
if (detail.pendingStake != null)
|
|
304
|
+
view.pendingStake = detail.pendingStake;
|
|
305
|
+
if (detail.activeStake != null)
|
|
306
|
+
view.activeStake = detail.activeStake;
|
|
307
|
+
const indexedPool = indexed.pools.find((pool) => pool.agentId === agentId);
|
|
308
|
+
view.history = poolHistory(detail.epochs, context.stack.currentEpoch, indexedPool && indexed.currentEpoch === context.stack.currentEpoch
|
|
309
|
+
? { last: indexedPool.lastEmission, current: indexedPool.projectedEmission } : undefined);
|
|
310
|
+
}
|
|
277
311
|
return toJson({ ...view, currentEpoch: context.stack.currentEpoch });
|
|
312
|
+
}
|
|
278
313
|
}
|
|
279
314
|
catch (error) {
|
|
280
315
|
if (!(error instanceof IndexerError))
|
|
@@ -282,6 +317,130 @@ export async function singlePool(ctx, agentId) {
|
|
|
282
317
|
}
|
|
283
318
|
}
|
|
284
319
|
const [view] = await describePools(ctx, [[agentId, null]], context);
|
|
320
|
+
if (view)
|
|
321
|
+
await enrichYields(ctx, context, [view]);
|
|
285
322
|
return toJson({ ...view, currentEpoch: context.stack.currentEpoch });
|
|
286
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Oldest-first epoch rows up to the current epoch; the current epoch is a partial, unsettled point.
|
|
326
|
+
* The indexer only records an emission once a claim settles it, so the previous epoch falls back to
|
|
327
|
+
* the pool's running estimate and the current epoch to its projection until then.
|
|
328
|
+
*/
|
|
329
|
+
export function poolHistory(epochs, currentEpoch, estimates) {
|
|
330
|
+
return (epochs ?? [])
|
|
331
|
+
.filter((row) => row.epoch <= currentEpoch)
|
|
332
|
+
.sort((a, b) => a.epoch - b.epoch)
|
|
333
|
+
.map((row) => {
|
|
334
|
+
const settled = row.settled && row.epoch < currentEpoch;
|
|
335
|
+
let emission = row.settledEmission;
|
|
336
|
+
if (!settled && estimates && !/^[1-9]/.test(emission)) {
|
|
337
|
+
if (row.epoch === currentEpoch - 1)
|
|
338
|
+
emission = estimates.last;
|
|
339
|
+
else if (row.epoch === currentEpoch)
|
|
340
|
+
emission = estimates.current;
|
|
341
|
+
}
|
|
342
|
+
return { epoch: row.epoch, activeStake: row.activeStake, weight: row.weight, volumeUsdc: row.volumeUsdc, requests: row.requests, emission, settled };
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
function setVolumeStatus(view, indexedEpoch, currentEpoch) {
|
|
346
|
+
if (indexedEpoch !== currentEpoch) {
|
|
347
|
+
view.volumes = [];
|
|
348
|
+
view.volumeStatus = 'stale';
|
|
349
|
+
}
|
|
350
|
+
else
|
|
351
|
+
view.volumeStatus = view.volumes.length ? 'available' : 'unavailable';
|
|
352
|
+
}
|
|
353
|
+
async function verifyStakeability(ctx, views) {
|
|
354
|
+
const eligibility = await stakeEligibility(ctx, views.map(view => view.agentId));
|
|
355
|
+
for (const view of views)
|
|
356
|
+
view.stakeable = eligibility.get(view.agentId).stakeable;
|
|
357
|
+
}
|
|
358
|
+
/** Read historical principal and emission inputs together; failed reads remain unknown. */
|
|
359
|
+
async function enrichYields(ctx, context, views, indexed) {
|
|
360
|
+
if (ctx.indexer()?.displaySnapshot) {
|
|
361
|
+
await indexedYields(ctx, context, views);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const epoch = context.stack.currentEpoch - 1;
|
|
365
|
+
const batch = new Batch();
|
|
366
|
+
const minLock = batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'minStakeEpochs', []);
|
|
367
|
+
const maxLock = batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'MAX_STAKE_EPOCHS', []);
|
|
368
|
+
const budget = batch.add(ctx.chain.sellerPoolsRewardsAddress, REWARDS_IFACE, 'stakerEpochBudget', [Math.max(0, epoch)]);
|
|
369
|
+
const totalPoints = batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'totalWeightedPoolPointsByEpoch', [Math.max(0, epoch)]);
|
|
370
|
+
const historical = new Map(indexed?.currentEpoch === context.stack.currentEpoch
|
|
371
|
+
? indexed.pools.flatMap(p => p.historicalYield ? [[p.agentId, p.historicalYield]] : []) : []);
|
|
372
|
+
// The seller directory includes providers without a staking pool. Their yield is
|
|
373
|
+
// unavailable; querying historical contracts for each of them dominates cold loads.
|
|
374
|
+
const candidates = views.filter(view => view.hasPool || view.yourPositionIds.length > 0 || BigInt(historical.get(view.agentId)?.power ?? '0') > 0n);
|
|
375
|
+
const reads = candidates.map(view => ({
|
|
376
|
+
power: historical.has(view.agentId) ? () => [BigInt(historical.get(view.agentId).power)] : batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'poolWeightAtEpoch', [view.agentId, Math.max(0, epoch)]),
|
|
377
|
+
principal: batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'poolActiveStakeAtEpoch', [view.agentId, Math.max(0, epoch)]),
|
|
378
|
+
emission: historical.get(view.agentId)?.settled ? () => [true, BigInt(historical.get(view.agentId).reward)] : batch.add(ctx.chain.sellerPoolsRewardsAddress, REWARDS_IFACE, 'poolEpochEmissions', [Math.max(0, epoch), view.agentId]),
|
|
379
|
+
points: batch.add(ctx.chain.usageAccountingAddress, ACCOUNTING_IFACE, 'agentEpochUsage', [Math.max(0, epoch), view.agentId]),
|
|
380
|
+
}));
|
|
381
|
+
await batch.run(ctx);
|
|
382
|
+
candidates.forEach((view, i) => {
|
|
383
|
+
const read = reads[i];
|
|
384
|
+
const emission = read.emission(), principal = read.principal()?.[0];
|
|
385
|
+
let reward = emission?.[0] === true && typeof emission[1] === 'bigint' ? emission[1] : null;
|
|
386
|
+
const b = budget()?.[0], total = totalPoints()?.[0];
|
|
387
|
+
const points = read.points()?.[0]?.weightedPoints;
|
|
388
|
+
if (reward === null && emission?.[0] === false && typeof b === 'bigint' && typeof total === 'bigint' && typeof points === 'bigint')
|
|
389
|
+
reward = total > 0n ? b * points / total : 0n;
|
|
390
|
+
view.yield = poolYield(reward, typeof principal === 'bigint' ? principal : null, epoch, context.stack.epochDuration, context.stack.genesis, emission?.[0] === true);
|
|
391
|
+
view.yield.reward = reward?.toString() ?? null;
|
|
392
|
+
view.yield.power = read.power()?.[0]?.toString() ?? null;
|
|
393
|
+
view.yield.minLockEpochs = minLock()?.[0] == null ? null : Number(minLock()[0]);
|
|
394
|
+
view.yield.maxLockEpochs = maxLock()?.[0] == null ? null : Number(maxLock()[0]);
|
|
395
|
+
view.statsUpdatedAt = Date.now();
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
async function indexedYields(ctx, context, views) {
|
|
399
|
+
const snapshot = context.display.snapshot;
|
|
400
|
+
const epoch = context.stack.currentEpoch - 1;
|
|
401
|
+
const historical = new Map(snapshot?.pools.filter(row => row.epoch === epoch).map(row => [row.agentId, row]) ?? []);
|
|
402
|
+
const current = new Map(snapshot?.pools.filter(row => row.epoch === context.stack.currentEpoch).map(row => [row.agentId, row]) ?? []);
|
|
403
|
+
const network = snapshot?.epochs.find(row => row.epoch === epoch);
|
|
404
|
+
const batch = new Batch();
|
|
405
|
+
const minLock = batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'minStakeEpochs', []);
|
|
406
|
+
const maxLock = batch.add(ctx.chain.sellerPoolsAddress, POOLS_IFACE, 'MAX_STAKE_EPOCHS', []);
|
|
407
|
+
await batch.run(ctx);
|
|
408
|
+
for (const view of views) {
|
|
409
|
+
view.displaySource = context.display.source;
|
|
410
|
+
const now = current.get(view.agentId);
|
|
411
|
+
if (now) {
|
|
412
|
+
view.activeStake = now.activeStake;
|
|
413
|
+
view.weight = now.weight;
|
|
414
|
+
view.usagePoints = now.usagePoints;
|
|
415
|
+
view.weightedUsagePoints = now.weightedUsagePoints;
|
|
416
|
+
view.powerShareBps = bps(BigInt(now.weight), context.totalPowerWeight);
|
|
417
|
+
view.yourPoolShareBps = bps(BigInt(view.yourPower), BigInt(now.weight));
|
|
418
|
+
view.hasPool = view.hasPool || BigInt(now.weight) > 0n || BigInt(now.activeStake) > 0n;
|
|
419
|
+
const projected = context.totalWeightedPoolPoints > 0n
|
|
420
|
+
? context.stakerBudget * BigInt(now.weightedUsagePoints) / context.totalWeightedPoolPoints : 0n;
|
|
421
|
+
view.projectedRewardPer1kPower = per1k(projected, BigInt(now.weight));
|
|
422
|
+
}
|
|
423
|
+
else if (snapshot && view.hasPool) {
|
|
424
|
+
view.displaySource = { ...context.display.source, error: 'Current pool epoch is missing; current statistics may lag.' };
|
|
425
|
+
}
|
|
426
|
+
const row = historical.get(view.agentId);
|
|
427
|
+
if (!view.hasPool && view.yourPositionIds.length === 0 && !row)
|
|
428
|
+
continue;
|
|
429
|
+
const reward = row?.settled ? BigInt(row.settledEmission) : row && network
|
|
430
|
+
? BigInt(network.totalWeightedPoolPoints) > 0n ? BigInt(network.stakerBudget) * BigInt(row.weightedUsagePoints) / BigInt(network.totalWeightedPoolPoints) : 0n
|
|
431
|
+
: null;
|
|
432
|
+
view.yield = {
|
|
433
|
+
...poolYield(reward, row ? BigInt(row.activeStake) : null, epoch, context.stack.epochDuration, context.stack.genesis, row?.settled === true),
|
|
434
|
+
reward: reward?.toString() ?? null, power: row?.weight ?? null,
|
|
435
|
+
minLockEpochs: minLock()?.[0] == null ? null : Number(minLock()[0]), maxLockEpochs: maxLock()?.[0] == null ? null : Number(maxLock()[0]),
|
|
436
|
+
};
|
|
437
|
+
view.lastEpochEmission = reward?.toString() ?? null;
|
|
438
|
+
view.lastEpochEmissionSettled = row?.settled === true;
|
|
439
|
+
view.lastEpochRewardPer1kPower = reward !== null && row ? per1k(reward, BigInt(row.weight)) : null;
|
|
440
|
+
if (row)
|
|
441
|
+
view.lastEpochUsagePoints = row.usagePoints;
|
|
442
|
+
if (snapshot && now)
|
|
443
|
+
view.statsUpdatedAt = snapshot.indexedAt * 1000;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
287
446
|
//# sourceMappingURL=pools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../../src/service/pools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../../src/service/pools.ts"],"names":[],"mappings":"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"}
|