@oakagentkit/core 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/dist/api/addresses.js +1 -1
- package/build/dist/api/amounts.js +1 -1
- package/build/dist/api/args.d.ts +19 -0
- package/build/dist/api/args.js +1 -0
- package/build/dist/api/canonical.js +1 -1
- package/build/dist/api/chain.js +1 -1
- package/build/dist/api/errors.js +1 -1
- package/build/dist/api/gas.js +1 -1
- package/build/dist/api/grandfather.js +1 -1
- package/build/dist/api/history.js +1 -1
- package/build/dist/api/http.js +1 -1
- package/build/dist/api/identity-link.js +1 -1
- package/build/dist/api/merkle.js +1 -1
- package/build/dist/api/metadata.js +1 -1
- package/build/dist/api/module.js +1 -1
- package/build/dist/api/modules/beefy/index.js +1 -1
- package/build/dist/api/modules/clanker/index.js +1 -1
- package/build/dist/api/modules/erc8004/index.js +1 -1
- package/build/dist/api/modules/grove/index.js +1 -1
- package/build/dist/api/modules/heyresearch/index.js +1 -1
- package/build/dist/api/modules/hoodag/index.js +1 -1
- package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
- package/build/dist/api/modules/hoodlock/index.js +1 -1
- package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
- package/build/dist/api/modules/hookr/create-cancel.d.ts +2 -2
- package/build/dist/api/modules/hookr/create-cancel.js +1 -1
- package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
- package/build/dist/api/modules/hookr/index.js +1 -1
- package/build/dist/api/modules/kyberswap/index.js +1 -1
- package/build/dist/api/modules/lighter/index.js +1 -1
- package/build/dist/api/modules/longbow/index.d.ts +4 -2
- package/build/dist/api/modules/longbow/index.js +1 -1
- package/build/dist/api/modules/meridian/index.js +1 -1
- package/build/dist/api/modules/meridian/markets.js +1 -1
- package/build/dist/api/modules/meridian/rfq.js +1 -1
- package/build/dist/api/modules/merkl/index.js +1 -1
- package/build/dist/api/modules/morpho/index.d.ts +1 -1
- package/build/dist/api/modules/morpho/index.js +2 -2
- package/build/dist/api/modules/netnet/index.js +1 -1
- package/build/dist/api/modules/orbio/index.js +1 -1
- package/build/dist/api/modules/pons/claim.js +1 -1
- package/build/dist/api/modules/pons/index.js +1 -1
- package/build/dist/api/modules/pons/launch-status.js +1 -1
- package/build/dist/api/modules/pons/prices.js +1 -1
- package/build/dist/api/modules/pons/trade.d.ts +3 -1
- package/build/dist/api/modules/pons/trade.js +1 -1
- package/build/dist/api/modules/poolstrade/index.js +1 -1
- package/build/dist/api/modules/priors/index.js +1 -1
- package/build/dist/api/modules/relay/inbound.js +1 -1
- package/build/dist/api/modules/relay/index.js +1 -1
- package/build/dist/api/modules/relay/outbound-status.js +1 -1
- package/build/dist/api/modules/spark/index.js +1 -1
- package/build/dist/api/modules/steakhouse/index.js +1 -1
- package/build/dist/api/modules/tickerspring/index.js +1 -1
- package/build/dist/api/modules/uniswap/index.js +1 -1
- package/build/dist/api/modules/uniswap/v3.js +1 -1
- package/build/dist/api/modules/uniswap/v4.js +1 -1
- package/build/dist/api/modules/velora/index.js +1 -1
- package/build/dist/api/positions.js +1 -1
- package/build/dist/api/pricenote.js +1 -1
- package/build/dist/api/prices.js +1 -1
- package/build/dist/api/pricing.d.ts +5 -1
- package/build/dist/api/pricing.js +1 -1
- package/build/dist/api/routes.js +1 -1
- package/build/dist/api/secret-fields.js +1 -1
- package/build/dist/api/send.d.ts +45 -0
- package/build/dist/api/send.js +1 -0
- package/build/dist/api/simulate.js +1 -1
- package/build/dist/api/swap.d.ts +1 -0
- package/build/dist/api/swap.js +1 -1
- package/build/dist/api/tokens.js +1 -1
- package/build/dist/api/tool-policy.d.ts +1 -0
- package/build/dist/api/tool-policy.js +1 -1
- package/build/dist/api/tx.js +1 -1
- package/build/dist/api/types.d.ts +10 -0
- package/build/dist/api/untrusted.js +1 -1
- package/build/dist/api/vendor-limits.js +1 -1
- package/build/dist/chunks/2IRORNOH.js +1 -0
- package/build/dist/chunks/{F3TOOLFQ.js → 3PA2XT75.js} +1 -1
- package/build/dist/chunks/52TGAWSI.js +1 -0
- package/build/dist/chunks/{5B3UVWMV.js → 66DWJWDA.js} +1 -1
- package/build/dist/chunks/{PQHU5A3U.js → 6SYTB6FB.js} +1 -1
- package/build/dist/chunks/{NNJLMS7F.js → 73EABRFC.js} +1 -1
- package/build/dist/chunks/{VBWJOG3N.js → A5ITAEUQ.js} +1 -1
- package/build/dist/chunks/A5KSG6LW.js +1 -0
- package/build/dist/chunks/{XTUXR43N.js → B4FOHEBE.js} +1 -1
- package/build/dist/chunks/{XAB4OIE3.js → B4MLWDPM.js} +1 -1
- package/build/dist/chunks/{B2LA6VVF.js → BHR46XNW.js} +1 -1
- package/build/dist/chunks/{6YQ2RX5I.js → BOFA26WU.js} +1 -1
- package/build/dist/chunks/{A5O3SRHY.js → CQNZWL7F.js} +1 -1
- package/build/dist/chunks/{Z53DADZ4.js → GDP4JSAX.js} +1 -1
- package/build/dist/chunks/{MEZH7RPA.js → GIBF3YJO.js} +1 -1
- package/build/dist/chunks/GN4QZ4JA.js +1 -0
- package/build/dist/chunks/{7I6TXFXR.js → I5CQ64EU.js} +1 -1
- package/build/dist/chunks/ICCJ3TOO.js +1 -0
- package/build/dist/chunks/{XN4WDN3O.js → JXOEJPJ4.js} +1 -1
- package/build/dist/chunks/{M643PYHO.js → KL5YE7JA.js} +1 -1
- package/build/dist/chunks/KVVTKM6E.js +1 -0
- package/build/dist/chunks/{R5CBH2CR.js → M6JGTQRY.js} +1 -1
- package/build/dist/chunks/{TU3KHOZK.js → MK6L6TGI.js} +1 -1
- package/build/dist/chunks/{SXBGOGYQ.js → MOVRI5IV.js} +1 -1
- package/build/dist/chunks/NA7HV7BR.js +1 -0
- package/build/dist/chunks/{Z3FZWNAJ.js → NGAI6GTU.js} +1 -1
- package/build/dist/chunks/{Y2SGXWFM.js → OBX7IZG5.js} +1 -1
- package/build/dist/chunks/{WFE3NXBF.js → OSQ4AAM2.js} +1 -1
- package/build/dist/chunks/{SUQ6PIAV.js → OWEUVFB6.js} +1 -1
- package/build/dist/chunks/{T4IYMYZD.js → P4G3EKF7.js} +1 -1
- package/build/dist/chunks/{TFYLOWFO.js → QGDHMVPE.js} +1 -1
- package/build/dist/chunks/{RYOVSHKO.js → SJ7HDRI4.js} +1 -1
- package/build/dist/chunks/{ZZLHDHOT.js → SPAKOCR7.js} +1 -1
- package/build/dist/chunks/T6O2L6HF.js +1 -0
- package/build/dist/chunks/{5SH3C7XP.js → TEVKPJV5.js} +1 -1
- package/build/dist/chunks/UCMNB2UP.js +1 -0
- package/build/dist/chunks/{74X7PXPR.js → Y3P6SUNL.js} +1 -1
- package/build/dist/chunks/YX4NVVSX.js +1 -0
- package/build/dist/chunks/{5BP72XOA.js → ZUC6ILK2.js} +1 -1
- package/package.json +2 -2
- package/build/dist/chunks/CWQ5WXZQ.js +0 -1
- package/build/dist/chunks/GOIVHR4B.js +0 -1
- package/build/dist/chunks/NDHEJGWR.js +0 -1
- package/build/dist/chunks/UB5U6SI2.js +0 -1
- package/build/dist/chunks/UIJWIFGV.js +0 -1
- package/build/dist/chunks/XEN45QST.js +0 -1
- package/build/dist/chunks/XKZOMGC3.js +0 -1
- package/build/dist/chunks/ZJUNO5N7.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as r}from"./Z3FZWNAJ.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};
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oakagentkit/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"engines": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"robinhood-chain"
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
|
-
"lint": "eslint \"src/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" \"test/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" --no-error-on-unmatched-pattern --max-warnings 0",
|
|
35
|
+
"lint": "eslint \"src/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" \"test/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" --no-error-on-unmatched-pattern --global AbortSignal --max-warnings 0",
|
|
36
36
|
"typecheck": "pnpm --workspace-root run typecheck:package packages/core/tsconfig.json",
|
|
37
37
|
"test": "pnpm run build && vitest run --passWithNoTests --config ../../scripts/release/vitest-core.config.mjs",
|
|
38
38
|
"build": "node ../../scripts/release/build.mjs core"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as re}from"./RYOVSHKO.js";import{b as ge,o as ke}from"./XEN45QST.js";import{a as ie}from"./Z53DADZ4.js";import{a as S,b as be}from"./VBWJOG3N.js";import{a as l,d as Me,i as G,j as qe}from"./5BP72XOA.js";import{a as I}from"./7I6TXFXR.js";import{a as r,b as Te,d as oe}from"./Z3FZWNAJ.js";import{encodeAbiParameters as b,encodeFunctionData as J,erc20Abi as Ee,getAddress as y,isAddress as an,keccak256 as cn,pad as un,parseAbi as me,parseAbiParameters as U,toEventSelector as dn,toHex as De}from"viem";var Vn=y(G[4663].uniswap.v4_pool_manager.address),L=y(G[4663].uniswap.v4_position_manager.address),Xe=y(G[4663].uniswap.v4_state_view.address),xe=y(G[4663].uniswap.permit2.address),_e=y(G[4663].ponsTrade.universal_router.address),ee=y(G[4663].uniswap.WETH.address),E=y(qe),f="0x0000000000000000000000000000000000000000",je=8388608,Ie=-887272,ue=887272,ze=(1n<<48n)-1n,F=(1n<<128n)-1n,pn=(1n<<160n)-1n,ae=1n<<96n,$e=1800n,ln="0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",Hn={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},We=[{poolId:"0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",key:{currency0:f,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0x06a889870c8f83640d6816319f72e2aa579b6080")},liquidity:"5532026605872066941",sqrtPriceX96:"3839897026469220985301794",tick:-198703,protocolFee:0,lpFee:0},{poolId:"0x387bf619da4d3fb62bb276482693dba1b9b3520f573cabdfe033384a24125982",key:{currency0:f,currency1:E,fee:500,tickSpacing:10,hooks:f},liquidity:"225820987949255613",sqrtPriceX96:"3840577772610961024680304",tick:-198700,protocolFee:512125,lpFee:500},{poolId:"0x54f7883914619af9105355bf83ed678bcf9f63560218ac61c9963b9503d0ba32",key:{currency0:f,currency1:E,fee:460,tickSpacing:9,hooks:f},liquidity:"85654324417347171",sqrtPriceX96:"3840419018843648722761192",tick:-198701,protocolFee:479349,lpFee:460},{poolId:"0xc7b615a3721594f73664eb3f62d8290d0fcc8d9d1156aed1ddecbd7f32efd9f5",key:{currency0:f,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0xcb787a5cdea8b3715d984d82f1203fd7bfebe0c4")},liquidity:"50517446454827887",sqrtPriceX96:"3840495145865430860317598",tick:-198700,protocolFee:0,lpFee:0},{poolId:"0x24107d152f14a76d292123265ae3f3c71f863fc2f4ef7ba49d64e78d28ea379e",key:{currency0:f,currency1:E,fee:100,tickSpacing:1,hooks:f},liquidity:"36478878201789434",sqrtPriceX96:"3840363370720475418748563",tick:-198701,protocolFee:102425,lpFee:100},{poolId:"0x84bd4e2d8be11aeb0afc1195b38f587b61e90068548f1063fdbe448fb8cad0b6",key:{currency0:ee,currency1:E,fee:200,tickSpacing:4,hooks:f},liquidity:"5980655057479791",sqrtPriceX96:"3839891926195366283625355",tick:-198703,protocolFee:213044,lpFee:200},{poolId:"0x3b0cbf0603ecc67b5fc9bb4fbb6ac9e08d3b2f406b63d1662a36063a7fe5e866",key:{currency0:f,currency1:E,fee:87,tickSpacing:1,hooks:f},liquidity:"5486760264498148",sqrtPriceX96:"3840563617639470134132117",tick:-198700,protocolFee:90134,lpFee:87}],mn=new Set(We.map(e=>e.key.hooks.toLowerCase())),fn=U("address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks"),yn=U("(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"),wn=U("address currency0, address currency1"),bn=U("address currency, address recipient"),he=U("uint256 tokenId, uint256 liquidity, uint128 amount0Min, uint128 amount1Min, bytes hookData"),gn=U("uint256 tokenId, uint128 amount0Min, uint128 amount1Min, bytes hookData"),ve=U("address currency0, address currency1, address recipient"),se=U("bytes actions, bytes[] params"),kn=U("((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)"),Ue=U("address currency, uint256 amount"),V=me(["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)"]),Ge=me(["function getSlot0(bytes32 poolId) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)","function getLiquidity(bytes32 poolId) view returns (uint128 liquidity)"]),hn=me(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),vn=me(["function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"]),An=dn("Transfer(address,address,uint256)");function de(e){if(typeof e!="string"||!an(e,{strict:!1}))throw new r("Provide a valid v4 currency address.");let n=e.toLowerCase();return n===f||n===ie.toLowerCase()?f:y(e)}function $(e){let n=e.toLowerCase();return n===f||n===ie.toLowerCase()}function pe(e){let n=de(e.currency0),o=de(e.currency1);S(e.hooks);let s=y(e.hooks);return cn(b(fn,[n,o,e.fee,e.tickSpacing,s]))}function Ze(e){return((typeof e=="number"?e:e.fee)&je)!==0}function Pn(e,n){return Ze(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 le(e,n){if(!e||typeof e!="object")throw new r("Provide a valid v4 PoolKey.");let o=de(e.currency0),s=de(e.currency1);if(BigInt(o)>=BigInt(s))throw new r("PoolKey currencies must be strictly sorted (currency0 < currency1).");if(!Number.isInteger(e.tickSpacing)||e.tickSpacing<=0||e.tickSpacing>32767)throw new r("PoolKey tickSpacing must be a positive integer.");if(!Number.isInteger(e.fee)||e.fee<0||e.fee>16777215)throw new r("PoolKey fee must be a valid uint24.");S(e.hooks);let c=y(e.hooks),t=Ze(e.fee);if(t&&e.fee!==je)throw new r("Dynamic-fee PoolKey must use exact fee flag 0x800000 (8388608).");if(t&&c.toLowerCase()===f)throw new r("Dynamic-fee PoolKey requires a non-zero hook address.");if(!mn.has(c.toLowerCase()))throw new r(`Unsupported v4 hook ${c}: Oak does not assure arbitrary v4 hooks outside measured PoolKeys.`);let i={currency0:o,currency1:s,fee:e.fee,tickSpacing:e.tickSpacing,hooks:c},a=pe(i);if(n!==void 0){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new r("Provide a 32-byte hex poolId.");if(a.toLowerCase()!==n.toLowerCase())throw new r(`PoolKey hash (${a}) does not match expected poolId (${n}).`)}return i}function xn(e){if(!Number.isInteger(e)||e<=0||e>ue)throw new r("tickSpacing must be a positive integer.");let n=Math.trunc(Ie/e)*e,o=Math.trunc(ue/e)*e;return{tickLower:n===0?0:n,tickUpper:o===0?0:o}}function In(e,n,o){if(!Number.isInteger(o)||o<=0)throw new r("tickSpacing must be a positive integer.");if(!Number.isInteger(e)||!Number.isInteger(n))throw new r("tickLower and tickUpper must be integers.");if(e<Ie||n>ue)throw new r(`Ticks [${e}, ${n}] are outside Uniswap bounds [${Ie}, ${ue}].`);if(e>=n)throw new r("tickLower must be strictly less than tickUpper.");if(e%o!==0||n%o!==0)throw new r(`Ticks [${e}, ${n}] must be divisible by tickSpacing ${o}.`)}function Ke(e,n,o,s,c=l){if(S(e),S(n),$(e))throw new r("Native ETH does not use Permit2 approval.");let t=I(o);if(t<=0n||t>pn)throw new r("Permit2 approval amount must be a positive integer within uint160.");let i=I(String(s));if(i<=0n||i>ze)throw new r("Permit2 expiration must be a positive timestamp within uint48.");let a=J({abi:hn,functionName:"approve",args:[e,n,t,Number(i)]});return be({to:xe,data:a,value:"0",chainId:c,description:`Approve Permit2 allowance of ${t} base units of ${e} for ${n} until ${i}.`})}function Bn(e){let n=le(e.poolKey),o=I(e.amountIn),s=I(e.amountOutMinimum),c=I(String(e.deadline));if(o<=0n||o>F)throw new r("Swap amountIn must be a positive uint128.");if(s>F)throw new r("Swap amountOutMinimum exceeds uint128.");let t=e.hookData??"0x",i=e.zeroForOne?n.currency0:n.currency1,a=e.zeroForOne?n.currency1:n.currency0,d=b(kn,[{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(Ue,[i.toLowerCase(),o]),k=b(Ue,[a.toLowerCase(),s]),p=b(se,["0x060c0f",[d,u,k]]),m=J({abi:vn,functionName:"execute",args:["0x10",[p],c]});return be({to:_e.toLowerCase(),data:m,value:$(i)?o.toString():"0",chainId:e.chainId??l,description:`Execute Uniswap v4 swap of ${o} base units on UniversalRouter (${_e}).`})}function Ne(e){return BigInt(e&16777215)}function Fe(e){let n=Number(e&0xffffffn);return(n&8388608)!==0?n-16777216:n}function On(e){if(typeof e.poolId!="string"||!/^0x[0-9a-fA-F]{50,64}$/.test(e.poolId))throw new r("Provide a valid poolId hex string.");let n=e.poolId.slice(2,52),o=BigInt(`0x${n}`)<<56n,s=Ne(e.tickUpper)<<32n,c=Ne(e.tickLower)<<8n,t=e.hasSubscriber?1n:0n;return o|s|c|t}function Sn(e){let n=(e&0xffn)!==0n,o=Fe(e>>8n&0xffffffn),s=Fe(e>>32n&0xffffffn);return{poolIdBytes25:`0x${(e>>56n&(1n<<200n)-1n).toString(16).padStart(50,"0")}`,tickLower:o,tickUpper:s,hasSubscriber:n}}function Ve(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e];if(c<=0n||t<=0n)return 0n;let i=(o<<96n)*(t-c),a=t*c;return s?(i+a-1n)/a:i/a}function He(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e],i=o*(t-c);return s?(i+ae-1n)/ae:i/ae}function Qe(e){if(e.liquidity<=0n)return{amount0:0n,amount1:0n};let n=re(e.tickLower),o=re(e.tickUpper);return e.sqrtPriceX96<=n?{amount0:Ve(n,o,e.liquidity,e.roundUp),amount1:0n}:e.sqrtPriceX96<o?{amount0:Ve(e.sqrtPriceX96,o,e.liquidity,e.roundUp),amount1:He(n,e.sqrtPriceX96,e.liquidity,e.roundUp)}:{amount0:0n,amount1:He(n,o,e.liquidity,e.roundUp)}}function Ln(e){let n=re(e.tickLower),o=re(e.tickUpper),s=(t,i,a)=>i<=t||a<=0n?0n:a*t*i/ae/(i-t),c=(t,i,a)=>i<=t||a<=0n?0n:a*ae/(i-t);if(e.sqrtPriceX96<=n)return s(n,o,e.amount0);if(e.sqrtPriceX96<o){let t=s(e.sqrtPriceX96,o,e.amount0),i=c(n,e.sqrtPriceX96,e.amount1);return t<i?t:i}return c(n,o,e.amount1)}function Ae(e,n){return e.map(o=>{let s=o.amount.trim(),c=s.startsWith("-"),t=c||s.startsWith("+")?s.slice(1):s,i=n(t,o.token.decimals);return`${c?"-":""}${i} ${o.token.symbol}`})}function Be(e,n=l){if($(e))return{address:ie,symbol:"ETH",decimals:18,chainId:n};let o=y(e);return o.toLowerCase()===E.toLowerCase()?{address:E,symbol:"USDG",decimals:Me,chainId:n}:o.toLowerCase()===ee.toLowerCase()?{address:ee,symbol:"WETH",decimals:18,chainId:n}:{address:o,symbol:o.slice(0,10),decimals:18,chainId:n}}async function X(e,n,o=l){if($(n))return Be(n,o);let s=y(n);if(s.toLowerCase()===E.toLowerCase()||s.toLowerCase()===ee.toLowerCase())return Be(s,o);let[c,t]=await Promise.all([e.readContract({address:s,abi:Ee,functionName:"symbol"}),e.readContract({address:s,abi:Ee,functionName:"decimals"})]);return{address:s,symbol:String(c),decimals:Number(t),chainId:o}}function Z(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new r(`${n} must be a non-negative integer string in base units.`);return I(e)}function Oe(e,n,o,s){let c=e===void 0?I(ke(n.toString(),o)):Z(e,s);if(c<=1n||c>F)throw new r(`${s} must exceed 1 base unit and fit in uint128; the simulated amount may be too small.`);return c}async function Ye(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 Pe(e,n,o){let s=await Ye(e,o);if(n==null)return s+1800n;let c=I(String(n));if(c<=s)throw new r(`Transaction deadline ${c} has expired (current timestamp ${s}).`);return c}async function Je(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??E),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($(c.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ee.toLowerCase())throw new r("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");let w=le(c,o);return{poolId:pe(w),poolKey:w}}let t=(o??ln).toLowerCase(),i=We.find(w=>w.poolId.toLowerCase()===t);if(i){if($(i.key.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ee.toLowerCase())throw new r("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");return{poolId:i.poolId,poolKey:i.key}}let a=t.slice(0,52),d=await e.readContract({address:L,abi:V,functionName:"poolKeys",args:[a]}),[u,k,p,m,T]=d;if(u.toLowerCase()===f&&k.toLowerCase()===f&&Number(m)===0)throw new r(`Unknown or uninitialized v4 poolId ${t}.`);let v=le({currency0:u,currency1:k,fee:Number(p),tickSpacing:Number(m),hooks:T},t);return{poolId:t,poolKey:v}}async function Se(e,n,o){try{let[s,c]=await e.readContract({address:L,abi:V,functionName:"getPoolAndPositionInfo",args:[n]}),t=le({currency0:s.currency0,currency1:s.currency1,fee:Number(s.fee),tickSpacing:Number(s.tickSpacing),hooks:s.hooks});if((o.poolKey||o.poolId)&&(await Je(e,o)).poolId.toLowerCase()!==pe(t).toLowerCase())throw new r("The supplied PoolKey does not match this v4 position.");let i=Sn(BigInt(c));return{poolKey:t,poolId:pe(t),tickLower:i.tickLower,tickUpper:i.tickUpper}}catch(s){throw new r(`Could not read v4 position #${n}. ${oe(s)}`)}}async function Re(e,n,o={}){S(n);let s=y(n),c=e.clientFor(l),t=new Set;if(o.tokenIds)for(let a of o.tokenIds)t.add(I(String(a)).toString());try{let a=await c.getBlockNumber(),d=10000000n;for(let u=0n;u<=a;u+=d){let k=u+d-1n<a?u+d-1n:a,p=await c.request({method:"eth_getLogs",params:[{address:L.toLowerCase(),topics:[An,null,un(s)],fromBlock:De(u),toBlock:De(k)}]});if(!Array.isArray(p))throw new r("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 r("Invalid v4 position transfer log.");t.add(BigInt(m.topics[3]).toString())}}}catch(a){if(!o.tokenIds)throw new r(`Could not discover v4 positions. ${oe(a)}`)}let i=[];for(let a of t){let d=BigInt(a);try{let u;try{u=await c.readContract({address:L,abi:V,functionName:"ownerOf",args:[d]})}catch(P){if(Te(P,3))continue;throw P}if(u.toLowerCase()!==s.toLowerCase())continue;let k=await c.readContract({address:L,abi:V,functionName:"getPositionLiquidity",args:[d]}),p=BigInt(k);if(p===0n&&!o.includeZero)continue;let{poolKey:m,poolId:T,tickLower:v,tickUpper:w}=await Se(c,d,{}),A=await c.readContract({address:Xe,abi:Ge,functionName:"getSlot0",args:[T]}),x=BigInt(A[0]),{amount0:h,amount1:D}=Qe({liquidity:p,tickLower:v,tickUpper:w,sqrtPriceX96:x}),[g,C]=await Promise.all([X(c,m.currency0,l),X(c,m.currency1,l)]);i.push({module:"uniswap",id:`uniswap:v4:${d.toString()}`,chainId:l,assets:[{token:g,amount:h.toString()},{token:C,amount:D.toString()}],description:`Uniswap v4 LP position #${d.toString()} (${g.symbol}/${C.symbol}, liquidity=${p.toString()}, ticks=[${v},${w}], poolId=${T})`})}catch(u){throw new r(`Could not read v4 position #${d}. ${oe(u)}`)}}return i}var Cn={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:{type:"string",description:"Position liquidity in base units."},amount0Max:{type:"string",description:"Maximum currency0 base units to spend."},amount1Max:{type:"string",description:"Maximum currency1 base units to spend."},recipient:{type:"string"},deadline:{type:"string"},permit2Expiration:{type:"string"},hookData:{type:"string"}}},Tn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:{type:"string"},poolId:{type:"string"},poolKey:{type:"object"},amount0Min:{type:"string"},amount1Min:{type:"string"},recipient:{type:"string"},deadline:{type:"string"},hookData:{type:"string"}},required:["tokenId"]},Mn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:{type:"string"},liquidity:{type:"string",description:"Positive base-unit liquidity amount, or all for a full burn."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:ge},fullExit:{type:"boolean"},burn:{type:"boolean"},amount0Min:{type:"string"},amount1Min:{type:"string"},poolId:{type:"string"},poolKey:{type:"object"},recipient:{type:"string"},deadline:{type:"string"},hookData:{type:"string"}},required:["tokenId"]},qn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenIds:{type:"array",items:{type:"string"}},includeZero:{type:"boolean"}}},Le=e=>({tools:[{name:"uniswap_add",inputSchema:Cn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');if(t.tokenId!==void 0)throw new r("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 r("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 Je(a,t),k=xn(u.tickSpacing),p=t.fullRange===!0&&t.tickLower===void 0?k.tickLower:Number(t.tickLower),m=t.fullRange===!0&&t.tickUpper===void 0?k.tickUpper:Number(t.tickUpper);In(p,m,u.tickSpacing);let[T,v]=await Promise.all([X(a,u.currency0,l),X(a,u.currency1,l)]),w=Z(t.amount0Max??t.amount0Desired,"amount0Max"),A=Z(t.amount1Max??t.amount1Desired,"amount1Max");if(w<=0n&&A<=0n||w>F||A>F)throw new r("Provide positive amount0Max/amount1Max within uint128.");let x=await a.readContract({address:Xe,abi:Ge,functionName:"getSlot0",args:[d]}),h=BigInt(x[0]),D=Number(x[3]);if(h<=0n)throw new r(`Pool ${d} is not initialized on StateView.`);let g=t.liquidity!==void 0?Z(t.liquidity,"liquidity"):Ln({amount0:w,amount1:A,tickLower:p,tickUpper:m,sqrtPriceX96:h});if(g<=0n||g>F)throw new r("Position liquidity must be a positive integer within uint128.");let{amount0:C,amount1:P}=Qe({liquidity:g,tickLower:p,tickUpper:m,sqrtPriceX96:h,roundUp:!0});if(C>w||P>A)throw new r("Liquidity requires more tokens than amount0Max or amount1Max.");let M=t.recipient!==void 0?String(t.recipient):i;if(S(M),y(M)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let K=await Ye(a),Q=await Pe(a,t.deadline,K.toString()),ne=Q<K+$e?Q:K+$e,H=t.permit2Expiration===void 0?ne:I(String(t.permit2Expiration));if(H<=K||H>ne||H>ze)throw new r("Permit2 expiration must be in the next 30 minutes and no later than the transaction deadline.");let fe=typeof t.hookData=="string"?t.hookData:"0x",N=(j,z)=>{let R=[];if(!$(u.currency0)&&j>0n){let te=u.currency0.toLowerCase();R.push(e.approval(te,xe.toLowerCase(),j.toString(),l)),R.push(Ke(te,L.toLowerCase(),j.toString(),H.toString(),l))}if(!$(u.currency1)&&z>0n){let te=u.currency1.toLowerCase();R.push(e.approval(te,xe.toLowerCase(),z.toString(),l)),R.push(Ke(te,L.toLowerCase(),z.toString(),H.toString(),l))}let W={currency0:u.currency0.toLowerCase(),currency1:u.currency1.toLowerCase(),fee:u.fee,tickSpacing:u.tickSpacing,hooks:u.hooks.toLowerCase()},we=b(yn,[W,p,m,g,j,z,M.toLowerCase(),fe]),nn=b(wn,[W.currency0,W.currency1]),tn=b(bn,[f,M.toLowerCase()]),on=b(se,["0x020d14",[we,nn,tn]]),rn=J({abi:V,functionName:"modifyLiquidities",args:[on,Q]}),sn=$(u.currency0)?j.toString():"0";return R.push(e.unsignedTx({to:L.toLowerCase(),data:rn,value:sn,chainId:l,description:`Mint Uniswap v4 position on pool ${d} (ticks [${p}, ${m}], liquidity ${g}).`})),R},Y=N(C,P),B=await e.preview(Y,i),O=(j,z)=>{let R=$(z)?ie:z.toLowerCase();return-j.changes.filter(W=>W.token.address.toLowerCase()===R).reduce((W,we)=>W+BigInt(we.amount),0n)},q=O(B,u.currency0),_=O(B,u.currency1);if(q<0n||_<0n||q>C||_>P||q===0n&&_===0n)throw new r("Invalid simulated v4 mint spend. Refresh the liquidity preview.");let Ce=N(q,_),ce=q===C&&_===P?B:await e.preview(Ce,i);if(O(ce,u.currency0)!==q||O(ce,u.currency1)!==_)throw new r("V4 mint spend changed. Refresh the liquidity preview.");let en=Ae(ce.changes,e.formatAmount),ye=Pn(u,D);return{txs:Ce,preview:ce,poolId:d,poolKey:u,tickLower:p,tickUpper:m,liquidity:g.toString(),amount0Max:{token:T,amount:w.toString()},amount1Max:{token:v,amount:A.toString()},dynamicFee:ye.dynamicFee,swapsAreFree:ye.swapsAreFree,summary:`Add Uniswap v4 liquidity (${g} L, ticks [${p}, ${m}]) on pool ${d}. Preview deltas: ${en.join(", ")||"none"}. ${ye.feeNote}`}}},{name:"uniswap_collect",inputSchema:Tn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=I(String(t.tokenId??""));if(a<=0n)throw new r("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):i;if(S(u),y(u)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let k=await Pe(d,t.deadline,t.now),p=t.amount0Min!==void 0?Z(t.amount0Min,"amount0Min"):0n,m=t.amount1Min!==void 0?Z(t.amount1Min,"amount1Min"):0n;if(p>F||m>F)throw new r("amount0Min and amount1Min must fit in uint128.");let T=typeof t.hookData=="string"?t.hookData:"0x",{poolKey:v,poolId:w}=await Se(d,a,t),[A,x]=await Promise.all([X(d,v.currency0,l),X(d,v.currency1,l)]),h=b(he,[a,0n,p,m,T]),D=b(ve,[v.currency0.toLowerCase(),v.currency1.toLowerCase(),u.toLowerCase()]),g=b(se,["0x0111",[h,D]]),C=J({abi:V,functionName:"modifyLiquidities",args:[g,k]}),P=[e.unsignedTx({to:L.toLowerCase(),data:C,value:"0",chainId:l,description:`Collect Uniswap v4 fees from position #${a} to ${u}.`})],M=await e.preview(P,i),K=Ae(M.changes,e.formatAmount);return{txs:P,preview:M,tokenId:a.toString(),poolId:w,recipient:u,currencies:[A,x],summary:`Collect Uniswap v4 fees for position #${a} (actions 0x0111). Preview deltas: ${K.join(", ")||"0"}.`}}},{name:"uniswap_remove",inputSchema:Mn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=I(String(t.tokenId??""));if(a<=0n)throw new r("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):i;if(S(u),y(u)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let k=await Pe(d,t.deadline,t.now),{poolKey:p,poolId:m}=await Se(d,a,t),[T,v]=await Promise.all([X(d,p.currency0,l),X(d,p.currency1,l)]),w=t.slippageBps??ge;if(typeof w!="number")throw new r("Slippage must be an integer from 0 to 9999 bps.");ke("0",w);let A=typeof t.hookData=="string"?t.hookData:"0x",x=t.fullExit===!0||t.burn===!0||t.liquidity==="all";if(!x&&t.liquidity===void 0)throw new r('Provide a liquidity amount or explicitly choose liquidity "all" for a full exit.');let h=t.liquidity===void 0||t.liquidity==="all"?void 0:Z(t.liquidity,"liquidity");if(h!==void 0&&(h<=0n||h>F))throw new r("Provide positive liquidity within uint128 for v4 removal.");let D;try{D=BigInt(await d.readContract({address:L,abi:V,functionName:"getPositionLiquidity",args:[a]}))}catch(N){throw new r(`Could not read v4 position liquidity. ${oe(N)}`)}if(D<=0n||h!==void 0&&h>D)throw new r("Removal requires a nonempty position and cannot exceed its liquidity.");if(x&&h!==void 0&&h!==D)throw new r("A full burn must match the position liquidity; omit the amount when explicitly choosing all.");let g=x?"0x0311":"0x0111",C=(N,Y,B)=>{let O=x?b(gn,[a,N,Y,A]):b(he,[a,h,N,Y,A]),q=b(ve,[p.currency0,p.currency1,B]);return e.unsignedTx({to:L.toLowerCase(),data:J({abi:V,functionName:"modifyLiquidities",args:[b(se,[g,[O,q]]),k]}),value:"0",chainId:l,description:`${x?"Burn and exit":"Decrease"} Uniswap v4 position #${a} (${g}).`})},P=0n,M=0n;if(t.amount0Min===void 0||t.amount1Min===void 0){let N=e.unsignedTx({to:L.toLowerCase(),data:J({abi:V,functionName:"modifyLiquidities",args:[b(se,["0x0111",[b(he,[a,0n,0n,0n,A]),b(ve,[p.currency0,p.currency1,L])]]),k]}),value:"0",chainId:l,description:"Simulation only: separate fees from removal principal."}),Y=await e.preview([N,C(2n,2n,i)],i),B=O=>Y.changes.reduce((q,_)=>_.token.chainId===l&&_.token.address.toLowerCase()===O.address.toLowerCase()?q+BigInt(_.amount):q,0n);if(P=B(T),M=B(v),P<0n||M<0n)throw new r("Removal simulation did not return the expected currencies.")}let K=Oe(t.amount0Min,P,w,"amount0Min"),Q=Oe(t.amount1Min,M,w,"amount1Min"),ne=[C(K,Q,u)],H=await e.preview(ne,i),fe=Ae(H.changes,e.formatAmount);return{txs:ne,preview:H,action:g,tokenId:a.toString(),poolId:m,amount0Min:{token:T,amount:K.toString()},amount1Min:{token:v,amount:Q.toString()},summary:`${x?"Full exit":"Partial remove"} Uniswap v4 position #${a} (${g}). Preview deltas: ${fe.join(", ")||"none"}.`}}},{name:"uniswap_list_positions",inputSchema:qn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=Array.isArray(t.tokenIds)?t.tokenIds:void 0,d=t.includeZero===!0,u=await Re(e,i,{tokenIds:a,includeZero:d});return{version:"v4",positions:u,summary:`Found ${u.length} active Uniswap v4 position(s) for ${i}.`}}}],positions:t=>Re(e,t)}),Rn=Le,Xn=Le,jn=Le;export{Vn as a,L as b,Xe as c,xe as d,_e as e,ee as f,E as g,f as h,je as i,Ie as j,ue as k,ln as l,Hn as m,We as n,$ as o,pe as p,Ze as q,Pn as r,le as s,xn as t,In as u,Ke as v,Bn as w,On as x,Sn as y,Qe as z,Ln as A,Ae as B,Be as C,Re as D,Cn as E,Tn as F,Mn as G,qn as H,Le as I,Rn as J,Xn as K,jn as L};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as le,b as fe,g as W,h as Y,i as be,m as _,n as Z,y as ee,z as he}from"./XEN45QST.js";import{a as me,b as q}from"./Z53DADZ4.js";import{a as D}from"./VBWJOG3N.js";import{a as w,i as J}from"./5BP72XOA.js";import{a as pe}from"./XAB4OIE3.js";import{a as de}from"./7I6TXFXR.js";import{a as i}from"./Z3FZWNAJ.js";import{a as ce}from"./XN4WDN3O.js";import{randomUUID as xe}from"node:crypto";import{encodeAbiParameters as L,encodeFunctionData as te,erc20Abi as we,getAddress as Ae,parseAbi as C,parseAbiParameters as Q,zeroAddress as F}from"viem";var ke=J[w].pons,B=J[w].ponsTrade,Se=C(["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))"]),H=C(["function getReserves() view returns (uint256 quoteReserve,uint256 tokenReserve)","function feeBps() view returns (uint256)","function creatorTaxBps() view returns (uint256)","function currentSnipeTaxBps(address) view returns (uint256)","function sellableTokens() view returns (uint256)","function buy(uint256 quoteIn,uint256 minTokensOut,address recipient) payable returns (uint256)","function sell(uint256 tokensIn,uint256 minQuoteOut,address recipient) returns (uint256)"]),Pe=C(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut,uint256 gasEstimate)"]),Ie=C(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]),Ne=C(["function approve(address token,address spender,uint160 amount,uint48 expiration)"]),Ee=Q("((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,uint256 minHopPriceX36,bytes hookData)"),O={address:me,chainId:w,decimals:18,symbol:"ETH"},Te="There is no on-chain expiry. The signed transaction is protected by its minimum output.",qe=`Quote expiry is enforced by Oak before signing only. ${Te}`,v=10000n,ne=(1n<<256n)-1n,ge=(1n<<128n)-1n,T=(a,o)=>({token:a,amount:o.toString()}),ve=(a,o)=>(a+o-1n)/o,Be={type:"object",additionalProperties:!1,required:["token","amountIn"],properties:{token:{type:"string",pattern:"^0x[0-9a-fA-F]{40}$",description:"Pons launch token address on chain 4663."},amountIn:{type:"string",pattern:"^[0-9]+$",description:"Positive base units: native ETH for buy, launch token for sell."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:100}}};async function ye(a,o,l,e,f=!1){if(D(l),Object.keys(o).some(m=>!["token","amountIn","slippageBps"].includes(m)))throw new i("Provide only token, amountIn and optional slippageBps.");if(typeof o.token!="string")throw new i("Provide a launch token address.");D(o.token);let t=Ae(o.token),n=de(o.amountIn);if(n===0n||n>ne)throw new i("Trade amount must be positive and within the uint256 range.");let u=o.slippageBps??100;if(typeof u!="number"||!Number.isInteger(u)||u<0||u>=1e4)throw new i("Slippage must be an integer from 0 to 9999 basis points.");let k=m=>m*(v-BigInt(u))/v,r=a.clientFor(w),c=await r.getBlock(),s=await r.readContract({address:ke.factory.address,abi:Se,functionName:"getLaunchedToken",args:[t],blockNumber:c.number});if(!s.exists||s.token.toLowerCase()!==t.toLowerCase())throw new i("This address is not a Pons launch token.");if(f&&s.phase!==0)throw new W("Pons curve quotes are only available before graduation.");if(s.phase===1)throw new i("Pons graduation is pending; the curve is closed and the pool is not ready.");if(s.phase===3)throw new i("This Pons launch was rescued and has no active trade route.");if(s.phase!==0&&s.phase!==2)throw new i("This Pons launch has an unknown trade phase.");if(s.pairToken.toLowerCase()!==F)throw new i("This trade route supports native ETH pairs only.");let[U,x]=await Promise.all([r.readContract({address:t,abi:we,functionName:"symbol",blockNumber:c.number}),r.readContract({address:t,abi:we,functionName:"decimals",blockNumber:c.number})]),y={address:t,chainId:w,symbol:ce(U),decimals:x},N=e?O:y,z=e?y:O,A=[],K=(m,P,b,g)=>a.unsignedTx({to:m,data:P,value:b.toString(),chainId:w,description:g}),p,d,$,S=n,oe=null,X;if(s.phase===0){let m=h=>r.readContract({address:s.curve,abi:H,functionName:h,blockNumber:c.number}),[[P,b],g,I,se,M]=await Promise.all([r.readContract({address:s.curve,abi:H,functionName:"getReserves",blockNumber:c.number}),m("feeBps"),m("creatorTaxBps"),e?r.readContract({address:s.curve,abi:H,functionName:"currentSnipeTaxBps",args:[l],blockNumber:c.number}):Promise.resolve(0n),e?m("sellableTokens"):Promise.resolve(0n)]);if(P<=0n||b<=0n||g+I>v-100n)throw new i("Pons curve reserves or fee settings are unavailable.");let ie=v-g-I-100n,G=se<ie?se:ie,ae=h=>({base:h*g/v,creator:h*I/v,snipe:h*G/v}),ue=h=>{let E=ae(h);return h-E.base-E.creator-E.snipe},R;if(e){if(M<=0n||M>=b)throw new i("The curve has no available sellable tokens.");let h=ue(n);if(p=h*b/(P+h),p>=M){p=M;let E=p*P/(b-p)+1n;S=ve(E*v,v-g-I-G),S>n&&(S=n)}R=S,d=k(p),$=ve(d*n,S)}else R=n*P/(b+n),p=ue(R),d=k(p),A.push(a.approval(t,s.curve,n.toString(),w));let V=ae(R);oe={base:T(O,V.base),creator:T(O,V.creator),snipe:T(O,V.snipe)},X=`Curve fees included: ${g} base, ${I} creator and ${G} opening-tax basis points, each rounded separately.`,A.push(K(s.curve,te({abi:H,functionName:e?"buy":"sell",args:[n,$??d,l]}),e?n:0n,e?"Buy Pons curve tokens with native ETH.":"Sell Pons curve tokens for native ETH."))}else{if(n>ge)throw new i("Trade amount exceeds the router uint128 range.");let m={currency0:F,currency1:t,fee:s.poolFee,tickSpacing:s.tickSpacing,hooks:ke.memeHook.address};if(p=(await r.simulateContract({address:B.quoter.address,abi:Pe,functionName:"quoteExactInputSingle",args:[{poolKey:m,zeroForOne:e,exactAmount:n,hookData:"0x"}],account:l,gas:pe,blockNumber:c.number})).result[0],d=k(p),d>ge)throw new i("Minimum output exceeds the router uint128 range.");let b=c.timestamp+300n;if(b>=1n<<48n)throw new i("Permit2 expiry exceeds its timestamp range.");e||(A.push(a.approval(t,B.permit2.address,n.toString(),w)),A.push(K(B.permit2.address,te({abi:Ne,functionName:"approve",args:[t,B.universal_router.address,n,Number(b)]}),0n,"Approve the exact token amount to the Pons router through Permit2 for five minutes.")));let g=[L(Ee,[{poolKey:m,zeroForOne:e,amountIn:n,amountOutMinimum:d,minHopPriceX36:0n,hookData:"0x"}]),L(Q("address,uint256"),[e?F:t,n]),L(Q("address,uint256"),[e?t:F,d])],I=L(Q("bytes,bytes[]"),["0x060c0f",g]);A.push(K(B.universal_router.address,te({abi:Ie,functionName:"execute",args:["0x10",[I],b]}),e?n:0n,"Trade through Pons Universal Router v2.1.2.")),X="Quoter output is net of Pons hook fees; no additional fee is subtracted."}if(p<=0n||d<=0n||d>ne||($??d)>ne)throw new i("Trade output or minimum is outside the supported positive range.");let re=f?{changes:[],summary:"Quote only; preview is required before sending."}:await a.preview(A,l),j=n-S;return{txs:A,changes:re.changes,summary:`${e?"Buy":"Sell"} ${y.symbol} (${y.address}) on chain ${w}. ${X} ${s.phase===0?`${Te} `:""}${j>0n?`Expected native refund: ${a.formatAmount(j.toString(),18)} ETH; minimum output uses the expected spend after refund. `:""}${re.summary}`,quote:{phase:s.phase,amountIn:T(N,n),amountOut:T(z,p),minAmountOut:T(z,d),minimumKind:"absolute",calldataMinAmountOut:T(z,$??d),expectedSpend:T(N,S),expectedRefund:T(N,j),fees:oe,blockNumber:c.number.toString()}}}function Ue(a){let o=new Map,l=e=>{if(BigInt(_())>=BigInt(e.expiresAt))throw new Y};return{name:"pons",async quote(e,f){e={...e,from:q(e.from),to:q(e.to)};let t=Z(e.from);if(t===Z(e.to))throw new W("Pons curve quotes require native ETH and a launch token.");let n=String(_()+le),u=await ye(a,{token:t?e.to:e.from,amountIn:e.amountIn,slippageBps:e.slippageBps??fe},f,t,!0),k=u.txs.at(-1),r=u.quote,c=r.minAmountOut.amount,s=r.fees,U=`Pons curve fees included in net output: ${s.base.amount} base, ${s.creator.amount} creator and ${s.snipe.amount} opening tax, in native ETH base units (18 decimals). Oak swap fee: 0 (venue fee is never Oak income). ${qe}`,x=he({...e,quoteId:`pons:${xe()}`,provider:"pons",wallet:f,chainId:w,router:k.to,spender:k.to,expiresAt:n,data:k.data,value:k.value,amountOut:r.amountOut.amount,minAmountOut:c,blockNumber:r.blockNumber,ponsCurveToken:t?e.to:e.from,calldataMinAmountOut:r.calldataMinAmountOut.amount,expectedSpend:r.expectedSpend.amount,expectedRefund:r.expectedRefund.amount,feeDisclosure:U,oakFee:"0"});ee(k,x),l(x);for(let[y,N]of o)BigInt(_())>=BigInt(N.quote.expiresAt)&&o.delete(y);for(;o.size>=be;)o.delete(o.keys().next().value);return o.set(x.quoteId,{quote:{...x},txs:u.txs.map(y=>({...y})),summary:u.summary}),x},async build(e,f){let t=o.get(e);if(!t)throw new Y;if(l(t.quote),D(f),f.toLowerCase()!==t.quote.wallet.toLowerCase())throw new i("Quote was issued for a different wallet.");let n=t.txs.map(r=>({...r}));ee(n.at(-1),t.quote);let u=await a.preview(n,f);if(l(t.quote),u.changes.filter(r=>q(r.token.address).toLowerCase()===q(t.quote.to).toLowerCase()).reduce((r,c)=>r+BigInt(c.amount),0n)<BigInt(t.quote.minAmountOut))throw new i("Preview retained output is below the accepted minimum.");return{txs:n,summary:`${t.summary} ${u.summary} ${t.quote.feeDisclosure}`}}}}var Oe=a=>({tools:[!0,!1].map(o=>({name:o?"pons_buy":"pons_sell",inputSchema:Be,async execute(l,e){try{return await ye(a,l,e,o)}catch(f){throw new i(a.plainError(f))}}}))}),ze=Oe;export{Ue as a,Oe as b,ze as c};
|