@oracle-agent/oracle 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +4 -4
  3. package/dist/action-receipts.mjs +1 -0
  4. package/dist/action-semantics.mjs +1 -0
  5. package/dist/address-book.mjs +2 -0
  6. package/dist/bin/desk-server.mjs +59 -0
  7. package/dist/bin/oracle-data-mcp.mjs +8 -0
  8. package/dist/bin/oracle-equities.mjs +20 -0
  9. package/dist/bin/oracle-init.mjs +24 -0
  10. package/dist/bin/oracle-public-server.mjs +5 -0
  11. package/dist/bin/oracle-route.mjs +22 -0
  12. package/dist/bin/oracle-scan.mjs +18 -0
  13. package/dist/bin/oracle-upgrade.mjs +21 -0
  14. package/dist/bin/oracle.mjs +61 -0
  15. package/dist/chains.mjs +1 -0
  16. package/dist/cli/commands/auth.mjs +16 -0
  17. package/dist/cli/commands/bootstrap.mjs +18 -0
  18. package/dist/cli/commands/chain.mjs +21 -0
  19. package/dist/cli/commands/chat.mjs +45 -0
  20. package/dist/cli/commands/credential.mjs +1 -0
  21. package/dist/cli/commands/data-mcp.mjs +2 -0
  22. package/dist/cli/commands/data.mjs +12 -0
  23. package/dist/cli/commands/doctor.mjs +5 -0
  24. package/dist/cli/commands/equities.mjs +15 -0
  25. package/dist/cli/commands/farm.mjs +59 -0
  26. package/dist/cli/commands/fees.mjs +10 -0
  27. package/dist/cli/commands/follow.mjs +28 -0
  28. package/dist/cli/commands/harness.mjs +15 -0
  29. package/dist/cli/commands/help.mjs +1 -0
  30. package/dist/cli/commands/init.mjs +3 -0
  31. package/dist/cli/commands/mcp.mjs +36 -0
  32. package/dist/cli/commands/model.mjs +54 -0
  33. package/dist/cli/commands/plugins.mjs +43 -0
  34. package/dist/cli/commands/prepare.mjs +2 -0
  35. package/dist/cli/commands/public.mjs +3 -0
  36. package/dist/cli/commands/resolve.mjs +23 -0
  37. package/dist/cli/commands/route.mjs +2 -0
  38. package/dist/cli/commands/runner.mjs +1 -0
  39. package/dist/cli/commands/scan.mjs +2 -0
  40. package/dist/cli/commands/setup.mjs +34 -0
  41. package/dist/cli/commands/sign.mjs +4 -0
  42. package/dist/cli/commands/signer.mjs +1 -0
  43. package/dist/cli/commands/swap.mjs +36 -0
  44. package/dist/cli/commands/upgrade.mjs +2 -0
  45. package/dist/cli/commands/vault.mjs +1 -0
  46. package/dist/cli/commands/version.mjs +2 -0
  47. package/dist/data/desk-data.mjs +55 -0
  48. package/dist/data/names.mjs +2 -0
  49. package/dist/data/providers/farming.mjs +2 -0
  50. package/dist/equities/index.mjs +1 -0
  51. package/dist/index.mjs +60 -0
  52. package/dist/nft-gas-war-guard.mjs +1 -0
  53. package/dist/onboarding/harness-configs.mjs +4 -0
  54. package/dist/portfolio-risk.mjs +1 -0
  55. package/dist/prepare-envelope.mjs +1 -0
  56. package/dist/public-api/agent-grants.mjs +3 -0
  57. package/dist/public-control/policy-schema.mjs +1 -0
  58. package/dist/router/index.mjs +2 -0
  59. package/dist/scanner/index.mjs +4 -0
  60. package/dist/signals/index.mjs +1 -0
  61. package/dist/watch-preferences.mjs +1 -0
  62. package/package.json +32 -78
  63. package/public/oracle-splash/_variants/ice.html +5 -18
  64. package/public/oracle-splash/_variants/ivory.html +5 -18
  65. package/public/oracle-splash/index.html +114 -34
  66. package/CONTRIBUTING.md +0 -99
  67. package/bin/desk-server.mjs +0 -473
  68. package/bin/oracle-data-mcp.mjs +0 -1252
  69. package/bin/oracle-equities.mjs +0 -168
  70. package/bin/oracle-init.mjs +0 -525
  71. package/bin/oracle-public-server.mjs +0 -36
  72. package/bin/oracle-route.mjs +0 -254
  73. package/bin/oracle-scan.mjs +0 -192
  74. package/bin/oracle-upgrade.mjs +0 -42
  75. package/bin/oracle.mjs +0 -34
  76. package/docs/adding-a-chain.md +0 -229
  77. package/docs/architecture.md +0 -139
  78. package/docs/buzz-integration.md +0 -115
  79. package/docs/cli.md +0 -143
  80. package/docs/connectors.md +0 -13
  81. package/docs/hyperliquid-builder-code.md +0 -50
  82. package/docs/locals-only-fee-waiver.md +0 -34
  83. package/docs/oracle-pack-standard.md +0 -29
  84. package/docs/profiles.md +0 -151
  85. package/docs/public-surface.md +0 -206
  86. package/examples/add-a-chain.mjs +0 -65
  87. package/examples/oracle-pack-template.mjs +0 -38
  88. package/examples/research-a-token.mjs +0 -70
  89. package/plugins/oracle-owner-gate/__init__.py +0 -288
  90. package/plugins/oracle-owner-gate/plugin.yaml +0 -9
  91. package/protocols/templates/safe-erc20/SECURITY.md +0 -16
  92. package/protocols/templates/safe-erc20/foundry.toml +0 -12
  93. package/protocols/templates/safe-erc20/remappings.txt +0 -2
  94. package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
  95. package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
  96. package/scripts/adversarial-bench.mjs +0 -114
  97. package/scripts/build-dist.mjs +0 -119
  98. package/scripts/build-inscription.py +0 -230
  99. package/scripts/check-doc-drift.mjs +0 -123
  100. package/scripts/check-test-count.mjs +0 -105
  101. package/scripts/e2e-hl-markets.mjs +0 -21
  102. package/scripts/e2e-hl-perps.mjs +0 -48
  103. package/scripts/e2e-hypercore-staking.mjs +0 -128
  104. package/scripts/e2e-solana-bitcoin.mjs +0 -183
  105. package/scripts/guard-publish.mjs +0 -22
  106. package/scripts/protocol-template-gate.mjs +0 -15
  107. package/scripts/public-api-scan.mjs +0 -23
  108. package/scripts/publish-dist.mjs +0 -67
  109. package/scripts/record-hero-cli.sh +0 -80
  110. package/scripts/secret-scan.mjs +0 -168
  111. package/scripts/smoke-dist-bins.mjs +0 -89
  112. package/scripts/verify-dist.mjs +0 -29
  113. package/scripts/verify-v3-venues.mjs +0 -233
  114. package/skins/oracle.yaml +0 -56
  115. package/src/action-receipts.mjs +0 -265
  116. package/src/action-semantics.mjs +0 -62
  117. package/src/address-book.mjs +0 -208
  118. package/src/agent-auth.mjs +0 -206
  119. package/src/approval-guard.mjs +0 -282
  120. package/src/attestation-secret.mjs +0 -94
  121. package/src/audit-log.mjs +0 -196
  122. package/src/auth/oauth.mjs +0 -672
  123. package/src/auto-slippage.mjs +0 -378
  124. package/src/capability-posture.mjs +0 -125
  125. package/src/cards.mjs +0 -422
  126. package/src/chains.mjs +0 -62
  127. package/src/cli/chain-catalog.mjs +0 -215
  128. package/src/cli/chain-state.mjs +0 -74
  129. package/src/cli/commands/auth.mjs +0 -193
  130. package/src/cli/commands/bootstrap.mjs +0 -87
  131. package/src/cli/commands/chain.mjs +0 -143
  132. package/src/cli/commands/chat.mjs +0 -465
  133. package/src/cli/commands/credential.mjs +0 -9
  134. package/src/cli/commands/data-mcp.mjs +0 -18
  135. package/src/cli/commands/data.mjs +0 -75
  136. package/src/cli/commands/doctor.mjs +0 -136
  137. package/src/cli/commands/equities.mjs +0 -41
  138. package/src/cli/commands/farm.mjs +0 -129
  139. package/src/cli/commands/fees.mjs +0 -109
  140. package/src/cli/commands/follow.mjs +0 -130
  141. package/src/cli/commands/harness.mjs +0 -63
  142. package/src/cli/commands/help.mjs +0 -7
  143. package/src/cli/commands/init.mjs +0 -27
  144. package/src/cli/commands/mcp.mjs +0 -154
  145. package/src/cli/commands/model.mjs +0 -106
  146. package/src/cli/commands/plugins.mjs +0 -241
  147. package/src/cli/commands/prepare.mjs +0 -12
  148. package/src/cli/commands/public.mjs +0 -20
  149. package/src/cli/commands/resolve.mjs +0 -64
  150. package/src/cli/commands/route.mjs +0 -12
  151. package/src/cli/commands/runner.mjs +0 -9
  152. package/src/cli/commands/scan.mjs +0 -12
  153. package/src/cli/commands/setup.mjs +0 -294
  154. package/src/cli/commands/sign.mjs +0 -21
  155. package/src/cli/commands/signer.mjs +0 -9
  156. package/src/cli/commands/swap.mjs +0 -102
  157. package/src/cli/commands/upgrade.mjs +0 -12
  158. package/src/cli/commands/vault.mjs +0 -9
  159. package/src/cli/commands/version.mjs +0 -22
  160. package/src/cli/first-run.mjs +0 -23
  161. package/src/cli/kernel.mjs +0 -262
  162. package/src/cli/mcp-targets/chatgpt.mjs +0 -51
  163. package/src/cli/mcp-targets/claude-code.mjs +0 -39
  164. package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
  165. package/src/cli/mcp-targets/codex.mjs +0 -41
  166. package/src/cli/mcp-targets/cursor.mjs +0 -32
  167. package/src/cli/mcp-targets/shared.mjs +0 -71
  168. package/src/cli/mcp-targets/vscode.mjs +0 -39
  169. package/src/cli/messaging-platforms.mjs +0 -217
  170. package/src/cli/model-config.mjs +0 -78
  171. package/src/cli/operator-dispatch.mjs +0 -257
  172. package/src/cli/oracle-harness.py +0 -415
  173. package/src/cli/paths.mjs +0 -107
  174. package/src/cli/runtime.mjs +0 -351
  175. package/src/cli/setup-state.mjs +0 -168
  176. package/src/cli/spawn-child.mjs +0 -43
  177. package/src/data/catalog.mjs +0 -858
  178. package/src/data/desk-data.mjs +0 -877
  179. package/src/data/http.mjs +0 -253
  180. package/src/data/names.mjs +0 -188
  181. package/src/data/provider-endpoint.mjs +0 -94
  182. package/src/data/providers/aave-v3.mjs +0 -139
  183. package/src/data/providers/across-bridge.mjs +0 -41
  184. package/src/data/providers/aerodrome.mjs +0 -245
  185. package/src/data/providers/aevo.mjs +0 -33
  186. package/src/data/providers/approval-indexer.mjs +0 -133
  187. package/src/data/providers/approvals.mjs +0 -594
  188. package/src/data/providers/babylon-staking.mjs +0 -149
  189. package/src/data/providers/balancer.mjs +0 -209
  190. package/src/data/providers/beefy-yields.mjs +0 -45
  191. package/src/data/providers/birdeye-tokens.mjs +0 -33
  192. package/src/data/providers/bisq-markets.mjs +0 -145
  193. package/src/data/providers/bitcoin-esplora.mjs +0 -216
  194. package/src/data/providers/bitcoin-meta.mjs +0 -378
  195. package/src/data/providers/blockscout.mjs +0 -14
  196. package/src/data/providers/bob-rootstock.mjs +0 -198
  197. package/src/data/providers/braiins-insights.mjs +0 -103
  198. package/src/data/providers/bridge-aggregator.mjs +0 -259
  199. package/src/data/providers/bridges.mjs +0 -242
  200. package/src/data/providers/bungee.mjs +0 -29
  201. package/src/data/providers/celestia-da.mjs +0 -38
  202. package/src/data/providers/changenow.mjs +0 -135
  203. package/src/data/providers/compound.mjs +0 -32
  204. package/src/data/providers/connext.mjs +0 -28
  205. package/src/data/providers/convex.mjs +0 -30
  206. package/src/data/providers/cow-protocol.mjs +0 -110
  207. package/src/data/providers/cowswap.mjs +0 -415
  208. package/src/data/providers/curve.mjs +0 -201
  209. package/src/data/providers/das-assets.mjs +0 -59
  210. package/src/data/providers/debridge.mjs +0 -109
  211. package/src/data/providers/defillama.mjs +0 -88
  212. package/src/data/providers/dexscreener.mjs +0 -43
  213. package/src/data/providers/drift.mjs +0 -32
  214. package/src/data/providers/dydx.mjs +0 -41
  215. package/src/data/providers/evm-rpc.mjs +0 -225
  216. package/src/data/providers/farming.mjs +0 -291
  217. package/src/data/providers/geckoterminal.mjs +0 -34
  218. package/src/data/providers/gmx.mjs +0 -496
  219. package/src/data/providers/hiro-stacks.mjs +0 -150
  220. package/src/data/providers/hl-assets.mjs +0 -165
  221. package/src/data/providers/hl-info.mjs +0 -108
  222. package/src/data/providers/hl-markets.mjs +0 -210
  223. package/src/data/providers/hl-outcome.mjs +0 -61
  224. package/src/data/providers/hl-perps.mjs +0 -419
  225. package/src/data/providers/hl-staking.mjs +0 -353
  226. package/src/data/providers/hl-ws.mjs +0 -119
  227. package/src/data/providers/hyperevm-dex.mjs +0 -49
  228. package/src/data/providers/jito-mev.mjs +0 -117
  229. package/src/data/providers/jupiter-venues.mjs +0 -119
  230. package/src/data/providers/jupiter.mjs +0 -315
  231. package/src/data/providers/kamino-strategies.mjs +0 -143
  232. package/src/data/providers/l2beat-tvl.mjs +0 -42
  233. package/src/data/providers/lifi.mjs +0 -166
  234. package/src/data/providers/liquid-esplora.mjs +0 -152
  235. package/src/data/providers/magiceden-ordinals.mjs +0 -141
  236. package/src/data/providers/magiceden-sol.mjs +0 -406
  237. package/src/data/providers/mempool-lightning.mjs +0 -144
  238. package/src/data/providers/mempool-mining.mjs +0 -142
  239. package/src/data/providers/meteora-dlmm.mjs +0 -168
  240. package/src/data/providers/morpho.mjs +0 -177
  241. package/src/data/providers/nft-gallery.mjs +0 -163
  242. package/src/data/providers/nft-portfolio.mjs +0 -494
  243. package/src/data/providers/odos.mjs +0 -156
  244. package/src/data/providers/ondo.mjs +0 -31
  245. package/src/data/providers/oneinch.mjs +0 -174
  246. package/src/data/providers/opensea-multichain.mjs +0 -136
  247. package/src/data/providers/opensea-nft.mjs +0 -371
  248. package/src/data/providers/orca.mjs +0 -29
  249. package/src/data/providers/ordinals-runes.mjs +0 -180
  250. package/src/data/providers/pancakeswap.mjs +0 -28
  251. package/src/data/providers/paraswap.mjs +0 -125
  252. package/src/data/providers/pendle.mjs +0 -188
  253. package/src/data/providers/poly-clob.mjs +0 -283
  254. package/src/data/providers/poly-public.mjs +0 -96
  255. package/src/data/providers/poly-ws.mjs +0 -103
  256. package/src/data/providers/polygon-staking.mjs +0 -227
  257. package/src/data/providers/portfolio-history.mjs +0 -394
  258. package/src/data/providers/portfolio.mjs +0 -600
  259. package/src/data/providers/pyth-price-feeds.mjs +0 -172
  260. package/src/data/providers/raydium.mjs +0 -35
  261. package/src/data/providers/relayscan-mev.mjs +0 -72
  262. package/src/data/providers/rfq.mjs +0 -15
  263. package/src/data/providers/rh-agent.mjs +0 -59
  264. package/src/data/providers/sanctum-lst.mjs +0 -180
  265. package/src/data/providers/satflow.mjs +0 -341
  266. package/src/data/providers/signed-material-guard.mjs +0 -108
  267. package/src/data/providers/solana-rpc.mjs +0 -197
  268. package/src/data/providers/solend-lending.mjs +0 -166
  269. package/src/data/providers/spark-lend.mjs +0 -42
  270. package/src/data/providers/squid-router.mjs +0 -29
  271. package/src/data/providers/stargate.mjs +0 -29
  272. package/src/data/providers/sushiswap.mjs +0 -30
  273. package/src/data/providers/symbiotic-restaking.mjs +0 -41
  274. package/src/data/providers/thorchain.mjs +0 -36
  275. package/src/data/providers/traderjoe.mjs +0 -28
  276. package/src/data/providers/twap.mjs +0 -152
  277. package/src/data/providers/uniswap-v3.mjs +0 -457
  278. package/src/data/providers/uniswap-v4.mjs +0 -414
  279. package/src/data/providers/vertex.mjs +0 -41
  280. package/src/data/providers/wallet-watch.mjs +0 -264
  281. package/src/data/providers/wormhole.mjs +0 -28
  282. package/src/data/providers/yearn.mjs +0 -31
  283. package/src/data/providers/zerox.mjs +0 -167
  284. package/src/data/public-api-scan.mjs +0 -61
  285. package/src/data/quote-placeholder.mjs +0 -31
  286. package/src/desk/swap-prepare.mjs +0 -194
  287. package/src/equities/bridge.mjs +0 -388
  288. package/src/equities/fixtures/bridge_routes.json +0 -159
  289. package/src/equities/fixtures/dst_transitions.json +0 -29
  290. package/src/equities/fixtures/equity_dex_pools.json +0 -154
  291. package/src/equities/fixtures/hip3_l2books.json +0 -2711
  292. package/src/equities/fixtures/nyse_holidays.json +0 -1
  293. package/src/equities/fixtures/oracles.json +0 -100
  294. package/src/equities/fixtures/rh_pool_state.json +0 -244
  295. package/src/equities/fixtures/solana_xstocks.json +0 -704
  296. package/src/equities/fixtures/ton_xstocks.json +0 -35
  297. package/src/equities/fixtures/universe.json +0 -411
  298. package/src/equities/fixtures/venues.json +0 -3542
  299. package/src/equities/fixtures.mjs +0 -405
  300. package/src/equities/funding.mjs +0 -142
  301. package/src/equities/index.mjs +0 -166
  302. package/src/equities/liveness.mjs +0 -148
  303. package/src/equities/marketHours.mjs +0 -249
  304. package/src/equities/normalize.mjs +0 -295
  305. package/src/equities/num.mjs +0 -146
  306. package/src/equities/prepare.mjs +0 -95
  307. package/src/equities/rank.mjs +0 -260
  308. package/src/equities/sourceNum.mjs +0 -69
  309. package/src/equities/types.mjs +0 -220
  310. package/src/equities/venues/arcus-perp.mjs +0 -84
  311. package/src/equities/venues/arcus-spot.mjs +0 -105
  312. package/src/equities/venues/hyperliquid-hip3.mjs +0 -224
  313. package/src/equities/venues/rh-uniswap.mjs +0 -216
  314. package/src/equities/venues/solana-xstocks.mjs +0 -139
  315. package/src/equities/venues/ton-stonfi.mjs +0 -139
  316. package/src/exact-integer.mjs +0 -72
  317. package/src/exec-policy.mjs +0 -419
  318. package/src/flags.mjs +0 -15
  319. package/src/fresh-window.mjs +0 -76
  320. package/src/gmx-attestation.mjs +0 -176
  321. package/src/index.mjs +0 -107
  322. package/src/licensing/locals-only.mjs +0 -25
  323. package/src/nft-gas-war-guard.mjs +0 -139
  324. package/src/onboarding/agent-keys.mjs +0 -161
  325. package/src/onboarding/harness-configs.mjs +0 -102
  326. package/src/onboarding/index.mjs +0 -18
  327. package/src/onboarding/tiers.mjs +0 -139
  328. package/src/oracle-env.mjs +0 -55
  329. package/src/package-manifest.mjs +0 -42
  330. package/src/plugins/agent-plugin-loader.mjs +0 -225
  331. package/src/portfolio-risk.mjs +0 -170
  332. package/src/prepare-envelope.mjs +0 -204
  333. package/src/profile-upgrade.mjs +0 -277
  334. package/src/protocol-execution.mjs +0 -84
  335. package/src/protocol-templates/gate.mjs +0 -179
  336. package/src/protocol-templates/prepare-deploy.mjs +0 -81
  337. package/src/public-api/agent-grants.mjs +0 -57
  338. package/src/public-api/buzz-integration.mjs +0 -267
  339. package/src/public-api/connect-agent.mjs +0 -424
  340. package/src/public-api/grants.mjs +0 -142
  341. package/src/public-api/http.mjs +0 -707
  342. package/src/public-api/metering.mjs +0 -111
  343. package/src/public-control/aa-adapter.mjs +0 -402
  344. package/src/public-control/build-registry.mjs +0 -227
  345. package/src/public-control/bundler-client.mjs +0 -357
  346. package/src/public-control/grant-indexer.mjs +0 -296
  347. package/src/public-control/policy-render.mjs +0 -69
  348. package/src/public-control/policy-schema.mjs +0 -322
  349. package/src/public-control/runtime-config.mjs +0 -275
  350. package/src/public-control/session-key-model.mjs +0 -379
  351. package/src/public-control/session-orchestrator.mjs +0 -418
  352. package/src/rfq/intent.mjs +0 -180
  353. package/src/rfq/sources.mjs +0 -181
  354. package/src/route-attestation.mjs +0 -132
  355. package/src/router/best-execution.mjs +0 -326
  356. package/src/router/index.mjs +0 -250
  357. package/src/router/integrator-fee.mjs +0 -135
  358. package/src/router/prepare-bridge.mjs +0 -293
  359. package/src/router/prepare-route.mjs +0 -398
  360. package/src/router/proposal.mjs +0 -311
  361. package/src/router/risk-classifier.mjs +0 -119
  362. package/src/router/route-sources.mjs +0 -364
  363. package/src/scanner/chains.config.mjs +0 -543
  364. package/src/scanner/contract.mjs +0 -270
  365. package/src/scanner/evm-scanner.mjs +0 -394
  366. package/src/scanner/index.mjs +0 -9
  367. package/src/scanner/v2-venue.mjs +0 -351
  368. package/src/scanner/v3-venue.mjs +0 -308
  369. package/src/scopes.mjs +0 -44
  370. package/src/sell-simulation.mjs +0 -167
  371. package/src/signals/engine.mjs +0 -146
  372. package/src/signals/index.mjs +0 -1
  373. package/src/token-transfer-guard.mjs +0 -188
  374. package/src/tui/app.mjs +0 -438
  375. package/src/tui/backend.mjs +0 -215
  376. package/src/tui/format.mjs +0 -272
  377. package/src/tui/gateway-client.mjs +0 -177
  378. package/src/tui/input.mjs +0 -501
  379. package/src/tui/memory.mjs +0 -105
  380. package/src/tui/meta-learn.mjs +0 -85
  381. package/src/tui/renderer.mjs +0 -443
  382. package/src/tui/scheduler.mjs +0 -205
  383. package/src/tui/skills-loader.mjs +0 -140
  384. package/src/tui/standalone-client.mjs +0 -752
  385. package/src/tui/theme.mjs +0 -81
  386. package/src/vault-attestation.mjs +0 -146
  387. package/src/venues.mjs +0 -206
  388. package/src/watch-preferences.mjs +0 -85
  389. /package/{profiles → dist/assets/profiles}/_template/SOUL.md +0 -0
  390. /package/{profiles → dist/assets/profiles}/_template/profile.json +0 -0
  391. /package/{profiles → dist/assets/profiles}/bitcoin-agent/SOUL.md +0 -0
  392. /package/{profiles → dist/assets/profiles}/bitcoin-agent/profile.json +0 -0
  393. /package/{profiles → dist/assets/profiles}/hyperliquid-agent/SOUL.md +0 -0
  394. /package/{profiles → dist/assets/profiles}/hyperliquid-agent/profile.json +0 -0
  395. /package/{profiles → dist/assets/profiles}/oracle/SOUL.md +0 -0
  396. /package/{profiles → dist/assets/profiles}/oracle/profile.json +0 -0
  397. /package/{profiles → dist/assets/profiles}/polymarket-agent/SOUL.md +0 -0
  398. /package/{profiles → dist/assets/profiles}/polymarket-agent/profile.json +0 -0
  399. /package/{profiles → dist/assets/profiles}/profile.schema.json +0 -0
  400. /package/{profiles → dist/assets/profiles}/protocol-builder/SOUL.md +0 -0
  401. /package/{profiles → dist/assets/profiles}/protocol-builder/profile.json +0 -0
  402. /package/{profiles → dist/assets/profiles}/robinhood-agent/SOUL.md +0 -0
  403. /package/{profiles → dist/assets/profiles}/robinhood-agent/profile.json +0 -0
  404. /package/{profiles → dist/assets/profiles}/solana-agent/SOUL.md +0 -0
  405. /package/{profiles → dist/assets/profiles}/solana-agent/profile.json +0 -0
  406. /package/{profiles → dist/assets/profiles}/stable-agent/SOUL.md +0 -0
  407. /package/{profiles → dist/assets/profiles}/stable-agent/profile.json +0 -0
  408. /package/{skills → dist/assets/skills}/balance/SKILL.md +0 -0
  409. /package/{skills → dist/assets/skills}/bitcoin-l1.md +0 -0
  410. /package/{skills → dist/assets/skills}/chain-defi-ecosystem-profiling.md +0 -0
  411. /package/{skills → dist/assets/skills}/evm-contract-research.md +0 -0
  412. /package/{skills → dist/assets/skills}/hyperliquid.md +0 -0
  413. /package/{skills → dist/assets/skills}/multichain-exec-desk.md +0 -0
  414. /package/{skills → dist/assets/skills}/oracle-action-semantics/SKILL.md +0 -0
  415. /package/{skills → dist/assets/skills}/oracle-best-execution/SKILL.md +0 -0
  416. /package/{skills → dist/assets/skills}/oracle-best-execution.md +0 -0
  417. /package/{skills → dist/assets/skills}/oracle-bitcoin/SKILL.md +0 -0
  418. /package/{skills → dist/assets/skills}/oracle-chain-graphs-telegram-cards/SKILL.md +0 -0
  419. /package/{skills → dist/assets/skills}/oracle-chat/SKILL.md +0 -0
  420. /package/{skills → dist/assets/skills}/oracle-chat/chain.SKILL.md +0 -0
  421. /package/{skills → dist/assets/skills}/oracle-chat/setup.SKILL.md +0 -0
  422. /package/{skills → dist/assets/skills}/oracle-circuit-breaker/SKILL.md +0 -0
  423. /package/{skills → dist/assets/skills}/oracle-contract-research/SKILL.md +0 -0
  424. /package/{skills → dist/assets/skills}/oracle-desk/SKILL.md +0 -0
  425. /package/{skills → dist/assets/skills}/oracle-desk.md +0 -0
  426. /package/{skills → dist/assets/skills}/oracle-dex-launch/SKILL.md +0 -0
  427. /package/{skills → dist/assets/skills}/oracle-equities/SKILL.md +0 -0
  428. /package/{skills → dist/assets/skills}/oracle-grants/SKILL.md +0 -0
  429. /package/{skills → dist/assets/skills}/oracle-hypercore-staking/SKILL.md +0 -0
  430. /package/{skills → dist/assets/skills}/oracle-hyperliquid/SKILL.md +0 -0
  431. /package/{skills → dist/assets/skills}/oracle-meme-token-sniper/SKILL.md +0 -0
  432. /package/{skills → dist/assets/skills}/oracle-multichain-nft-launch/SKILL.md +0 -0
  433. /package/{skills → dist/assets/skills}/oracle-multichain-token-launch/SKILL.md +0 -0
  434. /package/{skills → dist/assets/skills}/oracle-nft-gacha-launch/SKILL.md +0 -0
  435. /package/{skills → dist/assets/skills}/oracle-nft-mint-gas-war/SKILL.md +0 -0
  436. /package/{skills → dist/assets/skills}/oracle-polymarket/SKILL.md +0 -0
  437. /package/{skills → dist/assets/skills}/oracle-protocol-builder/SKILL.md +0 -0
  438. /package/{skills → dist/assets/skills}/oracle-protocol-security/SKILL.md +0 -0
  439. /package/{skills → dist/assets/skills}/oracle-public-product/SKILL.md +0 -0
  440. /package/{skills → dist/assets/skills}/oracle-receipts/SKILL.md +0 -0
  441. /package/{skills → dist/assets/skills}/oracle-receipts.md +0 -0
  442. /package/{skills → dist/assets/skills}/oracle-rfq-tokenized-assets/SKILL.md +0 -0
  443. /package/{skills → dist/assets/skills}/oracle-smart-wallet-scanner/SKILL.md +0 -0
  444. /package/{skills → dist/assets/skills}/oracle-solana/SKILL.md +0 -0
  445. /package/{skills → dist/assets/skills}/oracle-solana-nft/SKILL.md +0 -0
  446. /package/{skills → dist/assets/skills}/oracle-token-research/SKILL.md +0 -0
  447. /package/{skills → dist/assets/skills}/solana.md +0 -0
@@ -1,877 +0,0 @@
1
- // desk.data — unified read-only facade. Never touches wallet keys.
2
-
3
- import { listProviders, getProvider } from "./catalog.mjs";
4
- import { timed, mapLimit } from "./http.mjs";
5
- import * as hl from "./providers/hl-info.mjs";
6
- import * as poly from "./providers/poly-public.mjs";
7
- import * as rh from "./providers/rh-agent.mjs";
8
- import * as rpc from "./providers/evm-rpc.mjs";
9
- import * as solana from "./providers/solana-rpc.mjs";
10
- import * as bitcoin from "./providers/bitcoin-esplora.mjs";
11
- import * as bitcoinMeta from "./providers/bitcoin-meta.mjs";
12
- import * as satflow from "./providers/satflow.mjs";
13
- import * as jupiter from "./providers/jupiter.mjs";
14
- import * as llama from "./providers/defillama.mjs";
15
- import * as lifi from "./providers/lifi.mjs";
16
- import * as dxs from "./providers/dexscreener.mjs";
17
- import * as uni from "./providers/uniswap-v3.mjs";
18
- import * as univ4 from "./providers/uniswap-v4.mjs";
19
- import * as aerodrome from "./providers/aerodrome.mjs";
20
- import * as zerox from "./providers/zerox.mjs";
21
- import * as bridges from "./providers/bridges.mjs";
22
- import * as cow from "./providers/cowswap.mjs";
23
- import * as oneinch from "./providers/oneinch.mjs";
24
- import * as hlws from "./providers/hl-ws.mjs";
25
- import * as polyws from "./providers/poly-ws.mjs";
26
- import * as osnft from "./providers/opensea-nft.mjs";
27
- import * as hevm from "./providers/hyperevm-dex.mjs";
28
- import * as mesol from "./providers/magiceden-sol.mjs";
29
- import * as hlstake from "./providers/hl-staking.mjs";
30
- import * as hlmarkets from "./providers/hl-markets.mjs";
31
- import * as hloutcome from "./providers/hl-outcome.mjs";
32
- import * as polyclob from "./providers/poly-clob.mjs";
33
- import * as protoTpl from "../protocol-templates/prepare-deploy.mjs";
34
- import { listProtocolTemplates, runProtocolTemplateGate } from "../protocol-templates/gate.mjs";
35
- import * as hlperps from "./providers/hl-perps.mjs";
36
- import * as gecko from "./providers/geckoterminal.mjs";
37
- import * as curve from "./providers/curve.mjs";
38
- import * as gmx from "./providers/gmx.mjs";
39
- import * as morpho from "./providers/morpho.mjs";
40
- import * as balancer from "./providers/balancer.mjs";
41
- import * as pendle from "./providers/pendle.mjs";
42
- import * as odos from "./providers/odos.mjs";
43
- import * as blockscout from "./providers/blockscout.mjs";
44
- import * as portfolio from "./providers/portfolio.mjs";
45
- import * as portfolioHistory from "./providers/portfolio-history.mjs";
46
- import * as nftPortfolio from "./providers/nft-portfolio.mjs";
47
- import * as paraswap from "./providers/paraswap.mjs";
48
- import * as rfq from "./providers/rfq.mjs";
49
- import * as acrossBridge from "./providers/across-bridge.mjs";
50
- import * as beefyYields from "./providers/beefy-yields.mjs";
51
- import * as birdeye from "./providers/birdeye-tokens.mjs";
52
- import * as celestia from "./providers/celestia-da.mjs";
53
- import * as dasAssets from "./providers/das-assets.mjs";
54
- import * as l2beat from "./providers/l2beat-tvl.mjs";
55
- import * as sparkLend from "./providers/spark-lend.mjs";
56
- import * as symbiotic from "./providers/symbiotic-restaking.mjs";
57
- import * as polygonStaking from "./providers/polygon-staking.mjs";
58
- import * as aaveV3 from "./providers/aave-v3.mjs";
59
- import * as babylon from "./providers/babylon-staking.mjs";
60
- import * as bisq from "./providers/bisq-markets.mjs";
61
- import * as bobRootstock from "./providers/bob-rootstock.mjs";
62
- import * as braiins from "./providers/braiins-insights.mjs";
63
- import * as cowProtocol from "./providers/cow-protocol.mjs";
64
- import * as hiroStacks from "./providers/hiro-stacks.mjs";
65
- import * as jito from "./providers/jito-mev.mjs";
66
- import * as kamino from "./providers/kamino-strategies.mjs";
67
- import * as liquid from "./providers/liquid-esplora.mjs";
68
- import * as magicEdenOrd from "./providers/magiceden-ordinals.mjs";
69
- import * as mempoolLightning from "./providers/mempool-lightning.mjs";
70
- import * as mempoolMining from "./providers/mempool-mining.mjs";
71
- import * as meteora from "./providers/meteora-dlmm.mjs";
72
- import * as ordinalsRunes from "./providers/ordinals-runes.mjs";
73
- import * as pyth from "./providers/pyth-price-feeds.mjs";
74
- import * as relayscan from "./providers/relayscan-mev.mjs";
75
- import * as sanctum from "./providers/sanctum-lst.mjs";
76
- import * as solend from "./providers/solend-lending.mjs";
77
-
78
- const OPS = {
79
- "hl-info": {
80
- health: (o) => hl.hlHealth(o),
81
- allMids: (o) => hl.hlAllMids(o),
82
- l2Book: (o, a = {}) => hl.hlL2Book(a.coin, o),
83
- outcomeMeta: (o) => hl.hlOutcomeMeta(o),
84
- clearinghouse: (o, a = {}) => hl.hlClearinghouse(a.user, o),
85
- userFills: (o, a = {}) => hl.hlUserFills(a.user, o),
86
- meta: (o) => hl.hlMeta(o),
87
- metaAndAssetCtxs: (o) => hl.hlMetaAndAssetCtxs(o),
88
- candleSnapshot: (o, a = {}) => hl.hlCandleSnapshot(a, o),
89
- openOrders: (o, a = {}) => hl.hlOpenOrders(a.user, o),
90
- frontendOpenOrders: (o, a = {}) => hl.hlFrontendOpenOrders(a.user, o),
91
- userState: (o, a = {}) => hl.hlUserState(a.user, o),
92
- spotMeta: (o) => hl.hlSpotMeta(o),
93
- },
94
- "poly-public": {
95
- health: (o) => poly.polyHealth(o),
96
- time: (o) => poly.polyTime(o),
97
- markets: (o, a = {}) => poly.polyMarkets(a, o),
98
- book: (o, a = {}) => poly.polyBook(a.tokenId, o),
99
- midpoint: (o, a = {}) => poly.polyMidpoint(a.tokenId, o),
100
- spread: (o, a = {}) => poly.polySpread(a.tokenId, o),
101
- price: (o, a = {}) => poly.polyPrice(a.tokenId, { side: a.side }, o),
102
- events: (o, a = {}) => poly.polyEvents(a, o),
103
- },
104
- "rh-agent": {
105
- health: (o) => rh.rhHealth(o),
106
- policy: (o) => rh.rhPolicy(o),
107
- chainConfig: (o) => rh.rhChainConfig(o),
108
- chainGas: (o) => rh.rhChainGas(o),
109
- swapsConfig: (o) => rh.rhSwapsConfig(o),
110
- swapsPresets: (o) => rh.rhSwapsPresets(o),
111
- tradingStatus: (o) => rh.rhTradingStatus(o),
112
- nftDrops: (o) => rh.rhNftDrops(o),
113
- feeEstimate: (o) => rh.rhFeeEstimate(o),
114
- },
115
- "evm-rpc": {
116
- health: (o, a = {}) => rpc.rpcHealth(a.chainId ?? 1, o),
117
- healthAll: (o, a = {}) => rpc.rpcHealthAll({ ...o, chainIds: a.chainIds }),
118
- blockNumber: (o, a = {}) => rpc.rpcBlockNumber(a.chainId ?? 1, o),
119
- chainId: (o, a = {}) => rpc.rpcChainId(a.chainId ?? 1, o),
120
- getBalance: (o, a = {}) => rpc.rpcGetBalance(a.chainId ?? 1, a.address, o),
121
- call: (o, a = {}) => rpc.rpcCall(a.chainId ?? 1, a.method, a.params || [], o),
122
- erc20Allowance: (o, a = {}) => rpc.erc20Allowance(a, o),
123
- erc20Balance: (o, a = {}) => rpc.erc20BalanceOf(a, o),
124
- transactionReceipt: (o, a = {}) => rpc.transactionReceipt(a, o),
125
- },
126
- portfolio: {
127
- health: (o) => portfolio.portfolioHealth(o),
128
- balances: (o, a = {}) => portfolio.portfolioBalance(a, o),
129
- snapshot: (o, a = {}) => portfolioHistory.portfolioSnapshot(a, o),
130
- history: (o, a = {}) => portfolioHistory.portfolioHistory(a, o),
131
- valueGraph: (o, a = {}) => portfolioHistory.portfolioValueGraph(a, o),
132
- },
133
- "nft-portfolio": {
134
- health: (o) => nftPortfolio.nftHealth(o),
135
- inventory: (o, a = {}) => nftPortfolio.nftInventory(a, o),
136
- gallery: (o, a = {}) => nftPortfolio.nftPortfolioGallery(a, o),
137
- pnl: (o, a = {}) => nftPortfolio.nftPnl(a, o),
138
- prepareList: (o, a = {}) => nftPortfolio.nftPrepareList(a, o),
139
- },
140
- "solana-rpc": {
141
- health: (o) => solana.solanaHealth(o),
142
- latestBlockhash: (o, a = {}) => solana.solanaLatestBlockhash(a, o),
143
- getBalance: (o, a = {}) => solana.solanaGetBalance(a, o),
144
- tokenAccounts: (o, a = {}) => solana.solanaTokenAccounts(a, o),
145
- simulate: (o, a = {}) => solana.solanaSimulateTransaction(a, o),
146
- },
147
- "bitcoin-esplora": {
148
- health: (o) => bitcoin.btcHealth(o),
149
- tipHeight: (o) => bitcoin.btcTipHeight(o),
150
- fees: (o) => bitcoin.btcFees(o),
151
- address: (o, a = {}) => bitcoin.btcAddressInfo(a, o),
152
- utxos: (o, a = {}) => bitcoin.btcUtxos(a, o),
153
- tx: (o, a = {}) => bitcoin.btcTx(a, o),
154
- decode: (o, a = {}) => bitcoin.btcDecodeTxHex(a, o),
155
- },
156
- "bitcoin-meta": {
157
- health: (o) => bitcoinMeta.btcMetaHealth(o),
158
- runeBalances: (o, a = {}) => bitcoinMeta.btcRuneBalances(a, o),
159
- inscriptions: (o, a = {}) => bitcoinMeta.btcInscriptions(a, o),
160
- inscriptionInfo: (o, a = {}) => bitcoinMeta.btcInscriptionInfo(a, o),
161
- inscriptionChildren: (o, a = {}) => bitcoinMeta.btcInscriptionChildren(a, o),
162
- ordBlockInfo: (o, a = {}) => bitcoinMeta.btcOrdBlockInfo(a, o),
163
- },
164
- satflow: {
165
- health: (o) => satflow.satflowHealth(o),
166
- collectionFloors: (o, a = {}) => satflow.satflowCollectionFloors(a, o),
167
- collectionStats: (o, a = {}) => satflow.satflowCollectionStats(a, o),
168
- item: (o, a = {}) => satflow.satflowItem(a, o),
169
- walletContents: (o, a = {}) => satflow.satflowWalletContents(a, o),
170
- floorListings: (o, a = {}) => satflow.satflowFloorListings(a, o),
171
- preparePurchase: (o, a = {}) => satflow.satflowPreparePurchase(a, o),
172
- prepareList: (o, a = {}) => satflow.satflowPrepareList(a, o),
173
- },
174
- jupiter: {
175
- health: (o) => jupiter.jupiterHealth(o),
176
- venues: (o, a = {}) => jupiter.jupiterVenues(a, o),
177
- quote: (o, a = {}) => jupiter.jupiterQuote(a, o),
178
- prepare: (o, a = {}) => jupiter.jupiterPrepareSwap(a, o),
179
- },
180
- defillama: {
181
- health: (o) => llama.llamaHealth(o),
182
- prices: (o, a = {}) => llama.llamaPrices(a.coins || [], o),
183
- pricesBySymbol: (o, a = {}) => llama.llamaPricesBySymbol(a.symbols, o),
184
- protocols: (o) => llama.llamaProtocols(o),
185
- yields: (o, a = {}) => llama.llamaYields(a, o),
186
- stablecoins: (o, a = {}) => llama.llamaStablecoins(a, o),
187
- dexVolumes: (o, a = {}) => llama.llamaDexVolumes(a, o),
188
- },
189
- lifi: {
190
- health: (o) => lifi.lifiHealth(o),
191
- quote: (o, a = {}) => lifi.lifiQuote(a, o),
192
- prepare: (o, a = {}) => lifi.lifiPrepare(a, o),
193
- chains: (o) => lifi.lifiChains(o),
194
- },
195
- dexscreener: {
196
- health: (o) => dxs.dexscreenerHealth(o),
197
- token: (o, a = {}) => dxs.dexscreenerToken(a.address || a.tokenAddress, o),
198
- search: (o, a = {}) => dxs.dexscreenerSearch(a.q || a.query, o),
199
- pair: (o, a = {}) => dxs.dexscreenerPair(a.chainId, a.pairAddress, o),
200
- },
201
- "uniswap-v3": {
202
- health: (o, a = {}) => uni.uniV3Health({ ...o, chainId: a.chainId ?? 8453 }),
203
- quote: (o, a = {}) => uni.uniV3QuoteExactIn(a, o),
204
- prepare: (o, a = {}) => uni.uniV3PrepareExactIn(a, o),
205
- quotePath: (o, a = {}) => uni.uniV3QuoteExactInPath(a, o),
206
- ethUsdc: (o, a = {}) => uni.uniV3EthUsdc(a, o),
207
- chains: () => uni.uniV3Chains(),
208
- },
209
- "uniswap-v4": {
210
- health: (o, a = {}) => univ4.uniV4Health({ ...o, chainId: a.chainId ?? 8453 }),
211
- quote: (o, a = {}) => univ4.uniV4QuoteExactIn(a, o),
212
- chains: () => univ4.uniV4Chains(),
213
- },
214
- aerodrome: {
215
- health: (o, a = {}) => aerodrome.aerodromeHealth({ ...o, chainId: a.chainId ?? 8453 }),
216
- quote: (o, a = {}) => aerodrome.aerodromeQuoteExactIn(a, o),
217
- prepare: (o, a = {}) => aerodrome.aerodromePrepareExactIn(a, o),
218
- chains: () => aerodrome.aerodromeChains(),
219
- },
220
- zerox: {
221
- health: (o) => zerox.zeroxHealth(o),
222
- price: (o, a = {}) => zerox.zeroxPrice(a, o),
223
- quote: (o, a = {}) => zerox.zeroxQuote(a, o),
224
- prepare: (o, a = {}) => zerox.zeroxPrepare(a, o),
225
- },
226
- across: {
227
- health: (o) => bridges.acrossHealth(o),
228
- suggestedFees: (o, a = {}) => bridges.acrossSuggestedFees(a, o),
229
- },
230
- hop: {
231
- health: (o) => bridges.hopHealth(o),
232
- quote: (o, a = {}) => bridges.hopQuote(a, o),
233
- },
234
- relay: {
235
- health: (o) => bridges.relayHealth(o),
236
- quote: (o, a = {}) => bridges.relayQuote(a, o),
237
- prepare: (o, a = {}) => bridges.relayPrepare(a, o),
238
- },
239
- cowswap: {
240
- health: (o) => cow.cowHealth(o),
241
- quote: (o, a = {}) => cow.cowQuote(a, o),
242
- prepareOrder: (o, a = {}) => cow.cowPrepareOrder(a, o),
243
- order: (o, a = {}) => cow.cowOrder(a, o),
244
- status: (o, a = {}) => cow.cowOrderStatus(a, o),
245
- chains: () => cow.cowChains(),
246
- },
247
- oneinch: {
248
- health: (o) => oneinch.oneinchHealth(o),
249
- quote: (o, a = {}) => oneinch.oneinchQuote(a, o),
250
- prepare: (o, a = {}) => oneinch.oneinchPrepare(a, o),
251
- approveSpender: (o, a = {}) => oneinch.oneinchApproveSpender(a, o),
252
- },
253
- "hl-ws": {
254
- health: (o) => hlws.hlWsHealth(o),
255
- allMids: (o) => hlws.hlWsAllMids(o),
256
- l2Book: (o, a = {}) => hlws.hlWsL2Book(a.coin, o),
257
- snapshot: (o, a = {}) => hlws.hlWsSnapshot(a.subscription || a, o),
258
- },
259
- "poly-ws": {
260
- health: (o, a = {}) => polyws.polyWsHealth({ ...o, assetId: a.assetId }),
261
- book: (o, a = {}) => polyws.polyWsBook(a.assetId || a.tokenId, o),
262
- snapshot: (o, a = {}) =>
263
- polyws.polyWsSnapshot(a.assetIds || a.assets_ids || [a.assetId], o),
264
- },
265
- "opensea-nft": {
266
- health: (o) => osnft.openseaHealth(o),
267
- collection: (o, a = {}) => osnft.openseaCollection(a.slug, o),
268
- floor: (o, a = {}) => osnft.openseaFloor(a.slug, o),
269
- accountNfts: (o, a = {}) => osnft.openseaAccountNfts(a, o),
270
- accountPnl: (o, a = {}) => osnft.openseaAccountPnl(a, o),
271
- prepareList: (o, a = {}) => osnft.openseaPrepareList(a, o),
272
- },
273
-
274
- "hl-outcome": {
275
- list: (o) => hloutcome.hlOutcomeList(o),
276
- prepareOrder: (o, a = {}) => hloutcome.hlPrepareOutcomeOrder(a, o),
277
- prepareCancel: (o, a = {}) => hloutcome.hlPrepareOutcomeCancel(a, o),
278
- },
279
- "protocol-templates": {
280
- health: () => ({ ok: true, templates: listProtocolTemplates().map((t) => t.id), firmAudit: false }),
281
- list: () => listProtocolTemplates(),
282
- gate: (o, a = {}) => runProtocolTemplateGate(a.templateId || a.id, o),
283
- prepareDeploy: (o, a = {}) => protoTpl.prepareTemplateDeploy(a, o),
284
- },
285
- "poly-clob": {
286
- prepareOrder: (o, a = {}) => {
287
- // prepare is sync; wrap for dataCall
288
- return polyclob.polyPrepareOrder(a || {});
289
- },
290
- },
291
- "hl-perps": {
292
- health: (o) => hlmarkets.hlMarketsHealth(o),
293
- assetInfo: (o, a = {}) => hlperps.hlPerpAssetInfo(a, o),
294
- prepareOrder: (o, a = {}) => hlperps.hlPreparePerpOrder(a, o),
295
- prepareCancel: (o, a = {}) => hlperps.hlPrepareCancelOrder(a, o),
296
- prepareLeverage: (o, a = {}) => hlperps.hlPrepareUpdateLeverage(a, o),
297
- prepareIsolatedMargin: (o, a = {}) => hlperps.hlPrepareUpdateIsolatedMargin(a, o),
298
- prepareBracket: (o, a = {}) => hlperps.hlPrepareBracketOrder(a, o),
299
- },
300
- "hl-markets": {
301
- health: (o) => hlmarkets.hlMarketsHealth(o),
302
- markets: (o, a = {}) => hlmarkets.hlMarketDatapoints(a, o),
303
- leaderboards: (o, a = {}) => hlmarkets.hlLeaderboards(a, o),
304
- coin: (o, a = {}) => hlmarkets.hlCoinDatapoints(a, o),
305
- spot: (o, a = {}) => hlmarkets.hlSpotDatapoints(a, o),
306
- },
307
- "magiceden-sol": {
308
- health: (o) => mesol.magicEdenSolHealth(o),
309
- stats: (o, a = {}) => mesol.magicEdenSolStats(a, o),
310
- listings: (o, a = {}) => mesol.magicEdenSolListings(a, o),
311
- tokenListings: (o, a = {}) => mesol.magicEdenSolTokenListing(a, o),
312
- prepareBuy: (o, a = {}) => mesol.magicEdenSolPrepareBuy(a, o),
313
- prepareList: (o, a = {}) => mesol.magicEdenSolPrepareList(a, o),
314
- prepareMint: (o, a = {}) => mesol.magicEdenSolPrepareMint(a, o),
315
- },
316
- "hl-staking": {
317
- health: (o) => hlstake.hlStakingHealth(o),
318
- validators: (o) => hlstake.hlValidatorSummaries(o),
319
- delegatorSummary: (o, a = {}) => hlstake.hlDelegatorSummary(a, o),
320
- delegations: (o, a = {}) => hlstake.hlDelegations(a, o),
321
- rewards: (o, a = {}) => hlstake.hlDelegatorRewards(a, o),
322
- history: (o, a = {}) => hlstake.hlDelegatorHistory(a, o),
323
- preflight: (o, a = {}) => hlstake.hlStakingPreflight(a, o),
324
- prepareStakeDeposit: (o, a = {}) => hlstake.hlPrepareStakeDeposit(a, o),
325
- prepareStakeWithdraw: (o, a = {}) => hlstake.hlPrepareStakeWithdraw(a, o),
326
- prepareDelegate: (o, a = {}) => hlstake.hlPrepareDelegate(a, o),
327
- },
328
- "hyperevm-dex": {
329
- health: (o) => hevm.hyperevmHealth(o),
330
- search: (o, a = {}) => hevm.hyperevmSearch(a.q || a.query || "HYPE", o),
331
- token: (o, a = {}) => hevm.hyperevmToken(a.address || a.tokenAddress, o),
332
- },
333
- geckoterminal: {
334
- health: (o) => gecko.geckoHealth(o),
335
- networks: (o, a = {}) => gecko.geckoNetworks(a, o),
336
- pool: (o, a = {}) => gecko.geckoPool(a, o),
337
- token: (o, a = {}) => gecko.geckoToken(a, o),
338
- ohlcv: (o, a = {}) => gecko.geckoPoolOhlcv(a, o),
339
- },
340
- curve: {
341
- health: (o) => curve.curveHealth(o),
342
- openapi: (o) => curve.curveOpenApi(o),
343
- pools: (o, a = {}) => curve.curvePools(a, o),
344
- quote: (o, a = {}) => curve.curveQuote(a, o),
345
- prepare: (o, a = {}) => curve.curvePrepare(a, o),
346
- },
347
- gmx: {
348
- health: (o) => gmx.gmxHealth(o),
349
- tickers: (o, a = {}) => gmx.gmxTickers(a, o),
350
- markets: (o, a = {}) => gmx.gmxMarkets(a, o),
351
- marketsInfo: (o, a = {}) => gmx.gmxMarketsInfo(a, o),
352
- tokens: (o, a = {}) => gmx.gmxTokens(a, o),
353
- prepareOrder: (o, a = {}) => gmx.gmxPrepareOrder(a, o),
354
- positions: (o, a = {}) => gmx.gmxPositions(a, o),
355
- orderStatus: (o, a = {}) => gmx.gmxOrderStatus(a, o),
356
- verifyOrder: (o, a = {}) => gmx.gmxVerifyOrderReceipt(a, o),
357
- },
358
- morpho: {
359
- health: (o) => morpho.morphoHealth(o),
360
- markets: (o, a = {}) => morpho.morphoMarkets(a, o),
361
- vaults: (o, a = {}) => morpho.morphoVaults(a, o),
362
- prepareVault: (o, a = {}) => morpho.morphoPrepareVault(a, o),
363
- },
364
- balancer: {
365
- health: (o) => balancer.balancerHealth(o),
366
- pools: (o, a = {}) => balancer.balancerPools(a, o),
367
- quote: (o, a = {}) => balancer.balancerQuote(a, o),
368
- prepare: (o, a = {}) => balancer.balancerPrepare(a, o),
369
- },
370
- pendle: {
371
- health: (o) => pendle.pendleHealth(o),
372
- markets: (o, a = {}) => pendle.pendleMarkets(a, o),
373
- quote: (o, a = {}) => pendle.pendleQuote(a, o),
374
- prepare: (o, a = {}) => pendle.pendlePrepare(a, o),
375
- },
376
- odos: {
377
- health: (o) => odos.odosHealth(o),
378
- chains: (o) => odos.odosChains(o),
379
- quote: (o, a = {}) => odos.odosQuote(a, o),
380
- prepare: (o, a = {}) => odos.odosPrepare(a, o),
381
- },
382
- blockscout: {
383
- health: (o) => blockscout.blockscoutHealth(o),
384
- stats: (o, a = {}) => blockscout.blockscoutStats(a, o),
385
- address: (o, a = {}) => blockscout.blockscoutAddress(a, o),
386
- token: (o, a = {}) => blockscout.blockscoutToken(a, o),
387
- },
388
- paraswap: {
389
- health: (o) => paraswap.paraswapHealth(o),
390
- tokens: (o, a = {}) => paraswap.paraswapTokens(a, o),
391
- price: (o, a = {}) => paraswap.paraswapPrice(a, o),
392
- quote: (o, a = {}) => paraswap.paraswapPrice(a, o),
393
- prepare: (o, a = {}) => paraswap.paraswapPrepare(a, o),
394
- },
395
- rfq: {
396
- health: (o) => rfq.rfqHealth(o),
397
- intent: (o, a = {}) => rfq.rfqIntent(a, o),
398
- quote: (o, a = {}) => rfq.rfqQuote(a, o),
399
- },
400
- "polygon-staking": {
401
- health: (o) => polygonStaking.health(o),
402
- validators: (o, a = {}) => polygonStaking.validators(a, o),
403
- validatorDetail: (o, a = {}) => polygonStaking.validatorDetail(a, o),
404
- },
405
- "aave-v3": {
406
- health: (o) => aaveV3.aaveHealth(o),
407
- markets: (o, a = {}) => aaveV3.aaveMarkets(a, o),
408
- marketReserves: (o, a = {}) => aaveV3.aaveMarketReserves(a, o),
409
- chains: (o) => aaveV3.aaveChains(o),
410
- },
411
- "babylon-staking": {
412
- health: (o) => babylon.babylonHealth(o),
413
- stats: (o) => babylon.babylonStats(o),
414
- finalityProviders: (o) => babylon.babylonFinalityProviders(o),
415
- delegations: (o, a = {}) => babylon.babylonDelegations(a, o),
416
- },
417
- "bisq-markets": {
418
- health: (o) => bisq.bisqHealth(o),
419
- markets: (o) => bisq.bisqMarkets(o),
420
- ticker: (o, a = {}) => bisq.bisqTicker(a, o),
421
- trades: (o, a = {}) => bisq.bisqTrades(a, o),
422
- },
423
- "bob-rootstock": {
424
- health: (o, a = {}) => bobRootstock.btcL2Health(a.chainId, o),
425
- stats: (o, a = {}) => bobRootstock.btcL2Stats(a, o),
426
- addressInfo: (o, a = {}) => bobRootstock.btcL2AddressInfo(a, o),
427
- tokenBalances: (o, a = {}) => bobRootstock.btcL2TokenBalances(a, o),
428
- },
429
- "braiins-insights": {
430
- health: (o) => braiins.braiinsHealth(o),
431
- priceStats: (o) => braiins.braiinsPriceStats(o),
432
- poolStats: (o) => braiins.braiinsPoolStats(o),
433
- },
434
- "cow-protocol": {
435
- health: (o) => cowProtocol.cowProtocolHealth(o),
436
- auction: (o) => cowProtocol.cowAuction(o),
437
- openOrders: (o, a = {}) => cowProtocol.cowOpenOrders(a, o),
438
- recentTrades: (o, a = {}) => cowProtocol.cowRecentTrades(a, o),
439
- },
440
- "hiro-stacks": {
441
- health: (o) => hiroStacks.stacksHealth(o),
442
- networkInfo: (o) => hiroStacks.stacksNetworkInfo(o),
443
- stackingInfo: (o) => hiroStacks.stacksStackingInfo(o),
444
- poxCycles: (o) => hiroStacks.stacksPoxCycles(o),
445
- blocks: (o, a = {}) => hiroStacks.stacksBlocks(a, o),
446
- },
447
- "jito-mev": {
448
- health: (o) => jito.jitoHealth(o),
449
- recentBundles: (o, a = {}) => jito.jitoRecentBundles(a, o),
450
- tipFloor: (o) => jito.jitoTipFloor(o),
451
- },
452
- "kamino-strategies": {
453
- health: (o) => kamino.kaminoHealth(o),
454
- strategies: (o, a = {}) => kamino.kaminoStrategies(a, o),
455
- strategyMetrics: (o, a = {}) => kamino.kaminoStrategyMetrics(a, o),
456
- },
457
- "liquid-esplora": {
458
- health: (o) => liquid.liquidHealth(o),
459
- tipHeight: (o) => liquid.liquidTipHeight(o),
460
- addressInfo: (o, a = {}) => liquid.liquidAddressInfo(a, o),
461
- assetInfo: (o, a = {}) => liquid.liquidAssetInfo(a, o),
462
- },
463
- "magiceden-ordinals": {
464
- health: (o) => magicEdenOrd.magicEdenOrdHealth(o),
465
- collectionStat: (o, a = {}) => magicEdenOrd.magicEdenOrdCollectionStat(a, o),
466
- },
467
- "mempool-lightning": {
468
- health: (o) => mempoolLightning.lightningHealth(o),
469
- statistics: (o) => mempoolLightning.lightningStatistics(o),
470
- nodeRankings: (o, a = {}) => mempoolLightning.lightningNodeRankings(a, o),
471
- nodeCountries: (o) => mempoolLightning.lightningNodeCountries(o),
472
- },
473
- "mempool-mining": {
474
- health: (o) => mempoolMining.miningHealth(o),
475
- difficulty: (o) => mempoolMining.miningDifficulty(o),
476
- poolShare: (o, a = {}) => mempoolMining.miningPoolShare(a, o),
477
- hashrate: (o, a = {}) => mempoolMining.miningHashrate(a, o),
478
- rewardStats: (o, a = {}) => mempoolMining.miningRewardStats(a, o),
479
- },
480
- "meteora-dlmm": {
481
- health: (o) => meteora.meteoraHealth(o),
482
- pools: (o, a = {}) => meteora.meteoraPools(a, o),
483
- poolSearch: (o, a = {}) => meteora.meteoraPoolSearch(a, o),
484
- },
485
- "ordinals-runes": {
486
- health: (o) => ordinalsRunes.ordHealth(o),
487
- blockHeight: (o) => ordinalsRunes.ordBlockHeight(o),
488
- blockInfo: (o, a = {}) => ordinalsRunes.ordBlockInfo(a, o),
489
- satInfo: (o, a = {}) => ordinalsRunes.ordSatInfo(a, o),
490
- runeInfo: (o, a = {}) => ordinalsRunes.ordRuneInfo(a, o),
491
- },
492
- "pyth-price-feeds": {
493
- health: (o) => pyth.pythHealth(o),
494
- latestPrice: (o, a = {}) => pyth.pythLatestPrice(a, o),
495
- latestPrices: (o, a = {}) => pyth.pythLatestPrices(a, o),
496
- feedDirectory: (o) => pyth.pythFeedDirectory(o),
497
- },
498
- "relayscan-mev": {
499
- health: (o) => relayscan.relayscanHealth(o),
500
- overview: (o, a = {}) => relayscan.relayscanOverview(a, o),
501
- builderProfit: (o, a = {}) => relayscan.relayscanBuilderProfit(a, o),
502
- dailyStats: (o, a = {}) => relayscan.relayscanDailyStats(a, o),
503
- },
504
- "sanctum-lst": {
505
- health: (o) => sanctum.sanctumHealth(o),
506
- lstList: (o) => sanctum.sanctumLstList(o),
507
- apyAll: (o) => sanctum.sanctumApyAll(o),
508
- apyIndividual: (o, a = {}) => sanctum.sanctumApyIndividual(a, o),
509
- },
510
- "solend-lending": {
511
- health: (o) => solend.solendHealth(o),
512
- markets: (o) => solend.solendMarkets(o),
513
- reserves: (o, a = {}) => solend.solendReserves(a, o),
514
- },
515
- "across-bridge": {
516
- health: (o) => acrossBridge.acrossHealth(o),
517
- pools: (o, a = {}) => acrossBridge.acrossPools(a, o),
518
- suggestedFees: (o, a = {}) => acrossBridge.acrossSuggestedFees(a, o),
519
- },
520
- "beefy-yields": {
521
- health: (o) => beefyYields.beefyHealth(o),
522
- apy: (o, a = {}) => beefyYields.beefyApy(a, o),
523
- apyBreakdown: (o) => beefyYields.beefyApyBreakdown(o),
524
- },
525
- "birdeye-tokens": {
526
- health: (o) => birdeye.birdeyeHealth(o),
527
- tokenList: (o, a = {}) => birdeye.birdeyeTokenList(a, o),
528
- },
529
- "celestia-da": {
530
- health: (o) => celestia.celestiaHealth(o),
531
- stats: (o) => celestia.celestiaStats(o),
532
- blockStats: (o, a = {}) => celestia.celestiaBlockStats(a, o),
533
- },
534
- "das-assets": {
535
- health: (o) => dasAssets.dasHealth(o),
536
- assetsByOwner: (o, a = {}) => dasAssets.dasAssetsByOwner(a, o),
537
- searchAssets: (o, a = {}) => dasAssets.dasSearchAssets(a, o),
538
- assetProof: (o, a = {}) => dasAssets.dasAssetProof(a, o),
539
- },
540
- "l2beat-tvl": {
541
- health: (o) => l2beat.l2beatHealth(o),
542
- tvl: (o, a = {}) => l2beat.l2beatTvl(a, o),
543
- activity: (o, a = {}) => l2beat.l2beatActivity(a, o),
544
- },
545
- "spark-lend": {
546
- health: (o) => sparkLend.sparkHealth(o),
547
- markets: (o, a = {}) => sparkLend.sparkMarkets(a, o),
548
- },
549
- "symbiotic-restaking": {
550
- health: (o) => symbiotic.symbioticHealth(o),
551
- vaults: (o, a = {}) => symbiotic.symbioticVaults(a, o),
552
- vaultDetail: (o, a = {}) => symbiotic.symbioticVaultDetail(a, o),
553
- },
554
- };
555
-
556
- /**
557
- * Ops that create state at a third-party venue or produce a signable
558
- * authorization. They are NOT reads, and naming them `prepare*` does not make
559
- * them harmless — a prepared purchase intent is a real object at a real
560
- * marketplace, and a prepared EIP-712 action is one signature from settlement.
561
- */
562
- const STATE_CREATING_OPS = new Set([
563
- "prepareBracket",
564
- "prepareIsolatedMargin",
565
- "prepareLeverage",
566
- "prepareCancel",
567
- "prepareOrder",
568
- "preparePurchase",
569
- "prepareList",
570
- "prepareSell",
571
- "prepareBuy",
572
- "prepareMint",
573
- "prepare",
574
- "prepareStakeDeposit",
575
- "prepareStakeWithdraw",
576
- "prepareDelegate",
577
- "prepareSwap",
578
- "prepareTransfer",
579
- "createOrder",
580
- "cancelOrder",
581
- ]);
582
-
583
- /**
584
- * Is this op allowed on the read/prepare data plane?
585
- *
586
- * The previous implementation was a NAME regex, which is not a boundary: it
587
- * blocked `sendFoo` but allowed `txBroadcast`, `doSend`, `rawSign`,
588
- * `orderSubmit` and `forceExecute`, while blocking nothing that actually
589
- * mattered because every money-moving op here is named `prepare*`. The real
590
- * control is the catalog: a provider may only be asked for an op it declares.
591
- */
592
- /**
593
- * Providers that SIGN and SUBMIT. These are not data-plane providers: the
594
- * read-only server must refuse them at the provider level, because a name-based
595
- * verb filter is not a boundary (`op:"trade"` matches no exec-sounding word).
596
- */
597
- export const EXECUTION_PROVIDERS = new Set(["hl-exec"]);
598
-
599
- /** True when the provider signs/submits and must never be served read-only. */
600
- export function isExecutionProvider(providerId) {
601
- return EXECUTION_PROVIDERS.has(String(providerId || ""));
602
- }
603
-
604
- export function assertDataOpAllowed(providerId, op, args = {}) {
605
- const name = String(op || "");
606
- const key = `${providerId}.${name}`;
607
-
608
- if (EXECUTION_PROVIDERS.has(providerId)) {
609
- throw new Error(`data plane forbidden execution provider: ${providerId}`);
610
- }
611
-
612
- // 1. The op must be declared by the provider. This is the actual boundary —
613
- // an undeclared op cannot be reached regardless of what it is called.
614
- // Checked SECOND so that a write-shaped name gets the "forbidden" error
615
- // rather than "not declared": callers (and tests) distinguish the two.
616
- const declared = listProviders().find((p) => p.id === providerId);
617
-
618
- // 2. Reject anything that reads as a settlement verb. Substring matching, so
619
- // txBroadcast / doSend / orderSubmit / forceExecute cannot slip past word
620
- // boundaries the way they did under the old anchored regex.
621
- if (/sign|execute|broadcast|submit|send|write|place/i.test(name) && !STATE_CREATING_OPS.has(name)) {
622
- throw new Error(`data plane forbidden op: ${key}`);
623
- }
624
-
625
- if (declared && Array.isArray(declared.ops) && declared.ops.length > 0) {
626
- if (!declared.ops.includes(name)) {
627
- throw new Error(`data plane: provider ${providerId} does not support op ${name}`);
628
- }
629
- }
630
-
631
- // 3. State-creating prepares are permitted on the data plane (that is its
632
- // job) but must be visible as such to callers auditing behaviour.
633
- if (STATE_CREATING_OPS.has(name) && args && typeof args === "object") {
634
- Object.defineProperty(args, "__oracleStateCreating", { value: true, enumerable: false, configurable: true });
635
- }
636
-
637
- if (providerId === "evm-rpc" && name === "call") {
638
- const method = String(args?.method || "").trim();
639
- const allowed = new Set([
640
- "eth_call",
641
- "eth_getBalance",
642
- "eth_blockNumber",
643
- "eth_chainId",
644
- "eth_getCode",
645
- "eth_getLogs",
646
- "eth_getTransactionByHash",
647
- "eth_getTransactionReceipt",
648
- "eth_getBlockByNumber",
649
- "eth_getBlockByHash",
650
- "eth_feeHistory",
651
- "eth_gasPrice",
652
- "eth_maxPriorityFeePerGas",
653
- "net_version",
654
- "web3_clientVersion",
655
- ]);
656
- if (!allowed.has(method)) {
657
- throw new Error(`data plane allows only read-only JSON-RPC methods through evm-rpc.call: ${method || "<missing>"}`);
658
- }
659
- }
660
- }
661
-
662
- export async function dataCall(providerId, op, args = {}, opts = {}) {
663
- // dataCall is the READ plane, and it is what the package root exports. An
664
- // execution provider reached through here signs with a real key and submits
665
- // to a venue — with no grant check, no policy, no cap and no user-intent
666
- // proof. Blocking it only in the HTTP server left every package consumer and
667
- // agent wrapper calling root dataCall wide open.
668
- //
669
- if (isExecutionProvider(providerId)) {
670
- throw new Error(
671
- `${providerId} is an execution provider: it signs and submits with a real key. ` +
672
- "dataCall() is the public read plane and will not route to it."
673
- );
674
- }
675
- assertDataOpAllowed(providerId, op, args);
676
- const meta = getProvider(providerId);
677
- if (!meta) throw new Error(`Unknown data provider: ${providerId}`);
678
- if (!meta.ops.includes(op)) {
679
- throw new Error(`Provider ${providerId} does not support op '${op}' (has: ${meta.ops.join(", ")})`);
680
- }
681
- const table = OPS[providerId];
682
- if (!table || typeof table[op] !== "function") {
683
- throw new Error(`No client implementation for ${providerId}.${op}`);
684
- }
685
- return table[op](opts, args);
686
- }
687
-
688
- export async function dataHealth({ providers, fetchImpl, timeoutMs, includeRpc, includeWs, concurrency } = {}) {
689
- let ids = providers || listProviders().map((p) => p.id);
690
- // healthAll on evm-rpc is slow; default health uses ethereum only via "health"
691
- if (!includeRpc && !providers) {
692
- // keep evm-rpc but its health is chain 1 only — fine
693
- }
694
- // WS health opens sockets — opt-in unless explicit provider list
695
- if (!includeWs && !providers) {
696
- ids = ids.filter((id) => id !== "hl-ws" && id !== "poly-ws");
697
- }
698
- const opts = { fetchImpl, timeoutMs: timeoutMs ?? 8_000 };
699
- const out = {};
700
- // Bounded fan-out: an unbounded Promise.all across every provider trips public
701
- // rate limits (and makes one slow venue look like a global outage).
702
- await mapLimit(ids, concurrency ?? 8, async (id) => {
703
- if (!getProvider(id)) {
704
- out[id] = { ok: false, ms: 0, error: "unknown provider" };
705
- return;
706
- }
707
- const args = id === "evm-rpc" ? { chainId: 1 } : {};
708
- const result = await timed(() => dataCall(id, "health", args, opts));
709
- out[id] = result.ok
710
- ? { ok: true, ms: result.ms, detail: result.data }
711
- : { ok: false, ms: result.ms, error: result.error };
712
- });
713
- return { when: new Date().toISOString(), plane: "data", exec: false, providers: out };
714
- }
715
-
716
- export function dataCatalog() {
717
- return listProviders().map((p) => ({
718
- id: p.id,
719
- venue: p.venue,
720
- chainIds: p.chainIds,
721
- auth: p.auth,
722
- ops: p.ops,
723
- execution: p.execution || "read-only",
724
- description: p.description,
725
- }));
726
- }
727
-
728
- export const data = {
729
- catalog: dataCatalog,
730
- health: dataHealth,
731
- call: dataCall,
732
- hl: {
733
- health: (o) => dataCall("hl-info", "health", {}, o),
734
- allMids: (o) => dataCall("hl-info", "allMids", {}, o),
735
- l2Book: (coin, o) => dataCall("hl-info", "l2Book", { coin }, o),
736
- outcomeMeta: (o) => dataCall("hl-info", "outcomeMeta", {}, o),
737
- clearinghouse: (user, o) => dataCall("hl-info", "clearinghouse", { user }, o),
738
- userFills: (user, o) => dataCall("hl-info", "userFills", { user }, o),
739
- meta: (o) => dataCall("hl-info", "meta", {}, o),
740
- metaAndAssetCtxs: (o) => dataCall("hl-info", "metaAndAssetCtxs", {}, o),
741
- candleSnapshot: (a, o) => dataCall("hl-info", "candleSnapshot", a || {}, o),
742
- openOrders: (user, o) => dataCall("hl-info", "openOrders", { user }, o),
743
- userState: (user, o) => dataCall("hl-info", "userState", { user }, o),
744
- spotMeta: (o) => dataCall("hl-info", "spotMeta", {}, o),
745
- staking: {
746
- health: (o) => dataCall("hl-staking", "health", {}, o),
747
- validators: (o) => dataCall("hl-staking", "validators", {}, o),
748
- summary: (user, o) => dataCall("hl-staking", "delegatorSummary", { user }, o),
749
- delegations: (user, o) => dataCall("hl-staking", "delegations", { user }, o),
750
- rewards: (user, o) => dataCall("hl-staking", "rewards", { user }, o),
751
- history: (user, o) => dataCall("hl-staking", "history", { user }, o),
752
- preflight: (user, o) => dataCall("hl-staking", "preflight", { user }, o),
753
- prepareStake: (a, o) => dataCall("hl-staking", "prepareStakeDeposit", a || {}, o),
754
- prepareUnstake: (a, o) => dataCall("hl-staking", "prepareStakeWithdraw", a || {}, o),
755
- prepareDelegate: (a, o) => dataCall("hl-staking", "prepareDelegate", a || {}, o),
756
- },
757
- },
758
- poly: {
759
- health: (o) => dataCall("poly-public", "health", {}, o),
760
- time: (o) => dataCall("poly-public", "time", {}, o),
761
- markets: (a, o) => dataCall("poly-public", "markets", a || {}, o),
762
- book: (tokenId, o) => dataCall("poly-public", "book", { tokenId }, o),
763
- midpoint: (tokenId, o) => dataCall("poly-public", "midpoint", { tokenId }, o),
764
- spread: (tokenId, o) => dataCall("poly-public", "spread", { tokenId }, o),
765
- price: (tokenId, side, o) => dataCall("poly-public", "price", { tokenId, side }, o),
766
- events: (a, o) => dataCall("poly-public", "events", a || {}, o),
767
- },
768
- polyClob: {
769
- prepareOrder: (a, o) => dataCall("poly-clob", "prepareOrder", a || {}, o),
770
- },
771
- rh: {
772
- health: (o) => dataCall("rh-agent", "health", {}, o),
773
- policy: (o) => dataCall("rh-agent", "policy", {}, o),
774
- chainConfig: (o) => dataCall("rh-agent", "chainConfig", {}, o),
775
- chainGas: (o) => dataCall("rh-agent", "chainGas", {}, o),
776
- swapsConfig: (o) => dataCall("rh-agent", "swapsConfig", {}, o),
777
- tradingStatus: (o) => dataCall("rh-agent", "tradingStatus", {}, o),
778
- nftDrops: (o) => dataCall("rh-agent", "nftDrops", {}, o),
779
- },
780
- rpc: {
781
- health: (chainId, o) => dataCall("evm-rpc", "health", { chainId }, o),
782
- healthAll: (a, o) => dataCall("evm-rpc", "healthAll", a || {}, o),
783
- blockNumber: (chainId, o) => dataCall("evm-rpc", "blockNumber", { chainId }, o),
784
- getBalance: (chainId, address, o) => dataCall("evm-rpc", "getBalance", { chainId, address }, o),
785
- call: (chainId, method, params, o) =>
786
- dataCall("evm-rpc", "call", { chainId, method, params }, o),
787
- },
788
- portfolio: {
789
- balance: (a, o) => dataCall("portfolio", "balances", a || {}, o),
790
- snapshot: (a, o) => dataCall("portfolio", "snapshot", a || {}, o),
791
- history: (a, o) => dataCall("portfolio", "history", a || {}, o),
792
- valueGraph: (a, o) => dataCall("portfolio", "valueGraph", a || {}, o),
793
- },
794
- nft: {
795
- inventory: (a, o) => dataCall("nft-portfolio", "inventory", a || {}, o),
796
- gallery: (a, o) => dataCall("nft-portfolio", "gallery", a || {}, o),
797
- pnl: (a, o) => dataCall("nft-portfolio", "pnl", a || {}, o),
798
- prepareList: (a, o) => dataCall("nft-portfolio", "prepareList", a || {}, o),
799
- floor: (slug, o) => dataCall("opensea-nft", "floor", { slug }, o),
800
- collection: (slug, o) => dataCall("opensea-nft", "collection", { slug }, o),
801
- },
802
- solana: {
803
- health: (o) => dataCall("solana-rpc", "health", {}, o),
804
- latestBlockhash: (a, o) => dataCall("solana-rpc", "latestBlockhash", a || {}, o),
805
- balance: (address, o) => dataCall("solana-rpc", "getBalance", { address }, o),
806
- tokenAccounts: (a, o) => dataCall("solana-rpc", "tokenAccounts", a || {}, o),
807
- simulate: (a, o) => dataCall("solana-rpc", "simulate", a || {}, o),
808
- jupiterQuote: (a, o) => dataCall("jupiter", "quote", a || {}, o),
809
- jupiterPrepare: (a, o) => dataCall("jupiter", "prepare", a || {}, o),
810
- nftStats: (a, o) => dataCall("magiceden-sol", "stats", a || {}, o),
811
- nftListings: (a, o) => dataCall("magiceden-sol", "listings", a || {}, o),
812
- nftTokenListings: (a, o) => dataCall("magiceden-sol", "tokenListings", a || {}, o),
813
- nftPrepareBuy: (a, o) => dataCall("magiceden-sol", "prepareBuy", a || {}, o),
814
- nftPrepareList: (a, o) => dataCall("magiceden-sol", "prepareList", a || {}, o),
815
- nftPrepareMint: (a, o) => dataCall("magiceden-sol", "prepareMint", a || {}, o),
816
- },
817
- bitcoin: {
818
- health: (o) => dataCall("bitcoin-esplora", "health", {}, o),
819
- tipHeight: (o) => dataCall("bitcoin-esplora", "tipHeight", {}, o),
820
- fees: (o) => dataCall("bitcoin-esplora", "fees", {}, o),
821
- address: (address, o) => dataCall("bitcoin-esplora", "address", { address }, o),
822
- utxos: (address, o) => dataCall("bitcoin-esplora", "utxos", { address }, o),
823
- tx: (txid, o) => dataCall("bitcoin-esplora", "tx", { txid }, o),
824
- decode: (a, o) => dataCall("bitcoin-esplora", "decode", a || {}, o),
825
- metaHealth: (o) => dataCall("bitcoin-meta", "health", {}, o),
826
- runeBalances: (address, o) => dataCall("bitcoin-meta", "runeBalances", { address }, o),
827
- inscriptions: (address, o) => dataCall("bitcoin-meta", "inscriptions", { address }, o),
828
- satflowHealth: (o) => dataCall("satflow", "health", {}, o),
829
- satflowFloors: (a, o) => dataCall("satflow", "collectionFloors", a || {}, o),
830
- satflowWallet: (address, o) => dataCall("satflow", "walletContents", { address }, o),
831
- },
832
- prices: {
833
- health: (o) => dataCall("defillama", "health", {}, o),
834
- current: (coins, o) => dataCall("defillama", "prices", { coins }, o),
835
- bySymbol: (symbols, o) => dataCall("defillama", "pricesBySymbol", { symbols }, o),
836
- protocols: (o) => dataCall("defillama", "protocols", {}, o),
837
- },
838
- lifi: {
839
- health: (o) => dataCall("lifi", "health", {}, o),
840
- quote: (a, o) => dataCall("lifi", "quote", a || {}, o),
841
- chains: (o) => dataCall("lifi", "chains", {}, o),
842
- },
843
- dex: {
844
- health: (o) => dataCall("dexscreener", "health", {}, o),
845
- token: (address, o) => dataCall("dexscreener", "token", { address }, o),
846
- search: (q, o) => dataCall("dexscreener", "search", { q }, o),
847
- pair: (chainId, pairAddress, o) =>
848
- dataCall("dexscreener", "pair", { chainId, pairAddress }, o),
849
- },
850
- uni: {
851
- health: (a, o) => dataCall("uniswap-v3", "health", a || {}, o),
852
- quote: (a, o) => dataCall("uniswap-v3", "quote", a || {}, o),
853
- quotePath: (a, o) => dataCall("uniswap-v3", "quotePath", a || {}, o),
854
- ethUsdc: (a, o) => dataCall("uniswap-v3", "ethUsdc", a || {}, o),
855
- chains: (o) => dataCall("uniswap-v3", "chains", {}, o),
856
- },
857
- univ4: {
858
- health: (a, o) => dataCall("uniswap-v4", "health", a || {}, o),
859
- quote: (a, o) => dataCall("uniswap-v4", "quote", a || {}, o),
860
- chains: (o) => dataCall("uniswap-v4", "chains", {}, o),
861
- },
862
- bridges: {
863
- across: (a, o) => dataCall("across", "suggestedFees", a || {}, o),
864
- hop: (a, o) => dataCall("hop", "quote", a || {}, o),
865
- relay: (a, o) => dataCall("relay", "quote", a || {}, o),
866
- },
867
- cow: {
868
- quote: (a, o) => dataCall("cowswap", "quote", a || {}, o),
869
- },
870
- hlWs: {
871
- allMids: (o) => dataCall("hl-ws", "allMids", {}, o),
872
- l2Book: (coin, o) => dataCall("hl-ws", "l2Book", { coin }, o),
873
- },
874
- polyWs: {
875
- book: (assetId, o) => dataCall("poly-ws", "book", { assetId }, o),
876
- },
877
- };