@pepu-chain/sdk 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +565 -2
  3. package/dist/aa/kernel.cjs +40 -0
  4. package/dist/aa/kernel.cjs.map +1 -0
  5. package/dist/aa/kernel.d.cts +88 -0
  6. package/dist/aa/kernel.d.ts +88 -0
  7. package/dist/aa/kernel.js +11 -0
  8. package/dist/aa/kernel.js.map +1 -0
  9. package/dist/aa/react-direct.cjs +110 -0
  10. package/dist/aa/react-direct.cjs.map +1 -0
  11. package/dist/aa/react-direct.d.cts +42 -0
  12. package/dist/aa/react-direct.d.ts +42 -0
  13. package/dist/aa/react-direct.js +107 -0
  14. package/dist/aa/react-direct.js.map +1 -0
  15. package/dist/aa/react.cjs +151 -0
  16. package/dist/aa/react.cjs.map +1 -0
  17. package/dist/aa/react.d.cts +62 -0
  18. package/dist/aa/react.d.ts +62 -0
  19. package/dist/aa/react.js +147 -0
  20. package/dist/aa/react.js.map +1 -0
  21. package/dist/aa.cjs +84 -0
  22. package/dist/aa.cjs.map +1 -0
  23. package/dist/aa.d.cts +85 -0
  24. package/dist/aa.d.ts +85 -0
  25. package/dist/aa.js +11 -0
  26. package/dist/aa.js.map +1 -0
  27. package/dist/api-Dz4sCHH_.d.cts +654 -0
  28. package/dist/api-Dz4sCHH_.d.ts +654 -0
  29. package/dist/calls-BRPjKgjl.d.cts +70 -0
  30. package/dist/calls-z_EQOtFb.d.ts +70 -0
  31. package/dist/chains-DK13zGIp.d.cts +235 -0
  32. package/dist/chains-DK13zGIp.d.ts +235 -0
  33. package/dist/chunk-3XUGQODR.js +194 -0
  34. package/dist/chunk-3XUGQODR.js.map +1 -0
  35. package/dist/chunk-45KSZH26.cjs +145 -0
  36. package/dist/chunk-45KSZH26.cjs.map +1 -0
  37. package/dist/chunk-4GINFJO6.cjs +44 -0
  38. package/dist/chunk-4GINFJO6.cjs.map +1 -0
  39. package/dist/chunk-62M2LKQW.js +136 -0
  40. package/dist/chunk-62M2LKQW.js.map +1 -0
  41. package/dist/chunk-6DSZ4Z2N.js +498 -0
  42. package/dist/chunk-6DSZ4Z2N.js.map +1 -0
  43. package/dist/chunk-7MNJF2OB.cjs +72 -0
  44. package/dist/chunk-7MNJF2OB.cjs.map +1 -0
  45. package/dist/chunk-A5LP2UCS.cjs +2729 -0
  46. package/dist/chunk-A5LP2UCS.cjs.map +1 -0
  47. package/dist/chunk-AJS4UFQX.cjs +121 -0
  48. package/dist/chunk-AJS4UFQX.cjs.map +1 -0
  49. package/dist/chunk-C2XW44FI.cjs +200 -0
  50. package/dist/chunk-C2XW44FI.cjs.map +1 -0
  51. package/dist/chunk-C7IC36XS.cjs +13 -0
  52. package/dist/chunk-C7IC36XS.cjs.map +1 -0
  53. package/dist/chunk-D52PADVY.js +84 -0
  54. package/dist/chunk-D52PADVY.js.map +1 -0
  55. package/dist/chunk-DH6BFNVJ.cjs +272 -0
  56. package/dist/chunk-DH6BFNVJ.cjs.map +1 -0
  57. package/dist/chunk-DPCZJLB3.cjs +87 -0
  58. package/dist/chunk-DPCZJLB3.cjs.map +1 -0
  59. package/dist/chunk-EHBPIYY4.js +262 -0
  60. package/dist/chunk-EHBPIYY4.js.map +1 -0
  61. package/dist/chunk-ESMNAXUI.js +86 -0
  62. package/dist/chunk-ESMNAXUI.js.map +1 -0
  63. package/dist/chunk-ET3P6TX6.cjs +49 -0
  64. package/dist/chunk-ET3P6TX6.cjs.map +1 -0
  65. package/dist/chunk-FCXSP2YF.js +219 -0
  66. package/dist/chunk-FCXSP2YF.js.map +1 -0
  67. package/dist/chunk-IB2FSPMJ.js +66 -0
  68. package/dist/chunk-IB2FSPMJ.js.map +1 -0
  69. package/dist/chunk-IG7RSL2Y.cjs +178 -0
  70. package/dist/chunk-IG7RSL2Y.cjs.map +1 -0
  71. package/dist/chunk-IY3ALPUJ.js +2716 -0
  72. package/dist/chunk-IY3ALPUJ.js.map +1 -0
  73. package/dist/chunk-J3O2ZGG3.cjs +93 -0
  74. package/dist/chunk-J3O2ZGG3.cjs.map +1 -0
  75. package/dist/chunk-J6UXXHBE.js +37 -0
  76. package/dist/chunk-J6UXXHBE.js.map +1 -0
  77. package/dist/chunk-JLZ4LZ4Z.js +22 -0
  78. package/dist/chunk-JLZ4LZ4Z.js.map +1 -0
  79. package/dist/chunk-KIIFL4VM.js +274 -0
  80. package/dist/chunk-KIIFL4VM.js.map +1 -0
  81. package/dist/chunk-KVG3AYYR.js +99 -0
  82. package/dist/chunk-KVG3AYYR.js.map +1 -0
  83. package/dist/chunk-MBA4CLA5.js +45 -0
  84. package/dist/chunk-MBA4CLA5.js.map +1 -0
  85. package/dist/chunk-NE3QKDOB.cjs +24 -0
  86. package/dist/chunk-NE3QKDOB.cjs.map +1 -0
  87. package/dist/chunk-NVOPDXTA.cjs +95 -0
  88. package/dist/chunk-NVOPDXTA.cjs.map +1 -0
  89. package/dist/chunk-OH3QMAIB.js +11 -0
  90. package/dist/chunk-OH3QMAIB.js.map +1 -0
  91. package/dist/chunk-PHM3ZORG.cjs +110 -0
  92. package/dist/chunk-PHM3ZORG.cjs.map +1 -0
  93. package/dist/chunk-R5PXQNO3.cjs +209 -0
  94. package/dist/chunk-R5PXQNO3.cjs.map +1 -0
  95. package/dist/chunk-SLW7FRTL.cjs +285 -0
  96. package/dist/chunk-SLW7FRTL.cjs.map +1 -0
  97. package/dist/chunk-SVWRRALU.cjs +17 -0
  98. package/dist/chunk-SVWRRALU.cjs.map +1 -0
  99. package/dist/chunk-T43PQXJD.js +202 -0
  100. package/dist/chunk-T43PQXJD.js.map +1 -0
  101. package/dist/chunk-TIEAZYHF.cjs +225 -0
  102. package/dist/chunk-TIEAZYHF.cjs.map +1 -0
  103. package/dist/chunk-VBH3JLQ5.js +116 -0
  104. package/dist/chunk-VBH3JLQ5.js.map +1 -0
  105. package/dist/chunk-VF3D6KLQ.cjs +94 -0
  106. package/dist/chunk-VF3D6KLQ.cjs.map +1 -0
  107. package/dist/chunk-VTQIHMF3.js +82 -0
  108. package/dist/chunk-VTQIHMF3.js.map +1 -0
  109. package/dist/chunk-W3JN3YIW.js +15 -0
  110. package/dist/chunk-W3JN3YIW.js.map +1 -0
  111. package/dist/chunk-WANILJZQ.cjs +87 -0
  112. package/dist/chunk-WANILJZQ.cjs.map +1 -0
  113. package/dist/chunk-XC4IBCI2.js +86 -0
  114. package/dist/chunk-XC4IBCI2.js.map +1 -0
  115. package/dist/chunk-YKEWWQEJ.js +165 -0
  116. package/dist/chunk-YKEWWQEJ.js.map +1 -0
  117. package/dist/chunk-YQL7NISX.cjs +515 -0
  118. package/dist/chunk-YQL7NISX.cjs.map +1 -0
  119. package/dist/chunk-ZB6SVBK4.js +89 -0
  120. package/dist/chunk-ZB6SVBK4.js.map +1 -0
  121. package/dist/combo/react.cjs +235 -0
  122. package/dist/combo/react.cjs.map +1 -0
  123. package/dist/combo/react.d.cts +148 -0
  124. package/dist/combo/react.d.ts +148 -0
  125. package/dist/combo/react.js +230 -0
  126. package/dist/combo/react.js.map +1 -0
  127. package/dist/combo.cjs +262 -0
  128. package/dist/combo.cjs.map +1 -0
  129. package/dist/combo.d.cts +139 -0
  130. package/dist/combo.d.ts +139 -0
  131. package/dist/combo.js +249 -0
  132. package/dist/combo.js.map +1 -0
  133. package/dist/config-CHjz7ZjZ.d.cts +57 -0
  134. package/dist/config-COjhIZTh.d.ts +57 -0
  135. package/dist/doctor.cjs +354 -0
  136. package/dist/doctor.cjs.map +1 -0
  137. package/dist/doctor.d.cts +177 -0
  138. package/dist/doctor.d.ts +177 -0
  139. package/dist/doctor.js +345 -0
  140. package/dist/doctor.js.map +1 -0
  141. package/dist/erc7677-DOW58QBE.d.cts +111 -0
  142. package/dist/erc7677-DOW58QBE.d.ts +111 -0
  143. package/dist/errors-CgX1vNj7.d.cts +100 -0
  144. package/dist/errors-CgX1vNj7.d.ts +100 -0
  145. package/dist/index.cjs +802 -0
  146. package/dist/index.cjs.map +1 -0
  147. package/dist/index.d.cts +2398 -0
  148. package/dist/index.d.ts +2398 -0
  149. package/dist/index.js +559 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/paymaster/server.cjs +38 -0
  152. package/dist/paymaster/server.cjs.map +1 -0
  153. package/dist/paymaster/server.d.cts +57 -0
  154. package/dist/paymaster/server.d.ts +57 -0
  155. package/dist/paymaster/server.js +36 -0
  156. package/dist/paymaster/server.js.map +1 -0
  157. package/dist/paymaster.cjs +356 -0
  158. package/dist/paymaster.cjs.map +1 -0
  159. package/dist/paymaster.d.cts +1851 -0
  160. package/dist/paymaster.d.ts +1851 -0
  161. package/dist/paymaster.js +289 -0
  162. package/dist/paymaster.js.map +1 -0
  163. package/dist/privy/react.cjs +48 -0
  164. package/dist/privy/react.cjs.map +1 -0
  165. package/dist/privy/react.d.cts +194 -0
  166. package/dist/privy/react.d.ts +194 -0
  167. package/dist/privy/react.js +7 -0
  168. package/dist/privy/react.js.map +1 -0
  169. package/dist/privy/server.cjs +43 -0
  170. package/dist/privy/server.cjs.map +1 -0
  171. package/dist/privy/server.d.cts +192 -0
  172. package/dist/privy/server.d.ts +192 -0
  173. package/dist/privy/server.js +6 -0
  174. package/dist/privy/server.js.map +1 -0
  175. package/dist/privy/wagmi.d.ts +90 -0
  176. package/dist/privy/wagmi.js +55 -0
  177. package/dist/privy/wagmi.js.map +1 -0
  178. package/dist/privy.cjs +34 -0
  179. package/dist/privy.cjs.map +1 -0
  180. package/dist/privy.d.cts +4 -0
  181. package/dist/privy.d.ts +4 -0
  182. package/dist/privy.js +5 -0
  183. package/dist/privy.js.map +1 -0
  184. package/dist/react.cjs +72 -0
  185. package/dist/react.cjs.map +1 -0
  186. package/dist/react.d.cts +66 -0
  187. package/dist/react.d.ts +66 -0
  188. package/dist/react.js +68 -0
  189. package/dist/react.js.map +1 -0
  190. package/dist/requirements-C-QiJkL9.d.cts +134 -0
  191. package/dist/requirements-C-QiJkL9.d.ts +134 -0
  192. package/dist/scope-DBRkN7bR.d.cts +94 -0
  193. package/dist/scope-DBRkN7bR.d.ts +94 -0
  194. package/dist/server.cjs +59 -0
  195. package/dist/server.cjs.map +1 -0
  196. package/dist/server.d.cts +208 -0
  197. package/dist/server.d.ts +208 -0
  198. package/dist/server.js +8 -0
  199. package/dist/server.js.map +1 -0
  200. package/dist/session/kernel.cjs +82 -0
  201. package/dist/session/kernel.cjs.map +1 -0
  202. package/dist/session/kernel.d.cts +131 -0
  203. package/dist/session/kernel.d.ts +131 -0
  204. package/dist/session/kernel.js +13 -0
  205. package/dist/session/kernel.js.map +1 -0
  206. package/dist/session/react.cjs +37 -0
  207. package/dist/session/react.cjs.map +1 -0
  208. package/dist/session/react.d.cts +119 -0
  209. package/dist/session/react.d.ts +119 -0
  210. package/dist/session/react.js +8 -0
  211. package/dist/session/react.js.map +1 -0
  212. package/dist/session/server.cjs +267 -0
  213. package/dist/session/server.cjs.map +1 -0
  214. package/dist/session/server.d.cts +151 -0
  215. package/dist/session/server.d.ts +151 -0
  216. package/dist/session/server.js +252 -0
  217. package/dist/session/server.js.map +1 -0
  218. package/dist/session.cjs +74 -0
  219. package/dist/session.cjs.map +1 -0
  220. package/dist/session.d.cts +3 -0
  221. package/dist/session.d.ts +3 -0
  222. package/dist/session.js +5 -0
  223. package/dist/session.js.map +1 -0
  224. package/dist/status-CmOsyPmO.d.cts +295 -0
  225. package/dist/status-DwkkOrGQ.d.ts +295 -0
  226. package/dist/store-CjmLgp9g.d.cts +64 -0
  227. package/dist/store-CjmLgp9g.d.ts +64 -0
  228. package/dist/types-BEEM7WdG.d.cts +25 -0
  229. package/dist/types-BEEM7WdG.d.ts +25 -0
  230. package/dist/types-BilBTDqK.d.cts +27 -0
  231. package/dist/types-BilBTDqK.d.ts +27 -0
  232. package/package.json +209 -3
package/dist/index.cjs ADDED
@@ -0,0 +1,802 @@
1
+ 'use strict';
2
+
3
+ var chunkET3P6TX6_cjs = require('./chunk-ET3P6TX6.cjs');
4
+ var chunkSLW7FRTL_cjs = require('./chunk-SLW7FRTL.cjs');
5
+ require('./chunk-WANILJZQ.cjs');
6
+ var chunkTIEAZYHF_cjs = require('./chunk-TIEAZYHF.cjs');
7
+ var chunkC7IC36XS_cjs = require('./chunk-C7IC36XS.cjs');
8
+ var chunk4GINFJO6_cjs = require('./chunk-4GINFJO6.cjs');
9
+ var chunkVF3D6KLQ_cjs = require('./chunk-VF3D6KLQ.cjs');
10
+ var chunkDPCZJLB3_cjs = require('./chunk-DPCZJLB3.cjs');
11
+ var chunkYQL7NISX_cjs = require('./chunk-YQL7NISX.cjs');
12
+ var viem = require('viem');
13
+
14
+ // src/dex.ts
15
+ var V3_FACTORY_NOTES = "Uniswap V3 core factory. owner() returns a live address; getPool() resolves real WPEPU/USDT pools at multiple fee tiers, and those pools' own token0()/token1() match. Four other PepuSwap contracts (swapRouter02, positionManager, quoterV2, v3Migrator) each read their own factory() immutable and all agree on this exact address.";
16
+ var pepuSwapContracts = {
17
+ [chunkDPCZJLB3_cjs.pepuMainnet.id]: {
18
+ v3Factory: {
19
+ status: "deployed",
20
+ name: "PepuSwap V3 Factory",
21
+ address: "0x5984B8BF2d4dB9C0aCB1d7924762e4474D80C807",
22
+ notes: V3_FACTORY_NOTES
23
+ },
24
+ swapRouter02: {
25
+ status: "deployed",
26
+ name: "PepuSwap SwapRouter02",
27
+ address: "0x150c3F0f16C3D9EB34351d7af9c961FeDc97A0fb",
28
+ notes: "factory() and WETH9() both resolve to the independently-verified v3Factory/WPEPU addresses."
29
+ },
30
+ universalRouter: {
31
+ status: "deployed",
32
+ name: "PepuSwap UniversalRouter",
33
+ address: "0x0dE72b751b77d3c74fB96C5fAd0320Cd8d133d36",
34
+ notes: `No public getters for its configured Permit2/factory addresses (dispatcher contracts don't expose those). Verified instead by simulating execute("0x", [], farFutureDeadline) via eth_call, which returned successfully under the exact UniversalRouter selector.`
35
+ },
36
+ positionManager: {
37
+ status: "deployed",
38
+ name: "PepuSwap NonfungiblePositionManager",
39
+ address: "0xe2060CbdE18b5e765c86e5Cd6EE68AF209a9faa7",
40
+ notes: 'factory() and WETH9() both resolve to the independently-verified v3Factory/WPEPU addresses. LP positions are ERC-721 tokens minted by this contract (pepuscan lists them as "Launchpad V3 Positions NFT" / UNI-V3-POS).'
41
+ },
42
+ quoterV2: {
43
+ status: "deployed",
44
+ name: "PepuSwap QuoterV2",
45
+ address: "0xd647b2D80b48e93613Aa6982b85f8909578b4829",
46
+ notes: "factory() and WETH9() both resolve to the independently-verified v3Factory/WPEPU addresses. Off-chain-quote contract \u2014 call via eth_call/simulateContract only, never send it a real transaction."
47
+ },
48
+ tickLens: {
49
+ status: "deployed",
50
+ name: "PepuSwap TickLens",
51
+ address: "0x4EB8aA84c066f9bf210eAfE33B30AE49BfafD9a6",
52
+ notes: "Stateless (no zero-arg getter to probe). Verified instead by calling getPopulatedTicksInWord() against a real WPEPU/USDT pool at that pool's own current tick-bitmap word; call succeeded."
53
+ },
54
+ v3Migrator: {
55
+ status: "deployed",
56
+ name: "PepuSwap V3Migrator",
57
+ address: "0xFE406d6c3fc0BB3a6D195b089eFADfc8658206D5",
58
+ notes: "factory() and WETH9() both resolve to the independently-verified v3Factory/WPEPU addresses. No dedicated ABI is shipped for this contract in ./abi/ \u2014 only these two getters were checked, which is enough to confirm the address but not enough to type its migration-specific functions. Pair with Uniswap's public V3Migrator ABI if you need those."
59
+ },
60
+ v3Staker: {
61
+ status: "deployed",
62
+ name: "PepuSwap V3Staker",
63
+ address: "0x0a875d1C72cb4e1CD61401c3C49f85Df45071f83",
64
+ notes: `factory() resolves to the independently-verified v3Factory address (this contract has no WETH9() getter \u2014 it's a Uniswap LP incentive-staking contract, unrelated to the general "stake PEPU" product). No dedicated ABI is shipped for it in ./abi/ \u2014 pair with Uniswap's public V3Staker ABI if you need one.`
65
+ },
66
+ multicallNonCanonical: {
67
+ status: "deployed",
68
+ name: "PepuSwap Multicall (UniswapInterfaceMulticall, non-canonical)",
69
+ address: "0x927af2a6B76d2d8206d93004463F8C122701383B",
70
+ notes: "PepuSwap's own multicall contract, NOT Multicall3 and NOT interchangeable with pepuContracts.multicall3. Verified on pepuscan as Uniswap's UniswapInterfaceMulticall (a Multicall2 fork with a different function set/return shape \u2014 see pepuSwapMulticallAbi in ./abi/pepuSwapMulticall.js for the verified ABI and exactly which functions were confirmed live)."
71
+ },
72
+ permit2NonCanonical: {
73
+ status: "deployed",
74
+ name: "PepuSwap Permit2 (non-canonical)",
75
+ address: "0xB461c05f76d7f919FF7A3Df2B0D2593F56538b4B",
76
+ notes: "PepuSwap's own Permit2 deployment, NOT at the canonical Permit2 address and NOT interchangeable with pepuContracts.permit2 (which tracks the canonical Permit2, now deployed on mainnet at 0x000000000022D473030F116dDEE9F6B43aC78BA3 \u2014 see ../contracts.js). Both DOMAIN_SEPARATOR() calls respond live but return different values (different EIP-712 domains, since they're different contracts). See pepuSwapPermit2Abi in ./abi/pepuSwapPermit2.js."
77
+ }
78
+ }
79
+ };
80
+ function getPepuSwapContract(chainId, name) {
81
+ return pepuSwapContracts[chainId]?.[name];
82
+ }
83
+ function listPepuSwapContracts(chainId) {
84
+ const registry = pepuSwapContracts[chainId];
85
+ return registry ? Object.values(registry) : [];
86
+ }
87
+
88
+ // src/tokens.ts
89
+ var pepuTokenList = {
90
+ name: "Pepe Unchained",
91
+ timestamp: "2026-10-03T00:00:00.000Z",
92
+ version: { major: 1, minor: 2, patch: 0 },
93
+ tokens: [
94
+ {
95
+ chainId: chunkDPCZJLB3_cjs.pepuMainnet.id,
96
+ address: "0xF9Cf4A16d26979b929Be7176bAc4e7084975FCB8",
97
+ name: "Wrapped Pepe Unchained",
98
+ symbol: "WPEPU",
99
+ decimals: 18
100
+ // Cross-verified across the project's own docs, Blockscout's token
101
+ // list, and PepuSwap's deployment config, plus an on-chain
102
+ // `eth_getCode` call and Blockscout's "verified as WETH9" source
103
+ // match. See `wpepuAbi` in `./abi/wpepu.ts` for the ABI-level
104
+ // verification (deposit/withdraw/decimals/symbol/name all confirmed
105
+ // live).
106
+ },
107
+ {
108
+ chainId: chunkDPCZJLB3_cjs.pepuMainnet.id,
109
+ address: "0x06f69A40C33C5A4Cd038BBE1DA689D4D636Ec448",
110
+ name: "Tether USD",
111
+ symbol: "USDT",
112
+ decimals: 6
113
+ // Verified live on 2026-09-24: discovered as the non-WPEPU leg of
114
+ // PepuSwap's WPEPU/USDT 0.3% pool (`0x4bE3Af53800AADE09201654CD76D55063c7bdE70`,
115
+ // itself returned by the independently-verified `pepuSwapV3FactoryAbi`
116
+ // `getPool(WPEPU, USDT, 3000)` — see `../dex.ts`), then confirmed
117
+ // directly against this address via `eth_call`: `name()` ->
118
+ // "Tether USD", `symbol()` -> "USDT", `decimals()` -> `6`. Note the
119
+ // 6 decimals (standard for USDT, unlike the 18-decimal PEPU/WPEPU) —
120
+ // don't reuse `formatPepu`/`formatUnits(x, 18)` for this token.
121
+ },
122
+ {
123
+ chainId: chunkDPCZJLB3_cjs.pepuMainnet.id,
124
+ address: "0x20fB684Bfc1aBAaD3AceC5712f2Aa30bd494dF74",
125
+ name: "USD Coin",
126
+ symbol: "USDC",
127
+ decimals: 6
128
+ // Verified live on 2026-10-03 (read-only): `eth_getCode` returns 835
129
+ // bytes of code, and `eth_call` gives `name()` -> "USD Coin",
130
+ // `symbol()` -> "USDC", `decimals()` -> `6`. One of the tokens PepuSwap
131
+ // trades. 6 decimals, like USDT.
132
+ },
133
+ {
134
+ chainId: chunkDPCZJLB3_cjs.pepuMainnet.id,
135
+ address: "0x7CCC51754216C04D4Bb1210630cCA16e5430Aa70",
136
+ name: "Wrapped Ether",
137
+ symbol: "WETH",
138
+ decimals: 18
139
+ // Verified live on 2026-10-03 (read-only): `eth_getCode` returns 835
140
+ // bytes of code, and `eth_call` gives `name()` -> "Wrapped Ether",
141
+ // `symbol()` -> "WETH", `decimals()` -> `18`. One of the tokens
142
+ // PepuSwap trades.
143
+ }
144
+ ]
145
+ };
146
+
147
+ // src/pepuscan.ts
148
+ function requireApiUrl(chain) {
149
+ const apiUrl = chain.blockExplorers?.default.apiUrl;
150
+ if (!apiUrl) {
151
+ throw new Error(
152
+ `createPepuscanClient: no Blockscout API URL configured for chain "${chain.name}" (id ${chain.id}).`
153
+ );
154
+ }
155
+ return apiUrl;
156
+ }
157
+ async function getJsonOrNull(url) {
158
+ const response = await fetch(url);
159
+ if (response.status === 404) {
160
+ return null;
161
+ }
162
+ if (!response.ok) {
163
+ throw new Error(`pepuscan: GET ${url} failed with status ${response.status}`);
164
+ }
165
+ return await response.json();
166
+ }
167
+ function createPepuscanClient(chain) {
168
+ const apiUrl = requireApiUrl(chain);
169
+ return {
170
+ async getVerifiedAbi(address) {
171
+ const body = await getJsonOrNull(
172
+ `${apiUrl}/v2/smart-contracts/${address}`
173
+ );
174
+ return body?.abi ?? null;
175
+ },
176
+ async getTokenMetadata(address) {
177
+ const body = await getJsonOrNull(
178
+ `${apiUrl}/v2/tokens/${address}`
179
+ );
180
+ if (!body) {
181
+ return null;
182
+ }
183
+ return {
184
+ address,
185
+ name: body.name ?? null,
186
+ symbol: body.symbol ?? null,
187
+ decimals: body.decimals != null ? Number(body.decimals) : null,
188
+ totalSupply: body.total_supply ?? null,
189
+ type: body.type ?? null
190
+ };
191
+ }
192
+ };
193
+ }
194
+ function toAddEthereumChainParameter(chain) {
195
+ const explorerUrl2 = chain.blockExplorers?.default.url;
196
+ return {
197
+ chainId: viem.numberToHex(chain.id),
198
+ chainName: chain.name,
199
+ nativeCurrency: chain.nativeCurrency,
200
+ rpcUrls: chain.rpcUrls.default.http,
201
+ ...explorerUrl2 ? { blockExplorerUrls: [explorerUrl2] } : {}
202
+ };
203
+ }
204
+ var CHAIN_NOT_RECOGNIZED_ERROR_CODE = 4902;
205
+ function isChainNotRecognizedError(error) {
206
+ return typeof error === "object" && error !== null && "code" in error && error.code === CHAIN_NOT_RECOGNIZED_ERROR_CODE;
207
+ }
208
+ async function switchOrAddPepuChain(provider, chain) {
209
+ try {
210
+ await provider.request({
211
+ method: "wallet_switchEthereumChain",
212
+ params: [{ chainId: viem.numberToHex(chain.id) }]
213
+ });
214
+ } catch (error) {
215
+ if (!isChainNotRecognizedError(error)) {
216
+ throw error;
217
+ }
218
+ await provider.request({
219
+ method: "wallet_addEthereumChain",
220
+ params: [toAddEthereumChainParameter(chain)]
221
+ });
222
+ }
223
+ }
224
+ var arbGasInfoAbi = viem.parseAbi([
225
+ "function getPricesInWei() view returns (uint256 perL2Tx, uint256 perL1CalldataUnit, uint256 perStorageAllocation, uint256 perArbGasBase, uint256 perArbGasCongestion, uint256 perArbGasTotal)",
226
+ "function getL1BaseFeeEstimate() view returns (uint256)",
227
+ "function getMinimumGasPrice() view returns (uint256)"
228
+ ]);
229
+ var ARB_GAS_INFO_ADDRESS = "0x000000000000000000000000000000000000006C";
230
+
231
+ // src/gas.ts
232
+ async function getNitroFeeBreakdown(client) {
233
+ const [prices, l1BaseFeeEstimateWei] = await Promise.all([
234
+ client.readContract({
235
+ address: ARB_GAS_INFO_ADDRESS,
236
+ abi: arbGasInfoAbi,
237
+ functionName: "getPricesInWei"
238
+ }),
239
+ client.readContract({
240
+ address: ARB_GAS_INFO_ADDRESS,
241
+ abi: arbGasInfoAbi,
242
+ functionName: "getL1BaseFeeEstimate"
243
+ })
244
+ ]);
245
+ return {
246
+ l2PricePerGasWei: prices[5],
247
+ // perArbGasTotal
248
+ l1PricePerCalldataUnitWei: prices[1],
249
+ // perL1CalldataUnit
250
+ l1BaseFeeEstimateWei
251
+ };
252
+ }
253
+ function explainDualFeeModel() {
254
+ return {
255
+ summary: "Arbitrum Nitro chains (PEPU included \u2014 it's an Orbit chain built on Nitro) charge gas as the sum of two independent components, unlike a plain L1 chain where 'gas price' is a single number: an L2 execution fee (compute + storage, priced in the chain's own gas units) and an L1 data-posting fee (the cost of publishing the transaction's calldata back to the settlement layer, priced per byte of calldata, independent of how much EVM computation the transaction does).",
256
+ l2ExecutionFee: "Works like a normal EVM gas price: gasUsed * pricePerGas, where pricePerGas is ArbGasInfo's perArbGasTotal (perArbGasBase, the network floor, plus perArbGasCongestion, a demand surcharge that's 0 when the chain isn't congested). On PEPU mainnet this floor is 12,500 gwei (12,500,000,000,000 wei) \u2014 see the note on l1DataPostingFee below for why that number looks alarming but isn't.",
257
+ l1DataPostingFee: "Normally: calldataBytes-derived 'L1 gas units' * perL1CalldataUnit, recovering the cost of posting the tx's data to the settlement layer (L1 for a vanilla Orbit chain, or the Data Availability Committee for an AnyTrust chain like PEPU). Verified live on PEPU mainnet 2026-09-24: both perL1CalldataUnit and getL1BaseFeeEstimate() read 0. That means PEPU is not currently charging a separate L1/DA data fee component at all \u2014 the full cost of a PEPU transaction today is just the L2 execution fee above. This is a live chain parameter, not a protocol guarantee; re-check with getNitroFeeBreakdown() rather than assuming it stays 0 forever.",
258
+ pepuStatus: "Net effect: a PEPU 'gas price' of 12,500 gwei looks like an Ethereum-mainnet congestion spike if you only know Ethereum's 1-50 gwei range, but PEPU is a low-value token, so the same gas price multiplied out is a tiny PEPU (and USD) amount. Naive gwei formatting misleads on both ends \u2014 the gwei number reads as scary, and formatting a total cost with the same few-decimal-places habit people use for ETH rounds small-but-real PEPU amounts to '0'. Use formatPepu() for totals and formatPepuGasPrice() when you want to show the price-per-gas number with that context attached."
259
+ };
260
+ }
261
+ async function estimateTransactionCost(client, request) {
262
+ const [gas, { l2PricePerGasWei }] = await Promise.all([
263
+ client.estimateGas(request),
264
+ getNitroFeeBreakdown(client)
265
+ ]);
266
+ const costWei = gas * l2PricePerGasWei;
267
+ return {
268
+ gas,
269
+ gasPriceWei: l2PricePerGasWei,
270
+ costWei,
271
+ costFormatted: formatPepu(costWei)
272
+ };
273
+ }
274
+ function formatPepu(wei, options) {
275
+ const maxDecimals = options?.maxDecimals ?? 8;
276
+ const suffix = options?.suffix ?? true;
277
+ const negative = wei < 0n;
278
+ const full = viem.formatUnits(negative ? -wei : wei, 18);
279
+ const [whole = "0", fraction = ""] = full.split(".");
280
+ const truncatedFraction = fraction.slice(0, maxDecimals).replace(/0+$/, "");
281
+ const body = truncatedFraction.length > 0 ? `${whole}.${truncatedFraction}` : whole;
282
+ const withSign = negative ? `-${body}` : body;
283
+ return suffix ? `${withSign} PEPU` : withSign;
284
+ }
285
+ function formatUnitsCompact(value, decimals, maxFractionDigits = 4) {
286
+ const negative = value < 0n;
287
+ const [whole = "0", fraction = ""] = viem.formatUnits(negative ? -value : value, decimals).split(".");
288
+ const frac = fraction.slice(0, maxFractionDigits).replace(/0+$/, "");
289
+ const body = frac.length > 0 ? `${whole}.${frac}` : whole;
290
+ return negative && body !== "0" ? `-${body}` : body;
291
+ }
292
+ function formatPepuGasPrice(weiPerGas) {
293
+ const gwei = viem.formatUnits(weiPerGas, 9);
294
+ return `${gwei} gwei/gas (PEPU's normal baseline is ~12,500 gwei \u2014 this is not a congestion spike; see explainDualFeeModel())`;
295
+ }
296
+ var DEFAULT_MAX_SEND_MARGIN_BPS = 2e3;
297
+ function assertValidMarginBps(marginBps) {
298
+ if (!Number.isInteger(marginBps) || marginBps < 0 || marginBps > 1e4) {
299
+ throw new Error(
300
+ `maxSendableAmount: marginBps must be an integer between 0 and 10000 (got ${marginBps})`
301
+ );
302
+ }
303
+ }
304
+ async function maxSendableAmount(options) {
305
+ const {
306
+ client,
307
+ from,
308
+ to,
309
+ balanceWei,
310
+ marginBps = DEFAULT_MAX_SEND_MARGIN_BPS
311
+ } = options;
312
+ assertValidMarginBps(marginBps);
313
+ if (balanceWei <= 0n) {
314
+ return {
315
+ status: "zero-balance",
316
+ reason: "This wallet has no PEPU to send."
317
+ };
318
+ }
319
+ const estimate = await estimateTransactionCost(client, {
320
+ account: from,
321
+ to: to ?? from,
322
+ value: 1n
323
+ });
324
+ const marginWei = estimate.costWei * BigInt(marginBps) / 10000n;
325
+ const totalReservedWei = estimate.costWei + marginWei;
326
+ if (balanceWei <= totalReservedWei) {
327
+ return {
328
+ status: "insufficient-for-gas",
329
+ reason: `Balance (${formatPepu(balanceWei)}) doesn't cover the estimated cost of sending plus a safety margin (${formatPepu(totalReservedWei)} would need to be reserved for gas). Add more PEPU before sending.`,
330
+ estimate,
331
+ totalReservedWei
332
+ };
333
+ }
334
+ return {
335
+ status: "ok",
336
+ amountWei: balanceWei - totalReservedWei,
337
+ estimate,
338
+ marginWei,
339
+ totalReservedWei
340
+ };
341
+ }
342
+ var kernelEcdsaValidatorAbi = viem.parseAbi([
343
+ "function ecdsaValidatorStorage(address kernel) view returns (address owner)",
344
+ "function isModuleType(uint256 moduleTypeId) view returns (bool)",
345
+ "function isInitialized(address kernel) view returns (bool)",
346
+ "function onInstall(bytes calldata data) payable",
347
+ "function onUninstall(bytes calldata data) payable"
348
+ ]);
349
+ var ERC7579_MODULE_TYPE = {
350
+ validator: 1n,
351
+ executor: 2n,
352
+ fallback: 3n,
353
+ hook: 4n
354
+ };
355
+ var pepuSwapMulticallAbi = viem.parseAbi([
356
+ "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
357
+ "function getEthBalance(address addr) view returns (uint256 balance)",
358
+ "function multicall((address target, uint256 gasLimit, bytes callData)[] calls) returns (uint256 blockNumber, (bool success, uint256 gasUsed, bytes returnData)[] returnData)"
359
+ ]);
360
+ var pepuSwapPermit2Abi = viem.parseAbi([
361
+ "function DOMAIN_SEPARATOR() view returns (bytes32)",
362
+ "function allowance(address owner, address token, address spender) view returns (uint160 amount, uint48 expiration, uint48 nonce)",
363
+ "function approve(address token, address spender, uint160 amount, uint48 expiration)"
364
+ ]);
365
+ var pepuSwapPositionManagerAbi = [
366
+ ...viem.erc721Abi,
367
+ ...viem.parseAbi([
368
+ "function factory() view returns (address)",
369
+ "function WETH9() view returns (address)",
370
+ "function positions(uint256 tokenId) view returns (uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1)"
371
+ ])
372
+ ];
373
+ var pepuSwapQuoterAbi = viem.parseAbi([
374
+ "function factory() view returns (address)",
375
+ "function WETH9() view returns (address)",
376
+ "function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)",
377
+ "function quoteExactOutputSingle((address tokenIn, address tokenOut, uint256 amount, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountIn, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)"
378
+ ]);
379
+ var pepuSwapRouterAbi = viem.parseAbi([
380
+ "function factory() view returns (address)",
381
+ "function WETH9() view returns (address)",
382
+ "function exactInputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountIn, uint256 amountOutMinimum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)",
383
+ "function exactOutputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountOut, uint256 amountInMaximum, uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountIn)",
384
+ "function multicall(uint256 deadline, bytes[] calldata data) payable returns (bytes[] memory results)"
385
+ ]);
386
+ var pepuSwapTickLensAbi = viem.parseAbi([
387
+ "function getPopulatedTicksInWord(address pool, int16 tickBitmapIndex) view returns ((int24 tick, int128 liquidityNet, uint128 liquidityGross)[] populatedTicks)"
388
+ ]);
389
+ var pepuSwapUniversalRouterAbi = viem.parseAbi([
390
+ "function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"
391
+ ]);
392
+ var pepuSwapV3FactoryAbi = viem.parseAbi([
393
+ "function owner() view returns (address)",
394
+ "function getPool(address tokenA, address tokenB, uint24 fee) view returns (address pool)",
395
+ "function feeAmountTickSpacing(uint24 fee) view returns (int24)",
396
+ "function createPool(address tokenA, address tokenB, uint24 fee) returns (address pool)",
397
+ "event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool)"
398
+ ]);
399
+ var pepuSwapV3PoolAbi = viem.parseAbi([
400
+ "function token0() view returns (address)",
401
+ "function token1() view returns (address)",
402
+ "function fee() view returns (uint24)",
403
+ "function tickSpacing() view returns (int24)",
404
+ "function liquidity() view returns (uint128)",
405
+ "function slot0() view returns (uint160 sqrtPriceX96, int24 tick, uint16 observationIndex, uint16 observationCardinality, uint16 observationCardinalityNext, uint8 feeProtocol, bool unlocked)"
406
+ ]);
407
+ var wpepuAbi = [
408
+ ...viem.erc20Abi,
409
+ ...viem.parseAbi([
410
+ "function deposit() payable",
411
+ "function withdraw(uint256 amount)",
412
+ "event Deposit(address indexed dst, uint256 amount)",
413
+ "event Withdrawal(address indexed src, uint256 amount)"
414
+ ])
415
+ ];
416
+ var multicall3Abi = viem.parseAbi([
417
+ "struct Call3 { address target; bool allowFailure; bytes callData; }",
418
+ "struct Result { bool success; bytes returnData; }",
419
+ "function aggregate3(Call3[] calls) payable returns (Result[] returnData)",
420
+ "function getEthBalance(address addr) view returns (uint256 balance)",
421
+ "function getBlockNumber() view returns (uint256 blockNumber)",
422
+ "function getChainId() view returns (uint256)"
423
+ ]);
424
+ var permit2Abi = viem.parseAbi([
425
+ "function DOMAIN_SEPARATOR() view returns (bytes32)",
426
+ "function allowance(address owner, address token, address spender) view returns (uint160 amount, uint48 expiration, uint48 nonce)",
427
+ "function approve(address token, address spender, uint160 amount, uint48 expiration)",
428
+ "function nonceBitmap(address owner, uint256 wordPos) view returns (uint256)",
429
+ "function invalidateNonces(address token, address spender, uint48 newNonce)"
430
+ ]);
431
+ var CANONICAL_MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
432
+ function assertNotCanonicalMulticall3(address) {
433
+ if (viem.isAddressEqual(address, CANONICAL_MULTICALL3_ADDRESS)) {
434
+ throw new chunkYQL7NISX_cjs.PepuChainError("MULTICALL3_CANONICAL_ADDRESS");
435
+ }
436
+ }
437
+ function getMulticall3(chainId = chunkDPCZJLB3_cjs.pepuMainnet.id) {
438
+ const entry = chunkTIEAZYHF_cjs.getContract(chainId, "multicall3");
439
+ if (!chunkTIEAZYHF_cjs.isDeployed(entry)) {
440
+ throw new chunkYQL7NISX_cjs.PepuChainError("UNKNOWN", "Multicall3 is not deployed on the requested chain.");
441
+ }
442
+ assertNotCanonicalMulticall3(entry.address);
443
+ return entry;
444
+ }
445
+ function pepuMulticall(client, calls, o = {}) {
446
+ const chainId = client.chain?.id ?? chunkDPCZJLB3_cjs.pepuMainnet.id;
447
+ const multicallAddress = getMulticall3(chainId).address;
448
+ return client.multicall({
449
+ contracts: calls,
450
+ multicallAddress,
451
+ allowFailure: o.allowFailure ?? true,
452
+ ...o.blockNumber !== void 0 ? { blockNumber: o.blockNumber } : {}
453
+ });
454
+ }
455
+ function encodeAggregate3(calls) {
456
+ return viem.encodeFunctionData({
457
+ abi: multicall3Abi,
458
+ functionName: "aggregate3",
459
+ args: [
460
+ calls.map((c) => ({
461
+ target: c.target,
462
+ allowFailure: c.allowFailure ?? false,
463
+ callData: c.callData
464
+ }))
465
+ ]
466
+ });
467
+ }
468
+ function decodeAggregate3Result(data) {
469
+ const out = viem.decodeFunctionResult({
470
+ abi: multicall3Abi,
471
+ functionName: "aggregate3",
472
+ data
473
+ });
474
+ return out.map((r) => ({ success: r.success, returnData: r.returnData }));
475
+ }
476
+
477
+ // src/permit2.ts
478
+ function getPermit2(chainId = chunkDPCZJLB3_cjs.pepuMainnet.id) {
479
+ const entry = chunkTIEAZYHF_cjs.getContract(chainId, "permit2");
480
+ if (!chunkTIEAZYHF_cjs.isDeployed(entry)) {
481
+ throw new chunkYQL7NISX_cjs.PepuChainError("UNKNOWN", "Permit2 is not deployed on the requested chain.");
482
+ }
483
+ return entry;
484
+ }
485
+ function permit2Domain(chainId = chunkDPCZJLB3_cjs.pepuMainnet.id) {
486
+ return {
487
+ name: "Permit2",
488
+ chainId,
489
+ verifyingContract: getPermit2(chainId).address
490
+ };
491
+ }
492
+ function buildPermitSingleTypedData(p) {
493
+ return {
494
+ domain: permit2Domain(p.chainId),
495
+ types: {
496
+ PermitSingle: [
497
+ { name: "details", type: "PermitDetails" },
498
+ { name: "spender", type: "address" },
499
+ { name: "sigDeadline", type: "uint256" }
500
+ ],
501
+ PermitDetails: [
502
+ { name: "token", type: "address" },
503
+ { name: "amount", type: "uint160" },
504
+ { name: "expiration", type: "uint48" },
505
+ { name: "nonce", type: "uint48" }
506
+ ]
507
+ },
508
+ primaryType: "PermitSingle",
509
+ message: {
510
+ details: {
511
+ token: p.token,
512
+ amount: p.amount,
513
+ expiration: p.expiration,
514
+ nonce: p.nonce
515
+ },
516
+ spender: p.spender,
517
+ sigDeadline: p.sigDeadline
518
+ }
519
+ };
520
+ }
521
+ function buildPermitTransferFromTypedData(p) {
522
+ return {
523
+ domain: permit2Domain(p.chainId),
524
+ types: {
525
+ PermitTransferFrom: [
526
+ { name: "permitted", type: "TokenPermissions" },
527
+ { name: "spender", type: "address" },
528
+ { name: "nonce", type: "uint256" },
529
+ { name: "deadline", type: "uint256" }
530
+ ],
531
+ TokenPermissions: [
532
+ { name: "token", type: "address" },
533
+ { name: "amount", type: "uint256" }
534
+ ]
535
+ },
536
+ primaryType: "PermitTransferFrom",
537
+ message: {
538
+ permitted: { token: p.token, amount: p.amount },
539
+ spender: p.spender,
540
+ nonce: p.nonce,
541
+ deadline: p.deadline
542
+ }
543
+ };
544
+ }
545
+ async function readPermit2Allowance(client, o) {
546
+ const [amount, expiration, nonce] = await client.readContract({
547
+ address: getPermit2(client.chain?.id ?? chunkDPCZJLB3_cjs.pepuMainnet.id).address,
548
+ abi: permit2Abi,
549
+ functionName: "allowance",
550
+ args: [o.owner, o.token, o.spender]
551
+ });
552
+ return { amount, expiration, nonce };
553
+ }
554
+
555
+ Object.defineProperty(exports, "buildPaymasterContext", {
556
+ enumerable: true,
557
+ get: function () { return chunkET3P6TX6_cjs.buildPaymasterContext; }
558
+ });
559
+ Object.defineProperty(exports, "buildPaymasterDataRequest", {
560
+ enumerable: true,
561
+ get: function () { return chunkET3P6TX6_cjs.buildPaymasterDataRequest; }
562
+ });
563
+ Object.defineProperty(exports, "buildPaymasterStubDataRequest", {
564
+ enumerable: true,
565
+ get: function () { return chunkET3P6TX6_cjs.buildPaymasterStubDataRequest; }
566
+ });
567
+ Object.defineProperty(exports, "KERNEL_V3_1_IMPLEMENTATION_ADDRESS", {
568
+ enumerable: true,
569
+ get: function () { return chunkSLW7FRTL_cjs.KERNEL_V3_1_IMPLEMENTATION_ADDRESS; }
570
+ });
571
+ Object.defineProperty(exports, "checkSponsorship", {
572
+ enumerable: true,
573
+ get: function () { return chunkSLW7FRTL_cjs.checkSponsorship; }
574
+ });
575
+ Object.defineProperty(exports, "entryPointV07Abi", {
576
+ enumerable: true,
577
+ get: function () { return chunkSLW7FRTL_cjs.entryPointV07Abi; }
578
+ });
579
+ Object.defineProperty(exports, "getKernelAccountAddress", {
580
+ enumerable: true,
581
+ get: function () { return chunkSLW7FRTL_cjs.getKernelAccountAddress; }
582
+ });
583
+ Object.defineProperty(exports, "getPepuKernelStack", {
584
+ enumerable: true,
585
+ get: function () { return chunkSLW7FRTL_cjs.getPepuKernelStack; }
586
+ });
587
+ Object.defineProperty(exports, "getSponsorshipStatus", {
588
+ enumerable: true,
589
+ get: function () { return chunkSLW7FRTL_cjs.getSponsorshipStatus; }
590
+ });
591
+ Object.defineProperty(exports, "kernelFactoryAbi", {
592
+ enumerable: true,
593
+ get: function () { return chunkSLW7FRTL_cjs.kernelFactoryAbi; }
594
+ });
595
+ Object.defineProperty(exports, "getContract", {
596
+ enumerable: true,
597
+ get: function () { return chunkTIEAZYHF_cjs.getContract; }
598
+ });
599
+ Object.defineProperty(exports, "getPepuAddresses", {
600
+ enumerable: true,
601
+ get: function () { return chunkTIEAZYHF_cjs.getPepuAddresses; }
602
+ });
603
+ Object.defineProperty(exports, "isDeployed", {
604
+ enumerable: true,
605
+ get: function () { return chunkTIEAZYHF_cjs.isDeployed; }
606
+ });
607
+ Object.defineProperty(exports, "listContracts", {
608
+ enumerable: true,
609
+ get: function () { return chunkTIEAZYHF_cjs.listContracts; }
610
+ });
611
+ Object.defineProperty(exports, "pepuContracts", {
612
+ enumerable: true,
613
+ get: function () { return chunkTIEAZYHF_cjs.pepuContracts; }
614
+ });
615
+ Object.defineProperty(exports, "getPublicClient", {
616
+ enumerable: true,
617
+ get: function () { return chunkC7IC36XS_cjs.getPublicClient; }
618
+ });
619
+ Object.defineProperty(exports, "addressUrl", {
620
+ enumerable: true,
621
+ get: function () { return chunk4GINFJO6_cjs.addressUrl; }
622
+ });
623
+ Object.defineProperty(exports, "blockUrl", {
624
+ enumerable: true,
625
+ get: function () { return chunk4GINFJO6_cjs.blockUrl; }
626
+ });
627
+ Object.defineProperty(exports, "explorerLinks", {
628
+ enumerable: true,
629
+ get: function () { return chunk4GINFJO6_cjs.explorerLinks; }
630
+ });
631
+ Object.defineProperty(exports, "explorerUrl", {
632
+ enumerable: true,
633
+ get: function () { return chunk4GINFJO6_cjs.explorerUrl; }
634
+ });
635
+ Object.defineProperty(exports, "tokenUrl", {
636
+ enumerable: true,
637
+ get: function () { return chunk4GINFJO6_cjs.tokenUrl; }
638
+ });
639
+ Object.defineProperty(exports, "txUrl", {
640
+ enumerable: true,
641
+ get: function () { return chunk4GINFJO6_cjs.txUrl; }
642
+ });
643
+ Object.defineProperty(exports, "PEPU_ENV", {
644
+ enumerable: true,
645
+ get: function () { return chunkVF3D6KLQ_cjs.PEPU_ENV; }
646
+ });
647
+ Object.defineProperty(exports, "PEPU_HOSTED", {
648
+ enumerable: true,
649
+ get: function () { return chunkVF3D6KLQ_cjs.PEPU_HOSTED; }
650
+ });
651
+ Object.defineProperty(exports, "PEPU_PUBLIC_ENV", {
652
+ enumerable: true,
653
+ get: function () { return chunkVF3D6KLQ_cjs.PEPU_PUBLIC_ENV; }
654
+ });
655
+ Object.defineProperty(exports, "hostedFreeTierUrl", {
656
+ enumerable: true,
657
+ get: function () { return chunkVF3D6KLQ_cjs.hostedFreeTierUrl; }
658
+ });
659
+ Object.defineProperty(exports, "isHostedSponsorshipLive", {
660
+ enumerable: true,
661
+ get: function () { return chunkVF3D6KLQ_cjs.isHostedSponsorshipLive; }
662
+ });
663
+ Object.defineProperty(exports, "paymasterBaseOf", {
664
+ enumerable: true,
665
+ get: function () { return chunkVF3D6KLQ_cjs.paymasterBaseOf; }
666
+ });
667
+ Object.defineProperty(exports, "resolvePepuEndpoints", {
668
+ enumerable: true,
669
+ get: function () { return chunkVF3D6KLQ_cjs.resolvePepuEndpoints; }
670
+ });
671
+ Object.defineProperty(exports, "isPepuChain", {
672
+ enumerable: true,
673
+ get: function () { return chunkDPCZJLB3_cjs.isPepuChain; }
674
+ });
675
+ Object.defineProperty(exports, "pepuChains", {
676
+ enumerable: true,
677
+ get: function () { return chunkDPCZJLB3_cjs.pepuChains; }
678
+ });
679
+ Object.defineProperty(exports, "pepuMainnet", {
680
+ enumerable: true,
681
+ get: function () { return chunkDPCZJLB3_cjs.pepuMainnet; }
682
+ });
683
+ Object.defineProperty(exports, "pepuTestnet", {
684
+ enumerable: true,
685
+ get: function () { return chunkDPCZJLB3_cjs.pepuTestnet; }
686
+ });
687
+ Object.defineProperty(exports, "PEPU_ERRORS_DOCS_URL", {
688
+ enumerable: true,
689
+ get: function () { return chunkYQL7NISX_cjs.PEPU_ERRORS_DOCS_URL; }
690
+ });
691
+ Object.defineProperty(exports, "PEPU_ERROR_CATALOG", {
692
+ enumerable: true,
693
+ get: function () { return chunkYQL7NISX_cjs.PEPU_ERROR_CATALOG; }
694
+ });
695
+ Object.defineProperty(exports, "PepuAuthError", {
696
+ enumerable: true,
697
+ get: function () { return chunkYQL7NISX_cjs.PepuAuthError; }
698
+ });
699
+ Object.defineProperty(exports, "PepuBundlerError", {
700
+ enumerable: true,
701
+ get: function () { return chunkYQL7NISX_cjs.PepuBundlerError; }
702
+ });
703
+ Object.defineProperty(exports, "PepuChainError", {
704
+ enumerable: true,
705
+ get: function () { return chunkYQL7NISX_cjs.PepuChainError; }
706
+ });
707
+ Object.defineProperty(exports, "PepuConfigError", {
708
+ enumerable: true,
709
+ get: function () { return chunkYQL7NISX_cjs.PepuConfigError; }
710
+ });
711
+ Object.defineProperty(exports, "PepuError", {
712
+ enumerable: true,
713
+ get: function () { return chunkYQL7NISX_cjs.PepuError; }
714
+ });
715
+ Object.defineProperty(exports, "PepuPaymasterError", {
716
+ enumerable: true,
717
+ get: function () { return chunkYQL7NISX_cjs.PepuPaymasterError; }
718
+ });
719
+ Object.defineProperty(exports, "PepuPolicyError", {
720
+ enumerable: true,
721
+ get: function () { return chunkYQL7NISX_cjs.PepuPolicyError; }
722
+ });
723
+ Object.defineProperty(exports, "PepuSessionError", {
724
+ enumerable: true,
725
+ get: function () { return chunkYQL7NISX_cjs.PepuSessionError; }
726
+ });
727
+ Object.defineProperty(exports, "errorDocsUrl", {
728
+ enumerable: true,
729
+ get: function () { return chunkYQL7NISX_cjs.errorDocsUrl; }
730
+ });
731
+ Object.defineProperty(exports, "explainError", {
732
+ enumerable: true,
733
+ get: function () { return chunkYQL7NISX_cjs.explainError; }
734
+ });
735
+ Object.defineProperty(exports, "getErrorEntry", {
736
+ enumerable: true,
737
+ get: function () { return chunkYQL7NISX_cjs.getErrorEntry; }
738
+ });
739
+ Object.defineProperty(exports, "toErrorBody", {
740
+ enumerable: true,
741
+ get: function () { return chunkYQL7NISX_cjs.toErrorBody; }
742
+ });
743
+ Object.defineProperty(exports, "toErrorResponse", {
744
+ enumerable: true,
745
+ get: function () { return chunkYQL7NISX_cjs.toErrorResponse; }
746
+ });
747
+ Object.defineProperty(exports, "toPepuError", {
748
+ enumerable: true,
749
+ get: function () { return chunkYQL7NISX_cjs.toPepuError; }
750
+ });
751
+ Object.defineProperty(exports, "erc20Abi", {
752
+ enumerable: true,
753
+ get: function () { return viem.erc20Abi; }
754
+ });
755
+ Object.defineProperty(exports, "erc721Abi", {
756
+ enumerable: true,
757
+ get: function () { return viem.erc721Abi; }
758
+ });
759
+ exports.ARB_GAS_INFO_ADDRESS = ARB_GAS_INFO_ADDRESS;
760
+ exports.CANONICAL_MULTICALL3_ADDRESS = CANONICAL_MULTICALL3_ADDRESS;
761
+ exports.DEFAULT_MAX_SEND_MARGIN_BPS = DEFAULT_MAX_SEND_MARGIN_BPS;
762
+ exports.ERC7579_MODULE_TYPE = ERC7579_MODULE_TYPE;
763
+ exports.arbGasInfoAbi = arbGasInfoAbi;
764
+ exports.assertNotCanonicalMulticall3 = assertNotCanonicalMulticall3;
765
+ exports.buildPermitSingleTypedData = buildPermitSingleTypedData;
766
+ exports.buildPermitTransferFromTypedData = buildPermitTransferFromTypedData;
767
+ exports.createPepuscanClient = createPepuscanClient;
768
+ exports.decodeAggregate3Result = decodeAggregate3Result;
769
+ exports.encodeAggregate3 = encodeAggregate3;
770
+ exports.estimateTransactionCost = estimateTransactionCost;
771
+ exports.explainDualFeeModel = explainDualFeeModel;
772
+ exports.formatPepu = formatPepu;
773
+ exports.formatPepuGasPrice = formatPepuGasPrice;
774
+ exports.formatUnitsCompact = formatUnitsCompact;
775
+ exports.getMulticall3 = getMulticall3;
776
+ exports.getNitroFeeBreakdown = getNitroFeeBreakdown;
777
+ exports.getPepuSwapContract = getPepuSwapContract;
778
+ exports.getPermit2 = getPermit2;
779
+ exports.kernelEcdsaValidatorAbi = kernelEcdsaValidatorAbi;
780
+ exports.listPepuSwapContracts = listPepuSwapContracts;
781
+ exports.maxSendableAmount = maxSendableAmount;
782
+ exports.multicall3Abi = multicall3Abi;
783
+ exports.pepuMulticall = pepuMulticall;
784
+ exports.pepuSwapContracts = pepuSwapContracts;
785
+ exports.pepuSwapMulticallAbi = pepuSwapMulticallAbi;
786
+ exports.pepuSwapPermit2Abi = pepuSwapPermit2Abi;
787
+ exports.pepuSwapPositionManagerAbi = pepuSwapPositionManagerAbi;
788
+ exports.pepuSwapQuoterAbi = pepuSwapQuoterAbi;
789
+ exports.pepuSwapRouterAbi = pepuSwapRouterAbi;
790
+ exports.pepuSwapTickLensAbi = pepuSwapTickLensAbi;
791
+ exports.pepuSwapUniversalRouterAbi = pepuSwapUniversalRouterAbi;
792
+ exports.pepuSwapV3FactoryAbi = pepuSwapV3FactoryAbi;
793
+ exports.pepuSwapV3PoolAbi = pepuSwapV3PoolAbi;
794
+ exports.pepuTokenList = pepuTokenList;
795
+ exports.permit2Abi = permit2Abi;
796
+ exports.permit2Domain = permit2Domain;
797
+ exports.readPermit2Allowance = readPermit2Allowance;
798
+ exports.switchOrAddPepuChain = switchOrAddPepuChain;
799
+ exports.toAddEthereumChainParameter = toAddEthereumChainParameter;
800
+ exports.wpepuAbi = wpepuAbi;
801
+ //# sourceMappingURL=index.cjs.map
802
+ //# sourceMappingURL=index.cjs.map