@oakagentkit/core 0.1.2 → 0.2.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 (580) hide show
  1. package/build/dist/api/addresses.d.ts +0 -1219
  2. package/build/dist/api/addresses.js +1 -1
  3. package/build/dist/api/amounts.d.ts +0 -1
  4. package/build/dist/api/amounts.js +1 -1
  5. package/build/dist/api/args.js +1 -1
  6. package/build/dist/api/canonical.d.ts +0 -1
  7. package/build/dist/api/canonical.js +1 -1
  8. package/build/dist/api/chain.d.ts +2 -0
  9. package/build/dist/api/chain.js +1 -1
  10. package/build/dist/api/deployments.d.ts +26 -0
  11. package/build/dist/api/deployments.js +1 -0
  12. package/build/dist/api/errors.js +1 -1
  13. package/build/dist/api/gas.js +1 -1
  14. package/build/dist/api/grandfather.js +1 -1
  15. package/build/dist/api/guards.d.ts +23 -0
  16. package/build/dist/api/guards.js +1 -0
  17. package/build/dist/api/history.js +1 -1
  18. package/build/dist/api/http.js +1 -1
  19. package/build/dist/api/identity-link.js +1 -1
  20. package/build/dist/api/launch.d.ts +1 -0
  21. package/build/dist/api/launch.js +1 -1
  22. package/build/dist/api/merkle.js +1 -1
  23. package/build/dist/api/metadata.js +1 -1
  24. package/build/dist/api/module.js +1 -1
  25. package/build/dist/api/modules/beefy/boosts.d.ts +132 -0
  26. package/build/dist/api/modules/beefy/boosts.js +1 -0
  27. package/build/dist/api/modules/beefy/clm.d.ts +282 -0
  28. package/build/dist/api/modules/beefy/clm.js +1 -0
  29. package/build/dist/api/modules/beefy/guard.d.ts +5 -0
  30. package/build/dist/api/modules/beefy/guard.js +1 -0
  31. package/build/dist/api/modules/beefy/index.js +1 -1
  32. package/build/dist/api/modules/beefy/liquidity.d.ts +237 -0
  33. package/build/dist/api/modules/beefy/liquidity.js +1 -0
  34. package/build/dist/api/modules/beefy/management.d.ts +100 -0
  35. package/build/dist/api/modules/beefy/management.js +1 -0
  36. package/build/dist/api/modules/beefy/vaults.d.ts +14 -0
  37. package/build/dist/api/modules/beefy/vaults.js +1 -0
  38. package/build/dist/api/modules/clanker/extensions.d.ts +62 -0
  39. package/build/dist/api/modules/clanker/extensions.js +1 -0
  40. package/build/dist/api/modules/clanker/index.js +1 -1
  41. package/build/dist/api/modules/clanker/manage.d.ts +2 -0
  42. package/build/dist/api/modules/clanker/manage.js +1 -0
  43. package/build/dist/api/modules/clanker/pool-config.d.ts +96 -0
  44. package/build/dist/api/modules/clanker/pool-config.js +1 -0
  45. package/build/dist/api/modules/clanker/protocol.d.ts +2 -0
  46. package/build/dist/api/modules/clanker/protocol.js +1 -0
  47. package/build/dist/api/modules/clanker/state.d.ts +246 -0
  48. package/build/dist/api/modules/clanker/state.js +1 -0
  49. package/build/dist/api/modules/erc8004/abi.d.ts +808 -0
  50. package/build/dist/api/modules/erc8004/abi.js +1 -0
  51. package/build/dist/api/modules/erc8004/common.d.ts +69 -0
  52. package/build/dist/api/modules/erc8004/common.js +1 -0
  53. package/build/dist/api/modules/erc8004/domain.d.ts +3 -0
  54. package/build/dist/api/modules/erc8004/domain.js +1 -0
  55. package/build/dist/api/modules/erc8004/index.d.ts +3 -171
  56. package/build/dist/api/modules/erc8004/index.js +1 -1
  57. package/build/dist/api/modules/erc8004/management.d.ts +4 -0
  58. package/build/dist/api/modules/erc8004/management.js +1 -0
  59. package/build/dist/api/modules/erc8004/reputation.d.ts +3 -0
  60. package/build/dist/api/modules/erc8004/reputation.js +1 -0
  61. package/build/dist/api/modules/erc8004/services.d.ts +2 -0
  62. package/build/dist/api/modules/erc8004/services.js +1 -0
  63. package/build/dist/api/modules/erc8004/validation.d.ts +2 -0
  64. package/build/dist/api/modules/erc8004/validation.js +1 -0
  65. package/build/dist/api/modules/grove/index.js +1 -1
  66. package/build/dist/api/modules/heyresearch/freshness.d.ts +12 -0
  67. package/build/dist/api/modules/heyresearch/freshness.js +1 -0
  68. package/build/dist/api/modules/heyresearch/index.js +1 -1
  69. package/build/dist/api/modules/heyresearch/public-reads.d.ts +5 -0
  70. package/build/dist/api/modules/heyresearch/public-reads.js +1 -0
  71. package/build/dist/api/modules/hoodag/chain-reads.d.ts +33 -0
  72. package/build/dist/api/modules/hoodag/chain-reads.js +1 -0
  73. package/build/dist/api/modules/hoodag/index.d.ts +9 -1
  74. package/build/dist/api/modules/hoodag/index.js +1 -1
  75. package/build/dist/api/modules/hoodag/management.d.ts +2 -0
  76. package/build/dist/api/modules/hoodag/management.js +1 -0
  77. package/build/dist/api/modules/hoodag/public-reads.d.ts +2 -0
  78. package/build/dist/api/modules/hoodag/public-reads.js +1 -0
  79. package/build/dist/api/modules/hoodag/reconstruct.d.ts +14 -0
  80. package/build/dist/api/modules/hoodag/reconstruct.js +1 -0
  81. package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
  82. package/build/dist/api/modules/hoodlock/buyback.d.ts +28 -0
  83. package/build/dist/api/modules/hoodlock/buyback.js +1 -0
  84. package/build/dist/api/modules/hoodlock/commerce.d.ts +24 -0
  85. package/build/dist/api/modules/hoodlock/commerce.js +1 -0
  86. package/build/dist/api/modules/hoodlock/fee.d.ts +15 -0
  87. package/build/dist/api/modules/hoodlock/fee.js +1 -0
  88. package/build/dist/api/modules/hoodlock/guard.d.ts +5 -0
  89. package/build/dist/api/modules/hoodlock/guard.js +1 -0
  90. package/build/dist/api/modules/hoodlock/index.d.ts +4 -0
  91. package/build/dist/api/modules/hoodlock/index.js +1 -1
  92. package/build/dist/api/modules/hoodlock/lifecycle.d.ts +285 -0
  93. package/build/dist/api/modules/hoodlock/lifecycle.js +1 -0
  94. package/build/dist/api/modules/hoodlock/locks-burn.d.ts +3 -3
  95. package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
  96. package/build/dist/api/modules/hoodlock/public.d.ts +3 -0
  97. package/build/dist/api/modules/hoodlock/public.js +1 -0
  98. package/build/dist/api/modules/hookr/actions.d.ts +4 -0
  99. package/build/dist/api/modules/hookr/actions.js +1 -0
  100. package/build/dist/api/modules/hookr/addons.d.ts +4 -0
  101. package/build/dist/api/modules/hookr/addons.js +1 -0
  102. package/build/dist/api/modules/hookr/contracts.d.ts +30 -0
  103. package/build/dist/api/modules/hookr/contracts.js +1 -0
  104. package/build/dist/api/modules/hookr/create-cancel.d.ts +10 -73
  105. package/build/dist/api/modules/hookr/create-cancel.js +1 -1
  106. package/build/dist/api/modules/hookr/discovery.d.ts +3 -0
  107. package/build/dist/api/modules/hookr/discovery.js +1 -0
  108. package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
  109. package/build/dist/api/modules/hookr/index.d.ts +0 -3
  110. package/build/dist/api/modules/hookr/index.js +1 -1
  111. package/build/dist/api/modules/hookr/public-reads.d.ts +4 -0
  112. package/build/dist/api/modules/hookr/public-reads.js +1 -0
  113. package/build/dist/api/modules/hookr/relay.d.ts +304 -0
  114. package/build/dist/api/modules/hookr/relay.js +1 -0
  115. package/build/dist/api/modules/hookr/revenue.d.ts +5 -0
  116. package/build/dist/api/modules/hookr/revenue.js +1 -0
  117. package/build/dist/api/modules/kyberswap/index.d.ts +18 -2
  118. package/build/dist/api/modules/kyberswap/index.js +1 -1
  119. package/build/dist/api/modules/kyberswap/source-pools.d.ts +28 -0
  120. package/build/dist/api/modules/kyberswap/source-pools.js +1 -0
  121. package/build/dist/api/modules/lighter/index.js +1 -1
  122. package/build/dist/api/modules/longbow/administration.d.ts +119 -0
  123. package/build/dist/api/modules/longbow/administration.js +1 -0
  124. package/build/dist/api/modules/longbow/analytics.d.ts +272 -0
  125. package/build/dist/api/modules/longbow/analytics.js +1 -0
  126. package/build/dist/api/modules/longbow/fixed.d.ts +126 -0
  127. package/build/dist/api/modules/longbow/fixed.js +1 -0
  128. package/build/dist/api/modules/longbow/index.d.ts +16 -0
  129. package/build/dist/api/modules/longbow/index.js +1 -1
  130. package/build/dist/api/modules/longbow/nft.d.ts +236 -0
  131. package/build/dist/api/modules/longbow/nft.js +1 -0
  132. package/build/dist/api/modules/longbow/rebates.d.ts +152 -0
  133. package/build/dist/api/modules/longbow/rebates.js +1 -0
  134. package/build/dist/api/modules/longbow/staking.d.ts +4 -0
  135. package/build/dist/api/modules/longbow/staking.js +1 -0
  136. package/build/dist/api/modules/meridian/index.js +1 -1
  137. package/build/dist/api/modules/meridian/markets.js +1 -1
  138. package/build/dist/api/modules/meridian/perps-batch.d.ts +4 -0
  139. package/build/dist/api/modules/meridian/perps-batch.js +1 -0
  140. package/build/dist/api/modules/meridian/perps-common.d.ts +56 -0
  141. package/build/dist/api/modules/meridian/perps-common.js +1 -0
  142. package/build/dist/api/modules/meridian/perps-guards.d.ts +3 -0
  143. package/build/dist/api/modules/meridian/perps-guards.js +1 -0
  144. package/build/dist/api/modules/meridian/perps-intents.d.ts +18 -0
  145. package/build/dist/api/modules/meridian/perps-intents.js +1 -0
  146. package/build/dist/api/modules/meridian/perps-stream.d.ts +3 -0
  147. package/build/dist/api/modules/meridian/perps-stream.js +1 -0
  148. package/build/dist/api/modules/meridian/perps.d.ts +3 -0
  149. package/build/dist/api/modules/meridian/perps.js +1 -0
  150. package/build/dist/api/modules/meridian/predict-read.d.ts +2 -0
  151. package/build/dist/api/modules/meridian/predict-read.js +1 -0
  152. package/build/dist/api/modules/meridian/rfq.d.ts +29 -0
  153. package/build/dist/api/modules/meridian/rfq.js +1 -1
  154. package/build/dist/api/modules/merkl/discovery.d.ts +2 -0
  155. package/build/dist/api/modules/merkl/discovery.js +1 -0
  156. package/build/dist/api/modules/merkl/index.d.ts +10 -1
  157. package/build/dist/api/modules/merkl/index.js +1 -1
  158. package/build/dist/api/modules/merkl/manage.d.ts +2 -0
  159. package/build/dist/api/modules/merkl/manage.js +1 -0
  160. package/build/dist/api/modules/merkl/protocol.d.ts +2 -0
  161. package/build/dist/api/modules/merkl/protocol.js +1 -0
  162. package/build/dist/api/modules/morpho/allocator.d.ts +308 -0
  163. package/build/dist/api/modules/morpho/allocator.js +1 -0
  164. package/build/dist/api/modules/morpho/bundles-abi.d.ts +705 -0
  165. package/build/dist/api/modules/morpho/bundles-abi.js +1 -0
  166. package/build/dist/api/modules/morpho/bundles.d.ts +3 -0
  167. package/build/dist/api/modules/morpho/bundles.js +1 -0
  168. package/build/dist/api/modules/morpho/in-kind.d.ts +85 -0
  169. package/build/dist/api/modules/morpho/in-kind.js +1 -0
  170. package/build/dist/api/modules/morpho/index.d.ts +10 -2
  171. package/build/dist/api/modules/morpho/index.js +1 -12
  172. package/build/dist/api/modules/morpho/local-guard.d.ts +26 -0
  173. package/build/dist/api/modules/morpho/local-guard.js +1 -0
  174. package/build/dist/api/modules/morpho/midnight-abi.d.ts +1690 -0
  175. package/build/dist/api/modules/morpho/midnight-abi.js +1 -0
  176. package/build/dist/api/modules/morpho/midnight.d.ts +179 -0
  177. package/build/dist/api/modules/morpho/midnight.js +1 -0
  178. package/build/dist/api/modules/morpho/protocol.d.ts +290 -0
  179. package/build/dist/api/modules/morpho/protocol.js +1 -0
  180. package/build/dist/api/modules/morpho/surface.d.ts +4 -0
  181. package/build/dist/api/modules/morpho/surface.js +1 -0
  182. package/build/dist/api/modules/morpho/vault-management.d.ts +10 -0
  183. package/build/dist/api/modules/morpho/vault-management.js +1 -0
  184. package/build/dist/api/modules/morpho/vault-tools.d.ts +6 -0
  185. package/build/dist/api/modules/morpho/vault-tools.js +1 -0
  186. package/build/dist/api/modules/morpho/vault-v2.d.ts +190 -0
  187. package/build/dist/api/modules/morpho/vault-v2.js +1 -0
  188. package/build/dist/api/modules/netnet/blackjack-hashes.d.ts +89 -0
  189. package/build/dist/api/modules/netnet/blackjack-hashes.js +1 -0
  190. package/build/dist/api/modules/netnet/card-abi.d.ts +3758 -0
  191. package/build/dist/api/modules/netnet/card-abi.js +1 -0
  192. package/build/dist/api/modules/netnet/card-plan.d.ts +43 -0
  193. package/build/dist/api/modules/netnet/card-plan.js +1 -0
  194. package/build/dist/api/modules/netnet/card-policy.d.ts +10 -0
  195. package/build/dist/api/modules/netnet/card-policy.js +1 -0
  196. package/build/dist/api/modules/netnet/card-read.d.ts +2 -0
  197. package/build/dist/api/modules/netnet/card-read.js +1 -0
  198. package/build/dist/api/modules/netnet/card-recovery.d.ts +2 -0
  199. package/build/dist/api/modules/netnet/card-recovery.js +1 -0
  200. package/build/dist/api/modules/netnet/desk-action-abi.d.ts +2 -0
  201. package/build/dist/api/modules/netnet/desk-action-abi.js +1 -0
  202. package/build/dist/api/modules/netnet/desk-action.d.ts +3 -0
  203. package/build/dist/api/modules/netnet/desk-action.js +1 -0
  204. package/build/dist/api/modules/netnet/desk-read.d.ts +5 -0
  205. package/build/dist/api/modules/netnet/desk-read.js +1 -0
  206. package/build/dist/api/modules/netnet/desk-registry.d.ts +5 -0
  207. package/build/dist/api/modules/netnet/desk-registry.js +1 -0
  208. package/build/dist/api/modules/netnet/financial-abi.d.ts +1764 -0
  209. package/build/dist/api/modules/netnet/financial-abi.js +1 -0
  210. package/build/dist/api/modules/netnet/financial.d.ts +13 -0
  211. package/build/dist/api/modules/netnet/financial.js +1 -0
  212. package/build/dist/api/modules/netnet/index.d.ts +1 -0
  213. package/build/dist/api/modules/netnet/index.js +1 -1
  214. package/build/dist/api/modules/netnet/staking.d.ts +8 -0
  215. package/build/dist/api/modules/netnet/staking.js +1 -0
  216. package/build/dist/api/modules/orbio/gateway.d.ts +24 -0
  217. package/build/dist/api/modules/orbio/gateway.js +1 -0
  218. package/build/dist/api/modules/orbio/index.d.ts +3 -1
  219. package/build/dist/api/modules/orbio/index.js +1 -1
  220. package/build/dist/api/modules/orbio/pins.d.ts +457 -0
  221. package/build/dist/api/modules/orbio/pins.js +1 -0
  222. package/build/dist/api/modules/pons/claim.d.ts +33 -1
  223. package/build/dist/api/modules/pons/claim.js +1 -1
  224. package/build/dist/api/modules/pons/holder-directory.d.ts +35 -0
  225. package/build/dist/api/modules/pons/holder-directory.js +1 -0
  226. package/build/dist/api/modules/pons/index.js +1 -1
  227. package/build/dist/api/modules/pons/launch-status.d.ts +151 -5
  228. package/build/dist/api/modules/pons/launch-status.js +1 -1
  229. package/build/dist/api/modules/pons/prices.js +1 -1
  230. package/build/dist/api/modules/pons/reads.d.ts +3 -0
  231. package/build/dist/api/modules/pons/reads.js +1 -0
  232. package/build/dist/api/modules/pons/swap-terms.d.ts +77 -0
  233. package/build/dist/api/modules/pons/swap-terms.js +1 -0
  234. package/build/dist/api/modules/pons/trade.d.ts +13 -2
  235. package/build/dist/api/modules/pons/trade.js +1 -1
  236. package/build/dist/api/modules/poolstrade/index.js +1 -1
  237. package/build/dist/api/modules/priors/coverage.d.ts +23 -0
  238. package/build/dist/api/modules/priors/coverage.js +1 -0
  239. package/build/dist/api/modules/priors/discovery.d.ts +4 -0
  240. package/build/dist/api/modules/priors/discovery.js +1 -0
  241. package/build/dist/api/modules/priors/features.d.ts +62 -0
  242. package/build/dist/api/modules/priors/features.js +1 -0
  243. package/build/dist/api/modules/priors/index.d.ts +9 -2
  244. package/build/dist/api/modules/priors/index.js +1 -1
  245. package/build/dist/api/modules/priors/integration.d.ts +6 -0
  246. package/build/dist/api/modules/priors/integration.js +1 -0
  247. package/build/dist/api/modules/priors/market.d.ts +10 -0
  248. package/build/dist/api/modules/priors/market.js +1 -0
  249. package/build/dist/api/modules/priors/pt.d.ts +421 -0
  250. package/build/dist/api/modules/priors/pt.js +1 -0
  251. package/build/dist/api/modules/priors/savings-exit.d.ts +85 -0
  252. package/build/dist/api/modules/priors/savings-exit.js +1 -0
  253. package/build/dist/api/modules/priors/starter-line.d.ts +495 -0
  254. package/build/dist/api/modules/priors/starter-line.js +1 -0
  255. package/build/dist/api/modules/priors/stock-swap.d.ts +101 -0
  256. package/build/dist/api/modules/priors/stock-swap.js +1 -0
  257. package/build/dist/api/modules/relay/api.d.ts +52 -0
  258. package/build/dist/api/modules/relay/api.js +1 -0
  259. package/build/dist/api/modules/relay/bootstrap.d.ts +2 -0
  260. package/build/dist/api/modules/relay/bootstrap.js +1 -0
  261. package/build/dist/api/modules/relay/discovery.d.ts +2 -0
  262. package/build/dist/api/modules/relay/discovery.js +1 -0
  263. package/build/dist/api/modules/relay/inbound.js +1 -1
  264. package/build/dist/api/modules/relay/index.d.ts +2 -0
  265. package/build/dist/api/modules/relay/index.js +1 -1
  266. package/build/dist/api/modules/relay/order.d.ts +2 -0
  267. package/build/dist/api/modules/relay/order.js +1 -0
  268. package/build/dist/api/modules/relay/outbound-status.js +1 -1
  269. package/build/dist/api/modules/relay/readiness.d.ts +5 -0
  270. package/build/dist/api/modules/relay/readiness.js +1 -0
  271. package/build/dist/api/modules/relay/reads.d.ts +3 -0
  272. package/build/dist/api/modules/relay/reads.js +1 -0
  273. package/build/dist/api/modules/relay/vaults.d.ts +24 -0
  274. package/build/dist/api/modules/relay/vaults.js +1 -0
  275. package/build/dist/api/modules/spark/actions.d.ts +2 -0
  276. package/build/dist/api/modules/spark/actions.js +1 -0
  277. package/build/dist/api/modules/spark/details.d.ts +3 -0
  278. package/build/dist/api/modules/spark/details.js +1 -0
  279. package/build/dist/api/modules/spark/index.js +1 -1
  280. package/build/dist/api/modules/spark/management.d.ts +7 -0
  281. package/build/dist/api/modules/spark/management.js +1 -0
  282. package/build/dist/api/modules/steakhouse/analytics.d.ts +2 -0
  283. package/build/dist/api/modules/steakhouse/analytics.js +1 -0
  284. package/build/dist/api/modules/steakhouse/erc4626.d.ts +2 -0
  285. package/build/dist/api/modules/steakhouse/erc4626.js +1 -0
  286. package/build/dist/api/modules/steakhouse/index.js +1 -1
  287. package/build/dist/api/modules/steakhouse/local-guard.d.ts +7 -0
  288. package/build/dist/api/modules/steakhouse/local-guard.js +1 -0
  289. package/build/dist/api/modules/steakhouse/management.d.ts +3 -0
  290. package/build/dist/api/modules/steakhouse/management.js +1 -0
  291. package/build/dist/api/modules/steakhouse/v2-exit.d.ts +19 -0
  292. package/build/dist/api/modules/steakhouse/v2-exit.js +1 -0
  293. package/build/dist/api/modules/tickerspring/basket-routes.d.ts +2 -0
  294. package/build/dist/api/modules/tickerspring/basket-routes.js +1 -0
  295. package/build/dist/api/modules/tickerspring/contract-reads.d.ts +2 -0
  296. package/build/dist/api/modules/tickerspring/contract-reads.js +1 -0
  297. package/build/dist/api/modules/tickerspring/discovery.d.ts +27 -0
  298. package/build/dist/api/modules/tickerspring/discovery.js +1 -0
  299. package/build/dist/api/modules/tickerspring/exit-preview.d.ts +14 -0
  300. package/build/dist/api/modules/tickerspring/exit-preview.js +1 -0
  301. package/build/dist/api/modules/tickerspring/guards.d.ts +7 -0
  302. package/build/dist/api/modules/tickerspring/guards.js +1 -0
  303. package/build/dist/api/modules/tickerspring/index.d.ts +80 -1
  304. package/build/dist/api/modules/tickerspring/index.js +1 -1
  305. package/build/dist/api/modules/tickerspring/journeys.d.ts +31 -0
  306. package/build/dist/api/modules/tickerspring/journeys.js +1 -0
  307. package/build/dist/api/modules/tickerspring/ladder.d.ts +8 -0
  308. package/build/dist/api/modules/tickerspring/ladder.js +1 -0
  309. package/build/dist/api/modules/tickerspring/maker.d.ts +8 -0
  310. package/build/dist/api/modules/tickerspring/maker.js +1 -0
  311. package/build/dist/api/modules/tickerspring/order-accounting.d.ts +4 -0
  312. package/build/dist/api/modules/tickerspring/order-accounting.js +1 -0
  313. package/build/dist/api/modules/tickerspring/research.d.ts +2 -0
  314. package/build/dist/api/modules/tickerspring/research.js +1 -0
  315. package/build/dist/api/modules/tickerspring/strategies.d.ts +17 -0
  316. package/build/dist/api/modules/tickerspring/strategies.js +1 -0
  317. package/build/dist/api/modules/uniswap/auction-create.d.ts +112 -0
  318. package/build/dist/api/modules/uniswap/auction-create.js +1 -0
  319. package/build/dist/api/modules/uniswap/auction.d.ts +212 -0
  320. package/build/dist/api/modules/uniswap/auction.js +1 -0
  321. package/build/dist/api/modules/uniswap/batch.d.ts +22 -0
  322. package/build/dist/api/modules/uniswap/batch.js +1 -0
  323. package/build/dist/api/modules/uniswap/common.d.ts +12 -0
  324. package/build/dist/api/modules/uniswap/common.js +1 -0
  325. package/build/dist/api/modules/uniswap/fees.d.ts +54 -0
  326. package/build/dist/api/modules/uniswap/fees.js +1 -0
  327. package/build/dist/api/modules/uniswap/index.d.ts +2 -1
  328. package/build/dist/api/modules/uniswap/index.js +1 -1
  329. package/build/dist/api/modules/uniswap/local-guard.d.ts +16 -0
  330. package/build/dist/api/modules/uniswap/local-guard.js +1 -0
  331. package/build/dist/api/modules/uniswap/oracle.d.ts +2 -0
  332. package/build/dist/api/modules/uniswap/oracle.js +1 -0
  333. package/build/dist/api/modules/uniswap/pool-math.d.ts +13 -0
  334. package/build/dist/api/modules/uniswap/pool-math.js +1 -0
  335. package/build/dist/api/modules/uniswap/pools.d.ts +30 -0
  336. package/build/dist/api/modules/uniswap/pools.js +1 -0
  337. package/build/dist/api/modules/uniswap/position.d.ts +69 -0
  338. package/build/dist/api/modules/uniswap/position.js +1 -0
  339. package/build/dist/api/modules/uniswap/protocol.d.ts +154 -0
  340. package/build/dist/api/modules/uniswap/protocol.js +1 -0
  341. package/build/dist/api/modules/uniswap/token-jar.d.ts +52 -0
  342. package/build/dist/api/modules/uniswap/token-jar.js +1 -0
  343. package/build/dist/api/modules/uniswap/trade-batch.d.ts +2 -0
  344. package/build/dist/api/modules/uniswap/trade-batch.js +1 -0
  345. package/build/dist/api/modules/uniswap/trade.d.ts +406 -0
  346. package/build/dist/api/modules/uniswap/trade.js +1 -0
  347. package/build/dist/api/modules/uniswap/v2.d.ts +180 -0
  348. package/build/dist/api/modules/uniswap/v2.js +1 -0
  349. package/build/dist/api/modules/uniswap/v3.d.ts +23 -2
  350. package/build/dist/api/modules/uniswap/v3.js +1 -1
  351. package/build/dist/api/modules/uniswap/v4.d.ts +17 -28
  352. package/build/dist/api/modules/uniswap/v4.js +1 -1
  353. package/build/dist/api/modules/uniswap/wrap.d.ts +17 -0
  354. package/build/dist/api/modules/uniswap/wrap.js +1 -0
  355. package/build/dist/api/modules/velora/claims.d.ts +86 -0
  356. package/build/dist/api/modules/velora/claims.js +1 -0
  357. package/build/dist/api/modules/velora/delta-reads.d.ts +2 -0
  358. package/build/dist/api/modules/velora/delta-reads.js +1 -0
  359. package/build/dist/api/modules/velora/index.js +1 -1
  360. package/build/dist/api/owner-signature.d.ts +29 -0
  361. package/build/dist/api/owner-signature.js +1 -0
  362. package/build/dist/api/positions.js +1 -1
  363. package/build/dist/api/pricenote.d.ts +0 -1
  364. package/build/dist/api/pricenote.js +1 -1
  365. package/build/dist/api/prices.js +1 -1
  366. package/build/dist/api/pricing.d.ts +1 -14
  367. package/build/dist/api/pricing.js +1 -1
  368. package/build/dist/api/routes.d.ts +2 -0
  369. package/build/dist/api/routes.js +1 -1
  370. package/build/dist/api/rpc.d.ts +23 -0
  371. package/build/dist/api/rpc.js +1 -0
  372. package/build/dist/api/secret-fields.js +1 -1
  373. package/build/dist/api/send.js +1 -1
  374. package/build/dist/api/signing-registry.d.ts +19 -0
  375. package/build/dist/api/signing-registry.js +1 -0
  376. package/build/dist/api/signing.d.ts +162 -0
  377. package/build/dist/api/signing.js +1 -0
  378. package/build/dist/api/simulate.js +1 -1
  379. package/build/dist/api/swap.d.ts +61 -27
  380. package/build/dist/api/swap.js +1 -1
  381. package/build/dist/api/tokens.d.ts +5 -0
  382. package/build/dist/api/tokens.js +1 -1
  383. package/build/dist/api/tool-policy.d.ts +6 -0
  384. package/build/dist/api/tool-policy.js +1 -1
  385. package/build/dist/api/tx.js +1 -1
  386. package/build/dist/api/types.d.ts +2 -0
  387. package/build/dist/api/vendor-limits.js +1 -1
  388. package/build/dist/chunks/2EDXKJ3B.js +1 -0
  389. package/build/dist/chunks/2NA6JLEC.js +1 -0
  390. package/build/dist/chunks/2SNQWKHA.js +1 -0
  391. package/build/dist/chunks/3ACEWCKZ.js +1 -0
  392. package/build/dist/chunks/3CCBUYUM.js +1 -0
  393. package/build/dist/chunks/3RFSGU2Y.js +1 -0
  394. package/build/dist/chunks/46ZA2R5L.js +1 -0
  395. package/build/dist/chunks/4IPW5WZ4.js +1 -0
  396. package/build/dist/chunks/53N7PNJH.js +1 -0
  397. package/build/dist/chunks/55NX776C.js +1 -0
  398. package/build/dist/chunks/5EHQM6DM.js +1 -0
  399. package/build/dist/chunks/5FTSKYQH.js +1 -0
  400. package/build/dist/chunks/5HW6JKME.js +1 -0
  401. package/build/dist/chunks/5VXNQFYJ.js +1 -0
  402. package/build/dist/chunks/5XFXH2JT.js +1 -0
  403. package/build/dist/chunks/5YS5V2LK.js +1 -0
  404. package/build/dist/chunks/64AF7ECA.js +1 -0
  405. package/build/dist/chunks/65QFM4JU.js +1 -0
  406. package/build/dist/chunks/67TJOOBI.js +1 -0
  407. package/build/dist/chunks/6HV5BR7P.js +1 -0
  408. package/build/dist/chunks/{A5ITAEUQ.js → 6IM6A5VA.js} +1 -1
  409. package/build/dist/chunks/6JCEJ66K.js +1 -0
  410. package/build/dist/chunks/6LLOTPH2.js +1 -0
  411. package/build/dist/chunks/6NR7SVRO.js +1 -0
  412. package/build/dist/chunks/6PU2CMQZ.js +1 -0
  413. package/build/dist/chunks/6SCCW74G.js +1 -0
  414. package/build/dist/chunks/73N3TOJL.js +1 -0
  415. package/build/dist/chunks/74BPMUAG.js +1 -0
  416. package/build/dist/chunks/7B5UH2VS.js +1 -0
  417. package/build/dist/chunks/7BTELNNI.js +1 -0
  418. package/build/dist/chunks/7LDAJ6BM.js +1 -0
  419. package/build/dist/chunks/7MR37STI.js +1 -0
  420. package/build/dist/chunks/7T4BYFD4.js +1 -0
  421. package/build/dist/chunks/7US6PD56.js +1 -0
  422. package/build/dist/chunks/7YU6DELJ.js +1 -0
  423. package/build/dist/chunks/7Z5IM2QZ.js +1 -0
  424. package/build/dist/chunks/A25P24G2.js +1 -0
  425. package/build/dist/chunks/AFHHRDPJ.js +1 -0
  426. package/build/dist/chunks/ANQ43XJA.js +1 -0
  427. package/build/dist/chunks/{UCMNB2UP.js → AXYOJBX6.js} +1 -1
  428. package/build/dist/chunks/AYM5L6L7.js +1 -0
  429. package/build/dist/chunks/BFVLBENV.js +1 -0
  430. package/build/dist/chunks/BV3AHLH5.js +1 -0
  431. package/build/dist/chunks/BXN3MDS4.js +1 -0
  432. package/build/dist/chunks/BYXBS45D.js +1 -0
  433. package/build/dist/chunks/C2FEXLMA.js +1 -0
  434. package/build/dist/chunks/C3TJLARP.js +1 -0
  435. package/build/dist/chunks/C3ZZSGSP.js +1 -0
  436. package/build/dist/chunks/CAU44UWP.js +1 -0
  437. package/build/dist/chunks/CBA776XQ.js +1 -0
  438. package/build/dist/chunks/CCEWSOBT.js +1 -0
  439. package/build/dist/chunks/CEQNXF6A.js +1 -0
  440. package/build/dist/chunks/{6SYTB6FB.js → D3OWLDVB.js} +1 -1
  441. package/build/dist/chunks/D6VP3N27.js +3 -0
  442. package/build/dist/chunks/DHXVYHT4.js +1 -0
  443. package/build/dist/chunks/DLIOZCEG.js +1 -0
  444. package/build/dist/chunks/EA6IYKIB.js +1 -0
  445. package/build/dist/chunks/EC5W3UZD.js +1 -0
  446. package/build/dist/chunks/{B4MLWDPM.js → EG6M6SSO.js} +1 -1
  447. package/build/dist/chunks/EVANKNJV.js +1 -0
  448. package/build/dist/chunks/EYYUWFUR.js +1 -0
  449. package/build/dist/chunks/F2YH72GF.js +1 -0
  450. package/build/dist/chunks/F3TJCOVV.js +1 -0
  451. package/build/dist/chunks/F6WBPPBN.js +1 -0
  452. package/build/dist/chunks/FSPNOVKB.js +1 -0
  453. package/build/dist/chunks/G4PDM3MX.js +1 -0
  454. package/build/dist/chunks/G7UKNO2I.js +1 -0
  455. package/build/dist/chunks/GHDDVBPK.js +1 -0
  456. package/build/dist/chunks/GSI5COTD.js +1 -0
  457. package/build/dist/chunks/GZ5TW3WB.js +1 -0
  458. package/build/dist/chunks/H4S2ZCWK.js +1 -0
  459. package/build/dist/chunks/H6ED3RHF.js +1 -0
  460. package/build/dist/chunks/HFQS5344.js +1 -0
  461. package/build/dist/chunks/{Y3P6SUNL.js → HIMVOTIU.js} +1 -1
  462. package/build/dist/chunks/HL2MLC3O.js +1 -0
  463. package/build/dist/chunks/HNMOB76J.js +1 -0
  464. package/build/dist/chunks/HQVC6X3T.js +1 -0
  465. package/build/dist/chunks/HRG2VVPY.js +1 -0
  466. package/build/dist/chunks/IHGVCPVA.js +2 -0
  467. package/build/dist/chunks/ITV52TIE.js +1 -0
  468. package/build/dist/chunks/IUXOUKQN.js +1 -0
  469. package/build/dist/chunks/IWALIX7Q.js +1 -0
  470. package/build/dist/chunks/JC4SYMBV.js +18 -0
  471. package/build/dist/chunks/JREVERSC.js +1 -0
  472. package/build/dist/chunks/JRO6WTK4.js +1 -0
  473. package/build/dist/chunks/JRVTSGAT.js +1 -0
  474. package/build/dist/chunks/K463HFGC.js +1 -0
  475. package/build/dist/chunks/KQFDLDHL.js +1 -0
  476. package/build/dist/chunks/L24EOVLT.js +1 -0
  477. package/build/dist/chunks/LBEMCOND.js +1 -0
  478. package/build/dist/chunks/LI7FYINH.js +1 -0
  479. package/build/dist/chunks/MRWCFTMS.js +1 -0
  480. package/build/dist/chunks/MYBDO5SA.js +1 -0
  481. package/build/dist/chunks/N6RL3SUZ.js +1 -0
  482. package/build/dist/chunks/N77ANGBT.js +1 -0
  483. package/build/dist/chunks/{SJ7HDRI4.js → NBRMUFJP.js} +1 -1
  484. package/build/dist/chunks/NCQFWPAW.js +1 -0
  485. package/build/dist/chunks/NHCRJC5X.js +1 -0
  486. package/build/dist/chunks/NIOBE2LK.js +1 -0
  487. package/build/dist/chunks/NMFVXBTL.js +1 -0
  488. package/build/dist/chunks/NO57NGRV.js +1 -0
  489. package/build/dist/chunks/O47JXRXN.js +1 -0
  490. package/build/dist/chunks/O5SU2I3G.js +1 -0
  491. package/build/dist/chunks/{GIBF3YJO.js → OG5HRQU4.js} +1 -1
  492. package/build/dist/chunks/OJLMF5AR.js +1 -0
  493. package/build/dist/chunks/OJMYESQU.js +1 -0
  494. package/build/dist/chunks/OW7GOYKA.js +1 -0
  495. package/build/dist/chunks/P4UQGWCP.js +1 -0
  496. package/build/dist/chunks/PJ65ZOQ7.js +1 -0
  497. package/build/dist/chunks/Q2VMH2LB.js +1 -0
  498. package/build/dist/chunks/QCD33HMD.js +1 -0
  499. package/build/dist/chunks/QHHZDXRG.js +1 -0
  500. package/build/dist/chunks/QNPEKNWM.js +1 -0
  501. package/build/dist/chunks/QQWF6A4P.js +1 -0
  502. package/build/dist/chunks/QRUC7EFE.js +1 -0
  503. package/build/dist/chunks/QYKXWBZC.js +1 -0
  504. package/build/dist/chunks/QZM7CWZW.js +1 -0
  505. package/build/dist/chunks/QZTUMSQY.js +1 -0
  506. package/build/dist/chunks/R7D256HG.js +1 -0
  507. package/build/dist/chunks/RETS2ZEK.js +1 -0
  508. package/build/dist/chunks/RFJCG4NA.js +1 -0
  509. package/build/dist/chunks/RRSODRGT.js +1 -0
  510. package/build/dist/chunks/RTBOMWCB.js +1 -0
  511. package/build/dist/chunks/SDICP7BT.js +1 -0
  512. package/build/dist/chunks/SLSPWXR6.js +1 -0
  513. package/build/dist/chunks/SPRVVJXI.js +1 -0
  514. package/build/dist/chunks/SQ5BNSXR.js +1 -0
  515. package/build/dist/chunks/SQH7A4O3.js +1 -0
  516. package/build/dist/chunks/SXX52Y27.js +1 -0
  517. package/build/dist/chunks/T3NPRRTY.js +1 -0
  518. package/build/dist/chunks/T6MTTMLQ.js +1 -0
  519. package/build/dist/chunks/TAI63P6E.js +1 -0
  520. package/build/dist/chunks/TCS3ICNE.js +2 -0
  521. package/build/dist/chunks/TNRDCBGO.js +1 -0
  522. package/build/dist/chunks/TRCP7X5P.js +1 -0
  523. package/build/dist/chunks/TWR7BF72.js +1 -0
  524. package/build/dist/chunks/U3FMCX3L.js +1 -0
  525. package/build/dist/chunks/UIIJWIR6.js +1 -0
  526. package/build/dist/chunks/UMK564HS.js +1 -0
  527. package/build/dist/chunks/UPPYXY74.js +1 -0
  528. package/build/dist/chunks/UWOFA6GV.js +1 -0
  529. package/build/dist/chunks/UXG67LH3.js +1 -0
  530. package/build/dist/chunks/V6SDKPZS.js +1 -0
  531. package/build/dist/chunks/{GDP4JSAX.js → VJ3W2V3B.js} +1 -1
  532. package/build/dist/chunks/{BOFA26WU.js → VXLJRRKV.js} +1 -1
  533. package/build/dist/chunks/VY3P34PY.js +1 -0
  534. package/build/dist/chunks/WCKMQFGS.js +1117 -0
  535. package/build/dist/chunks/WDGPCPQJ.js +1 -0
  536. package/build/dist/chunks/WIDTTGSH.js +1 -0
  537. package/build/dist/chunks/WQZLYX64.js +1 -0
  538. package/build/dist/chunks/X5V2Z2NM.js +1 -0
  539. package/build/dist/chunks/XKRWJCYE.js +1 -0
  540. package/build/dist/chunks/XPFVT2EA.js +1 -0
  541. package/build/dist/chunks/XV6F3RET.js +1 -0
  542. package/build/dist/chunks/XW7RH7YY.js +1 -0
  543. package/build/dist/chunks/Y2IWPNEW.js +1 -0
  544. package/build/dist/chunks/YHPOXAKA.js +1 -0
  545. package/build/dist/chunks/YR3QJVJQ.js +1 -0
  546. package/build/dist/chunks/ZCGVBK5K.js +1 -0
  547. package/build/dist/chunks/ZGXNTWYG.js +1 -0
  548. package/build/dist/chunks/ZPM2MFXZ.js +1 -0
  549. package/build/dist/chunks/ZT67OMLW.js +1 -0
  550. package/build/dist/chunks/ZYR5LSVB.js +1 -0
  551. package/package.json +13 -9
  552. package/build/dist/chunks/2IRORNOH.js +0 -1
  553. package/build/dist/chunks/3PA2XT75.js +0 -1
  554. package/build/dist/chunks/52TGAWSI.js +0 -1
  555. package/build/dist/chunks/66DWJWDA.js +0 -1
  556. package/build/dist/chunks/73EABRFC.js +0 -1
  557. package/build/dist/chunks/A5KSG6LW.js +0 -1
  558. package/build/dist/chunks/B4FOHEBE.js +0 -1
  559. package/build/dist/chunks/BHR46XNW.js +0 -3
  560. package/build/dist/chunks/CQNZWL7F.js +0 -1
  561. package/build/dist/chunks/GN4QZ4JA.js +0 -1
  562. package/build/dist/chunks/I5CQ64EU.js +0 -1
  563. package/build/dist/chunks/ICCJ3TOO.js +0 -1
  564. package/build/dist/chunks/KL5YE7JA.js +0 -1
  565. package/build/dist/chunks/KVVTKM6E.js +0 -1
  566. package/build/dist/chunks/M6JGTQRY.js +0 -1
  567. package/build/dist/chunks/MK6L6TGI.js +0 -1
  568. package/build/dist/chunks/MOVRI5IV.js +0 -1
  569. package/build/dist/chunks/NA7HV7BR.js +0 -1
  570. package/build/dist/chunks/NGAI6GTU.js +0 -1
  571. package/build/dist/chunks/OBX7IZG5.js +0 -1
  572. package/build/dist/chunks/OSQ4AAM2.js +0 -2
  573. package/build/dist/chunks/OWEUVFB6.js +0 -1
  574. package/build/dist/chunks/P4G3EKF7.js +0 -1
  575. package/build/dist/chunks/QGDHMVPE.js +0 -1
  576. package/build/dist/chunks/SPAKOCR7.js +0 -1
  577. package/build/dist/chunks/T6O2L6HF.js +0 -1
  578. package/build/dist/chunks/TEVKPJV5.js +0 -1
  579. package/build/dist/chunks/YX4NVVSX.js +0 -1
  580. package/build/dist/chunks/ZUC6ILK2.js +0 -1
@@ -1 +0,0 @@
1
- import{a as me,b as K,o as X}from"./2IRORNOH.js";import{c as ce}from"./MK6L6TGI.js";import{a as ue}from"./A5ITAEUQ.js";import{a as h,i as de}from"./ZUC6ILK2.js";import{a as i}from"./NGAI6GTU.js";import{a as ae}from"./JXOEJPJ4.js";import{decodeFunctionData as ke,parseAbi as Ae}from"viem";var be="https://api.relay.link",D="0x0000000000000000000000000000000000000000",U=de[h].relay.depository.address.toLowerCase(),Re=Ae(["function depositNative(address depositor, bytes32 id) payable"]),le=30,qe=(1n<<256n)-1n;function Y(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function t(e){if(!Y(e))throw new i("Relay returned an unexpected response.");return e}function R(e){if(!Array.isArray(e))throw new i("Relay returned an unexpected list.");return e}function r(e){if(typeof e!="string")throw new i("Provide a valid wallet or token address.");return ue(e),e.toLowerCase()}function L(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new i("Provide a positive integer chain ID.");return e}function q(e){if(typeof e!="string"||!/^(0|[1-9]\d*)$/.test(e)||BigInt(e)>qe)throw new i("Amounts must be decimal base-unit strings within the uint256 range.");return e}function pe(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new i("Relay returned an invalid order or refund deadline. Request a fresh quote.");return e}function B(e){if(typeof e!="string"||!/^0x[0-9a-fA-F]{64}$/.test(e))throw new i("Provide a valid Relay request or order ID.");return e}function Ce(e){let s=t(e);if(typeof s.symbol!="string"||!s.symbol.trim()||typeof s.decimals!="number"||!Number.isInteger(s.decimals)||s.decimals<0||s.decimals>255)throw new i("Relay returned invalid token metadata.");return{address:r(s.address),chainId:L(s.chainId),decimals:s.decimals,symbol:s.symbol}}function _(e){let s=t(e);return{token:Ce(s.currency),amount:q(s.amount)}}function y(e){if(!e)throw new i("Relay quote does not match the requested amount, chain, recipient, minimum or transaction.")}function fe(e){return e===void 0?[]:R(e).map(B)}function he(e){if(!(e==null||e==="N/A")){if(typeof e!="string")throw new i("Relay returned an invalid failure reason.");return ae(e)}}var Oe=e=>{async function s(o,n){let a=process.env.OAK_RELAY_API_KEY?.trim();if(!a)throw new i("Configure the Relay API key on the server before using Relay.");try{return await ce(e.http,`${be}${o}`,{method:n===void 0?"GET":"POST",headers:{"x-api-key":a,"Content-Type":"application/json","User-Agent":"oak-relay/1.0"},...n===void 0?{}:{body:JSON.stringify(n)}},Y)}catch(m){throw new i(e.plainError(m))}}async function Q(o){let n;try{n=await s(`/intents/status/v3?requestId=${encodeURIComponent(o)}`)}catch(w){if(e.plainError(w)!=="The request timed out. Please try again.")throw w;return{requestId:o,status:"unknown",timedOut:!0,fulfilled:!1,settled:!1,pollAgain:!0,needsAttention:!1,inTxHashes:[],txHashes:[],originChainId:void 0,destinationChainId:void 0,summary:"The status request timed out. Bridge settlement is unknown; poll again."}}if(typeof n.status!="string")throw new i("Relay returned an invalid bridge status.");let a=fe(n.inTxHashes),m=fe(n.txHashes),d=n.originChainId===void 0?void 0:L(n.originChainId),I=n.destinationChainId===void 0?void 0:L(n.destinationChainId),l=he(n.failReason),u=he(n.refundFailReason),b=n.status==="success"&&m.length>0&&I!==void 0,g=n.status==="refund"&&m.length>0&&d!==void 0,p=n.status==="failure"&&u!==void 0,k=["waiting","depositing","pending","submitted","failure","refund","success"].includes(n.status)?n.status==="failure"&&/TIMEOUT|EXPIRED/.test(typeof n.failReason=="string"?n.failReason:"")?"timeout":n.status:"unknown",A=b?"Relay reports destination fulfillment.":g?"Relay reports a refund on the origin chain; the destination was not fulfilled.":p?"The bridge failed and automatic refund is unavailable. Review the request with Relay.":"Bridge settlement is not confirmed. Poll Relay again; an origin receipt alone does not prove destination fulfillment.";return{requestId:o,status:k,relayStatus:n.status,fulfilled:b,settled:b||g,pollAgain:!b&&!g&&!p,needsAttention:p,timedOut:!1,inTxHashes:a,txHashes:m,originChainId:d,destinationChainId:I,failReason:l,refundFailReason:u,...n.updatedAt===void 0?{}:{updatedAt:q(String(n.updatedAt))},summary:A}}async function ye(o,n){let a=r(n),m=r(o.recipient??a),d=L(o.destinationChainId);if(d===h)throw new i("Choose a destination chain other than 4663.");let I=r(o.originCurrency??D);if(I!==D)throw new i("This outbound part supports native ETH deposits. ERC20 deposits require recorded approval evidence.");let l=r(o.destinationCurrency??D),u=q(o.amount);if(u==="0")throw new i("Provide a positive bridge amount.");let b=o.minAmountOut===void 0?void 0:q(o.minAmountOut),g=o.slippageBps??K;if(typeof g!="number")throw new i("Slippage must be an integer from 0 to 9999 bps.");X("0",g);let p=R((await s("/chains")).chains).map(t),C=p.find(c=>c.id===h),k=p.find(c=>c.id===d);if(!C||!k||C.disabled!==!1||k.disabled!==!1||C.depositEnabled!==!0||C.vmType!=="evm"||k.vmType!=="evm")throw new i("Relay does not currently support this outbound chain route.");let A=Math.floor(Date.now()/1e3)+me,w=await s("/quote/v2",{user:a,recipient:m,originChainId:h,destinationChainId:d,originCurrency:I,destinationCurrency:l,amount:u,tradeType:"EXACT_INPUT"}),T=B(w.requestId),x=t(w.details),P=_(x.currencyIn),f=_(x.currencyOut),S={token:f.token,amount:q(t(x.currencyOut).minimumAmount)};if(y(r(x.sender)===a&&r(x.recipient)===m&&P.token.chainId===h&&P.token.address===I&&P.token.decimals===18&&P.amount===u&&f.token.chainId===d&&f.token.address===l&&BigInt(S.amount)>0n&&BigInt(S.amount)<=BigInt(f.amount)),l===D&&y(f.token.decimals===t(k.currency).decimals),b!==void 0){if(S.amount!==b)throw new i("Relay order minimum must exactly match minAmountOut. Request a new quote.")}else if(BigInt(S.amount)<BigInt(X(f.amount,g)))throw new i("Relay order minimum is below the allowed slippage minimum. Request a new quote.");let j=t(t(w.protocol).v2),W=B(j.orderId),z=t(j.orderData),N=t(z.output),F=pe(N.deadline),Z=R(z.inputs).map(t);y(Z.length>0);let V=Z.flatMap(c=>{let E=R(c.refunds).map(t);return y(E.length>0),E.map(re=>{if(r(re.recipient)!==a)throw new i("Relay refund recipient does not match the agent wallet. Request a new quote.");return pe(re.deadline)})}),we=V.reduce((c,E)=>Math.min(c,E),F),G=Math.min(A,we-le),ee=()=>{if(Date.now()/1e3>=G)throw new i("The Relay quote expired or its order/refund deadline leaves too little time to sign and send. Request a fresh bridge quote.")};ee();let v=R(N.payments).map(t),ne=t(t(C.protocol).v2),ge=t(t(k.protocol).v2),H=t(j.paymentDetails);y(N.chainId===ge.chainId&&v.length===1&&R(N.calls).length===0&&r(v[0].recipient)===m&&r(v[0].currency)===l&&q(v[0].minimumAmount)===S.amount&&q(v[0].expectedAmount)===f.amount&&H.chainId===ne.chainId&&r(H.currency)===I&&q(H.amount)===u),y(r(H.depository)===U&&r(ne.depository)===U);let O=R(w.steps).map(t);y(O.length===1&&O[0].kind==="transaction"&&O[0].id==="deposit"&&O[0].requestId===T);let M=R(O[0].items).map(t);y(M.length===1&&M[0].status==="incomplete");let $=t(M[0].data),te=t(M[0].check);if(y(te.method==="GET"&&te.endpoint===`/intents/status/v3?requestId=${T}`&&$.chainId===h&&r($.from)===a&&r($.to)===U&&q($.value)===u),typeof $.data!="string"||!/^0x[0-9a-fA-F]{136}$/.test($.data))throw new i("Relay returned unexpected native deposit calldata.");let ie=ke({abi:Re,data:$.data});y(r(ie.args[0])===a&&ie.args[1].toLowerCase()===W.toLowerCase());let oe=[e.unsignedTx({to:U,data:$.data,value:u,chainId:h,description:`Deposit native ETH for Relay request ${T}.`})],se=t(w.fees);for(let c of Object.values(se))_(c);let J=await e.preview(oe,a);ee();let Ie=J.changes.map(c=>{let E=c.amount.startsWith("-");return`${E?"-":""}${e.formatAmount(E?c.amount.slice(1):c.amount,c.token.decimals)} ${c.token.symbol}`}).join(", ");return{txs:oe,requestId:T,orderId:W,recipient:m,originChainId:h,destinationChainId:d,expiresAt:String(G),orderDeadline:String(F),refundDeadlines:V.map(String),amountIn:P,amountOut:f,minAmountOut:S,fees:se,expandedPriceImpact:x.expandedPriceImpact,timeEstimate:x.timeEstimate,preview:J,summary:`Bridge to ${m} on chain ${d}; asset ${f.token.address} on chain ${f.token.chainId} (${f.token.symbol}); expected ${f.amount}, minimum ${S.amount} base units (${f.token.decimals} decimals). Order deadline ${F} Unix seconds; refund deadlines ${V.join(", ")} Unix seconds; accept before ${G} Unix seconds to reserve ${le}s to sign and send. Origin preview: ${Ie||J.summary}. Relay route fees are included in the quote; origin gas is separate. Poll relay_status with requestId ${T} after local submission; destination fulfillment is not yet confirmed.`}}return{tools:[{name:"relay_bridge_out",inputSchema:{type:"object",required:["destinationChainId","amount"],additionalProperties:!1,properties:{destinationChainId:{type:"integer",minimum:1},amount:{type:"string",pattern:"^[1-9][0-9]*$"},recipient:{type:"string"},originCurrency:{type:"string",const:D},slippageBps:{type:"integer",minimum:0,maximum:9999,default:K},destinationCurrency:{type:"string"},minAmountOut:{type:"string",pattern:"^[0-9]+$"}}},execute:async(o,n)=>{try{return await ye(o,n)}catch(a){throw new i(e.plainError(a))}}},{name:"relay_status",inputSchema:{type:"object",required:["requestId"],additionalProperties:!1,properties:{requestId:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"}}},execute:async o=>Q(B(o.requestId))}],positions:async o=>{let n=r(o),a=new Map,m=new Set,d;do{let I=new URLSearchParams({user:n,originChainId:String(h),limit:"100"});d&&I.set("continuation",d);let l=await s(`/requests/v3?${I}`);for(let u of R(l.requests).map(t)){let b=Y(u.depositAddress)?u.depositAddress.depositor:void 0;if(![u.user,u.sender,b].some(T=>typeof T=="string"&&T.toLowerCase()===n))throw new i("Relay returned a request for another wallet.");let g=B(u.id),p=await Q(g);if(p.settled)continue;let C=t(u.data),k=t(t(C.route).quoted),A=_(t(k.origin).inputCurrency),w=_(t(k.destination).outputCurrency);y(A.token.chainId===h&&w.token.chainId!==h),p.originChainId!==void 0&&y(p.originChainId===A.token.chainId),p.destinationChainId!==void 0&&y(p.destinationChainId===w.token.chainId),a.set(g,{module:"relay",id:g,chainId:h,assets:[A],description:`Relay ${p.status}: ${A.amount} ${A.token.symbol} base units (${A.token.decimals} decimals) toward ${r(u.recipient)} on chain ${w.token.chainId}. ${p.summary}`})}if(l.continuation!==void 0&&l.continuation!==null&&typeof l.continuation!="string")throw new i("Relay returned invalid pagination.");if(d=typeof l.continuation=="string"&&l.continuation?l.continuation:void 0,d){if(m.has(d))throw new i("Relay repeated its pagination cursor. Pending positions are incomplete.");m.add(d)}}while(d);return[...a.values()]}}};export{Oe as a};
@@ -1 +0,0 @@
1
- import{b as z}from"./MOVRI5IV.js";import{c as q}from"./MK6L6TGI.js";import{d as L}from"./BOFA26WU.js";import{a as _,b as D}from"./I5CQ64EU.js";import{a as B,i as F}from"./ZUC6ILK2.js";import{a as i}from"./NGAI6GTU.js";import{encodeAbiParameters as de,encodeFunctionData as Q,erc20Abi as j,getAddress as Y,isAddress as se,keccak256 as K,parseAbi as le,parseAbiParameters as ce,zeroAddress as G}from"viem";var x=B,C=Y(F[x].hoodlock.airdrop.address),J="https://hoodlock.tech",T=25e4,me=256,ue=604800n,ye=30n,W=250000000000000000n,V=0xffffffffn,ge=(1n<<64n)-1n,Z=(1n<<128n)-1n,ee="0x0000000000000000000000000000000000000000000000000000000000000000",fe="0x1111111111111111111111111111111111111111",pe=ce("uint256, address, uint256"),v=le(["function quote(uint32 maxClaims) view returns (uint256)","function create(address token, bytes32 merkleRoot, uint256 total, uint32 maxClaims, uint64 endTime, string uri) payable returns (uint256 id)","function claim(uint256 id, uint256 index, address account, uint256 amount, bytes32[] proof)","function getAirdrop(uint256 id) view returns (address creator, uint64 endTime, uint32 maxClaims, address token, uint32 claims, bool swept, bytes32 merkleRoot, uint128 total, uint128 remaining)","function isClaimed(uint256 id, uint256 index) view returns (bool)"]);function be(o,e,t){let n=e.trim();if(n.startsWith("-")){let r=n.slice(1);return`-${o.formatAmount(r,t)}`}let d=n.startsWith("+")?n.slice(1):n;return o.formatAmount(d,t)}function oe(o,e){if(!e.changes.length)return e.summary;let t=e.changes.map(n=>`${be(o,n.amount,n.token.decimals)} ${n.token.symbol}`).join(", ");return`${e.summary} (${t})`}async function xe(o,e){try{let[t,n]=await Promise.all([o.readContract({address:e,abi:j,functionName:"symbol"}),o.readContract({address:e,abi:j,functionName:"decimals"})]),d=typeof t=="string"&&t.trim()?t.trim():"TOKEN",r=Number(n);return{symbol:d,decimals:Number.isInteger(r)&&r>=0&&r<=255?r:18}}catch{return{symbol:"TOKEN",decimals:18}}}function w(o,e,t){if(typeof e=="string"&&e.includes(".")){if(t?.decimals===void 0)throw new i(`Decimal string amount "${e}" requires explicit token decimals; amount inputs are base-unit integer strings by default.`);let d=t.rounding!==void 0?D(e,t.decimals,t.rounding):o?o.parseAmount(e,t.decimals):D(e,t.decimals),r=_(d);if(r<=0n)throw new i("Airdrop entry amount must be positive.");return r}let n;try{if(typeof e=="bigint")n=e;else if(typeof e=="string")n=_(e.trim());else throw new i("Amount must be a non-negative integer string in base units.")}catch(d){throw d instanceof i?d:new i(`Invalid airdrop amount "${String(e)}".`,{cause:d})}if(n<=0n)throw new i("Airdrop entry amount must be strictly positive (> 0).");return n}function I(o,e){try{let t=typeof o=="bigint"?o:BigInt(String(o).trim());if(t<0n)throw new i(`${e} must be non-negative.`);return t}catch(t){throw t instanceof i?t:new i(`Invalid ${e}: ${String(o)}`,{cause:t})}}function A(o,e){if(typeof o!="string"||!se(o,{strict:!1}))throw new i(`Invalid ${e} address "${String(o)}": token/account must be a valid EVM address, never a symbol.`);return Y(o)}function M(o,e,t){let n=typeof o=="bigint"?o:BigInt(o);if(n<0n||n>V)throw new i(`Airdrop leaf index must be in 0..${V.toString()}.`);let d=A(e,"account"),r=w(void 0,t),l=de(pe,[n,d,r]);return K(K(l))}function ne(o,e){let t=o;for(let n of e)t=L(t,n);return t}function Re(o){try{let e=M(o.index,o.account,o.amount);return ne(e,o.proof).toLowerCase()===o.root.toLowerCase()}catch{return!1}}function O(o,e){if(!Array.isArray(o)||o.length===0)throw new i("Airdrop entries list cannot be empty; maxClaims must be in 1..250000.");if(o.length>T)throw new i(`Airdrop entries length (${o.length}) exceeds maxClaims limit of ${T}.`);let t=[],n=0n;for(let a=0;a<o.length;a+=1){let s=o[a];if(!s)throw new i(`Missing airdrop entry at position ${a}.`);let c=s.index??a;if(!Number.isInteger(c)||c!==a)throw new i(`Airdrop entry index at position ${a} must be contiguous ${a} (got ${String(c)}).`);let u=A(s.account,`entries[${a}].account`),g=w(e?.context,s.amount,e);n+=g,t.push({index:c,account:u,amount:g.toString()})}if(n<=0n||n>Z)throw new i("Airdrop total amount must be > 0 and fit in uint128.");let d=t.map(a=>M(a.index,a.account,a.amount)),r=[d];for(;r[r.length-1].length>1;){let a=r[r.length-1],s=[];for(let c=0;c<a.length;c+=2){let u=a[c],g=a[c+1];g===void 0?s.push(u):s.push(L(u,g))}r.push(s)}let l=r[r.length-1][0];if(l.toLowerCase()===ee)throw new i("Computed Merkle root cannot be zero.");let f=r.length>1?r[1]:r[0],m=t.map((a,s)=>{let c=[],u=s;for(let g=0;g<r.length-1;g+=1){let y=r[g],b=u^1;b<y.length&&c.push(y[b]),u=Math.floor(u/2)}return{index:a.index,account:a.account,amount:a.amount,leaf:d[s],proof:c}}),p={format:"openzeppelin-standard-merkle-tree-v1",leafEncoding:["uint256","address","uint256"],root:l,totalAmount:n.toString(),maxClaims:t.length,values:t.map(a=>[a.index,a.account,a.amount]),entries:t};return{root:l,leaves:d,level1:f,totalAmount:n.toString(),maxClaims:t.length,entries:t,proofs:m,list:p}}function Ae(o){if(!o||!Array.isArray(o.entries)&&!Array.isArray(o.values))throw new i("Saved airdrop list is missing entries/values.");let e=Array.isArray(o.entries)&&o.entries.length>0?o.entries:o.values.map(([n,d,r])=>({index:n,account:d,amount:r})),t=O(e);if(o.root&&t.root.toLowerCase()!==o.root.toLowerCase())throw new i(`Rebuilt tree root ${t.root} does not match saved list root ${o.root}.`);if(o.maxClaims!==void 0&&t.maxClaims!==o.maxClaims)throw new i(`Rebuilt maxClaims (${t.maxClaims}) does not match saved list maxClaims (${o.maxClaims}).`);if(o.totalAmount!==void 0&&t.totalAmount!==o.totalAmount)throw new i(`Rebuilt totalAmount (${t.totalAmount}) does not match saved list totalAmount (${o.totalAmount}).`);return t}async function te(o,e){return q(o.http,e,{method:"GET"},t=>t!==null&&typeof t=="object")}async function he(o,e,t){let n=A(e.token,"token");if(n===G)throw new i("Airdrop token cannot be the zero address.");let d=O(e.entries,{decimals:e.decimals,rounding:e.rounding,context:o}),r=e.maxClaims??d.maxClaims;if(!Number.isInteger(r)||r<1||r>T||r!==d.maxClaims)throw new i(`maxClaims (${String(r)}) must equal entries.length (${d.maxClaims}) and be in 1..${T}.`);let l=BigInt(d.totalAmount),f=e.total!==void 0?w(o,e.total,{decimals:e.decimals,rounding:e.rounding}):l;if(f<l)throw new i(`Airdrop total (${f.toString()}) is less than the sum of entry amounts (${l.toString()}).`);if(f<=0n||f>Z)throw new i("Airdrop total must be positive and fit in uint128.");let m=e.uri??"",p=new TextEncoder().encode(m).byteLength;if(p>me)throw new i(`Airdrop URI length (${p} bytes) exceeds 256-byte limit.`);let a=e.endTime!==void 0?I(e.endTime,"endTime"):0n;if(a>ge)throw new i("endTime exceeds uint64 maximum.");let s=o.clientFor(x),c=await s.getCode({address:n});if(!c||c==="0x")throw new i(`Token ${n} has no contract code on chain ${x}.`);let u;if(a!==0n){let E=(await s.getBlock()).timestamp,N=e.inclusionMargin!==void 0?I(e.inclusionMargin,"inclusionMargin"):ye;if(N<=0n)throw new i("inclusionMargin must be at least 1 second to leave room for signing and inclusion after the already-mined block.");let R=E+N,S=e.inclusionTime!==void 0?I(e.inclusionTime,"inclusionTime"):R;if(S<R)throw new i(`inclusionTime (${S.toString()}) must be after the already-mined block (${E.toString()}) with room for signing and inclusion (>= ${R.toString()}).`);u=S;let U=S+ue;if(a<U)throw new i(`endTime (${a.toString()}) is too short (window too short): must be 0 or at least inclusion time (${S.toString()}) + 604800 (7 days >= ${U.toString()}, after already-mined block.timestamp ${E.toString()}).`)}let g=await s.readContract({address:C,abi:v,functionName:"quote",args:[r]}),y=typeof g=="bigint"?g:BigInt(String(g));if(y<0n||y>W)throw new i(`HoodLock quote(uint32) fee (${y.toString()}) exceeds max fee cap (${W.toString()}).`);let b=o.formatAmount(y.toString(),z.decimals),h=o.approval(n,C,f.toString(),x),k=o.unsignedTx({chainId:x,to:C,data:Q({abi:v,functionName:"create",args:[n,d.root,f,r,a,m]}),value:y.toString(),description:`Create HoodLock airdrop (${r} claims, total ${f.toString()}, quote fee ${b} ETH (${y.toString()} wei))`}),$=[h,k],H=A(e.account??t??fe,"wallet"),P=await o.preview($,H),ie=y>0n?` Quote fee: -${b} ETH (${b} ETH / ${y.toString()} wei).`:" Quote fee: 0 ETH (0 wei).",ae=`${oe(o,P)}${ie}`;return{kind:"hoodlock_airdrop_create",chainId:x,token:n,merkleRoot:d.root,totalAmount:d.totalAmount,total:f.toString(),maxClaims:r,endTime:a,...u!==void 0?{inclusionTime:u}:{},uri:m,quoteFee:y,list:d.list,proofs:d.proofs,txs:$,preview:P,summary:ae}}async function X(o,e,t,n){if(n.savedProof){let m=A(n.savedProof.account,"savedProof.account");if(m!==t)throw new i(`savedProof account (${m}) does not match claim account (${t}).`);return{index:n.savedProof.index,amount:w(o,n.savedProof.amount),proof:n.savedProof.proof}}if(n.proof!==void 0&&n.index!==void 0&&n.amount!==void 0){let m=Number(n.index);if(!Number.isInteger(m)||m<0)throw new i(`Invalid claim index: ${String(n.index)}`);return{index:m,amount:w(o,n.amount),proof:n.proof}}if(n.list||n.entries){let p=(n.list?Ae(n.list):O(n.entries,{context:o})).proofs.find(a=>!(a.account.toLowerCase()!==t.toLowerCase()||n.index!==void 0&&a.index!==Number(n.index)));if(!p)throw new i(`Account ${t} was not found in the saved airdrop list.`);return{index:p.index,amount:w(o,p.amount),proof:p.proof}}let d=`${J}/api/airdrop/${e.toString()}/proof?address=${t}`,r=await te(o,d),l=r?.data??r;if(!l||l.index===void 0||l.amount===void 0||!Array.isArray(l.proof))throw new i(`No valid proof returned from HoodLock API for airdrop ${e.toString()} and account ${t}.`);let f=Number(l.index);if(!Number.isInteger(f)||f<0)throw new i(`Invalid index in API proof: ${String(l.index)}`);return{index:f,amount:w(o,l.amount),proof:l.proof}}async function re(o,e){let t=o.clientFor(x),n=await t.readContract({address:C,abi:v,functionName:"getAirdrop",args:[e.id]}),[d,r,l,f,m,p,a,,s]=n,c=BigInt(r),u=Number(l),g=Number(m),y=BigInt(s),b=A(f,"airdrop.token");if(d===G||a.toLowerCase()===ee)throw new i(`Airdrop ${e.id.toString()} does not exist.`);if(p)throw new i(`Airdrop ${e.id.toString()} has already been swept.`);if(c>0n&&(await t.getBlock()).timestamp>=c)throw new i(`Airdrop ${e.id.toString()} expired at timestamp ${c.toString()}.`);if(g>=u)throw new i(`Airdrop ${e.id.toString()} has reached maxClaims (${u}).`);let[h,k]=await Promise.all([t.readContract({address:C,abi:v,functionName:"isClaimed",args:[e.id,BigInt(e.index)]}),xe(t,b)]);if(h)throw new i(`Airdrop ${e.id.toString()} index ${e.index} has already been claimed.`);if(y<e.amount)throw new i(`Airdrop ${e.id.toString()} remaining balance (${y.toString()}) is less than claim amount (${e.amount.toString()}).`);let $=M(e.index,e.account,e.amount),H=ne($,e.proof);if(H.toLowerCase()!==a.toLowerCase())throw new i(`Computed Merkle root ${H} does not match on-chain airdrop root ${a} (bad proof).`);return{tokenAddress:b,tokenMeta:k,merkleRoot:a,leaf:$}}async function we(o,e){let{tokenAddress:t,tokenMeta:n,merkleRoot:d,leaf:r}=await re(o,e),l=e.caller??e.account,f=l.toLowerCase()!==e.account.toLowerCase(),m=o.formatAmount(e.amount.toString(),n.decimals),p=o.unsignedTx({chainId:x,to:C,data:Q({abi:v,functionName:"claim",args:[e.id,BigInt(e.index),e.account,e.amount,[...e.proof]]}),value:"0",description:f?`Claim ${m} ${n.symbol} (${e.amount.toString()} base units) from HoodLock airdrop #${e.id.toString()} for recipient ${e.account} (caller ${l} pays gas only, token delta 0)`:`Claim ${m} ${n.symbol} (${e.amount.toString()} base units) from HoodLock airdrop #${e.id.toString()} for ${e.account}`}),a=[p],s=await o.preview(a,l),c,u,g=e.amount.toString(),y;if(f){let b=s.changes.filter(h=>h.amount.trim().startsWith("-"));c={...s,changes:b,summary:`${s.summary} Recipient ${e.account} receives ${m} ${n.symbol} (${e.amount.toString()} base units); caller ${l} change is 0 (gas only).`},u=`Third-party claim from HoodLock airdrop #${e.id.toString()} (index ${e.index}): recipient ${e.account} receives ${m} ${n.symbol} (${e.amount.toString()} base units of ${t}); caller ${l} own token change is 0 (gas only). ${s.summary}`,y="0"}else c=s,u=`Claim ${m} ${n.symbol} (${e.amount.toString()} base units of ${t}) from HoodLock airdrop #${e.id.toString()} (index ${e.index}) for recipient ${e.account}. ${oe(o,c)}`,y=e.amount.toString();return{kind:"hoodlock_airdrop_claim",chainId:x,id:e.id,index:e.index,account:e.account,recipient:e.account,caller:e.caller,token:t,amount:e.amount.toString(),recipientDelta:g,senderDelta:y,leaf:r,merkleRoot:d,proof:[...e.proof],tx:p,txs:a,preview:c,summary:u}}async function ke(o,e,t){let n=A(e.account??t??"","account"),d=e.caller!==void 0?A(e.caller,"caller"):t!==void 0?A(t,"wallet"):void 0;if(e.id!==void 0){let s=I(e.id,"id"),c=await X(o,s,n,e);return we(o,{id:s,index:c.index,account:n,caller:d,amount:c.amount,proof:c.proof})}let r=`${J}/api/airdrop/eligible?address=${n}`,l=await te(o,r),f=Array.isArray(l)?l:l?.claimable??l?.eligible??l?.airdrops??l?.claims??[],m=[];for(let s of f){let c=s.id??s.airdropId;if(c!==void 0)try{let u=I(c,"eligible.id"),g,y,b;if(s.index!==void 0&&s.amount!==void 0&&Array.isArray(s.proof))g=Number(s.index),y=w(o,s.amount),b=s.proof;else{let k=await X(o,u,n,{id:u,account:n});g=k.index,y=k.amount,b=k.proof}let h=await re(o,{id:u,index:g,account:n,amount:y,proof:b});m.push({id:u.toString(),index:g,account:n,token:h.tokenAddress,amount:y.toString(),proof:[...b],merkleRoot:h.merkleRoot})}catch{continue}}let p=m.length===0?`No eligible HoodLock airdrops found for ${n}.`:`Found ${m.length} eligible HoodLock airdrop(s) for ${n}: ${m.map(s=>`#${s.id}`).join(", ")}. Choose an id and call hoodlock_airdrop_claim with that id to build a claim transaction.`;return{kind:"hoodlock_airdrop_eligible",chainId:x,account:n,recipient:n,caller:d,recipientDelta:"0",senderDelta:"0",eligible:m,claims:[],tx:void 0,txs:[],preview:{txs:[],changes:[],summary:p},summary:p}}var Ce=o=>({tools:[{name:"hoodlock_airdrop_create",inputSchema:{type:"object",required:["token","entries"],additionalProperties:!1,properties:{token:{type:"string",description:"ERC-20 token contract address on chain 4663"},entries:{type:"array",description:"Ordered airdrop entries [{ index?, account, amount }] with base-unit integer string amounts"},total:{type:"string",description:"Optional total funded token amount as a base-unit integer string (>= sum of entries)"},maxClaims:{type:"number",description:"Optional claim count (must equal entries.length in 1..250000)"},endTime:{type:"number",description:"Unix timestamp in seconds (0 for non-sweepable or >= inclusion time + 604800)"},inclusionTime:{type:"number",description:"Optional expected transaction inclusion Unix timestamp in seconds (> already-mined block.timestamp)"},inclusionMargin:{type:"number",description:"Optional signing and inclusion margin in seconds above the already-mined block.timestamp (>= 1, default 30)"},uri:{type:"string",description:"Metadata URI (<= 256 UTF-8 bytes)"},decimals:{type:"number",description:"Optional token decimals when converting human decimal entry amounts via parseAmount"},rounding:{type:"string",enum:["floor","ceil"],description:"Optional rounding mode (floor or ceil) when converting decimal amounts"},account:{type:"string",description:"Optional creator wallet address for preview simulation"}}},execute:async(e,t)=>he(o,e,t)},{name:"hoodlock_airdrop_claim",inputSchema:{type:"object",required:["account"],additionalProperties:!1,properties:{id:{type:"string",description:"Optional airdrop ID (omit to query eligible airdrops)"},account:{type:"string",description:"Leaf recipient address that receives the tokens"},caller:{type:"string",description:"Optional caller/relayer address submitting the tx (pays gas only, receives 0 tokens)"},index:{type:"number",description:"Optional leaf index when supplying proof directly or selecting from list/entries"},amount:{type:"string",description:"Optional leaf amount as a base-unit integer string"},proof:{type:"array",items:{type:"string"},description:"Optional Merkle sibling proof array of 32-byte hex strings"},savedProof:{type:"object",description:"Optional saved proof item ({ index, account, amount, leaf?, proof }) from hoodlock_airdrop_create"},list:{type:"object",description:"Optional saved airdrop list ({ format, leafEncoding, root, totalAmount, maxClaims, values, entries }) to rebuild proof locally"},entries:{type:"array",description:"Optional airdrop entries array ([{ index?, account, amount }]) to rebuild proof locally"}}},execute:async(e,t)=>ke(o,e,t)}]}),_e=Ce;export{j as a,x as b,C as c,J as d,T as e,me as f,ue as g,ye as h,W as i,v as j,be as k,M as l,ne as m,Re as n,O as o,Ae as p,Ce as q,_e as r};
@@ -1 +0,0 @@
1
- import{a as H}from"./I5CQ64EU.js";import{a as u,i as q}from"./ZUC6ILK2.js";import{a as r}from"./NGAI6GTU.js";import{encodeFunctionData as B,erc20Abi as $,isAddress as G,parseAbi as Q,zeroHash as E}from"viem";var O=q[u].meridian,M=O.PredictionMarketEscrow.address,y={address:O.CollateralToken_USDe.address,chainId:u,symbol:"USDe",decimals:18},z="https://api.predict.meridian.xyz/graphql",J="query GetOpenConditions($now: Int!) { conditions(first: 20, filter: { chainId: 4663, settled: false, public: true, endTime: { gte: $now } }) { totalCount nodes { conditionId resolver question shortName optionName endTime estimatedPrice openInterest similarMarketVolume24h marketType } } }",V="query GetHolderPositions($holder: Address!) { positions(first: 10, filter: { holder: $holder, chainId: 4663 }, orderBy: { field: CREATED_AT, direction: DESC }) { nodes { id chainId holder side balance tokenAddress: token pickConfigId userCollateral totalPayout prediction { predictionId } pickConfig { pickConfigId marketAddress: escrow resolved result } } } }",D=Q(["function getClaimableAmount(bytes32 pickConfigId, address positionToken, uint256 tokenAmount) view returns (uint256)","function settle(bytes32 predictionId, bytes32 refCode)","function redeem(address positionToken, uint256 amount, bytes32 refCode) returns (uint256)"]),W=(1n<<256n)-1n,Y={type:"string",pattern:"^0x[0-9a-fA-F]{40}$"},K={type:"string",pattern:"^0x[0-9a-fA-F]{64}$"};function f(n){if(!n||typeof n!="object"||Array.isArray(n))throw new r("Meridian returned an unexpected response.");return n}function b(n){if(typeof n!="string"||!n.trim())throw new r("Meridian returned an invalid text field.");return n}function w(n){if(typeof n!="string"||!G(n,{strict:!1}))throw new r("Provide a valid Meridian contract or wallet address.");return n}function v(n){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new r("Provide a valid Meridian prediction or pick configuration ID.");return n}function x(n){if(typeof n!="string")throw new r("Meridian amounts must be integer strings in base units.");let m=H(n);if(m>W)throw new r("Meridian amount exceeds the uint256 range.");return m.toString()}function U(n){if(typeof n!="bigint"||n<0n)throw new r("Meridian returned an invalid on-chain amount.");return x(n.toString())}function N(n,m){return n.toLowerCase()===m.toLowerCase()}function X(n,m){return n.chainId===m.chainId&&N(n.address,m.address)}function Z(n,m){let d=f(n),p=f(d.pickConfig),C=w(d.holder),I=w(p.marketAddress);if(d.chainId!==u||!N(C,m))throw new r("Meridian returned a position for a different wallet or chain.");if(!N(I,M))throw new r("This Meridian position uses an unsupported escrow contract.");if(typeof p.resolved!="boolean"||p.result!==null&&typeof p.result!="string")throw new r("Meridian returned an invalid resolution.");let k=v(d.pickConfigId);if(v(p.pickConfigId).toLowerCase()!==k.toLowerCase())throw new r("Meridian returned mismatched pick configuration IDs.");if(d.side!=="PREDICTOR"&&d.side!=="COUNTERPARTY")throw new r("Meridian returned an invalid position side.");return{id:b(d.id),chainId:u,holder:C,side:d.side,balance:x(d.balance),tokenAddress:w(d.tokenAddress),pickConfigId:k,userCollateral:x(d.userCollateral),totalPayout:x(d.totalPayout),prediction:{predictionId:v(f(d.prediction).predictionId)},pickConfig:{pickConfigId:k,marketAddress:I,resolved:p.resolved,result:p.result}}}var ee=n=>{async function m(o){try{return await o()}catch(i){throw new r(n.plainError(i))}}async function d(){let o=n.clientFor(u);if(await o.getChainId()!==u)throw new r("Meridian requires an RPC on chain 4663.");return o}async function p(o,i,s){let e=new URL(z);e.searchParams.set("op",o),e.searchParams.set("query",i),e.searchParams.set("variables",JSON.stringify(s));let t=await n.http(e.toString(),{method:"GET",headers:{Accept:"application/json"}});if(!t.ok)throw new r(`Meridian returned HTTP ${t.status}. Please try again.`);let a;try{a=await t.json()}catch{throw new r("Meridian returned malformed JSON.")}let c=f(a);if(c.errors!==void 0&&(!Array.isArray(c.errors)||c.errors.length>0))throw new r("Meridian could not complete the GraphQL query. Please try again.");return f(c.data)}async function C(o,i){w(o);let s=await p("GetHolderPositions",V,{holder:o}),e=f(s.positions).nodes;if(!Array.isArray(e)||e.length>10)throw new r("Meridian returned an invalid positions list.");return(i===void 0?e:e.filter(a=>{let c=f(a).tokenAddress;return typeof c=="string"&&N(c,i)})).map(a=>Z(a,o))}async function I(o){let i=await C(o);if(i.length===0)return[];let s=await d();return Promise.all(i.map(async e=>{let[t,a,c]=await Promise.all([s.readContract({address:e.tokenAddress,abi:$,functionName:"balanceOf",args:[o]}),s.readContract({address:e.tokenAddress,abi:$,functionName:"decimals"}),s.readContract({address:e.tokenAddress,abi:$,functionName:"symbol"})]);if(!Number.isInteger(a)||a<0||a>255)throw new r("Meridian returned invalid position token decimals.");let g={address:e.tokenAddress,chainId:u,decimals:a,symbol:b(c)},A=U(t),h=e.pickConfig.resolved?{token:{...y},amount:U(await s.readContract({address:M,abi:D,functionName:"getClaimableAmount",args:[e.pickConfigId,e.tokenAddress,BigInt(A)]}))}:null;return{module:"meridian",id:e.id,chainId:u,assets:[{token:g,amount:A}],description:`Meridian ${e.side.toLowerCase()} position; ${e.pickConfig.resolved?e.pickConfig.result??"resolved":"unresolved"}.`,holder:e.holder,side:e.side,pickConfigId:e.pickConfigId,prediction:e.prediction,pickConfig:e.pickConfig,userCollateral:{token:{...y},amount:e.userCollateral},totalPayout:{token:{...y},amount:e.totalPayout},claimable:h}}))}function k(o){return n.unsignedTx({to:M,chainId:u,value:"0",data:B({abi:D,functionName:"settle",args:[o,E]}),description:`Settle Meridian prediction ${o}.`})}function R(o,i,s){let e=i.changes.map(t=>{let a=t.amount.startsWith("-"),c=n.formatAmount(a?t.amount.slice(1):t.amount,t.token.decimals);return`${a?"-":"+"}${c} ${t.token.symbol} (${t.token.address}, chain ${t.token.chainId})`});return{txs:o,preview:i,summary:`${s} ${i.summary}${e.length?` Changes: ${e.join("; ")}.`:""}`}}async function j(){let o=await p("GetOpenConditions",J,{now:Math.floor(Date.now()/1e3)}),i=f(o.conditions);if(!Number.isSafeInteger(i.totalCount)||i.totalCount<0||!Array.isArray(i.nodes)||i.nodes.length>20)throw new r("Meridian returned an invalid markets list.");let s=i.nodes.map(e=>{let t=f(e);if(!Number.isSafeInteger(t.endTime)||t.endTime<0||t.estimatedPrice!==null&&(typeof t.estimatedPrice!="number"||!Number.isFinite(t.estimatedPrice)||t.estimatedPrice<0||t.estimatedPrice>1))throw new r("Meridian returned invalid market pricing or time.");return{conditionId:v(t.conditionId),resolver:w(t.resolver),question:b(t.question),shortName:t.shortName===null?null:b(t.shortName),optionName:t.optionName===null?null:b(t.optionName),endTime:String(t.endTime),estimatedPrice:t.estimatedPrice===null?null:String(t.estimatedPrice),marketType:t.marketType===null?null:b(t.marketType)}});return{chainId:u,collateral:{...y},totalCount:i.totalCount,markets:s,limit:20}}async function L(o,i){let s=w(o.positionToken),e=x(o.amount);if(BigInt(e)===0n)throw new r("Provide a positive Meridian redemption amount.");let t=await C(i,s);if(t.length!==1)throw new r("No unique Meridian position was found in the latest 10 indexed positions for this wallet.");let a=t[0],c=await d(),g=U(await c.readContract({address:s,abi:$,functionName:"balanceOf",args:[i]}));if(BigInt(e)>BigInt(g))throw new r("The redemption amount exceeds the wallet position balance.");let A=n.unsignedTx({to:M,chainId:u,value:"0",data:B({abi:D,functionName:"redeem",args:[s,BigInt(e),E]}),description:`Redeem ${e} Meridian position base units for USDe.`}),h=[A],P;try{P=await n.preview(h,i)}catch(l){if(!/\breverted\b/i.test(n.plainError(l)))throw l;if(a.pickConfig.resolved){let T=U(await c.readContract({address:M,abi:D,functionName:"getClaimableAmount",args:[a.pickConfigId,s,BigInt(e)]}));if(BigInt(T)===0n)throw l}h=[k(a.prediction.predictionId),A],P=await n.preview(h,i)}let _=P.changes.filter(l=>X(l.token,y)&&l.token.decimals===y.decimals).reduce((l,T)=>l+BigInt(T.amount),0n),F=P.changes.filter(l=>l.token.chainId===u&&N(l.token.address,s)).reduce((l,T)=>l+BigInt(T.amount),0n);if(_<=0n||F!==-BigInt(e))throw new r("Meridian preview did not show the requested position burn and a positive USDe payout.");return R(h,P,h.length===2?"Settle the prediction, then redeem for USDe. Unsigned transactions only.":"Redeem the position for USDe. Unsigned transaction only.")}function S(o,i,s,e,t){return{name:o,inputSchema:{type:"object",properties:i,required:s,additionalProperties:!1,description:e},execute:(a,c)=>m(async()=>{if(f(a),w(c),Object.keys(a).some(g=>!Object.hasOwn(i,g))||s.some(g=>a[g]===void 0))throw new r("Provide only the required Meridian tool inputs.");return t(a,c)})}}return{tools:[S("meridian_browse",{},[],"Browse up to 20 open Meridian conditions with USDe collateral.",j),S("meridian_positions",{},[],"Read the latest 10 indexed Meridian positions; this is not a complete portfolio scan.",async(o,i)=>({positions:await I(i),limit:10,scope:"Latest indexed positions only."})),S("meridian_settle",{predictionId:K},["predictionId"],"Preview an unsigned unilateral settlement; unresolved or already settled predictions may revert.",async(o,i)=>{let s=k(v(o.predictionId));await d();let e=[s];return R(e,await n.preview(e,i),"Settle the Meridian prediction. Unsigned transaction only.")}),S("meridian_redeem",{positionToken:Y,amount:{type:"string",pattern:"^[0-9]+$",description:"Position token amount in base units."}},["positionToken","amount"],"Preview redemption from the latest 10 indexed positions, including settlement first if required. No approval or typed signature.",L)],positions:o=>m(()=>I(o))}},re=ee;export{ee as a,re as b};
@@ -1 +0,0 @@
1
- import{b as qe,o as se}from"./2IRORNOH.js";import{a as P}from"./GDP4JSAX.js";import{a as Ae}from"./A5ITAEUQ.js";import{a as be}from"./I5CQ64EU.js";import{a as q,i as ge}from"./ZUC6ILK2.js";import{a as t}from"./NGAI6GTU.js";import{decodeFunctionData as Re,erc20Abi as Ce,isAddress as Pe,parseAbi as Ee}from"viem";var Oe="https://api.relay.link",T="0x0000000000000000000000000000000000000000",Be=60,$e=30,_e=Ee(["function depositNative(address depositor, bytes32 id) payable"]),n=ge[q].relay.depository.address.toLowerCase(),Y="0x59916da825d2d2ec1bf878d71c88826f6633ecca",Te=new Map([[1,{chainId:"ethereum",depository:n}],[10,{chainId:"optimism",depository:n}],[25,{chainId:"cronos",depository:Y}],[56,{chainId:"bnb",depository:n}],[100,{chainId:"gnosis",depository:n}],[130,{chainId:"unichain",depository:n}],[137,{chainId:"polygon",depository:n}],[143,{chainId:"monad",depository:n}],[146,{chainId:"sonic",depository:n}],[169,{chainId:"manta",depository:n}],[196,{chainId:"xlayer",depository:n}],[288,{chainId:"boba",depository:n}],[324,{chainId:"zksync",depository:n}],[360,{chainId:"shape",depository:n}],[480,{chainId:"worldchain",depository:n}],[747,{chainId:"flow",depository:n}],[988,{chainId:"stable",depository:n}],[999,{chainId:"hyperevm",depository:n}],[1088,{chainId:"metis",depository:Y}],[1135,{chainId:"lisk",depository:n}],[1868,{chainId:"soneium",depository:n}],[2020,{chainId:"ronin",depository:n}],[2741,{chainId:"abstract",depository:n}],[2818,{chainId:"morph",depository:n}],[4217,{chainId:"tempo",depository:n}],[4326,{chainId:"megaeth",depository:n}],[5e3,{chainId:"mantle",depository:Y}],[5031,{chainId:"somnia",depository:n}],[5042,{chainId:"arc",depository:n}],[8453,{chainId:"base",depository:n}],[9745,{chainId:"plasma",depository:n}],[33139,{chainId:"apechain",depository:n}],[34443,{chainId:"mode",depository:n}],[42018,{chainId:"mythos",depository:n}],[42161,{chainId:"arbitrum",depository:n}],[42220,{chainId:"celo",depository:n}],[43114,{chainId:"avalanche",depository:n}],[48900,{chainId:"zircuit",depository:n}],[57073,{chainId:"ink",depository:n}],[59144,{chainId:"linea",depository:Y}],[60808,{chainId:"bob",depository:n}],[80094,{chainId:"berachain",depository:n}],[97477,{chainId:"doma",depository:n}],[98866,{chainId:"plume",depository:n}],[534352,{chainId:"scroll",depository:n}],[685689,{chainId:"gensyn",depository:n}],[747474,{chainId:"katana",depository:n}],[5064014,{chainId:"ethereal",depository:n}],[7777777,{chainId:"zora",depository:n}]]);function Qe(e){return Te.get(e)?.depository}var ae={type:"string",pattern:"^[0-9]+$"},J={type:"string",pattern:"^0x[0-9a-fA-F]{40}$"};function s(e){if(!e||typeof e!="object"||Array.isArray(e))throw new t("Relay returned an unexpected response.");return e}function E(e){if(typeof e!="string"||!Pe(e,{strict:!1}))throw new t("Provide a token or wallet address.");return e.toLowerCase()}function I(e){let o=E(e);return o===P?T:o}function w(e,o){return E(e)===E(o)}function l(e){if(typeof e!="string")throw new t("Provide a decimal base-unit amount string.");return be(e),e}function X(e){let o=l(e);if(BigInt(o)<=0n)throw new t("Provide a positive base-unit amount.");return o}function Me(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new t("Provide a positive integer origin chain ID.");return e}function ke(e,o){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new t(`${o} is missing or invalid.`);return e}async function z(e,o,c,i,p){let a=s(c);if(a.chainId!==i||I(a.address)!==p||typeof a.symbol!="string"||!/^[A-Za-z0-9._-]{1,32}$/.test(a.symbol))throw new t("Relay quote token metadata does not match the requested chain and address.");if(p===T){if(a.decimals!==18)throw new t("Native token decimals must be 18.");return{address:P,chainId:i,symbol:a.symbol,decimals:18}}let g=`${i}:${p}`,m=o.get(g);if(m===void 0){let d=await e.clientFor(i).readContract({address:p,abi:Ce,functionName:"decimals"}),f=typeof d=="bigint"?Number(d):d;if(typeof f!="number"||!Number.isInteger(f)||f<0||f>255)throw new t("Could not read valid ERC-20 decimals() on-chain.");m=f,o.set(g,m)}return{address:p,chainId:i,symbol:a.symbol,decimals:m}}async function Fe(e,o,c,i,p,a,g){if(c.swap===void 0)return[];let m=s(c.swap),d=s(m.from);if(d.chainId!==p)throw new t("The swap prerequisite token must be on the origin chain.");let f=await z(e,o,d,p,I(d.address)),O=a===T?P:a;if(w(f.address,O))throw new t("The swap prerequisite must use a different input token.");let de=X(m.amountIn),y=m.slippageBps;if(y!==void 0&&(typeof y!="number"||!Number.isInteger(y)||y<0||y>1e4))throw new t("Provide swap slippage in basis points from 0 to 10000.");let v=await e.quoteSwap({from:f.address,to:O,amountIn:de,...y===void 0?{}:{slippageBps:y}},i);if(BigInt(l(v.expiresAt))<=BigInt(Math.floor(Date.now()/1e3)))throw new t("The swap prerequisite quote expired. Request a fresh quote.");if(BigInt(l(v.minAmountOut))<BigInt(g))throw new t("The swap prerequisite minimum cannot cover the bridge amount.");let R=await e.buildSwap(v.quoteId,i);if(!("txs"in R)||!R.txs.length)throw new t("The swap prerequisite must return unsigned transactions.");if(R.txs.some(x=>x.chainId!==p))throw new t("The injected swap coordinator does not support this origin chain.");return R.txs.map(x=>e.unsignedTx(x))}async function je(e,o,c){Ae(c);let i=Me(o.originChainId);if(i===q)throw new t("Inbound bridging requires an origin chain other than 4663.");let p=Te.get(i);if(!p)throw new t("Relay inbound does not support this origin chain.");if(o.destinationChainId!==void 0&&o.destinationChainId!==q)throw new t("Inbound bridge destination must be chain 4663.");let a=I(o.originCurrency??P),g=I(o.destinationCurrency??P),m=E(o.recipient??c),d=X(o.amount),f=o.minAmountOut===void 0?void 0:l(o.minAmountOut),O=o.slippageBps===void 0?qe:o.slippageBps;if(se("0",O),await e.clientFor(i).getChainId()!==i)throw new t("The RPC chain does not match the inbound origin chain.");let y=new Map,v=await Fe(e,y,o,c,i,a,d),R,x=process.env.OAK_RELAY_API_KEY?.trim();try{let r=await e.http(`${Oe}/quote/v2`,{method:"POST",headers:{"content-type":"application/json","user-agent":"oak-core/0.1.0",...x?{"x-api-key":x}:{}},body:JSON.stringify({user:c,recipient:m,originChainId:i,destinationChainId:q,originCurrency:a,destinationCurrency:g,amount:d,tradeType:"EXACT_INPUT"})});if(!r.ok)throw new Error("Relay HTTP failure.");R=await r.json()}catch{throw new t("Relay quote request failed. Please try again.")}let b=s(R);if(typeof b.requestId!="string"||!/^0x[0-9a-fA-F]{64}$/.test(b.requestId))throw new t("Relay returned an invalid request ID.");let D=b.requestId,ue=`/intents/status/v3?requestId=${D}`,B=s(b.details);if(!w(B.sender,c)||!w(B.recipient,m))throw new t("Relay quote sender or recipient does not match the request.");let ce=s(B.currencyIn),Z=s(B.currencyOut),ee=await z(e,y,ce.currency,i,a),N=await z(e,y,Z.currency,q,g);if(l(ce.amount)!==d)throw new t("Relay quote input amount does not match the request.");let _=X(Z.amount),S=X(Z.minimumAmount);if(BigInt(S)>BigInt(_))throw new t("Relay quote minimum output exceeds the expected output.");if(f!==void 0){if(S!==f)throw new t("Relay order minimum must exactly match minAmountOut. Request a new quote.")}else{let r=se(_,O);if(BigInt(S)<BigInt(r))throw new t("Relay order minimum is below the allowed slippage minimum. Request a new quote.")}let pe=s(s(b.fees).relayer),me=s(pe.currency),H=await z(e,y,me,i,I(me.address)),he={token:H,amount:l(pe.amount)},ye=s(B.refundCurrency),ve=s(ye.currency),M=await z(e,y,ve,i,a),te=l(ye.amount),F=s(s(b.protocol).v2);if(typeof F.orderId!="string"||!/^0x[0-9a-fA-F]{64}$/.test(F.orderId))throw new t("Relay returned an invalid order ID.");let K=F.orderId.toLowerCase(),G=s(F.paymentDetails),j=E(G.depository);if(G.chainId!==p.chainId||j!==p.depository||I(G.currency)!==a||l(G.amount)!==d)throw new t("Relay payment details do not match the origin chain depository and input.");let V=s(F.orderData),$=s(V.output);if($.chainId!=="robinhood"||!Array.isArray($.calls)||$.calls.length!==0||!Array.isArray($.payments)||$.payments.length!==1)throw new t("Relay order output does not match destination chain 4663.");let Q=s($.payments[0]);if(!w(Q.recipient,m)||I(Q.currency)!==g||l(Q.minimumAmount)!==S||l(Q.expectedAmount)!==_)throw new t("Relay order output payment does not match the quoted recipient and amounts.");let ne=ke($.deadline,"Relay order output deadline");if(!Array.isArray(V.inputs)||!V.inputs.length)throw new t("Relay order has no inputs.");let W=[],oe=[];for(let r of V.inputs){let u=s(r),k=s(u.payment);if(k.chainId!==p.chainId||I(k.currency)!==a||l(k.amount)!==d||!Array.isArray(u.refunds)||!u.refunds.length)throw new t("Relay order input does not match the quoted input.");for(let C of u.refunds){let h=s(C);if(!w(h.recipient,c))throw new t("Relay refund recipient does not match the agent wallet. Request a new quote.");if(W.push(ke(h.deadline,"Relay order refund deadline")),oe.push(l(h.minimumAmount)),!(h.chainId===p.chainId?w(h.recipient,c)&&I(h.currency)===a:h.chainId==="robinhood"&&I(h.currency)===g))throw new t("Relay order refund terms do not match the sender or recipient.")}}let le=Math.min(ne,...W),L=0,fe=()=>{let r=Math.floor(Date.now()/1e3),u=L||r+Be;if(le-r<=$e)throw new t("Relay order deadline is expired or too soon to sign safely. Request a new quote.");if(L=Math.min(u,le-$e),L<=r)throw new t("Relay quote expired before signing. Request a new quote.")};if(fe(),!Array.isArray(b.steps)||!b.steps.length)throw new t("Relay returned no origin transactions.");let A=[];for(let r of b.steps){let u=s(r);if(u.kind!=="transaction"||u.requestId!==D||!Array.isArray(u.items)||!u.items.length)throw new t("Relay returned an unsupported origin step.");for(let k of u.items){let C=s(k),h=s(C.data),re=s(C.check);if(C.status!=="incomplete"||h.chainId!==i||!w(h.from,c))throw new t("Relay transaction does not match the origin chain and sender.");if(re.method!=="GET"||re.endpoint!==ue)throw new t("Relay status endpoint does not match the request ID.");A.push(e.unsignedTx({to:E(h.to),data:h.data,value:l(h.value),chainId:i,description:`Relay inbound deposit for request ${D}; destination chain 4663.`}))}}if(!A.length)throw new t("Relay returned no origin transactions.");if(a===T&&A.length!==1)throw new t("Relay native deposit must be a single depositNative transaction.");if(a!==T&&A.length>2)throw new t("Relay ERC-20 deposit allows at most one exact-amount approval before depositNative.");for(let r of A.slice(0,-1)){if(!r.data.toLowerCase().startsWith("0x095ea7b3"))throw new t("Relay returned an unsupported prerequisite transaction.");let u=Re({abi:Ce,data:r.data});if(u.functionName!=="approve")throw new t("Relay returned an invalid approval.");let[k,C]=u.args;if(a===T||!w(r.to,a)||!w(k,j)||C!==BigInt(d)||r.value!=="0")throw new t("Relay approval must authorize the exact input amount for the origin depository.");r.description=`Approve exactly ${e.formatAmount(d,ee.decimals)} ${ee.symbol} (${d} base units of ${a}) for ${j} on chain ${i}.`}let U=A[A.length-1],xe=a===T?d:"0";if(!w(U.to,j)||U.value!==xe||!/^0x[0-9a-fA-F]{136}$/.test(U.data))throw new t("Relay deposit transaction does not target the origin depository with depositNative calldata.");let ie;try{ie=Re({abi:_e,data:U.data})}catch{throw new t("Relay deposit transaction must call depositNative(address,bytes32).")}if(ie.functionName!=="depositNative")throw new t("Relay deposit transaction must call depositNative(address,bytes32).");let[De,Ne]=ie.args;if(!w(De,c)||Ne.toLowerCase()!==K)throw new t("Relay depositNative depositor or orderId does not match the wallet and quoted protocol.v2.orderId.");U.description=`Relay inbound depositNative for order ${K} (request ${D}); destination chain 4663.`;let we=[...v,...A],Ie=await e.preview(we,c);fe();let Se=Ie.changes.map(r=>{let u=r.amount.startsWith("-");return`${u?"-":""}${e.formatAmount(u?r.amount.slice(1):r.amount,r.token.decimals)} ${r.token.symbol} (${r.token.address}, chain ${r.token.chainId})`});return{txs:we,preview:Ie,requestId:D,orderId:K,depository:j,originChainId:i,destinationChainId:q,recipient:m,amountIn:{token:ee,amount:d},amountOut:{token:N,amount:_},minAmountOut:S,relayerFee:he,refundCurrency:{token:M,amount:te,minimumAmounts:oe},orderDeadline:String(ne),refundDeadlines:W.map(String),expiresAt:String(L),status:"pending",statusEndpoint:ue,summary:`${v.length?"Swap prerequisite first, then ":""}Relay inbound from chain ${i} to chain 4663 for ${m}; expected ${e.formatAmount(_,N.decimals)} ${N.symbol}, minimum ${e.formatAmount(S,N.decimals)} ${N.symbol} (${N.address}). Quoted relay fee ${e.formatAmount(he.amount,H.decimals)} ${H.symbol} (${H.address}, chain ${i}); output is net of quoted fees. Order ${K} (request ${D}); output deadline ${ne}, refund deadlines ${W.join(", ")}, quote expires ${L}. Refund terms: details.refundCurrency quotes ${e.formatAmount(te,M.decimals)} ${M.symbol} (${te} base units) on chain ${M.chainId} (${M.address}), but protocol.v2 order refund floor is ${oe.join(", ")} base units. ${Se.join("; ")}. Unsigned origin transactions only; destination fulfillment remains pending. Track with relay_status; timeout or refund is not fulfillment.`}}var We=e=>({tools:[{name:"relay_bridge_in",inputSchema:{type:"object",additionalProperties:!1,required:["originChainId","amount"],properties:{originChainId:{type:"integer",minimum:1},destinationChainId:{const:q},originCurrency:J,destinationCurrency:J,amount:ae,minAmountOut:ae,slippageBps:{type:"integer",minimum:0,maximum:9999},recipient:J,swap:{type:"object",additionalProperties:!1,required:["from","amountIn"],properties:{from:{type:"object",additionalProperties:!1,required:["address","chainId","symbol","decimals"],properties:{address:J,chainId:{type:"integer",minimum:1},symbol:{type:"string"},decimals:{type:"integer",minimum:0,maximum:255}}},amountIn:ae,slippageBps:{type:"integer",minimum:0,maximum:1e4}}}}},async execute(o,c){try{return await je(e,o,c)}catch(i){throw new t(e.plainError(i))}}}]});export{Qe as a,We as b};
@@ -1 +0,0 @@
1
- import{i as se}from"./SJ7HDRI4.js";import{b as he,o as ve}from"./2IRORNOH.js";import{a as re}from"./GDP4JSAX.js";import{a as M,b as ge}from"./A5ITAEUQ.js";import{a as C}from"./I5CQ64EU.js";import{a as S}from"./NA7HV7BR.js";import{a as l,d as qe,i as Q,j as Ee}from"./ZUC6ILK2.js";import{a as i,b as Te,d as ie}from"./NGAI6GTU.js";import{encodeAbiParameters as b,encodeFunctionData as ee,erc20Abi as $e,getAddress as y,isAddress as cn,keccak256 as un,pad as dn,parseAbi as we,parseAbiParameters as F,toEventSelector as pn,toHex as De}from"viem";var Bn=y(Q[4663].uniswap.v4_pool_manager.address),L=y(Q[4663].uniswap.v4_position_manager.address),je=y(Q[4663].uniswap.v4_state_view.address),Se=y(Q[4663].uniswap.permit2.address),_e=y(Q[4663].ponsTrade.universal_router.address),ne=y(Q[4663].uniswap.WETH.address),U=y(Ee),f="0x0000000000000000000000000000000000000000",ze=8388608,Le=-887272,le=887272,We=(1n<<48n)-1n,B=(1n<<128n)-1n,ln=(1n<<160n)-1n,ce=1n<<96n,Ue=1800n,mn="0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",On={DECREASE_LIQUIDITY:1,MINT_POSITION:2,BURN_POSITION:3,SWAP_EXACT_IN_SINGLE:6,SETTLE_ALL:12,SETTLE_PAIR:13,TAKE_ALL:15,TAKE_PAIR:17,SWEEP:20},Ge=[{poolId:"0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",key:{currency0:f,currency1:U,fee:8388608,tickSpacing:10,hooks:y("0x06a889870c8f83640d6816319f72e2aa579b6080")},liquidity:"5532026605872066941",sqrtPriceX96:"3839897026469220985301794",tick:-198703,protocolFee:0,lpFee:0},{poolId:"0x387bf619da4d3fb62bb276482693dba1b9b3520f573cabdfe033384a24125982",key:{currency0:f,currency1:U,fee:500,tickSpacing:10,hooks:f},liquidity:"225820987949255613",sqrtPriceX96:"3840577772610961024680304",tick:-198700,protocolFee:512125,lpFee:500},{poolId:"0x54f7883914619af9105355bf83ed678bcf9f63560218ac61c9963b9503d0ba32",key:{currency0:f,currency1:U,fee:460,tickSpacing:9,hooks:f},liquidity:"85654324417347171",sqrtPriceX96:"3840419018843648722761192",tick:-198701,protocolFee:479349,lpFee:460},{poolId:"0xc7b615a3721594f73664eb3f62d8290d0fcc8d9d1156aed1ddecbd7f32efd9f5",key:{currency0:f,currency1:U,fee:8388608,tickSpacing:10,hooks:y("0xcb787a5cdea8b3715d984d82f1203fd7bfebe0c4")},liquidity:"50517446454827887",sqrtPriceX96:"3840495145865430860317598",tick:-198700,protocolFee:0,lpFee:0},{poolId:"0x24107d152f14a76d292123265ae3f3c71f863fc2f4ef7ba49d64e78d28ea379e",key:{currency0:f,currency1:U,fee:100,tickSpacing:1,hooks:f},liquidity:"36478878201789434",sqrtPriceX96:"3840363370720475418748563",tick:-198701,protocolFee:102425,lpFee:100},{poolId:"0x84bd4e2d8be11aeb0afc1195b38f587b61e90068548f1063fdbe448fb8cad0b6",key:{currency0:ne,currency1:U,fee:200,tickSpacing:4,hooks:f},liquidity:"5980655057479791",sqrtPriceX96:"3839891926195366283625355",tick:-198703,protocolFee:213044,lpFee:200},{poolId:"0x3b0cbf0603ecc67b5fc9bb4fbb6ac9e08d3b2f406b63d1662a36063a7fe5e866",key:{currency0:f,currency1:U,fee:87,tickSpacing:1,hooks:f},liquidity:"5486760264498148",sqrtPriceX96:"3840563617639470134132117",tick:-198700,protocolFee:90134,lpFee:87}],fn=new Set(Ge.map(e=>e.key.hooks.toLowerCase())),yn=F("address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks"),wn=F("(address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, int24 tickLower, int24 tickUpper, uint256 liquidity, uint128 amount0Max, uint128 amount1Max, address owner, bytes hookData"),bn=F("address currency0, address currency1"),kn=F("address currency, address recipient"),Ae=F("uint256 tokenId, uint256 liquidity, uint128 amount0Min, uint128 amount1Min, bytes hookData"),gn=F("uint256 tokenId, uint128 amount0Min, uint128 amount1Min, bytes hookData"),Pe=F("address currency0, address currency1, address recipient"),ae=F("bytes actions, bytes[] params"),hn=F("((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)"),Ke=F("address currency, uint256 amount"),O=we(["function modifyLiquidities(bytes unlockData, uint256 deadline) payable","function poolKeys(bytes25 poolId) view returns (address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks)","function getPositionLiquidity(uint256 tokenId) view returns (uint128 liquidity)","function getPoolAndPositionInfo(uint256 tokenId) view returns ((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, uint256 info)","function positionInfo(uint256 tokenId) view returns (uint256 info)","function ownerOf(uint256 tokenId) view returns (address owner)","function nextTokenId() view returns (uint256 tokenId)"]),Ze=we(["function getSlot0(bytes32 poolId) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)","function getLiquidity(bytes32 poolId) view returns (uint128 liquidity)"]),vn=we(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),An=we(["function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"]),Pn=pn("Transfer(address,address,uint256)");function me(e){if(typeof e!="string"||!cn(e,{strict:!1}))throw new i("Provide a valid v4 currency address.");let n=e.toLowerCase();return n===f||n===re.toLowerCase()?f:y(e)}function N(e){let n=e.toLowerCase();return n===f||n===re.toLowerCase()}function fe(e){let n=me(e.currency0),o=me(e.currency1);M(e.hooks);let s=y(e.hooks);return un(b(yn,[n,o,e.fee,e.tickSpacing,s]))}function Qe(e){return((typeof e=="number"?e:e.fee)&ze)!==0}function xn(e,n){return Qe(e)?{dynamicFee:!0,storedLpFee:n,swapsAreFree:!1,feeNote:"Pool uses dynamic fee flag 0x800000; stored lpFee=0 does not mean swaps are free. The hook determines the swap fee; a past observation is not a current quote."}:{dynamicFee:!1,storedLpFee:n,swapsAreFree:n===0,feeNote:`Static LP fee ${n} pips.`}}function ye(e,n){if(!e||typeof e!="object")throw new i("Provide a valid v4 PoolKey.");let o=me(e.currency0),s=me(e.currency1);if(BigInt(o)>=BigInt(s))throw new i("PoolKey currencies must be strictly sorted (currency0 < currency1).");if(!Number.isInteger(e.tickSpacing)||e.tickSpacing<=0||e.tickSpacing>32767)throw new i("PoolKey tickSpacing must be a positive integer.");if(!Number.isInteger(e.fee)||e.fee<0||e.fee>16777215)throw new i("PoolKey fee must be a valid uint24.");M(e.hooks);let c=y(e.hooks),t=Qe(e.fee);if(t&&e.fee!==ze)throw new i("Dynamic-fee PoolKey must use exact fee flag 0x800000 (8388608).");if(t&&c.toLowerCase()===f)throw new i("Dynamic-fee PoolKey requires a non-zero hook address.");if(!fn.has(c.toLowerCase()))throw new i(`Unsupported v4 hook ${c}: Oak does not assure arbitrary v4 hooks outside measured PoolKeys.`);let r={currency0:o,currency1:s,fee:e.fee,tickSpacing:e.tickSpacing,hooks:c},a=fe(r);if(n!==void 0){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new i("Provide a 32-byte hex poolId.");if(a.toLowerCase()!==n.toLowerCase())throw new i(`PoolKey hash (${a}) does not match expected poolId (${n}).`)}return r}function In(e){if(!Number.isInteger(e)||e<=0||e>le)throw new i("tickSpacing must be a positive integer.");let n=Math.trunc(Le/e)*e,o=Math.trunc(le/e)*e;return{tickLower:n===0?0:n,tickUpper:o===0?0:o}}function Sn(e,n,o){if(!Number.isInteger(o)||o<=0)throw new i("tickSpacing must be a positive integer.");if(!Number.isInteger(e)||!Number.isInteger(n))throw new i("tickLower and tickUpper must be integers.");if(e<Le||n>le)throw new i(`Ticks [${e}, ${n}] are outside Uniswap bounds [${Le}, ${le}].`);if(e>=n)throw new i("tickLower must be strictly less than tickUpper.");if(e%o!==0||n%o!==0)throw new i(`Ticks [${e}, ${n}] must be divisible by tickSpacing ${o}.`)}function Ne(e,n,o,s,c=l){if(M(e),M(n),N(e))throw new i("Native ETH does not use Permit2 approval.");let t=C(o);if(t<=0n||t>ln)throw new i("Permit2 approval amount must be a positive integer within uint160.");let r=C(String(s));if(r<=0n||r>We)throw new i("Permit2 expiration must be a positive timestamp within uint48.");let a=ee({abi:vn,functionName:"approve",args:[e,n,t,Number(r)]});return ge({to:Se,data:a,value:"0",chainId:c,description:`Approve Permit2 allowance of ${t} base units of ${e} for ${n} until ${r}.`})}function Rn(e){let n=ye(e.poolKey),o=C(e.amountIn),s=C(e.amountOutMinimum),c=C(String(e.deadline));if(o<=0n||o>B)throw new i("Swap amountIn must be a positive uint128.");if(s>B)throw new i("Swap amountOutMinimum exceeds uint128.");let t=e.hookData??"0x",r=e.zeroForOne?n.currency0:n.currency1,a=e.zeroForOne?n.currency1:n.currency0,d=b(hn,[{poolKey:{currency0:n.currency0.toLowerCase(),currency1:n.currency1.toLowerCase(),fee:n.fee,tickSpacing:n.tickSpacing,hooks:n.hooks.toLowerCase()},zeroForOne:e.zeroForOne,amountIn:o,amountOutMinimum:s,hookData:t}]),u=b(Ke,[r.toLowerCase(),o]),h=b(Ke,[a.toLowerCase(),s]),p=b(ae,["0x060c0f",[d,u,h]]),m=ee({abi:An,functionName:"execute",args:["0x10",[p],c]});return ge({to:_e.toLowerCase(),data:m,value:N(r)?o.toString():"0",chainId:e.chainId??l,description:`Execute Uniswap v4 swap of ${o} base units on UniversalRouter (${_e}).`})}function Fe(e){return BigInt(e&16777215)}function Ve(e){let n=Number(e&0xffffffn);return(n&8388608)!==0?n-16777216:n}function Xn(e){if(typeof e.poolId!="string"||!/^0x[0-9a-fA-F]{50,64}$/.test(e.poolId))throw new i("Provide a valid poolId hex string.");let n=e.poolId.slice(2,52),o=BigInt(`0x${n}`)<<56n,s=Fe(e.tickUpper)<<32n,c=Fe(e.tickLower)<<8n,t=e.hasSubscriber?1n:0n;return o|s|c|t}function Ln(e){let n=(e&0xffn)!==0n,o=Ve(e>>8n&0xffffffn),s=Ve(e>>32n&0xffffffn);return{poolIdBytes25:`0x${(e>>56n&(1n<<200n)-1n).toString(16).padStart(50,"0")}`,tickLower:o,tickUpper:s,hasSubscriber:n}}function He(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e];if(c<=0n||t<=0n)return 0n;let r=(o<<96n)*(t-c),a=t*c;return s?(r+a-1n)/a:r/a}function Be(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e],r=o*(t-c);return s?(r+ce-1n)/ce:r/ce}function Ye(e){if(e.liquidity<=0n)return{amount0:0n,amount1:0n};let n=se(e.tickLower),o=se(e.tickUpper);return e.sqrtPriceX96<=n?{amount0:He(n,o,e.liquidity,e.roundUp),amount1:0n}:e.sqrtPriceX96<o?{amount0:He(e.sqrtPriceX96,o,e.liquidity,e.roundUp),amount1:Be(n,e.sqrtPriceX96,e.liquidity,e.roundUp)}:{amount0:0n,amount1:Be(n,o,e.liquidity,e.roundUp)}}function Cn(e){let n=se(e.tickLower),o=se(e.tickUpper),s=(t,r,a)=>r<=t||a<=0n?0n:a*t*r/ce/(r-t),c=(t,r,a)=>r<=t||a<=0n?0n:a*ce/(r-t);if(e.sqrtPriceX96<=n)return s(n,o,e.amount0);if(e.sqrtPriceX96<o){let t=s(e.sqrtPriceX96,o,e.amount0),r=c(n,e.sqrtPriceX96,e.amount1);return t<r?t:r}return c(n,o,e.amount1)}function xe(e,n){return e.map(o=>{let s=o.amount.trim(),c=s.startsWith("-"),t=c||s.startsWith("+")?s.slice(1):s,r=n(t,o.token.decimals);return`${c?"-":""}${r} ${o.token.symbol}`})}function Oe(e,n=l){if(N(e))return{address:re,symbol:"ETH",decimals:18,chainId:n};let o=y(e);return o.toLowerCase()===U.toLowerCase()?{address:U,symbol:"USDG",decimals:qe,chainId:n}:o.toLowerCase()===ne.toLowerCase()?{address:ne,symbol:"WETH",decimals:18,chainId:n}:{address:o,symbol:o.slice(0,10),decimals:18,chainId:n}}async function z(e,n,o=l){if(N(n))return Oe(n,o);let s=y(n);if(s.toLowerCase()===U.toLowerCase()||s.toLowerCase()===ne.toLowerCase())return Oe(s,o);let[c,t]=await Promise.all([e.readContract({address:s,abi:$e,functionName:"symbol"}),e.readContract({address:s,abi:$e,functionName:"decimals"})]);return{address:s,symbol:String(c),decimals:Number(t),chainId:o}}function j(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new i(`${n} must be a non-negative integer string in base units.`);return C(e)}function Re(e,n,o,s){let c=e===void 0?C(ve(n.toString(),o)):j(e,s);if(c<=1n||c>B)throw new i(`${s} must exceed 1 base unit and fit in uint128; the simulated amount may be too small.`);return c}async function Je(e,n){if(typeof n=="number"&&Number.isFinite(n)&&n>0)return BigInt(Math.floor(n>1e11?n/1e3:n));if(typeof n=="string"&&/^\d+$/.test(n.trim()))return BigInt(n.trim());try{let o=await e.request({method:"eth_getBlockByNumber",params:["latest",!1]});if(o&&typeof o.timestamp=="string")return BigInt(o.timestamp)}catch{}return BigInt(Math.floor(Date.now()/1e3))}async function Ie(e,n,o){let s=await Je(e,o);if(n==null)return s+1800n;let c=C(String(n));if(c<=s)throw new i(`Transaction deadline ${c} has expired (current timestamp ${s}).`);return c}async function en(e,n){let o=typeof n.poolId=="string"?n.poolId.trim():void 0,s=n.poolKey&&typeof n.poolKey=="object"&&!Array.isArray(n.poolKey)?n.poolKey:void 0,c=s?{currency0:String(s.currency0??f),currency1:String(s.currency1??U),fee:Number(s.fee),tickSpacing:Number(s.tickSpacing),hooks:String(s.hooks??f)}:n.currency0!==void 0&&n.currency1!==void 0&&n.fee!==void 0&&n.tickSpacing!==void 0?{currency0:String(n.currency0),currency1:String(n.currency1),fee:Number(n.fee),tickSpacing:Number(n.tickSpacing),hooks:String(n.hooks??f)}:void 0;if(c){if(N(c.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ne.toLowerCase())throw new i("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");let w=ye(c,o);return{poolId:fe(w),poolKey:w}}let t=(o??mn).toLowerCase(),r=Ge.find(w=>w.poolId.toLowerCase()===t);if(r){if(N(r.key.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ne.toLowerCase())throw new i("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");return{poolId:r.poolId,poolKey:r.key}}let a=t.slice(0,52),d=await e.readContract({address:L,abi:O,functionName:"poolKeys",args:[a]}),[u,h,p,m,q]=d;if(u.toLowerCase()===f&&h.toLowerCase()===f&&Number(m)===0)throw new i(`Unknown or uninitialized v4 poolId ${t}.`);let A=ye({currency0:u,currency1:h,fee:Number(p),tickSpacing:Number(m),hooks:q},t);return{poolId:t,poolKey:A}}async function Ce(e,n,o){try{let[s,c]=await e.readContract({address:L,abi:O,functionName:"getPoolAndPositionInfo",args:[n]}),t=ye({currency0:s.currency0,currency1:s.currency1,fee:Number(s.fee),tickSpacing:Number(s.tickSpacing),hooks:s.hooks});if((o.poolKey||o.poolId)&&(await en(e,o)).poolId.toLowerCase()!==fe(t).toLowerCase())throw new i("The supplied PoolKey does not match this v4 position.");let r=Ln(BigInt(c));return{poolKey:t,poolId:fe(t),tickLower:r.tickLower,tickUpper:r.tickUpper}}catch(s){throw new i(`Could not read v4 position #${n}. ${ie(s)}`)}}async function Xe(e,n,o={}){M(n);let s=y(n),c=e.clientFor(l),t=new Set;if(o.tokenIds)for(let a of o.tokenIds)t.add(C(String(a)).toString());try{let a=await c.getBlockNumber(),d=10000000n;for(let u=0n;u<=a;u+=d){let h=u+d-1n<a?u+d-1n:a,p=await c.request({method:"eth_getLogs",params:[{address:L.toLowerCase(),topics:[Pn,null,dn(s)],fromBlock:De(u),toBlock:De(h)}]});if(!Array.isArray(p))throw new i("Invalid v4 position log response.");for(let m of p){if(!Array.isArray(m.topics)||m.topics.length!==4||!/^0x[0-9a-fA-F]{64}$/.test(m.topics[3]??""))throw new i("Invalid v4 position transfer log.");t.add(BigInt(m.topics[3]).toString())}}}catch(a){if(!o.tokenIds)throw new i(`Could not discover v4 positions. ${ie(a)}`)}let r=[];for(let a of t){let d=BigInt(a);try{let u;try{u=await c.readContract({address:L,abi:O,functionName:"ownerOf",args:[d]})}catch(I){if(Te(I,3))continue;throw I}if(u.toLowerCase()!==s.toLowerCase())continue;let h=await c.readContract({address:L,abi:O,functionName:"getPositionLiquidity",args:[d]}),p=BigInt(h);if(p===0n&&!o.includeZero)continue;let{poolKey:m,poolId:q,tickLower:A,tickUpper:w}=await Ce(c,d,{}),P=await c.readContract({address:je,abi:Ze,functionName:"getSlot0",args:[q]}),v=BigInt(P[0]),{amount0:k,amount1:x}=Ye({liquidity:p,tickLower:A,tickUpper:w,sqrtPriceX96:v}),[g,T]=await Promise.all([z(c,m.currency0,l),z(c,m.currency1,l)]);r.push({module:"uniswap",id:`uniswap:v4:${d.toString()}`,chainId:l,assets:[{token:g,amount:k.toString()},{token:T,amount:x.toString()}],description:`Uniswap v4 LP position #${d.toString()} (${g.symbol}/${T.symbol}, liquidity=${p.toString()}, ticks=[${A},${w}], poolId=${q})`})}catch(u){throw new i(`Could not read v4 position #${d}. ${ie(u)}`)}}return r}var Mn={type:"object",properties:{version:{type:"string",enum:["v4"]},poolId:{type:"string",description:"32-byte Uniswap v4 poolId hex string."},poolKey:{type:"object",properties:{currency0:{type:"string"},currency1:{type:"string"},fee:{type:"number"},tickSpacing:{type:"number"},hooks:{type:"string"}}},currency0:{type:"string"},currency1:{type:"string"},fee:{type:"number"},tickSpacing:{type:"number"},hooks:{type:"string"},tickLower:{type:"number"},tickUpper:{type:"number"},fullRange:{type:"boolean"},liquidity:S("Position liquidity in base units."),amount0Max:S("Maximum currency0 base units to spend."),amount1Max:S("Maximum currency1 base units to spend."),recipient:{type:"string"},deadline:S(),permit2Expiration:{type:"string"},hookData:{type:"string"}}},Tn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:S(),poolId:{type:"string"},poolKey:{type:"object"},amount0Min:S(),amount1Min:S(),recipient:{type:"string"},deadline:S(),hookData:{type:"string"}},required:["tokenId"]},qn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:S(),liquidity:{type:"string",pattern:"^(?:[0-9]+|all)$",description:"Positive base-unit liquidity amount, or all for a full burn."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:he},fullExit:{type:"boolean"},burn:{type:"boolean"},amount0Min:S(),amount1Min:S(),poolId:{type:"string"},poolKey:{type:"object"},recipient:{type:"string"},deadline:S(),hookData:{type:"string"}},required:["tokenId"]},En={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenIds:{type:"array",items:S()},includeZero:{type:"boolean"}}},Me=e=>({tools:[{name:"uniswap_add",inputSchema:Mn,async execute(t,r){if(M(r),t.version!==void 0&&t.version!=="v4")throw new i('Uniswap v4 part only handles version "v4".');if(t.tokenId!==void 0)throw new i("Increasing an existing v4 position is not implemented by this mint-only tool.");if(t.amount0Min!==void 0||t.amount1Min!==void 0||t.slippageBps!==void 0)throw new i("V4 mint encodes fixed liquidity and amount0Max/amount1Max; amount minima and slippageBps are not supported for minting.");let a=e.clientFor(l),{poolId:d,poolKey:u}=await en(a,t),h=In(u.tickSpacing),p=t.fullRange===!0&&t.tickLower===void 0?h.tickLower:Number(t.tickLower),m=t.fullRange===!0&&t.tickUpper===void 0?h.tickUpper:Number(t.tickUpper);Sn(p,m,u.tickSpacing);let[q,A]=await Promise.all([z(a,u.currency0,l),z(a,u.currency1,l)]),w=j(t.amount0Max??t.amount0Desired,"amount0Max"),P=j(t.amount1Max??t.amount1Desired,"amount1Max");if(w<=0n&&P<=0n||w>B||P>B)throw new i("Provide positive amount0Max/amount1Max within uint128.");let v=await a.readContract({address:je,abi:Ze,functionName:"getSlot0",args:[d]}),k=BigInt(v[0]),x=Number(v[3]);if(k<=0n)throw new i(`Pool ${d} is not initialized on StateView.`);let g=t.liquidity!==void 0?j(t.liquidity,"liquidity"):Cn({amount0:w,amount1:P,tickLower:p,tickUpper:m,sqrtPriceX96:k});if(g<=0n||g>B)throw new i("Position liquidity must be a positive integer within uint128.");let{amount0:T,amount1:I}=Ye({liquidity:g,tickLower:p,tickUpper:m,sqrtPriceX96:k,roundUp:!0});if(T>w||I>P)throw new i("Liquidity requires more tokens than amount0Max or amount1Max.");let E=t.recipient!==void 0?String(t.recipient):r;if(M(E),y(E)!==y(r))throw new i("Uniswap recipient must be the signing wallet.");let V=await Je(a),Y=await Ie(a,t.deadline,V.toString()),te=Y<V+Ue?Y:V+Ue,R=t.permit2Expiration===void 0?te:C(String(t.permit2Expiration));if(R<=V||R>te||R>We)throw new i("Permit2 expiration must be in the next 30 minutes and no later than the transaction deadline.");let ue=typeof t.hookData=="string"?t.hookData:"0x",de=(W,G)=>{let X=[];if(!N(u.currency0)&&W>0n){let oe=u.currency0.toLowerCase();X.push(e.approval(oe,Se.toLowerCase(),W.toString(),l)),X.push(Ne(oe,L.toLowerCase(),W.toString(),R.toString(),l))}if(!N(u.currency1)&&G>0n){let oe=u.currency1.toLowerCase();X.push(e.approval(oe,Se.toLowerCase(),G.toString(),l)),X.push(Ne(oe,L.toLowerCase(),G.toString(),R.toString(),l))}let Z={currency0:u.currency0.toLowerCase(),currency1:u.currency1.toLowerCase(),fee:u.fee,tickSpacing:u.tickSpacing,hooks:u.hooks.toLowerCase()},ke=b(wn,[Z,p,m,g,W,G,E.toLowerCase(),ue]),tn=b(bn,[Z.currency0,Z.currency1]),on=b(kn,[f,E.toLowerCase()]),rn=b(ae,["0x020d14",[ke,tn,on]]),sn=ee({abi:O,functionName:"modifyLiquidities",args:[rn,Y]}),an=N(u.currency0)?W.toString():"0";return X.push(e.unsignedTx({to:L.toLowerCase(),data:sn,value:an,chainId:l,description:`Mint Uniswap v4 position on pool ${d} (ticks [${p}, ${m}], liquidity ${g}).`})),X},$=de(T,I),D=await e.preview($,r),H=(W,G)=>{let X=N(G)?re:G.toLowerCase();return-W.changes.filter(Z=>Z.token.address.toLowerCase()===X).reduce((Z,ke)=>Z+BigInt(ke.amount),0n)},K=H(D,u.currency0),_=H(D,u.currency1);if(K<0n||_<0n||K>T||_>I||K===0n&&_===0n)throw new i("Invalid simulated v4 mint spend. Refresh the liquidity preview.");let J=de(K,_),pe=K===T&&_===I?D:await e.preview(J,r);if(H(pe,u.currency0)!==K||H(pe,u.currency1)!==_)throw new i("V4 mint spend changed. Refresh the liquidity preview.");let nn=xe(pe.changes,e.formatAmount),be=xn(u,x);return{txs:J,preview:pe,poolId:d,poolKey:u,tickLower:p,tickUpper:m,liquidity:g.toString(),amount0Max:{token:q,amount:w.toString()},amount1Max:{token:A,amount:P.toString()},dynamicFee:be.dynamicFee,swapsAreFree:be.swapsAreFree,summary:`Add Uniswap v4 liquidity (${g} L, ticks [${p}, ${m}]) on pool ${d}. Preview deltas: ${nn.join(", ")||"none"}. ${be.feeNote}`}}},{name:"uniswap_collect",inputSchema:Tn,async execute(t,r){if(M(r),t.version!==void 0&&t.version!=="v4")throw new i('Uniswap v4 part only handles version "v4".');let a=C(String(t.tokenId??""));if(a<=0n)throw new i("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):r;if(M(u),y(u)!==y(r))throw new i("Uniswap recipient must be the signing wallet.");let h=await Ie(d,t.deadline,t.now),p=t.amount0Min!==void 0?j(t.amount0Min,"amount0Min"):0n,m=t.amount1Min!==void 0?j(t.amount1Min,"amount1Min"):0n;if(p>B||m>B)throw new i("amount0Min and amount1Min must fit in uint128.");let q=typeof t.hookData=="string"?t.hookData:"0x",{poolKey:A,poolId:w}=await Ce(d,a,t),[P,v]=await Promise.all([z(d,A.currency0,l),z(d,A.currency1,l)]),k=b(Ae,[a,0n,p,m,q]),x=b(Pe,[A.currency0.toLowerCase(),A.currency1.toLowerCase(),u.toLowerCase()]),g=b(ae,["0x0111",[k,x]]),T=ee({abi:O,functionName:"modifyLiquidities",args:[g,h]}),I=[e.unsignedTx({to:L.toLowerCase(),data:T,value:"0",chainId:l,description:`Collect Uniswap v4 fees from position #${a} to ${u}.`})],E=await e.preview(I,r),V=xe(E.changes,e.formatAmount);return{txs:I,preview:E,tokenId:a.toString(),poolId:w,recipient:u,currencies:[P,v],summary:`Collect Uniswap v4 fees for position #${a} (actions 0x0111). Preview deltas: ${V.join(", ")||"0"}.`}}},{name:"uniswap_remove",inputSchema:qn,async execute(t,r){if(M(r),t.version!==void 0&&t.version!=="v4")throw new i('Uniswap v4 part only handles version "v4".');let a=C(String(t.tokenId??""));if(a<=0n)throw new i("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):r;if(M(u),y(u)!==y(r))throw new i("Uniswap recipient must be the signing wallet.");let h=await Ie(d,t.deadline,t.now),{poolKey:p,poolId:m}=await Ce(d,a,t),[q,A]=await Promise.all([z(d,p.currency0,l),z(d,p.currency1,l)]),w=t.slippageBps??he;if(typeof w!="number")throw new i("Slippage must be an integer from 0 to 9999 bps.");ve("0",w);let P=typeof t.hookData=="string"?t.hookData:"0x",v=t.fullExit===!0||t.burn===!0||t.liquidity==="all";if(!v&&t.liquidity===void 0)throw new i('Provide a liquidity amount or explicitly choose liquidity "all" for a full exit.');let k=t.liquidity===void 0||t.liquidity==="all"?void 0:j(t.liquidity,"liquidity");if(k!==void 0&&(k<0n||k===0n&&!v||k>B))throw new i("Provide positive liquidity within uint128 for v4 removal.");let x;try{x=BigInt(await d.readContract({address:L,abi:O,functionName:"getPositionLiquidity",args:[a]}))}catch($){throw new i(`Could not read v4 position liquidity. ${ie($)}`)}if(x<0n||x===0n&&!v||k!==void 0&&k>x)throw new i("Removal requires a nonempty position and cannot exceed its liquidity.");if(v&&k!==void 0&&k!==x)throw new i("A full burn must match the position liquidity; omit the amount when explicitly choosing all.");let g=v?"0x0311":"0x0111",T=($,D,H)=>{let K=v?b(gn,[a,$,D,P]):b(Ae,[a,k,$,D,P]),_=b(Pe,[p.currency0,p.currency1,H]);return e.unsignedTx({to:L.toLowerCase(),data:ee({abi:O,functionName:"modifyLiquidities",args:[b(ae,[g,[K,_]]),h]}),value:"0",chainId:l,description:`${v?"Burn and exit":"Decrease"} Uniswap v4 position #${a} (${g}).`})},I=0n,E=0n;if(x>0n&&(t.amount0Min===void 0||t.amount1Min===void 0)){let $=e.unsignedTx({to:L.toLowerCase(),data:ee({abi:O,functionName:"modifyLiquidities",args:[b(ae,["0x0111",[b(Ae,[a,0n,0n,0n,P]),b(Pe,[p.currency0,p.currency1,L])]]),h]}),value:"0",chainId:l,description:"Simulation only: separate fees from removal principal."}),D=await e.preview([$,T(2n,2n,r)],r),H=K=>D.changes.reduce((_,J)=>J.token.chainId===l&&J.token.address.toLowerCase()===K.address.toLowerCase()?_+BigInt(J.amount):_,0n);if(I=H(q),E=H(A),I<0n||E<0n)throw new i("Removal simulation did not return the expected currencies.")}let V=($,D)=>{if($!==void 0&&j($,D)!==0n)throw new i(`${D} must be zero for an empty position burn.`);return 0n},Y=x===0n?V(t.amount0Min,"amount0Min"):Re(t.amount0Min,I,w,"amount0Min"),te=x===0n?V(t.amount1Min,"amount1Min"):Re(t.amount1Min,E,w,"amount1Min"),R=[T(Y,te,u)],ue=await e.preview(R,r),de=xe(ue.changes,e.formatAmount);return{txs:R,preview:ue,action:g,tokenId:a.toString(),poolId:m,amount0Min:{token:q,amount:Y.toString()},amount1Min:{token:A,amount:te.toString()},summary:`${v?"Full exit":"Partial remove"} Uniswap v4 position #${a} (${g})${v?`; burns position #${a} at ${L}`:""}. Preview deltas: ${de.join(", ")||"none"}.`}}},{name:"uniswap_list_positions",inputSchema:En,async execute(t,r){if(M(r),t.version!==void 0&&t.version!=="v4")throw new i('Uniswap v4 part only handles version "v4".');let a=Array.isArray(t.tokenIds)?t.tokenIds:void 0,d=t.includeZero===!0,u=await Xe(e,r,{tokenIds:a,includeZero:d});return{version:"v4",positions:u,summary:`Found ${u.length} active Uniswap v4 position(s) for ${r}.`}}}],positions:t=>Xe(e,t)}),jn=Me,zn=Me,Wn=Me;export{Bn as a,L as b,je as c,Se as d,_e as e,ne as f,U as g,f as h,ze as i,Le as j,le as k,mn as l,On as m,Ge as n,N as o,fe as p,Qe as q,xn as r,ye as s,In as t,Sn as u,Ne as v,Rn as w,Xn as x,Ln as y,Ye as z,Cn as A,xe as B,Oe as C,Xe as D,Mn as E,Tn as F,qn as G,En as H,Me as I,jn as J,zn as K,Wn as L};
@@ -1 +0,0 @@
1
- import{a as U}from"./GDP4JSAX.js";import{a as q}from"./A5ITAEUQ.js";import{a as l,i as H}from"./ZUC6ILK2.js";import{a as P}from"./B4MLWDPM.js";import{a as d}from"./NGAI6GTU.js";import{encodeAbiParameters as Q,encodeFunctionData as A,erc20Abi as D,keccak256 as $,parseAbi as L,zeroAddress as b}from"viem";var s=L(["function launchFactory() view returns (address)","function curve() view returns (address)","function factory() view returns (address)","function feeEscrow() view returns (address)","function memeHook() view returns (address)","function getLaunchedToken(address) view returns ((address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists))","function balanceOf(address) view returns (uint256)","function quoteFeeBalance() view returns (uint256)","function creatorTaxBalance() view returns (uint256)","function pendingFees(bytes32,address) view returns (uint256)","function pendingCreatorTax(bytes32,address) view returns (uint256)"]),h=L(["function sweepFees(uint256 minBuybackTokensOut)","function sweepPoolFees(bytes32 poolId,uint256 minConversionQuoteOut,uint256 minBuybackTokensOut)","function claim()","error InternalSwapRequiresOperator()"]),F={address:U,chainId:l,symbol:"ETH",decimals:18};function u(n){if(typeof n!="string")throw new d("Provide a valid Pons coin address.");if(q(n),n.toLowerCase()===b)throw new d("Provide a nonzero Pons coin or contract address.");return n.toLowerCase()}function G(n){let p=new Set;for(;n&&typeof n=="object"&&!p.has(n)&&p.size<16;){p.add(n);let r=n;if(r.data==="0x31cdb504"||r.data&&typeof r.data=="object"&&r.data.errorName==="InternalSwapRequiresOperator")return!0;n=r.cause}return!1}async function J(n,p,r){if(!p||Object.keys(p).some(o=>o!=="token"))throw new d("Unsupported input. Provide only the Pons coin token address.");let i=u(p.token),S=u(r),e=n.clientFor(l);if(await e.getChainId()!==l)throw new d(`Pons claims require chain ${l}.`);let t=await e.getBlockNumber(),[M,R]=await Promise.all([e.readContract({address:i,abi:s,functionName:"launchFactory",blockNumber:t}),e.readContract({address:i,abi:s,functionName:"curve",blockNumber:t})]),k=u(H[l].pons.factory.address);if(u(M)!==k)throw new d("The coin must belong to the pinned Pons factory.");let f=u(R),[a,_,j]=await Promise.all([e.readContract({address:k,abi:s,functionName:"getLaunchedToken",args:[i],blockNumber:t}),e.readContract({address:f,abi:s,functionName:"factory",blockNumber:t}),e.readContract({address:f,abi:s,functionName:"feeEscrow",blockNumber:t})]);if(!a.exists||u(a.token)!==i||u(a.curve)!==f||u(_)!==k)throw new d("The coin does not resolve to a consistent Pons launch.");if(a.phase<0||a.phase>3)throw new d("This Pons launch phase is unsupported.");let x=u(a.creatorFeeRecipient);if(x!==S)throw new d("Only the current creator fee recipient can claim these fees. Use the recipient wallet or Safe.");if(a.pairToken.toLowerCase()!==b)throw new d("This claim tool supports native ETH pairs. Custom-pair token claims are not supported.");let T=u(j),E=await e.readContract({address:T,abi:s,functionName:"balanceOf",args:[S],blockNumber:t}),w=[],m=[],v=!1,C=!1,N=(o,c,g)=>n.unsignedTx({to:o,data:c,value:"0",chainId:l,description:g});if(a.phase===0){let[o,c]=await Promise.all([e.readContract({address:f,abi:s,functionName:"quoteFeeBalance",blockNumber:t}),e.readContract({address:f,abi:s,functionName:"creatorTaxBalance",blockNumber:t})]);o+c>0n&&(m.push({token:F,amount:(o+c).toString()}),a.buybackEnabled?C=!0:(await e.simulateContract({address:f,abi:h,functionName:"sweepFees",args:[0n],account:r,gas:P,blockNumber:t}),w.push(N(f,A({abi:h,functionName:"sweepFees",args:[0n]}),"Sweep native curve fees into the recipient escrow."))))}else if(a.phase===2){let o=u(await e.readContract({address:k,abi:s,functionName:"memeHook",blockNumber:t})),c=$(Q([{type:"address"},{type:"address"},{type:"uint24"},{type:"int24"},{type:"address"}],[b,i,a.poolFee,a.tickSpacing,o])),[g,B,I,O]=await Promise.all([e.readContract({address:o,abi:s,functionName:"pendingFees",args:[c,b],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingCreatorTax",args:[c,b],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingFees",args:[c,i],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingCreatorTax",args:[c,i],blockNumber:t})]);if(g+B>0n&&m.push({token:F,amount:(g+B).toString()}),I+O>0n){let[y,K]=await Promise.all([e.readContract({address:i,abi:D,functionName:"symbol",blockNumber:t}),e.readContract({address:i,abi:D,functionName:"decimals",blockNumber:t})]);m.push({token:{address:i,chainId:l,symbol:y,decimals:K},amount:(I+O).toString()})}if(m.length)if(a.buybackEnabled)C=!0;else try{await e.simulateContract({address:o,abi:h,functionName:"sweepPoolFees",args:[c,0n,0n],account:r,gas:P,blockNumber:t}),w.push(N(o,A({abi:h,functionName:"sweepPoolFees",args:[c,0n,0n]}),"Sweep native pool fees into the recipient escrow."))}catch(y){if(!G(y))throw y;v=!0}}(E>0n||w.length>0)&&w.push(N(T,A({abi:h,functionName:"claim"}),"Claim the caller\u2019s full native ETH escrow balance across all coins."));let V=await n.preview(w,r),z=[w.length?"Unsigned Pons fee claim prepared for the current recipient. The claim withdraws all native ETH owed to this wallet on this escrow across its coins.":"No native ETH claim is available from this escrow.",v?"Pending token-side conversion is awaiting Pons\u2019s keeper; the hook sweep was skipped.":"",C?"Buyback-enabled fee sweeps are not built here; pending fees await Pons\u2019s operator.":"","Pending amounts are pre-sweep fee and tax totals, not a guaranteed creator payout. Preview excludes gas. No transaction was sent."].filter(Boolean).join(" ");return{txs:w,summary:z,preview:V,claimable:{token:F,amount:E.toString()},pendingBeforeSweep:m,waitingForKeeper:v,recipient:x,escrow:T,phase:a.phase,blockNumber:t.toString()}}var te=n=>({tools:[{name:"pons_claim",inputSchema:{type:"object",additionalProperties:!1,required:["token"],properties:{token:{type:"string",pattern:"^0x[0-9a-fA-F]{40}$",description:"Pons coin address on chain 4663."}}},execute:async(p,r)=>{try{return await J(n,p,r)}catch(i){throw new d(n.plainError(i))}}}]});export{te as a};
@@ -1 +0,0 @@
1
- import{b as ue,o as Q}from"./2IRORNOH.js";import{a as J}from"./GDP4JSAX.js";import{b as de}from"./UCMNB2UP.js";import{a as ae}from"./I5CQ64EU.js";import{a as T,i as re}from"./ZUC6ILK2.js";import{a as ce}from"./B4MLWDPM.js";import{a as r}from"./NGAI6GTU.js";import{decodeErrorResult as ge,decodeEventLog as te,encodeAbiParameters as $,encodeFunctionData as C,erc20Abi as we,getAddress as be,isAddress as Te,parseAbi as me,parseAbiParameters as N,toHex as fe,zeroAddress as k}from"viem";var m=re[T].poolsTrade,E=m.liquidityLauncher.address,O=m.uerc20BeneficiaryVault.address,X=m.universalRouter.address,Y=10n**27n,F=(1n<<128n)-1n,le=`0x${"00".repeat(32)}`,Z=63127652n,z=100000n,xe=2000n,Ae={address:J,symbol:"ETH",decimals:18,chainId:T},h=me(["function multicall(bytes[] data) payable returns (bytes[])","function createToken(address factory,string name,string symbol,uint8 decimals,uint128 initialSupply,address recipient,bytes tokenData) payable returns (address)","function distributeToken(address token,(address strategy,uint128 amount,bytes configData) distribution,bytes32 salt) payable","function distributeWithNative(address strategy,bytes configData,bytes32 salt,uint256 nativeAmount) payable","function getGraffiti(address sender) view returns (bytes32)","function getUERC20Address(string name,string symbol,uint8 decimals,address recipient,bytes32 graffiti) view returns (address)","function execute(bytes commands,bytes[] inputs,uint256 deadline) payable","function collectFees(uint256[] ids)","function claim(uint256 id,uint256 minCurrency0Amount,uint256 minCurrency1Amount)","function amounts(uint256 id) view returns (uint128 eth,uint128 token)","function ownerOf(uint256 id) view returns (address)","function approve(address token,address spender,uint160 amount,uint48 expiration)","error V4TooLittleReceived(uint256 minAmountOut,uint256 amountOut)"]),D=me(["event TokenLaunched(bytes32 indexed poolId,address indexed token,address indexed feeSplitter,(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey)","event Transfer(address indexed from,address indexed to,uint256 indexed tokenId)"]),M=[m.instantLaunchStrategyFeesOn.address,m.instantLaunchStrategyFeesOff.address],p=(o,d)=>o.toLowerCase()===d.toLowerCase();function pe(o){if(o.status!=="success")throw new r("The launch receipt did not succeed.");let d=[];for(let l of o.logs){let y=M.findIndex(x=>p(x,l.address));if(y===-1||l.topics[0]!=="0x3b3d2bafdcae274a232217e1f80ee4305d3af6aa25c8b14b1681bd68d18042a4")continue;let H=te({abi:D,eventName:"TokenLaunched",data:l.data,topics:[...l.topics]}),{token:g,poolId:U,poolKey:I,feeSplitter:_}=H.args,j=y===0?m.feeSplitterFeesOn.address:m.feeSplitterFeesOff.address;if(!p(_,j)||!p(I.currency0,k)||!p(I.currency1,g)||I.fee!==2500||I.tickSpacing!==25||!p(I.hooks,k))throw new r("The launch does not match the current native ETH strategy.");let B=o.logs.filter(x=>p(x.address,m.v4PositionManager.address)).flatMap(x=>{if(x.topics[0]!=="0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef")return[];let P=te({abi:D,eventName:"Transfer",data:x.data,topics:[...x.topics]}).args;return p(P.from,k)&&p(P.to,M[y])?[P.tokenId]:[]});if(B.length!==1)throw new r("The launch receipt must identify one matching position mint.");d.push({token:g,poolId:U,positionId:B[0].toString(),creatorFees:y===0})}return d}function A(o){if(typeof o!="string"||!Te(o,{strict:!1}))throw new r("Provide a valid wallet or token address.");return be(o)}function q(o,d,l=!1){if(typeof o!="string")throw new r(`${d} must be an integer string in base units.`);let y=ae(o);if(!l&&y===0n||y>=1n<<256n)throw new r(`${d} is outside its supported range.`);return y}function R(o,d,l=!1){if(l&&o===void 0)return"";if(typeof o!="string"||!l&&!o.trim()||o.length>4096)throw new r(`Provide a valid ${d}.`);return o}function ke(o){if(typeof o!="string"||!/^0x[0-9a-fA-F]{64}$/.test(o))throw new r("Provide a valid launch transaction hash.");return o}function ee(o,d,l="minAmountOut"){let y=d.slippageBps??ue;if(typeof y!="number")throw new r("Slippage must be an integer in basis points.");let H=Q(o.toString(),y),g=d[l]===void 0?BigInt(H):q(d[l],l,o===0n);if(g>o||o>0n&&g===0n||g>F)throw new r("The minimum output must be positive and no larger than the simulated output.");return g}function W(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}var Ie=o=>{let d=o.clientFor(T),l=(e,s,n,a)=>o.unsignedTx({to:e,data:s,value:n.toString(),chainId:T,description:a}),y=e=>{throw new r(o.plainError(e))};async function H(){if(await d.getChainId()!==T)throw new r("pools.trade requires Robinhood Chain 4663.")}async function g(e,s,n){let a=await o.preview(e,s),t=a.changes.map(({token:i,amount:c})=>{let u=c.startsWith("-");return`${u?"-":""}${o.formatAmount(u?c.slice(1):c,i.decimals)} ${i.symbol} (${i.address}, chain ${i.chainId})`});return{txs:e,summary:[n,a.summary,...t].join(" ")}}async function U(){return(await d.getBlock()).timestamp+600n}function I(e,s,n,a,t,i){let c=[k,e,2500,25,k],u=[$(N("((address,address,uint24,int24,address),bool,uint128,uint128,uint256,bytes)"),[[c,s,n,a,0n,"0x"]]),$(N("address,uint256"),[s?k:e,n]),$(N("address,address,uint256"),[s?e:k,t,0n])],f=[$(N("bytes,bytes[]"),["0x060c0e",u])];return{inputs:f,encoded:$(N("bytes,bytes[],uint256"),["0x10",f,i])}}async function _(e,s){let n=await d.request({method:"eth_simulateV1",params:[{blockStateCalls:[{calls:e.map(u=>({from:s,gas:fe(ce),to:u.to,data:u.data,value:fe(BigInt(u.value))}))}],validation:!1,traceTransfers:!1},"latest"]},{retryCount:0});if(!Array.isArray(n)||n.length!==1||!W(n[0])||!Array.isArray(n[0].calls)||n[0].calls.length!==e.length)throw new r("The output simulation returned a malformed response.");let a=n[0].calls;if(!a.slice(0,-1).every(u=>W(u)&&u.status==="0x1"&&!u.error))throw new r("A prerequisite failed during the output simulation.");let t=a.at(-1);if(!W(t)||t.status!=="0x0")throw new r("The output simulation did not return the expected minimum-output control.");let i=typeof t.returnData=="string"&&t.returnData!=="0x"?t.returnData:W(t.error)?t.error.data:void 0;if(typeof i!="string"||!/^0x[0-9a-fA-F]+$/.test(i))throw new r("The output simulation did not report an expected amount.");let c=ge({abi:h,data:i});if(c.errorName!=="V4TooLittleReceived"||c.args[0]!==F||c.args[1]<=0n||c.args[1]>=F)throw new r("The output simulation did not report a valid amount.");return c.args[1]}async function j(e,s){let n=await d.getBlockNumber(),a=n<Z?0n:(n-Z)/z+1n,t=1n,i=(f=1n)=>{if(t+=f,t>xe)throw new r("Pools.trade scan exceeds the 2000-request limit. Use launchTx for a specific launch; positions coverage is incomplete.")};i(a*(e?2n:1n));let c=new Map,u=new Set;for(let f=Z;f<=n;f+=z){let b=f+z-1n>n?n:f+z-1n,L=await d.getLogs({address:M,event:D[0],...s?{args:{token:s}}:{},fromBlock:f,toBlock:b,strict:!0});for(let S of L){if(!S.transactionHash)throw new r("A launch log is missing its transaction hash.");c.has(S.transactionHash)||(i(),c.set(S.transactionHash,await d.getTransactionReceipt({hash:S.transactionHash})))}if(e){let S=await d.getLogs({address:O,event:D[1],args:{to:e},fromBlock:f,toBlock:b,strict:!0});for(let G of S){let K=te({abi:D,eventName:"Transfer",data:G.data,topics:G.topics}).args;u.add(K.tokenId.toString())}}}return{receipts:[...c.values()],feeIds:u}}async function B(e){let n=(e.launchTx!==void 0?[await d.getTransactionReceipt({hash:ke(e.launchTx)})]:(await j(void 0,e.token===void 0?void 0:A(e.token))).receipts).flatMap(pe).filter(a=>e.positionId!==void 0?a.positionId===q(e.positionId,"positionId").toString():p(a.token,A(e.token)));if(n.length!==1)throw new r("No unique current-strategy launch was found. Older strategy generations are unsupported.");return n[0]}async function x(e,s){if(typeof e.creatorFees!="boolean")throw new r("creatorFees must be an explicit boolean; the choice is permanent.");if(e.pair!==void 0&&!p(A(e.pair),k)&&!p(A(e.pair),J))throw new r("Only the native ETH pair is supported.");if(e.decimals!==void 0&&e.decimals!==18)throw new r("Instant Launch requires 18 decimals.");if(e.supply!==void 0&&q(e.supply,"supply")!==Y)throw new r("Instant Launch requires a supply of one billion tokens.");let n=A(e.feeBeneficiary);if(p(n,k)||p(n,E))throw new r("The fee beneficiary must be a wallet other than the launcher or zero address.");let a=R(e.name,"name"),t=R(e.symbol,"symbol"),i=e.initialBuy===void 0?0n:q(e.initialBuy,"initialBuy",!0);if(i>F)throw new r("The initial buy exceeds uint128.");if(i===0n&&e.minAmountOut!==void 0)throw new r("A minimum output requires an initial buy.");let c=await d.readContract({address:E,abi:h,functionName:"getGraffiti",args:[s]}),u=A(await d.readContract({address:m.uerc20Factory.address,abi:h,functionName:"getUERC20Address",args:[a,t,18,E,c]})),f=await d.getCode({address:u});if(f&&f!=="0x")throw new r("This wallet already launched that name and symbol.");let b=$(N("(string,string,string,bytes)"),[[R(e.description,"description",!0),R(e.website,"website",!0),R(e.imageUri,"image URI",!0),"0x"]]),L=e.creatorFees?M[0]:M[1],S=[C({abi:h,functionName:"createToken",args:[m.uerc20Factory.address,a,t,18,Y,E,b]}),C({abi:h,functionName:"distributeToken",args:[u,{strategy:L,amount:Y,configData:$(N("address"),[n])},le]})],G=await U(),K=he=>{let oe=[...S];if(i>0n){let ye=$(N("(address,address,bytes)"),[[X,s,I(u,!0,i,he,s,G).encoded]]);oe.push(C({abi:h,functionName:"distributeWithNative",args:[m.universalRouterStrategyApp.address,ye,le,i]}))}return l(E,C({abi:h,functionName:"multicall",args:[oe]}),i,`Atomic Instant Launch: creator fees ${e.creatorFees?"on":"off"} (permanent); beneficiary ${n}.`)},ie=i>0n?ee(await _([K(F)],s),e):0n;return g([K(ie)],s,`Launch ${a} (${u}, chain 4663), supply 1000000000, decimals 18. Creator fees ${e.creatorFees?"on":"off"} are permanent; fee beneficiary ${n}. Creator ETH fees come from buys only (recorded 0.09996%); sells compound into locked liquidity. Initial-buy minimum ${ie} token base units. Off-chain image/display unproven; no private metadata registration. No transaction sent.`)}async function P(e,s,n){let a=q(e.amountIn,"amountIn");if(a>F)throw new r("The trade amount exceeds uint128.");let t=A(e.token);await B(e);let i=await U(),c=[];n||(await d.readContract({address:t,abi:we,functionName:"allowance",args:[s,m.permit2.address]})<a&&c.push(o.approval(t,m.permit2.address,a.toString(),T)),c.push(l(m.permit2.address,C({abi:h,functionName:"approve",args:[t,X,a,Number(i)]}),0n,`Permit the exact ${a} token base units until ${i}.`)));let u=L=>[...c,l(X,C({abi:h,functionName:"execute",args:["0x10",I(t,n,a,L,s,i).inputs,i]}),n?a:0n,`${n?"Buy":"Sell"} ${t} with minimum output ${L}.`)],f=await _(u(F),s),b=ee(f,e);return g(u(b),s,`${n?"Buy":"Sell"} token ${t} (chain 4663, 18 decimals), amountIn ${a}, minimum output ${b} ${n?"token":"ETH"} base units (18 decimals). Recorded swap fee 0.2899%; creator ETH fees from buys only, none from sells. No transaction sent.`)}async function ne(e,s,n){let a=await B(e),t=BigInt(a.positionId),i=a.creatorFees?m.feeSplitterFeesOn.address:m.feeSplitterFeesOff.address,c=await d.readContract({address:m.v4PositionManager.address,abi:h,functionName:"ownerOf",args:[t]});if(!p(c,i))throw new r("The position is not locked in its current-strategy splitter.");if(!n)return g([l(i,C({abi:h,functionName:"collectFees",args:[[t]]}),0n,`Collect fees for position ${t}; permissionless.`)],s,"Collect fees for the entitled recipients; collection does not transfer creator fees to the collector. No transaction sent.");if(!a.creatorFees)throw new r("Creator fees are permanently disabled for this position.");let u=await d.readContract({address:O,abi:h,functionName:"ownerOf",args:[t]});if(!p(u,s))throw new r("Only the current fee NFT holder is entitled to claim.");let f=await d.readContract({address:O,abi:h,functionName:"amounts",args:[t]}),b=ee(f[0],e,"minEth");if(f[1]!==0n)throw new r("The current buy-only creator fee configuration returned unexpected token fees.");return g([l(O,C({abi:h,functionName:"claim",args:[t,b,0n]}),0n,`Claim collected ETH fees for position ${t} to ${s}.`)],s,`Claim collected fees: ${f[0]} ETH base units (18 decimals), minimum ${b}. Uncollected fees require poolstrade_collect first. No transaction sent.`)}let w={type:"string"},v={type:"string",pattern:"^[0-9]+$"},se={chainId:{type:"integer",const:T},slippageBps:{type:"integer",minimum:0,maximum:9999}};function V(e,s,n,a){return{name:`poolstrade_${e}`,inputSchema:{type:"object",additionalProperties:!1,properties:{...se,...s},required:n},execute:async(t,i)=>{try{let c=new Set([...Object.keys(se),...Object.keys(s)]);if(Object.keys(t).some(u=>!c.has(u)))throw new r("Unsupported input; only the current atomic Instant Launch workflow is supported.");if(t.chainId!==void 0&&t.chainId!==T)throw new r("pools.trade requires chain 4663.");if(A(i),t.slippageBps!==void 0){if(typeof t.slippageBps!="number")throw new r("Slippage must be an integer in basis points.");Q("10000",t.slippageBps)}return await H(),await a(t,i)}catch(c){y(c)}}}}return{tools:[V("launch",{name:w,symbol:w,creatorFees:{type:"boolean",description:"Permanent choice; must be explicit."},feeBeneficiary:w,pair:w,decimals:{type:"integer",const:18},supply:v,initialBuy:v,minAmountOut:v,description:w,website:w,imageUri:w},["name","symbol","creatorFees","feeBeneficiary"],x),...["buy","sell"].map(e=>V(e,{token:w,amountIn:v,minAmountOut:v,launchTx:w},["token","amountIn"],(s,n)=>P(s,n,e==="buy"))),V("collect",{positionId:v,launchTx:w},["positionId"],(e,s)=>ne(e,s,!1)),V("claim",{positionId:v,launchTx:w,minEth:v},["positionId"],(e,s)=>ne(e,s,!0))],positions:async e=>{try{A(e),await H();let{receipts:s,feeIds:n}=await j(e),a=[];for(let t of s)for(let i of pe(t)){let c=!1;if(i.creatorFees&&(n.has(i.positionId)||p(t.from,e))&&(c=p(await d.readContract({address:O,abi:h,functionName:"ownerOf",args:[BigInt(i.positionId)]}),e)),!c&&!p(t.from,e))continue;let u=c?[{token:Ae,amount:(await d.readContract({address:O,abi:h,functionName:"amounts",args:[BigInt(i.positionId)]}))[0].toString()}]:[];a.push({module:"poolstrade",id:i.positionId,chainId:T,assets:u,description:`Current Instant Launch ${i.token} (18 decimals, supply 1000000000), pool ${i.poolId}; creator fees ${i.creatorFees?"on":"off"} (permanent). ${c?"Collected ETH fees only; uncollected fees excluded.":"Launch record; no fee entitlement held."} Liquidity is permanently locked.`})}return a}catch(s){return y(s)}}}};function Oe(o){return de("poolstrade",[Ie(o)])}export{pe as a,Ie as b,Oe as c};
@@ -1 +0,0 @@
1
- import{a as r}from"./NGAI6GTU.js";var a=4663,o=46630,p=18,f=6,x=30,h="recipient",A="direct",v="totalSupply",s={4663:{pons:{factory:{address:"0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e",source:"Recorded chain and API observations",pointer:"/pons/factory",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},launchAndBuyRouter:{address:"0xe33E9E479dF8802cb0866d5d05258bEc4cF62948",source:"Recorded chain and API observations",pointer:"/pons/launchAndBuyRouter",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},memeHook:{address:"0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044",source:"Recorded chain and API observations",pointer:"/pons/memeHook",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},feeEscrow:{address:"0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e",source:"Recorded chain and API observations",pointer:"/pons/feeEscrow",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},buybackVault:{address:"0x42df2a798f82289E177311362e8f5ccC45c1219c",source:"Recorded chain and API observations",pointer:"/pons/buybackVault",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},locker:{address:"0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952",source:"Recorded chain and API observations",pointer:"/pons/locker",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},launchDeployer:{address:"0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42",source:"Recorded chain and API observations",pointer:"/pons/launchDeployer",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},graduationExecutor:{address:"0xC7819B64A1dAECD7eC19856d026cb14EfBd89046",source:"Recorded chain and API observations",pointer:"/pons/graduationExecutor",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},graduationGuard:{address:"0xf5695117b99B6f6401e67d4195BD653628176C6C",source:"Recorded chain and API observations",pointer:"/pons/graduationGuard",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},poolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/pons/poolManager",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},positionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/pons/positionManager",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"}},oracle:{ethUsdgPool:{address:"0x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca",source:"Recorded chain and API observations",pointer:"/ethUsdgPool/address",block:"100307735",blockKind:"read",blockPointer:"/ethUsdgPool/rawReading/block"}},tokens:{USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/usdg/address",block:null,blockKind:"latest",caveat:"Token reads around head 100305826; not individually pinned (Part B section 1.2)."},WETH:{address:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",source:"Recorded chain and API observations",pointer:"/routers/wrappedNative",block:null,blockKind:"latest"}},routes:{kyberswap:{address:"0x6131B5fae19EA4f9D964eAc0408E4408b66337b5",source:"Recorded chain and API observations",pointer:"/routers/kyberswap/router",block:null,blockKind:"latest",caveat:"Historical API target; validate each fresh quote/build chain and target."},velora:{address:"0x6a000f20005980200259b80c5102003040001068",source:"Recorded chain and API observations",pointer:"/routers/velora/router",block:null,blockKind:"latest",caveat:"Historical API target; validate each fresh quote/build chain and target."}},ponsClaims:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",source:"Recorded chain and API observations",pointer:"/addresses/multicall3/address",block:null,blockKind:"unanchored",caveat:"Code present in the source snapshot; exact code-read block not recorded."}},ponsTrade:{universal_router:{address:"0x204faca1764b154221e35c0d20abb3c525710498",source:"Recorded chain and API observations",pointer:"/contracts/universal_router/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},pool_manager:{address:"0x8366a39cc670b4001a1121b8f6a443a643e40951",source:"Recorded chain and API observations",pointer:"/contracts/pool_manager/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},state_view:{address:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",source:"Recorded chain and API observations",pointer:"/contracts/state_view/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},quoter:{address:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",source:"Recorded chain and API observations",pointer:"/contracts/quoter/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},permit2:{address:"0x000000000022d473030f116ddee9f6b43ac78ba3",source:"Recorded chain and API observations",pointer:"/contracts/permit2/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"}},uniswap:{v3_factory:{address:"0x1f7d7550b1b028f7571e69a784071f0205fd2efa",source:"Recorded chain and API observations",pointer:"/addresses/v3_factory/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},v3_position_manager:{address:"0x73991a25c818bf1f1128deaab1492d45638de0d3",source:"Recorded chain and API observations",pointer:"/addresses/v3_position_manager/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},v4_pool_manager:{address:"0x8366a39cc670b4001a1121b8f6a443a643e40951",source:"Recorded chain and API observations",pointer:"/addresses/v4_pool_manager/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},v4_position_manager:{address:"0x58daec3116aae6d93017baaea7749052e8a04fa7",source:"Recorded chain and API observations",pointer:"/addresses/v4_position_manager/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},v4_state_view:{address:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",source:"Recorded chain and API observations",pointer:"/addresses/v4_state_view/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},swap_router02:{address:"0xcaf681a66d020601342297493863e78c959e5cb2",source:"Recorded chain and API observations",pointer:"/addresses/swap_router02/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},permit2:{address:"0x000000000022d473030f116ddee9f6b43ac78ba3",source:"Recorded chain and API observations",pointer:"/addresses/permit2/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},WETH:{address:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",source:"Recorded chain and API observations",pointer:"/addresses/WETH/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/addresses/USDG/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"}},clanker:{factory:{address:"0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",source:"Recorded chain and API observations",pointer:"/contracts/factory/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},locker:{address:"0xE4910b09709423aFafD995dD76D8A81CF9134A09",source:"Recorded chain and API observations",pointer:"/contracts/locker/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},legacy_locker_v1:{address:"0x290f735f63824bb5836cde24a35f5103a5b5bc99",source:"Recorded chain and API observations",pointer:"/contracts/legacy_locker_v1/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_locker:{address:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",source:"Recorded chain and API observations",pointer:"/contracts/fee_locker/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_static_hook_v2:{address:"0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",source:"Recorded chain and API observations",pointer:"/contracts/fee_static_hook_v2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_dynamic_hook_v2:{address:"0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc",source:"Recorded chain and API observations",pointer:"/contracts/fee_dynamic_hook_v2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},mev_module:{address:"0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",source:"Recorded chain and API observations",pointer:"/contracts/mev_module/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},devbuy:{address:"0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",source:"Recorded chain and API observations",pointer:"/contracts/devbuy/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},vault:{address:"0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",source:"Recorded chain and API observations",pointer:"/contracts/vault/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},airdrop:{address:"0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},paired_weth:{address:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",source:"Recorded chain and API observations",pointer:"/contracts/paired_weth/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"}},clankerDependencies:{pool_manager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/pool_manager/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},position_manager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/position_manager/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},universal_router:{address:"0x53BF6B0684Ec7eF91e1387Da3D1a1769bC5A6F77",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/universal_router/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/permit2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"}},hoodag:{registry:{address:"0x3E717dc89AAF4605b607324329EEeB0a8B3C8A1c",source:"Recorded chain and API observations",pointer:"/contracts/registry/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},universalResolver:{address:"0xa9ed3C73F522875F18DAa631429125da893D8E53",source:"Recorded chain and API observations",pointer:"/contracts/universalResolver/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},registrar:{address:"0x9a122C54e15B6287c164b90833bcDA6E16520D50",source:"Recorded chain and API observations",pointer:"/contracts/registrar/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},publicResolver:{address:"0x072C7a66a6D52B23274470b86096AFCBF816CA0B",source:"Recorded chain and API observations",pointer:"/contracts/publicResolver/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},registrarController:{address:"0x7900b2B8Cc3f0616B18C68AdA7E115A9022Ca04a",source:"Recorded chain and API observations",pointer:"/contracts/registrarController/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},reverseRegistrar:{address:"0x4be6D0379f56404B563afAe17c6b095b1dfcf479",source:"Recorded chain and API observations",pointer:"/contracts/reverseRegistrar/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"}},hoodlock:{locker:{address:"0xd0f7d8c6e9f6d80c297bebe4f7fd1b9c8125c32f",source:"Recorded chain and API observations",pointer:"/contracts/locker/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},burner:{address:"0x6bf43ca706faa8ea46803299c191484e82280652",source:"Recorded chain and API observations",pointer:"/contracts/burner/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},airdrop:{address:"0x6B1fE7b821001144Ee74EEA258b0AafdE20102E8",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},liquidityLocker:{address:"0x91Aa2dA1956C77F8448E18DCaf53383bCc658e67",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"}},hookr:{HookrLimitOrders:{address:"0x0c376cc30b1AC98b8ef80a4F516212D3B99402fA",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrLimitOrders/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRoot:{address:"0x89c9FB50d1f03192230FFB1c279BB6E7d3Fe6aCc",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRoot/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRouter:{address:"0xC2Bc9a3fe6c4Ce8C2F7EB4655b0869b01D8c93C9",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRouter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrQuoter:{address:"0x445D7891381Aa7F91F5048EdBC6a611ccBDe7865",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrQuoter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrLauncher:{address:"0x1cf2748A6670572425eAbf9Ab9e5BC4eb2eB8Ef4",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrLauncher/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRules:{address:"0x4a71c270b1520F94064268102AebD744b0DE7942",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRules/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRegistry:{address:"0x463c82beA1a52F4Cc05ca0741a24F0AD24bA4602",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRegistry/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrTreasury:{address:"0x2242F7FC75606500503075f29ea8cDA684EfB4a9",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrTreasury/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrForwarder:{address:"0xe7863CC0E2Fb783b44c279aB159bcD812c2ceA1c",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrForwarder/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrOwnedRootFactory:{address:"0xA6c2a401597301dFf57A59bC8F70a9622499f3ec",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrOwnedRootFactory/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRootFactory:{address:"0x21E438FaBE10770afb4407cF6b09d32369CBdCE4",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRootFactory/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrFamilyRouter:{address:"0x854f3Fa7AC342B244DF0d9A8c8F597b051aAE559",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrFamilyRouter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrFamilyLock:{address:"0xfAFEcE64099C1E791C4B46189c277f00c0c7e00b",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrFamilyLock/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},PoolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/PoolManager/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HOOKR_Token:{address:"0x18E674231A58c239Dc7DaeDcffE15Ec3A24cff5c",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HOOKR_Token/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"}},merkl:{distributor:{address:"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae",source:"Recorded chain and API observations",pointer:"/contracts/distributor/address",block:null,blockKind:"latest"},distributionCreator:{address:"0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd",source:"Recorded chain and API observations",pointer:"/contracts/distributionCreator/address",block:null,blockKind:"latest"},accessControlManager:{address:"0x5D36e13F076f34eE2Bf69fEAEa784887754465f8",source:"Recorded chain and API observations",pointer:"/contracts/accessControlManager/address",block:null,blockKind:"latest"}},poolsTrade:{liquidityLauncher:{address:"0x0000FffFBE8efE702c8703aE3477FF5dE3d319C0",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLauncher/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},instantLaunchStrategyFeesOn:{address:"0x7c48DDe3B447381F4d986334679b3Afc7F2D35C2",source:"Recorded chain and API observations",pointer:"/contracts/instantLaunchStrategyFeesOn/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},instantLaunchStrategyFeesOff:{address:"0xC9566675b1Ea42861546f3c5B74Ace2c79c49572",source:"Recorded chain and API observations",pointer:"/contracts/instantLaunchStrategyFeesOff/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},feeSplitterFeesOn:{address:"0x9411fa7F956f64aa7981AA27cB3bC6eC0415449C",source:"Recorded chain and API observations",pointer:"/contracts/feeSplitterFeesOn/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},feeSplitterFeesOff:{address:"0x882Ae5e2095435A62Fd1BBDEfcb637f5CeAFc0ee",source:"Recorded chain and API observations",pointer:"/contracts/feeSplitterFeesOff/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},uerc20BeneficiaryVault:{address:"0x26d2F7AcB07707034406a0dC458351Bb63C02553",source:"Recorded chain and API observations",pointer:"/contracts/uerc20BeneficiaryVault/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},compoundingClaimRecipient:{address:"0xf585b5D728A8fdE743027307BF5F3556E3B9C58D",source:"Recorded chain and API observations",pointer:"/contracts/compoundingClaimRecipient/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},universalRouterStrategyApp:{address:"0x1242c9439d589cAE85E121B1f79f2aF51e91DCEE",source:"Recorded chain and API observations",pointer:"/contracts/universalRouterStrategyApp/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},uerc20Factory:{address:"0x000000e200088D55C39a11F609E5F667729ad49b",source:"Recorded chain and API observations",pointer:"/contracts/uerc20Factory/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},universalRouter:{address:"0x8876789976dEcBfCbBbe364623C63652db8C0904",source:"Recorded chain and API observations",pointer:"/contracts/universalRouter/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4PoolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/contracts/v4PoolManager/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4PositionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/contracts/v4PositionManager/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/contracts/permit2/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4Quoter:{address:"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94",source:"Recorded chain and API observations",pointer:"/contracts/v4Quoter/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},protocolFeeController:{address:"0x6d0009504D129CF5002Dba61D9Ae8575AA79314c",source:"Recorded chain and API observations",pointer:"/contracts/protocolFeeController/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"}},priors:{pool:{address:"0x281210097f0de7A8FB6F87310AF0f089c9C8DE21",source:"Recorded chain and API observations",pointer:"/contracts/pool/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},lens:{address:"0x9d7035722bd42C551f82FEB9FDDd17453AEF3D9B",source:"Recorded chain and API observations",pointer:"/contracts/lens/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},usdg:{address:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",source:"Recorded chain and API observations",pointer:"/contracts/usdg/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},registry:{address:"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",source:"Recorded chain and API observations",pointer:"/contracts/registry/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},stockVault:{address:"0xbEcd07EC689988e16b870C121756C4c2C8cb02B6",source:"Recorded chain and API observations",pointer:"/contracts/stockVault/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"}},morpho:{morpho_blue:{address:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",source:"Recorded chain and API observations",pointer:"/addresses/morpho_blue/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},adaptive_curve_irm:{address:"0x2BD3d5965B26B51814AC95127B2b80dD6CcC0fa1",source:"Recorded chain and API observations",pointer:"/addresses/adaptive_curve_irm/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/addresses/USDG/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},WETH:{address:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",source:"Recorded chain and API observations",pointer:"/addresses/WETH/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"}},tickerSpring:{limitOrderHook:{address:"0xa31729621a2280C0Ff9Aaff5B3F357cFF1bEC040",source:"Recorded chain and API observations",pointer:"/liveness/contracts/limitOrderHook/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},gridStrategy:{address:"0xd597785134307B5324f469A9506066fAd4827730",source:"Recorded chain and API observations",pointer:"/liveness/contracts/gridStrategy/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},ladderStrategy:{address:"0x23c7906D8fa3ede698A00AbE66D28605A41b4177",source:"Recorded chain and API observations",pointer:"/liveness/contracts/ladderStrategy/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},basketZap:{address:"0xFca65c50325b83F8f1E07cD103c00De0cEa4Fb39",source:"Recorded chain and API observations",pointer:"/liveness/contracts/basketZap/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},usdg:{address:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",source:"Recorded chain and API observations",pointer:"/liveness/contracts/usdg/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"}},orbio:{credit:{address:"0xe33322da1380e61e5ae5dfb21e7f62924c73004c",source:"Recorded chain and API observations",pointer:"/orbio/credit/address",block:"100313751",blockKind:"fork",caveat:"Fork anchor block recorded from chain observations; individual code reads were latest."},exchange:{address:"0x6951ffd32630b05e06f50062aea801625a58ebc0",source:"Recorded chain and API observations",pointer:"/orbio/exchange/address",block:"100313751",blockKind:"fork",caveat:"Fork anchor block recorded from chain observations; individual code reads were latest."}},vaults:{steakhouse:{address:"0xBeEff033F34C046626B8D0A041844C5d1A5409dd",source:"Recorded chain and API observations",pointer:"/vaults/eligible/0/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},spark:{address:"0xde770c84fe66e063336b31737cfe9790f18c4087",source:"Recorded chain and API observations",pointer:"/vaults/eligible/1/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},netnet:{address:"0x99347d5F70D3838763f6Bddcf80304C8aa953B57",source:"Recorded chain and API observations",pointer:"/vaults/eligible/2/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},morphoV2Factory:{address:"0x0fbad98595b0186da120e41f77c102beb49f803c",source:"Recorded chain and API observations",pointer:"/vaults/morphoVaultV2Factory",block:null,blockKind:"latest"},longbowCore:{address:"0x026df18fbd2A7639089D0a16293383ec687A5Ca1",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/0/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/0/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},longbowFrontier:{address:"0x65dC90cd3a0BCDE967c8AE6019d6790b616E78F7",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/1/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/1/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},longbowEth:{address:"0xe129D4Cb2d454C4ACFAc909d1576453A9b835f61",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/2/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/2/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},beefyTestedLpVault:{address:"0xC447184BF75a84Ace3087515CCFFb54937838FC8",source:"Recorded chain and API observations",pointer:"/projects/1/tested_lp_vault",block:"100357163",blockKind:"fork",blockPointer:"/fork_environment/fork_block",caveat:"LP adapter only; not an eligible USDG ERC-4626 vault. Other per-vault/strategy addresses remain dynamic."},groveAlm:{address:"0xBEEff039907422219Fb367e525954DDC092854d9",source:"Recorded chain and API observations",pointer:"/projects/2/address",block:"100355967",blockKind:"read",blockPointer:"/raw_reads/longbow_grove_control/4/block",caveat:"Public Grove x Steakhouse USDG ERC-4626 vault; below $1M USDG threshold at measurement."}},identity:{identityRegistry:{address:"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",source:"Recorded chain and API observations",pointer:"/erc8004/identityRegistry",block:null,blockKind:"latest"},reputationRegistry:{address:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63",source:"Recorded chain and API observations",pointer:"/erc8004/reputationRegistry",block:null,blockKind:"latest"},validationRegistry:{address:"0x8004Cc8439f36fd5F9F049D9fF86523Df6dAAB58",source:"Recorded chain and API observations",pointer:"/erc8004/validationRegistry",block:null,blockKind:"latest"}},meridian:{PredictionMarketEscrow:{address:"0xE4cea507b19796362A5a28Fa7cb705A3F1866213",source:"Recorded chain and API observations",pointer:"/addresses/PredictionMarketEscrow/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},SecondaryMarketEscrow:{address:"0x7E318ef37c3bC3d0cBA205Af2D1Fc9F9CeFEB5df",source:"Recorded chain and API observations",pointer:"/addresses/SecondaryMarketEscrow/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},MeridianRobinhoodVault:{address:"0x79cB914f3F336426E89FaB55A9488AB25770552D",source:"Recorded chain and API observations",pointer:"/addresses/MeridianRobinhoodVault/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},CollateralToken_USDe:{address:"0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34",source:"Recorded chain and API observations",pointer:"/addresses/CollateralToken_USDe/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."}},relay:{depository:{address:"0x4cd00e387622c35bddb9b4c962c136462338bc31",source:"Recorded chain and API observations",pointer:"/addresses/depository_4663",block:"100355691",blockKind:"fork",blockPointer:"/fork/fork_block",caveat:"Only quoted depositNative path fork-tested; bridge settlement is external and unmeasured."}},lighter:{settlement:{address:"0x94bAB9693Ba2f6358507eFfcbd372b0660AFfF9d",source:"Recorded chain and API observations",pointer:"/contracts_on_4663/lighter_rh_settlement_proxy/address",block:"100355574",blockKind:"read",blockPointer:"/block_number",caveat:"Settlement/custody metadata only; funding tool uses HTTP, not this contract."}},heyResearch:{heyToken:{address:"0xB33eb16782776b4D738c0Fd643577cb0284Db610",source:"Recorded chain and API observations",pointer:"/addresses/heyToken/address",block:null,blockKind:"unanchored",caveat:"API-only tools; source has time range but no block anchor."}}},46630:{deployments:{test_USDG:{address:"0x7E955252E15c84f5768B83c41a71F9eba181802F",source:"Recorded chain and API observations",pointer:"/code_probes/0/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/0/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_WETH:{address:"0x7943e237c7F95DA44E0301572D358911207852Fa",source:"Recorded chain and API observations",pointer:"/code_probes/1/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/1/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_gateway:{address:"0x77bF00A6A90c600f214b34BAFBB7918c0cF113A8",source:"Recorded chain and API observations",pointer:"/code_probes/2/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/2/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_identity:{address:"0x8004A818BFB912233c491871b3d84c89A494BD9e",source:"Recorded chain and API observations",pointer:"/code_probes/3/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/3/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_USDG_implementation:{address:"0xf0863d7a29a55d0c4263c11bfac754312ff078df",source:"Recorded chain and API observations",pointer:"/code_probes/15/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/15/block",caveat:"Code presence alone does not establish a complete testnet integration."},facet_0xef55bec6:{address:"0x08f560a85db40a7d4ac49b4F44f1D38e5B8aB811",source:"Recorded chain and API observations",pointer:"/code_probes/17/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/17/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_production_poolmanager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/code_probes/22/address",block:"144389821",blockKind:"read",blockPointer:"/code_probes/22/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v3_community_test_candidate:{address:"0xFECCB63CD759d768538458Ea56F47eA8004323c1",source:"Recorded chain and API observations",pointer:"/code_probes/50/address",block:"144389821",blockKind:"read",blockPointer:"/code_probes/50/block",caveat:"Community v3 is not canonically endorsed; v4 native stack is incomplete."},Uniswap_v4_PositionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/code_probes/52/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/52/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_Quoter:{address:"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94",source:"Recorded chain and API observations",pointer:"/code_probes/54/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/54/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_StateView:{address:"0xF3334192D15450CdD385c8B70e03f9A6bD9E673b",source:"Recorded chain and API observations",pointer:"/code_probes/56/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/56/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_Permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/code_probes/77/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/77/block",caveat:"Code presence alone does not establish a complete testnet integration."},v3_test_WETH9:{address:"0x37E402B8081eFcE1D82A09a066512278006e4691",source:"Recorded chain and API observations",pointer:"/code_probes/78/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/78/block",caveat:"Community v3 is not canonically endorsed; v4 native stack is incomplete."}}}},i=s[4663].tokens.USDG.address,d=s[46630].deployments.test_USDG.address,g=s[4663].pons.factory.address,m=s[4663].pons.memeHook.address,y=s[4663].pons.poolManager.address,P=s[4663].pons.feeEscrow.address,R=s[4663].oracle.ethUsdgPool.address,l={name:"Global Dollar",version:"1",chainId:a,verifyingContract:i},u={name:"Global Dollar",version:"1",chainId:o,verifyingContract:d},_={chainId:o,address:d},t={mainnet:{chainId:a,usdg:i,usdgDomain:l,weth:s[a].tokens.WETH.address,identityRegistry:s[a].identity.identityRegistry.address},testnet:{chainId:o,usdg:d,usdgDomain:u,weth:s[o].deployments.test_WETH.address,identityRegistry:s[o].deployments.test_identity.address}};function I(e="mainnet"){if(e!=="mainnet"&&e!=="testnet")throw new r("Set OAK_NETWORK to mainnet or testnet.");return e}function F(e,n){if(n.toLowerCase()!==t[e].usdg.toLowerCase())throw new r(`USDG does not match the pinned ${e} deployment on chain ${t[e].chainId}.`)}async function C(e,n){let c=await n.getChainId();if(c!==t[e].chainId)throw new r(`RPC chain ${c} does not match OAK_NETWORK ${e} (chain ${t[e].chainId}).`)}var B={4663:{"pons-claims":{"/stackResolution/calls":[{to:"token",sig:"launchFactory()",selector:"0x536dac9b",returns:"address"},{to:"token",sig:"curve()",selector:"0x7165485d",returns:"address"},{to:"factory",sig:"getLaunchedToken(address)",selector:"0x3cf28b5a",returns:"(address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists)",phase:{0:"curve",1:"swept (fees already credited, no pool)",2:"graduated (v4 pool)",3:"rescued"}},{to:"curve",sig:"feeEscrow()",selector:"0xc4b7de97",returns:"address"},{to:"curve",sig:"factory()",selector:"0xc45a0155",returns:"address"},{to:"factory",sig:"memeHook()",returns:"address"}],"/claim_fees":{apiKey:!1,signup:!1,allowlist:!1,caller:"the coin's current creatorFeeRecipient only (claim pays msg.sender's ledger; no claim-for)",reads:[{to:"escrow",sig:"balanceOf(address)",selector:"0x70a08231",meaning:"native ETH owed, per wallet, across all its coins on this escrow"},{to:"escrow",sig:"balanceOfToken(address,address)",selector:"0xf59e38b7",args:"(wallet, asset)",meaning:"per-asset ledger: custom-pair quote asset, or the coin for released buyback vests"},{to:"curve",sig:"quoteFeeBalance()",selector:"0xed479c47",phase:0},{to:"curve",sig:"creatorTaxBalance()",selector:"0xdb2bd533",phase:0},{to:"curve",sig:"protocolFeeShareBps()",selector:"0x9040f866",observed:3e3},{to:"hook",sig:"pendingFees(bytes32,address)",selector:"0x359b4f30",phase:2,args:"(poolId, currency) for both currencies"},{to:"hook",sig:"pendingCreatorTax(bytes32,address)",selector:"0xc8eaa792",phase:2}],poolId:"keccak256(abi.encode(currency0, currency1, poolFee, tickSpacing, hook)); currencies sorted by address, native ETH 0x0 is currency0",creatorCreditFormula:"fee - floor(fee * protocolFeeShareBps / 10000) + tax (creator gets the rounding remainder; buyback off)",roundingEvidence:{poolFee:"204796497163896",protocolCredit:"61438949149168",creatorCredit:"348154045178624"},writes:[{phase:0,when:"unswept curve fees > 0",tx:{to:"curve",sig:"sweepFees(uint256)",selector:"0x3729bb9a",args:["0 (minBuybackTokensOut)"]}},{phase:2,when:"pendingFees/pendingCreatorTax on the launch-token side == 0 and quote side > 0",tx:{to:"hook",sig:"sweepPoolFees(bytes32,uint256,uint256)",selector:"0x3d61055e",args:["poolId","0 (minConversionQuoteOut)","0 (minBuybackTokensOut)"]}},{phase:"any",when:"escrow.balanceOf(wallet) > 0",tx:{to:"escrow",sig:"claim()",selector:"0x4e71d92d",args:[]}},{phase:"any",when:"escrow.balanceOfToken(wallet, asset) > 0",tx:{to:"escrow",sig:"claimToken(address)",selector:"0x32f289cf",args:["asset"]}}],cannotSelfSweep:["phase 2 with any launch-token-side fee pending (InternalSwapRequiresOperator)","buyback-on coins (docs; not fork-tested)"],decideBy:"eth_call the sweep from the wallet before offering it; preview sweep+claim with eth_simulateV1",errors:{"0x8d42130c":"NotFeeSweepOperator()","0x31cdb504":"InternalSwapRequiresOperator()","0xc2caa2a6":"NoBalance()","0xe6a0d45f":"AlreadyGraduated()","0xb9f93944":"NotCreatorFeeRecipient() (part A)"},otherSelectors:{"claim(uint256)":"0x379607f5","claimToken(address,uint256)":"0x1698755f"},walletCoinDiscovery:{logs:["TokenLaunched topic3 (initiating wallet) == wallet","CreatorFeeRecipientUpdated(address indexed token,address indexed old,address indexed new) topic3 == wallet, topic0 0x308c390ed1ab5873392818e036cabdf408bc8ad042fbaead3108954ff75ba980"],gap:"a coin launched by another wallet naming this wallet as recipient at launch appears in neither (CreatorFeeRecipientUpdated is not emitted at launch: 32 vs 280 launches in the same 100,000 blocks)"},gas:{claimMainnetEstimate:42546,claimFork:32632,sweepFeesFork:92661,sweepPoolFeesFork:84141,gasPriceWei:2062e4,ethUsd:2353.86,claimCostUsd:.0021},projectFees:"none on the claim; the creator share is set per trade (config 0: base 1%, Pons keeps 30% of it; creator tax set at launch, cap 1000 bps)"},"/find_launches/chainSource/step2":{method:"eth_call Multicall3.aggregate3((address,bool,bytes)[])",selector:"0x82ad56cb",perLaunch:["factory.getLaunchedToken(token)","token.name()","token.symbol()","curve.getReserves()","curve.realQuoteReserve()"],measured:{subcalls:50,allOk:!0}}},"pons-oracle":{"/pons/selectors":{launchAndBuy:"0xf85f8e41",launchToken3:"0xf35abbcf",launchToken4:"0xa72101af",getLaunchedToken:"0x3cf28b5a",previewLaunchEconomics:"0xf718b78c",launchFee:"0xcf3cf573",canLaunch:"0x58373f04",createGraduatedPool:"0x2f53ef2f",transferCreatorFeeRecipient:"0x2931861b",setCreatorFeeRecipient_ownerProposal:"0xe102c9aa",executeCreatorFeeRecipientChange:"0x3d3d2d58",pendingCreatorFeeRecipient:"0x9beacf4a",setBuybackEnabled:"0xb18f1db1","curve.buy":"0x59a87bc1","curve.sell":"0xd04c6983","curve.sweepFees":"0x3729bb9a","curve.graduated":"0xe7c2b772","hook.sweepPoolFees":"0x3d61055e","hook.pendingFees":"0x359b4f30","hook.pendingCreatorTax":"0xc8eaa792","escrow.claim":"0x4e71d92d","escrow.balanceOf":"0x70a08231","token.burn":"0x42966c68","token.burnFrom":"0x79cc6790"},"/ponsFeeClaim":{address:"0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e",selector:"0x4e71d92d",signature:"claim()",args:[],caller:"the recipient itself (pays msg.sender's native ledger); no claim-for",revertWhenZero:"NoBalance() 0xc2caa2a6",readableClaimable:"balanceOf(address) 0x70a08231",paymentInstruction:"native ETH CALL to msg.sender forwarding all remaining gas (storage-writing receive() ran with gasleft 1020298867 / 1018685354)",preClaimSweeps:{curvePhase:{address:"<curve>",selector:"0x3729bb9a",signature:"sweepFees(uint256 minBuybackTokensOut)",callers:"current creator fee recipient or fee sweep operator; others NotFeeSweepOperator()",afterGraduation:"AlreadyGraduated(); graduation itself credits accrued curve fees to the escrow"},poolPhase:{address:"0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044",selector:"0x3d61055e",signature:"sweepPoolFees(bytes32 poolId,uint256 minConversionQuoteOut,uint256 minBuybackTokensOut)",callers:"recipient only when no internal swap is needed; operator otherwise (operator needs minConversionQuoteOut>0 else MinimumOutputRequired())"}}},"/ponsRecipientTransfer":{address:"0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e",selector:"0x2931861b",signature:"transferCreatorFeeRecipient(address token,address newRecipient)",caller:"current creator fee recipient only",revert:"NotCreatorFeeRecipient() 0xb9f93944",effect:"immediate; updates factory record and hook.launches(poolId); credited escrow balances do not move"}},"chain-backends":{"/usdg/eip3009/selectorsPresent":{"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"0xef55bec6","receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,bytes)":"0x88b7ab63","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"0xe3ee160e","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,bytes)":"0xcf092995","cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":"0x5a049a70","cancelAuthorization(address,bytes32,bytes)":"0xb7b72899","authorizationState(address,bytes32)":"0xe94a0102","RECEIVE_WITH_AUTHORIZATION_TYPEHASH()":"0x7f2eecc3","TRANSFER_WITH_AUTHORIZATION_TYPEHASH()":"0xa0cc6a68"},"/orbio/selectors":{"buyAndActivate(uint256,uint256,bytes32,uint256)":"0x6ebadb6e","getActivationQuote(uint256,uint256)":"0x578850c3"},"/erc8004/selectors":{"register()":"0x1aa3a008","register(string)":"0xf2c298be","register(string,(string,bytes)[])":"0x8ea42286"}},clanker:{"/calls":{launch_token:{contract:"0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",function_name:"deployToken",signature:"deployToken(((address,string,string,bytes32,string,string,string,uint256),(address,address,int24,int24,bytes),(address,address[],address[],uint16[],int24[],int24[],uint16[],bytes),(address,bytes),(address,uint256,uint16,bytes)[]))",selector:"0xdf40224a",state_mutability:"payable",msg_value_rule:"0 wei if no devBuy extension; exact devBuy.ethAmount in wei if ClankerUniV4EthDevBuy (0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a) is included in extensionConfigs",returns:"(address tokenAddress)",event_emitted:{name:"TokenCreated",topic0:"0x9299d1d1a88d8e1abdc591ae7a167a6bc63a8f17d695804e9091ee33aa89fb67",indexed_fields:["tokenAddress","tokenAdmin"]},inner_abi_encodings:{static_fee_data:"abi.encode(uint24 clankerFeeUniBps, uint24 pairedFeeUniBps) // 10000 = 1%",pool_data_v4_1:"abi.encode(tuple(address extension, bytes extensionData, bytes feeData))",locker_data:"abi.encode(tuple(uint8[] feePreference)) // 0=Both, 1=Paired(WETH), 2=Clanker",mev_module_data:"abi.encode(tuple(uint24 startingFee, uint24 endingFee, uint256 secondsToDecay)) // default (666777, 41673, 15)",devbuy_extension_data:"abi.encode(tuple(address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks), uint128 amountOutMin, address recipient)"}},claim_fees:{available_fees_view:{contract:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",function_name:"availableFees",signature:"availableFees(address,address)",selector:"0x8296535a",alias_signature:"feesToClaim(address,address)",alias_selector:"0x8417645e",arguments:["address feeOwner","address rewardToken (e.g. WETH 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 or Clanker token)"],returns:"(uint256 claimableWei)"},claim_write:{contract:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",function_name:"claim",signature:"claim(address,address)",selector:"0x21c0b342",state_mutability:"nonpayable",arguments:["address feeOwner","address rewardToken (e.g. WETH 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 or Clanker token)"],revert_on_zero_balance:{error:"NoFeesToClaim()",selector:"0x846d8c5c"},event_emitted:{name:"ClaimTokens",topic0:"0xf98eaa9c1f790e5c18b1f227bd5bade62600f9f3e3587c7644b90c50b9bf13c5"}},collect_rewards_flush:{contract:"0xE4910b09709423aFafD995dD76D8A81CF9134A09",function_name:"collectRewards",signature:"collectRewards(address)",selector:"0x5763dbd0",state_mutability:"nonpayable",arguments:["address clankerToken"],notes:"Flushes unharvested LP fees from the Uniswap v4 position into ClankerFeeLocker. If >120s since deploy with 0 post-decay swaps, call ClankerHookStaticFeeV2.mevModuleOperational(bytes32 poolId) (0x58f8cd54) first."}}}},hoodag:{"/selectors":{UniversalResolver:{"resolve(string)":"0x461a4478","reverse(address)":"0xe30bd740","resolveText(string,string)":"0xcb7cef3c","namehash(string)":"0x09879962"},RegistrarController:{"valid(string)":"0x9791c097","available(string)":"0xaeb8ce9b","priceUSDG(string,uint256)":"0x404f64da","priceUSD(string,uint256)":"0xe1271ab8","price(string,uint256)":"0x19b989a0","registerManyUSDG(string[],address,uint256,address,(uint256,uint256,uint8,bytes32,bytes32))":"0x630d6692","renewUSDG(string,uint256,(uint256,uint256,uint8,bytes32,bytes32))":"0x6e4cc14a","makeCommitment(string,address,bytes32)":"0xf49826be","commit(bytes32)":"0xf14fcbc8","register(string,address,uint256,bytes32)":"0x85f6d155","register(string,address,uint256,bytes32,address)":"0x83c3f2b9","registerMany(string[],address,uint256,address)":"0xe8839807","renew(string,uint256)":"0xacf1a841"},ReverseRegistrar:{"setName(string)":"0xc47f0027","node(address)":"0xbffbe61c"},PublicResolver:{"addr(bytes32)":"0x3b3b57de","setAddr(bytes32,address)":"0xd5fa2b00","text(bytes32,string)":"0x59d1d43c","setText(bytes32,string,string)":"0x10f13a8c","name(bytes32)":"0x691f3431","setName(bytes32,string)":"0x77372213"},Registrar:{"ownerOf(uint256)":"0x6352211e","nameExpires(uint256)":"0xd6e4fa86","available(uint256)":"0x96e494e8"}}},hoodlock:{"/contracts/locker/functions":{lock:{signature:"lock(address,uint256,uint256)",selector:"0xe2ab691d",payable:!0,args:["token","amount (base units)","unlockTime (unix seconds, > block.timestamp, no maximum)"],returns:"uint256 lockId",value:"fee() read immediately before; >= fee, excess refunded to msg.sender",requiresPriorApprove:!0,source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/lock"},withdraw:{signature:"withdraw(uint256)",selector:"0x2e1a7d4d",rule:"lock owner only, once, block.timestamp >= unlockTime",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/withdraw"},extend:{signature:"extend(uint256,uint256)",selector:"0xc89258db",rule:"lock owner only, newUnlockTime > unlockTime",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/extend"},transferLockOwnership:{signature:"transferLockOwnership(uint256,address)",selector:"0x5a04fb69",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/transferLockOwnership"},fee:{signature:"fee()",selector:"0xddca3f43",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/fee"},getLock:{signature:"getLock(uint256)",selector:"0xd68f4dd1",returns:"(address owner, address token, uint256 amount, uint256 unlockTime, bool withdrawn)",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/getLock"},lockedAmount:{signature:"lockedAmount(uint256)",selector:"0xcf1cb351",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/lockedAmount"},isUnlocked:{signature:"isUnlocked(uint256)",selector:"0x72abc8b7",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/isUnlocked"},timeRemaining:{signature:"timeRemaining(uint256)",selector:"0xea3d9020",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/timeRemaining"},locksByOwner:{signature:"locksByOwner(address)",selector:"0xc8645841",note:"keeps listing a lock under previous owners; check getLock(id).owner",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/locksByOwner"},locksByToken:{signature:"locksByToken(address)",selector:"0x03091773",note:"append-only; anyone can pad it with 1-wei locks",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/locksByToken"},totalLocks:{signature:"totalLocks()",selector:"0xd2d18eac",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/totalLocks"},nextLockId:{signature:"nextLockId()",selector:"0x6518a0b3",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/nextLockId"}},"/contracts/burner/functions":{burn:{signature:"burn(address,uint256)",selector:"0x9dc29fac",payable:!0,args:["token","amount (base units)"],returns:"uint256 burnId",value:"fee() read immediately before; >= fee, excess refunded",requiresPriorApprove:!0,effect:"transferFrom(msg.sender, DEAD, amount); totalSupply unchanged",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burn"},fee:{signature:"fee()",selector:"0xddca3f43",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/fee"},getBurn:{signature:"getBurn(uint256)",selector:"0x2eb3f49b",returns:"(address burner, address token, uint256 amount, uint256 timestamp)",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/getBurn"},totalBurnedOf:{signature:"totalBurnedOf(address)",selector:"0x90d88803",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/totalBurnedOf"},burnsByBurner:{signature:"burnsByBurner(address)",selector:"0x57f63a1d",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burnsByBurner"},burnsByToken:{signature:"burnsByToken(address)",selector:"0x29d96f28",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burnsByToken"},totalBurns:{signature:"totalBurns()",selector:"0x694ca01d",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/totalBurns"},DEAD:{signature:"DEAD()",selector:"0x03fd2a45",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/DEAD"},nextBurnId:{signature:"nextBurnId()",selector:"0xf3b218a7",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/nextBurnId"}},"/contracts/airdrop/functions":{create:{signature:"create(address,bytes32,uint256,uint32,uint64,string)",selector:"0xbbb04edc",payable:!0,args:["token","merkleRoot (non-zero)","total (base units; full amount must arrive)","maxClaims (1..250000; ceiling on successful claims)","endTime (0 = never sweepable, else >= block.timestamp + 604800)",'uri (<= 256 bytes; "" allowed)'],returns:"uint256 airdropId",value:"== quote(maxClaims) exactly",requiresPriorApprove:!0,source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/create"},claim:{signature:"claim(uint256,uint256,address,uint256,bytes32[])",selector:"0x5d4df3bf",rule:"anyone may send; tokens always go to account",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/claim"},sweep:{signature:"sweep(uint256)",selector:"0xaa60e733",rule:"creator only, once, at or after endTime; returns remaining",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/sweep"},quote:{signature:"quote(uint32)",selector:"0x6f8b0eac",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/quote"},getAirdrop:{signature:"getAirdrop(uint256)",selector:"0x052dd94e",returns:"(address creator, uint64 endTime, uint32 maxClaims, address token, uint32 claims, bool swept, bytes32 merkleRoot, uint128 total, uint128 remaining)",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/getAirdrop"},isClaimed:{signature:"isClaimed(uint256,uint256)",selector:"0xf364c90c",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/isClaimed"},listURI:{signature:"listURI(uint256)",selector:"0x4398a943",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/listURI"},totalAirdrops:{signature:"totalAirdrops()",selector:"0x971a1ca2",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/totalAirdrops"},nextAirdropId:{signature:"nextAirdropId()",selector:"0xaff38dc8",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/nextAirdropId"},accruedFees:{signature:"accruedFees()",selector:"0x682c2058",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/accruedFees"}},"/contracts/liquidityLocker/functions":{lock:{signature:"lock(address,uint256,uint256,address,bool,uint16)",selector:"0xf997cbd9",payable:!0,args:["manager (v3 or v4 position manager)","tokenId","unlockTime (unix seconds, <= now + 100 years)","feeRecipient","acceptUnverifiedHook (v4 only)","maxCollectFeeBps (>= live collectFeeBps)"],returns:"uint256 lockId",value:">= fixedFee(), excess refunded",requiresPriorApprove:"ERC-721 approve(liquidityLocker, tokenId)",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/lock"},lockIdOf:{signature:"lockIdOf(address,uint256)",selector:"0x61ed62f1",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/lockIdOf"},getLock:{signature:"getLock(uint256)",selector:"0xd68f4dd1",returns:"(address owner, uint40 unlockTime, uint16 collectFeeBps, bool isV4, bool hookVerified, bool withdrawn, address feeRecipient, address token0, address token1, uint256 tokenId)",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/getLock"},withdraw:{signature:"withdraw(uint256,address)",selector:"0x00f714ce",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/withdraw"},extend:{signature:"extend(uint256,uint256)",selector:"0xc89258db",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/extend"},collect:{signature:"collect(uint256)",selector:"0xce3f865f",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/collect"},fixedFee:{signature:"fixedFee()",selector:"0x91792d5b",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/fixedFee"},collectFeeBps:{signature:"collectFeeBps()",selector:"0xea09c4f9",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/collectFeeBps"},paused:{signature:"paused()",selector:"0x5c975abb",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/paused"},hookAllowed:{signature:"hookAllowed(address)",selector:"0x7dedbe63",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/hookAllowed"},locksOf:{signature:"locksOf(address)",selector:"0xc3f9ab58",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/locksOf"}},"/selectorCensus":{method:"cast selectors $(cast code <addr>) vs cast sig of every documented function",documentedSignatures:55,matched:55,undocumentedGetters:["0x6518a0b3 nextLockId()","0xf3b218a7 nextBurnId()","0x682c2058 accruedFees()","0xaff38dc8 nextAirdropId()"]}},hookr:{"/q2_exact_calls/selectors":{"HookrLimitOrders.createOrder":{selector:"0xce9ab0b4",signature:"createOrder(((address,address,uint24,int24,address),bool,uint128,uint128,uint160,address,uint40,uint128))",returns:"(uint256 orderId)",payable:!0,msg_value_rule:"bounty + (inputIsNativeETH ? amountIn : 0)"},"HookrLimitOrders.cancel":{selector:"0x57d682c4",signature:"cancel(uint256,address)",returns:"()",payable:!1},"HookrLimitOrders.fill":{selector:"0x3fda5389",signature:"fill(uint256)",returns:"(uint256 amountOut)",payable:!1},"HookrLimitOrders.claimBounty":{selector:"0x98ff8075",signature:"claimBounty(address)",returns:"(uint256 amount)",payable:!1},"HookrLimitOrders.getOrder":{selector:"0xd09ef241",signature:"getOrder(uint256)",returns:"(((address,address,uint24,int24,address),address,uint40,uint40,bool,uint8,address,uint128,uint128,uint128,uint160))",payable:!1},"HookrLimitOrders.quoteFill":{selector:"0xe9ba1309",signature:"quoteFill(uint256)",returns:"(bool fillable, uint256 amountOut)",payable:!1},"HookrLimitOrders.bountyBounds":{selector:"0x0b33e015",signature:"bountyBounds((address,address,uint24,int24,address),bool,uint128,uint128)",returns:"(uint128 minBounty, uint128 defaultBounty, uint128 maxBounty)",payable:!1},"HookrLimitOrders.lastOrderId":{selector:"0x5662ecc7",signature:"lastOrderId()",returns:"(uint256)",payable:!1},"HookrLimitOrders.claimableBounty":{selector:"0x715c8eff",signature:"claimableBounty(address)",returns:"(uint256)",payable:!1},"HookrLimitOrders.liabilities":{selector:"0xb01083e2",signature:"liabilities(address)",returns:"(uint256)",payable:!1},"HookrRouter.swap":{selector:"0x19b36adf",signature:"swap(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address,uint256[])",returns:"(uint256 amountIn, uint256 amountOut)",payable:!0},"HookrRouter.swapGated":{selector:"0xd70dbb98",signature:"swapGated(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address,address,bytes,address,uint256[])",returns:"(uint256 amountIn, uint256 amountOut)",payable:!0},"HookrQuoter.quote":{selector:"0x55f5bdd3",signature:"quote(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address)",returns:"((bytes32,bytes32,address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint24))",payable:!1},"HookrQuoter.quoteExactInputSingle":{selector:"0xaa9d21cb",signature:"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))",returns:"(uint256 amountOut, uint256 gasEstimate)",payable:!1},"HookrLauncher.launch":{selector:"0xf0859aea",signature:"launch((address,string,string,uint256,bytes32),address,(address,int24,uint160,int24,int24,uint128,uint128,uint128,(address,address,address,address,address,uint24,(uint24,uint24,uint16),uint32,uint32,uint8,bool,bytes32),(uint40,uint24,uint24,uint24,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint128,uint128,address,address),(bool,uint16,uint16,uint32,uint16,uint16,uint128,uint32))[],uint256)",returns:"(bytes32 familyId, address subject)",payable:!0},"HookrLauncher.launchWithBuy":{selector:"0xf371db3b",signature:"launchWithBuy((address,string,string,uint256,bytes32),address,(address,int24,uint160,int24,int24,uint128,uint128,uint128,(address,address,address,address,address,uint24,(uint24,uint24,uint16),uint32,uint32,uint8,bool,bytes32),(uint40,uint24,uint24,uint24,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint128,uint128,address,address),(bool,uint16,uint16,uint32,uint16,uint16,uint128,uint32))[],bytes[],(uint8,uint128,uint128,uint32),uint256)",returns:"(bytes32 familyId, address subject, uint256 subjectOut)",payable:!0},"HookrLauncher.predictToken":{selector:"0xa3da6500",signature:"predictToken(address,(address,string,string,uint256,bytes32))",returns:"(address)",payable:!1}}},merkl:{"/abiAndSelectors/functions":{"claim(address[],address[],uint256[],bytes32[][])":"0x71ee95c0","claimWithRecipient(address[],address[],uint256[],bytes32[][],address[],bytes[])":"0x9fb67b58","claimed(address,address)":"0x0c9cbf0e","getMerkleRoot()":"0x49590657","tree()":"0xfd54b228","lastTree()":"0xcce80e7a","toggleOperator(address,address)":"0xbdac7ca3","operators(address,address)":"0x2637588e","onlyOperatorCanClaim(address)":"0x14769142","setClaimRecipient(address,address)":"0x68508c98","claimRecipient(address,address)":"0x4d272d95","endOfDisputePeriod()":"0x5cec892a"}},poolstrade:{"/selectors":{"multicall(bytes[])":"0xac9650d8","createToken(address,string,string,uint8,uint128,address,bytes)":"0xdec14be1","distributeToken(address,(address,uint128,bytes),bytes32)":"0xb6982b48","distributeWithNative(address,bytes,bytes32,uint256)":"0x0ef847b6","getGraffiti(address)":"0x65c08017","getUERC20Address(string,string,uint8,address,bytes32)":"0xf752070e","collectFees(uint256[])":"0x1f2a2e46","claim(uint256,uint256,uint256)":"0xefa9a9be","amounts(uint256)":"0x45f0a44f","ownerOf(uint256)":"0x6352211e","transferFrom(address,address,uint256)":"0x23b872dd","execute(bytes,bytes[],uint256)":"0x3593564c","getSplits()":"0x520db906","graffiti()":"0xf56a499f","nextTokenId()":"0x75794a3c"}},priors:{"/selectors":{"deposit(uint256,address,uint256)":"0xbc157ac1","withdraw(uint256,address)":"0x00f714ce","borrow(uint256,uint256,uint64,address,uint256)":"0x1a29492b","repay(uint256,uint256,uint256)":"0x895a7485","quoteFee(uint256,uint256,uint64)":"0xaed9e43f","getAgent(uint256)":"0x2de5aaf7","getLoan(uint256)":"0x504006ca","loansOf(uint256)":"0x3b7ae807","shares(address)":"0xce7c2ac2","available(uint256)":"0x96e494e8","creditReport(uint256)":"0xfff59127","balanceOf(address)":"0x70a08231","tokenOfOwnerByIndex(address,uint256)":"0x2f745c59","getAgentWallet(uint256)":"0x00339509","register(string)":"0xf2c298be","setDelegate(uint256,address)":"0x94dcf2e6","approve(address,uint256)":"0x095ea7b3","markDefault(uint256)":"0xe1d927c8"}},"morpho-borrow":{"/methods":[{tool:"supply_collateral",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)",selector:"0x238d6579",arguments:["marketParams","collateralAssets","wallet","0x"],return_shape:"0x (no return data)",value:"0",chain_id:4663},{tool:"borrow",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"borrow((address,address,address,address,uint256),uint256,uint256,address,address)",selector:"0x50d8cd4b",arguments:["marketParams","loanAssets","0","wallet","wallet"],return_shape:"ABI (uint256 assetsBorrowed,uint256 sharesBorrowed)",value:"0",chain_id:4663},{tool:"repay",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)",selector:"0x20b76e81",arguments:["marketParams","0","position.borrowShares","wallet","0x"],return_shape:"ABI (uint256 assetsRepaid,uint256 sharesRepaid)",value:"0",chain_id:4663},{tool:"withdraw_collateral",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)",selector:"0x8720316d",arguments:["marketParams","collateralAssets","wallet","wallet"],return_shape:"0x (no return data)",value:"0",chain_id:4663}]},tickerspring:{"/selectors":{erc20Approve:{signature:"approve(address,uint256)",selector:"0x095ea7b3"},groupedOrderHook:{create:{signature:"create((bytes32,int24,bool,address,uint128,uint128,uint256,uint16,uint64))",selector:"0xc25d6637"},createMarketOrder:{signature:"createMarketOrder((bytes32,int24,bool,address,uint128,uint128,uint256,uint16,uint64),address,uint160,uint160,uint160)",selector:"0x3e993775"},cancel:{signature:"cancel(uint256,uint256,uint256,uint64,uint8)",selector:"0xb66f0998"},claim:{signature:"claim(uint256,bool)",selector:"0x71baa1af"},claimBoth:{signature:"claimBoth(uint256)",selector:"0x8de9148b"},realize:{signature:"realize(uint256)",selector:"0x770fc860"},orders:{signature:"orders(uint256)",selector:"0xd09ef241"},ordersCount:{signature:"ordersCount()",selector:"0x8f328855"},marketsCount:{signature:"marketsCount()",selector:"0x063eb469"}},limitStrategy:{open:{signature:"open((address,int24,int24,uint16,bool,uint128,uint16,bool,uint64))",selector:"0xa31bba7f"},openWithMarket:{signature:"openWithMarket((address,int24,int24,uint16,bool,uint128,uint16,bool,uint64),uint160,uint160,uint160)",selector:"0x385012a0"},close:{signature:"close(uint256)",selector:"0x1f28b8c5"},setRepeat:{signature:"setRepeat(uint256,bool)",selector:"0xe1acf590"},collect:{signature:"collect(uint256)",selector:"0xd51ae60a"}}}},"uniswap-lp":{"/selectors":{"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":"0x88316456","increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":"0x219f5d17","decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":"0x0c49ccbe","collect((uint256,address,uint128,uint128))":"0xfc6f7865","burn(uint256)":"0x42966c68","positions(uint256)":"0x99fbab88","approve(address,uint256)":"0x095ea7b3","approve(address,address,uint160,uint48)":"0x87517c45","modifyLiquidities(bytes,uint256)":"0xdd46508f","poolKeys(bytes25)":"0x86b6be7d","getSlot0(bytes32)":"0xc815641c","getLiquidity(bytes32)":"0xfa6793d5","getPositionLiquidity(uint256)":"0x1efeed33","execute(bytes,bytes[],uint256)":"0x3593564c","getPool(address,address,uint24)":"0x1698ee82"}},"pons-trade":{"/selectors":{"buy(uint256,uint256,address)":"0x59a87bc1","sell(uint256,uint256,address)":"0xd04c6983","getLaunchedToken(address)":"0x3cf28b5a","getReserves()":"0x0902f1ac","realQuoteReserve()":"0x4f1f58fd","graduationThreshold()":"0x8b0bc501","sellableTokens()":"0x808bcddc","reservedTokens()":"0x15a55347","readyToGraduate()":"0xc68360a5","graduated()":"0xe7c2b772","feeBps()":"0x24a9d853","creatorTaxBps()":"0xc1bb8901","currentSnipeTaxBps(address)":"0xd7e1ef39","snipeTaxStartBps()":"0x50e25ac2","snipeTaxSeconds()":"0x6783774b","snipeTaxExempt(address)":"0xd44bdfe7","launchedAt()":"0xbf56b371","totalSupply()":"0x18160ddd","decimals()":"0x313ce567","getSlot0(bytes32)":"0xc815641c","getLiquidity(bytes32)":"0xfa6793d5","getLaunchFeePolicy(address)":"0x470ef5fc","createGraduatedPool(address)":"0x2f53ef2f","approve(address,uint256)":"0x095ea7b3","approve(address,address,uint160,uint48)":"0x87517c45","quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"0xaa9d21cb","execute(bytes,bytes[],uint256)":"0x3593564c","sweepFees(uint256)":"0x3729bb9a","sweepPoolFees(bytes32,uint256,uint256)":"0x3d61055e","claim()":"0x4e71d92d","claimToken(address)":"0x32f289cf","balanceOf(address)":"0x70a08231","balanceOfToken(address,address)":"0xf59e38b7","getTokenInfo()":"0xabb1dc44","launchFee()":"0xcf3cf573","previewLaunchEconomics(uint256,address)":"0xf718b78c","launchToken((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address)":"0xf35abbcf","launchAndBuy((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address,uint256,uint256,address,address[])":"0xf85f8e41","WrongGraduationPhase()":"0x9465dbd4","CurveGraduated()":"0x025ac17e","V4TooLittleReceived(uint256,uint256)":"0x8b063d73","SlippageExceeded(uint256,uint256)":"0x71c4efed"}},meridian:{"/selectors":{PredictionMarketEscrow:{"mint(((address,bytes,uint8)[],uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,bytes,bytes32,bytes,bytes,address,bytes))":"0x2e3f9da8","settle(bytes32,bytes32)":"0xd32a9cd9","redeem(address,uint256,bytes32)":"0x992c3e4b","getClaimableAmount(bytes32,address,uint256)":"0x0f5f7793","getNonce(address)":"0x2d0335ab","getMintApprovalHash(bytes32,address,uint256,uint256,uint256)":"0x5f85aa75","getPrediction(bytes32)":"0xdc6423ab","getPickConfig(bytes32)":"0xaf6c986d","collateralToken()":"0xb2016bd4"},SecondaryMarketEscrow:{"executeTrade((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes32,bytes,bytes))":"0x52bb0979","getTradeApprovalHash(bytes32,address,uint256,uint256)":"0xb2cd9c7f","isNonceUsed(address,uint256)":"0xcab7e8eb"},ConditionResolver:{"isValidCondition(bytes)":"0x6443f7b5","getResolution(bytes)":"0x27919a3c","getResolutions(bytes[])":"0x87c428ea","isFinalized(bytes)":"0xbcdbda94","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"0x13137d65","endpoint()":"0x5e280f11"},ERC20_USDe:{"approve(address,uint256)":"0x095ea7b3","allowance(address,address)":"0xdd62ed3e","balanceOf(address)":"0x70a08231"}}},relay:{"/selectors":{"0x49290c1c":{signature:"depositNative(address,bytes32)",argument_types:["address","bytes32"],value:"1000000000000000"}}},erc8004:{"/selectors":{"register()":"0x1aa3a008","register(string)":"0xf2c298be","register(string,(string,bytes)[])":"0x8ea42286","setAgentURI(uint256,string)":"0x0af28bd3","ownerOf(uint256)":"0x6352211e","tokenURI(uint256)":"0xc87b56dd","setMetadata(uint256,string,bytes)":"0x466648da","getMetadata(uint256,string)":"0xcb4799f2","getAgentWallet(uint256)":"0x00339509","setAgentWallet(uint256,address,uint256,bytes)":"0x2d1ef5ae","unsetAgentWallet(uint256)":"0x3fddcf19","approve(address,uint256)":"0x095ea7b3","setApprovalForAll(address,bool)":"0xa22cb465","getApproved(uint256)":"0x081812fc","isApprovedForAll(address,address)":"0xe985e9c5","transferFrom(address,address,uint256)":"0x23b872dd","safeTransferFrom(address,address,uint256)":"0x42842e0e"}},vaults:{"/selectors":{"asset()":"0x38d52e0f","totalAssets()":"0x01e1d114","balanceOf(address)":"0x70a08231","approve(address,uint256)":"0x095ea7b3","deposit(uint256,address)":"0x6e553f65","withdraw(uint256,address,address)":"0xb460af94","redeem(uint256,address,address)":"0xba087652","previewDeposit(uint256)":"0xef8b30f7","previewWithdraw(uint256)":"0x0a28a477","previewRedeem(uint256)":"0x4cdad506","convertToAssets(uint256)":"0x07a2d13a","maxDeposit(address)":"0x402d267d","maxWithdraw(address)":"0xce96cb77","maxRedeem(address)":"0xd905777e","performanceFee()":"0x87788782","managementFee()":"0xa6f7f5d6","want()":"0x1f1fcd51","balance()":"0xb69ef8a8","getPricePerFullShare()":"0x77c7b8fc","deposit(uint256)":"0xb6b55f25","withdraw(uint256)":"0x2e1a7d4d","withdrawAll()":"0x853828b6","deposit(address,address,uint256,uint256)":"0x20e8c565","redeem(address,uint256,address,uint256,bool)":"0x769f8e5d","assetInfo()":"0xa40bee50","exchangeRate()":"0x3ba0b9a9","getTokensIn()":"0x213cae63","getTokensOut()":"0x071bc3c9","deposit(uint224,address,bytes32[])":"0x1dbd773b","redeem(uint256)":"0xdb006a75","claim(address,uint32[])":"0xc12e43e6","requestsOf(address,uint256,uint256)":"0xd4935972","shareManager()":"0x5c60173d","sharesOf(address)":"0xf5eb42dc","activeSharesOf(address)":"0x9d66201b","flags()":"0x64cc4aa5","depositFeeD6()":"0xe3707d18","redeemFeeD6()":"0xbf9587fb","performanceFeeD6()":"0xa51fac22","protocolFeeD6()":"0x8005c6de"}}},46630:{source:"Recorded chain and API observations",pointer:"/read_only_call_probes",writesProven:!1}},E={4663:{pons:{source:"Recorded chain and API observations",callPointers:["/pons/selectors","/ponsFeeClaim","/ponsRecipientTransfer"]},ponsClaims:{source:"Recorded chain and API observations",callPointers:["/stackResolution/calls","/claim_fees","/find_launches"]},ponsTrade:{source:"Recorded chain and API observations",callPointers:["/selectors","/http_checks","/v4_execution"]},uniswap:{source:"Recorded chain and API observations",callPointers:["/selectors","/calls","/endpoints"]},kyberswap:{source:"Recorded chain and API observations",callPointers:["/routers/kyberswap"]},velora:{source:"Recorded chain and API observations",callPointers:["/routers/velora"]},stocks:{source:"Recorded chain and API observations",callPointers:["/stockTokenApi"]},orbio:{source:"Recorded chain and API observations",callPointers:["/orbio"]},vaults:{source:"Recorded chain and API observations",callPointers:["/interfaces","/selectors","/endpoints","/projects"]},morpho:{source:"Recorded chain and API observations",callPointers:["/methods","/api"]},erc8004:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors"]},clanker:{source:"Recorded chain and API observations",callPointers:["/calls","/http_endpoints"]},hoodag:{source:"Recorded chain and API observations",callPointers:["/oakToolCallPlan","/selectors","/httpEndpoints"]},hoodlock:{source:"Recorded chain and API observations",callPointers:["/contracts","/selectorCensus","/http"]},hookr:{source:"Recorded chain and API observations",callPointers:["/q2_exact_calls"]},merkl:{source:"Recorded chain and API observations",callPointers:["/abiAndSelectors/functions","/api"]},poolsTrade:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors","/http"]},priors:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors","/endpoints"]},tickerSpring:{source:"Recorded chain and API observations",callPointers:["/selectors","/httpEndpoints"]},meridian:{source:"Recorded chain and API observations",callPointers:["/selectors","/endpoints"]},relay:{source:"Recorded chain and API observations",callPointers:["/selectors","/endpoints","/quotes"]},heyResearch:{source:"Recorded chain and API observations",callPointers:["/oakTools","/endpointsProbed"]},lighter:{source:"Recorded chain and API observations",callPointers:["/endpoints"]}},46630:{source:"Recorded chain and API observations",callPointers:["/read_only_call_probes","/dependencies","/limits"]}},w={4663:{kyberswap:"0xe21fd0e9",velora:"0xe3ead59e"}},b={4663:{kyberswap:{address:"0x8F10B468b06c6FD214B65F87778827F7D113f996",source:"https://raw.githubusercontent.com/KyberNetwork/kyberswap-documentation/main/developer-guide/aggregator-api/contracts.md",pointer:"Robinhood / AggregationExecutorProxy",block:"100861304",blockKind:"read",caveat:"Corroborated by successful transaction 0x4a2474960f846f412d4d1cbdebb86727c81f92a0859ad743425fdc544d8973e8; approveTarget is zero."},velora:{address:"0x006d0e0d006109f0020f3050000a713780b7b000",source:"https://rpc.mainnet.chain.robinhood.com",pointer:"eth_getTransactionByHash / 0x70bc411f8427d622798ff82e6088d6cf3c011ae04b063c731664215f982ecfba / input / executor",block:"100861280",blockKind:"read",caveat:"Observed v6.2 executor, corroborated by six fresh Velora builds on 2026-10-29; no vendor executor list for 4663. Inner route targets vary; this pin does not authenticate them."}}},D=BigInt("0x45a6e007c874ffc6321d6fb90eac272dd6864bfa")<<96n|1n<<92n|1n,K=[b[4663].velora.address,"0x082738d007001080a00099a000004f3006152085"];export{a,o as b,p as c,f as d,x as e,h as f,A as g,v as h,s as i,i as j,d as k,g as l,m,y as n,P as o,R as p,l as q,u as r,_ as s,t,I as u,F as v,C as w,B as x,E as y,w as z,b as A,D as B,K as C};