@pepu-chain/sdk 0.0.0-stage → 0.2.1

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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +590 -2
  3. package/dist/aa/kernel.cjs +41 -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.guard.js +15 -0
  8. package/dist/aa/kernel.js +11 -0
  9. package/dist/aa/kernel.js.map +1 -0
  10. package/dist/aa/react-direct.cjs +111 -0
  11. package/dist/aa/react-direct.cjs.map +1 -0
  12. package/dist/aa/react-direct.d.cts +42 -0
  13. package/dist/aa/react-direct.d.ts +42 -0
  14. package/dist/aa/react-direct.guard.js +15 -0
  15. package/dist/aa/react-direct.js +107 -0
  16. package/dist/aa/react-direct.js.map +1 -0
  17. package/dist/aa/react.cjs +152 -0
  18. package/dist/aa/react.cjs.map +1 -0
  19. package/dist/aa/react.d.cts +62 -0
  20. package/dist/aa/react.d.ts +62 -0
  21. package/dist/aa/react.guard.js +15 -0
  22. package/dist/aa/react.js +147 -0
  23. package/dist/aa/react.js.map +1 -0
  24. package/dist/aa.cjs +84 -0
  25. package/dist/aa.cjs.map +1 -0
  26. package/dist/aa.d.cts +85 -0
  27. package/dist/aa.d.ts +85 -0
  28. package/dist/aa.js +11 -0
  29. package/dist/aa.js.map +1 -0
  30. package/dist/api-Dz4sCHH_.d.cts +654 -0
  31. package/dist/api-Dz4sCHH_.d.ts +654 -0
  32. package/dist/calls-BRPjKgjl.d.cts +70 -0
  33. package/dist/calls-z_EQOtFb.d.ts +70 -0
  34. package/dist/chains-DK13zGIp.d.cts +235 -0
  35. package/dist/chains-DK13zGIp.d.ts +235 -0
  36. package/dist/chunk-3XUGQODR.js +194 -0
  37. package/dist/chunk-3XUGQODR.js.map +1 -0
  38. package/dist/chunk-45KSZH26.cjs +145 -0
  39. package/dist/chunk-45KSZH26.cjs.map +1 -0
  40. package/dist/chunk-4GINFJO6.cjs +44 -0
  41. package/dist/chunk-4GINFJO6.cjs.map +1 -0
  42. package/dist/chunk-62M2LKQW.js +136 -0
  43. package/dist/chunk-62M2LKQW.js.map +1 -0
  44. package/dist/chunk-6DSZ4Z2N.js +498 -0
  45. package/dist/chunk-6DSZ4Z2N.js.map +1 -0
  46. package/dist/chunk-7MNJF2OB.cjs +72 -0
  47. package/dist/chunk-7MNJF2OB.cjs.map +1 -0
  48. package/dist/chunk-7PVR7QSE.js +45 -0
  49. package/dist/chunk-7PVR7QSE.js.map +1 -0
  50. package/dist/chunk-A5LP2UCS.cjs +2729 -0
  51. package/dist/chunk-A5LP2UCS.cjs.map +1 -0
  52. package/dist/chunk-AJS4UFQX.cjs +121 -0
  53. package/dist/chunk-AJS4UFQX.cjs.map +1 -0
  54. package/dist/chunk-BGALSKAF.cjs +315 -0
  55. package/dist/chunk-BGALSKAF.cjs.map +1 -0
  56. package/dist/chunk-C2XW44FI.cjs +200 -0
  57. package/dist/chunk-C2XW44FI.cjs.map +1 -0
  58. package/dist/chunk-C7IC36XS.cjs +13 -0
  59. package/dist/chunk-C7IC36XS.cjs.map +1 -0
  60. package/dist/chunk-D52PADVY.js +84 -0
  61. package/dist/chunk-D52PADVY.js.map +1 -0
  62. package/dist/chunk-DH6BFNVJ.cjs +272 -0
  63. package/dist/chunk-DH6BFNVJ.cjs.map +1 -0
  64. package/dist/chunk-DPCZJLB3.cjs +87 -0
  65. package/dist/chunk-DPCZJLB3.cjs.map +1 -0
  66. package/dist/chunk-EHBPIYY4.js +262 -0
  67. package/dist/chunk-EHBPIYY4.js.map +1 -0
  68. package/dist/chunk-ESMNAXUI.js +86 -0
  69. package/dist/chunk-ESMNAXUI.js.map +1 -0
  70. package/dist/chunk-F2R473FR.js +304 -0
  71. package/dist/chunk-F2R473FR.js.map +1 -0
  72. package/dist/chunk-IB2FSPMJ.js +66 -0
  73. package/dist/chunk-IB2FSPMJ.js.map +1 -0
  74. package/dist/chunk-IG7RSL2Y.cjs +178 -0
  75. package/dist/chunk-IG7RSL2Y.cjs.map +1 -0
  76. package/dist/chunk-IY3ALPUJ.js +2716 -0
  77. package/dist/chunk-IY3ALPUJ.js.map +1 -0
  78. package/dist/chunk-J3O2ZGG3.cjs +93 -0
  79. package/dist/chunk-J3O2ZGG3.cjs.map +1 -0
  80. package/dist/chunk-J6UXXHBE.js +37 -0
  81. package/dist/chunk-J6UXXHBE.js.map +1 -0
  82. package/dist/chunk-JLZ4LZ4Z.js +22 -0
  83. package/dist/chunk-JLZ4LZ4Z.js.map +1 -0
  84. package/dist/chunk-K7JSQPZO.cjs +231 -0
  85. package/dist/chunk-K7JSQPZO.cjs.map +1 -0
  86. package/dist/chunk-KJYNF5KH.js +224 -0
  87. package/dist/chunk-KJYNF5KH.js.map +1 -0
  88. package/dist/chunk-KVG3AYYR.js +99 -0
  89. package/dist/chunk-KVG3AYYR.js.map +1 -0
  90. package/dist/chunk-NE3QKDOB.cjs +24 -0
  91. package/dist/chunk-NE3QKDOB.cjs.map +1 -0
  92. package/dist/chunk-NVOPDXTA.cjs +95 -0
  93. package/dist/chunk-NVOPDXTA.cjs.map +1 -0
  94. package/dist/chunk-OH3QMAIB.js +11 -0
  95. package/dist/chunk-OH3QMAIB.js.map +1 -0
  96. package/dist/chunk-PHM3ZORG.cjs +110 -0
  97. package/dist/chunk-PHM3ZORG.cjs.map +1 -0
  98. package/dist/chunk-R5PXQNO3.cjs +209 -0
  99. package/dist/chunk-R5PXQNO3.cjs.map +1 -0
  100. package/dist/chunk-RCMKPJZO.cjs +49 -0
  101. package/dist/chunk-RCMKPJZO.cjs.map +1 -0
  102. package/dist/chunk-SVWRRALU.cjs +17 -0
  103. package/dist/chunk-SVWRRALU.cjs.map +1 -0
  104. package/dist/chunk-T43PQXJD.js +202 -0
  105. package/dist/chunk-T43PQXJD.js.map +1 -0
  106. package/dist/chunk-VBH3JLQ5.js +116 -0
  107. package/dist/chunk-VBH3JLQ5.js.map +1 -0
  108. package/dist/chunk-VF3D6KLQ.cjs +94 -0
  109. package/dist/chunk-VF3D6KLQ.cjs.map +1 -0
  110. package/dist/chunk-VTQIHMF3.js +82 -0
  111. package/dist/chunk-VTQIHMF3.js.map +1 -0
  112. package/dist/chunk-W3JN3YIW.js +15 -0
  113. package/dist/chunk-W3JN3YIW.js.map +1 -0
  114. package/dist/chunk-WANILJZQ.cjs +87 -0
  115. package/dist/chunk-WANILJZQ.cjs.map +1 -0
  116. package/dist/chunk-XC4IBCI2.js +86 -0
  117. package/dist/chunk-XC4IBCI2.js.map +1 -0
  118. package/dist/chunk-YKEWWQEJ.js +165 -0
  119. package/dist/chunk-YKEWWQEJ.js.map +1 -0
  120. package/dist/chunk-YQL7NISX.cjs +515 -0
  121. package/dist/chunk-YQL7NISX.cjs.map +1 -0
  122. package/dist/chunk-ZB6SVBK4.js +89 -0
  123. package/dist/chunk-ZB6SVBK4.js.map +1 -0
  124. package/dist/combo/react.cjs +236 -0
  125. package/dist/combo/react.cjs.map +1 -0
  126. package/dist/combo/react.d.cts +148 -0
  127. package/dist/combo/react.d.ts +148 -0
  128. package/dist/combo/react.guard.js +15 -0
  129. package/dist/combo/react.js +230 -0
  130. package/dist/combo/react.js.map +1 -0
  131. package/dist/combo.cjs +263 -0
  132. package/dist/combo.cjs.map +1 -0
  133. package/dist/combo.d.cts +139 -0
  134. package/dist/combo.d.ts +139 -0
  135. package/dist/combo.guard.js +15 -0
  136. package/dist/combo.js +249 -0
  137. package/dist/combo.js.map +1 -0
  138. package/dist/config-CHjz7ZjZ.d.cts +57 -0
  139. package/dist/config-COjhIZTh.d.ts +57 -0
  140. package/dist/doctor.cjs +354 -0
  141. package/dist/doctor.cjs.map +1 -0
  142. package/dist/doctor.d.cts +177 -0
  143. package/dist/doctor.d.ts +177 -0
  144. package/dist/doctor.js +345 -0
  145. package/dist/doctor.js.map +1 -0
  146. package/dist/erc7677-DOW58QBE.d.cts +111 -0
  147. package/dist/erc7677-DOW58QBE.d.ts +111 -0
  148. package/dist/errors-CgX1vNj7.d.cts +100 -0
  149. package/dist/errors-CgX1vNj7.d.ts +100 -0
  150. package/dist/index.cjs +806 -0
  151. package/dist/index.cjs.map +1 -0
  152. package/dist/index.d.cts +2398 -0
  153. package/dist/index.d.ts +2398 -0
  154. package/dist/index.js +559 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/paymaster/server.cjs +38 -0
  157. package/dist/paymaster/server.cjs.map +1 -0
  158. package/dist/paymaster/server.d.cts +57 -0
  159. package/dist/paymaster/server.d.ts +57 -0
  160. package/dist/paymaster/server.js +36 -0
  161. package/dist/paymaster/server.js.map +1 -0
  162. package/dist/paymaster.cjs +356 -0
  163. package/dist/paymaster.cjs.map +1 -0
  164. package/dist/paymaster.d.cts +1851 -0
  165. package/dist/paymaster.d.ts +1851 -0
  166. package/dist/paymaster.js +289 -0
  167. package/dist/paymaster.js.map +1 -0
  168. package/dist/privy/react.cjs +49 -0
  169. package/dist/privy/react.cjs.map +1 -0
  170. package/dist/privy/react.d.cts +194 -0
  171. package/dist/privy/react.d.ts +194 -0
  172. package/dist/privy/react.guard.js +15 -0
  173. package/dist/privy/react.js +7 -0
  174. package/dist/privy/react.js.map +1 -0
  175. package/dist/privy/server.cjs +44 -0
  176. package/dist/privy/server.cjs.map +1 -0
  177. package/dist/privy/server.d.cts +192 -0
  178. package/dist/privy/server.d.ts +192 -0
  179. package/dist/privy/server.guard.js +15 -0
  180. package/dist/privy/server.js +6 -0
  181. package/dist/privy/server.js.map +1 -0
  182. package/dist/privy/wagmi.d.ts +90 -0
  183. package/dist/privy/wagmi.guard.js +15 -0
  184. package/dist/privy/wagmi.js +55 -0
  185. package/dist/privy/wagmi.js.map +1 -0
  186. package/dist/privy.cjs +34 -0
  187. package/dist/privy.cjs.map +1 -0
  188. package/dist/privy.d.cts +4 -0
  189. package/dist/privy.d.ts +4 -0
  190. package/dist/privy.js +5 -0
  191. package/dist/privy.js.map +1 -0
  192. package/dist/react.cjs +73 -0
  193. package/dist/react.cjs.map +1 -0
  194. package/dist/react.d.cts +66 -0
  195. package/dist/react.d.ts +66 -0
  196. package/dist/react.guard.js +15 -0
  197. package/dist/react.js +68 -0
  198. package/dist/react.js.map +1 -0
  199. package/dist/requirements-C-QiJkL9.d.cts +134 -0
  200. package/dist/requirements-C-QiJkL9.d.ts +134 -0
  201. package/dist/scope-DBRkN7bR.d.cts +94 -0
  202. package/dist/scope-DBRkN7bR.d.ts +94 -0
  203. package/dist/server.cjs +59 -0
  204. package/dist/server.cjs.map +1 -0
  205. package/dist/server.d.cts +208 -0
  206. package/dist/server.d.ts +208 -0
  207. package/dist/server.js +8 -0
  208. package/dist/server.js.map +1 -0
  209. package/dist/session/kernel.cjs +83 -0
  210. package/dist/session/kernel.cjs.map +1 -0
  211. package/dist/session/kernel.d.cts +131 -0
  212. package/dist/session/kernel.d.ts +131 -0
  213. package/dist/session/kernel.guard.js +15 -0
  214. package/dist/session/kernel.js +13 -0
  215. package/dist/session/kernel.js.map +1 -0
  216. package/dist/session/react.cjs +38 -0
  217. package/dist/session/react.cjs.map +1 -0
  218. package/dist/session/react.d.cts +119 -0
  219. package/dist/session/react.d.ts +119 -0
  220. package/dist/session/react.guard.js +15 -0
  221. package/dist/session/react.js +8 -0
  222. package/dist/session/react.js.map +1 -0
  223. package/dist/session/server.cjs +268 -0
  224. package/dist/session/server.cjs.map +1 -0
  225. package/dist/session/server.d.cts +151 -0
  226. package/dist/session/server.d.ts +151 -0
  227. package/dist/session/server.guard.js +15 -0
  228. package/dist/session/server.js +252 -0
  229. package/dist/session/server.js.map +1 -0
  230. package/dist/session.cjs +74 -0
  231. package/dist/session.cjs.map +1 -0
  232. package/dist/session.d.cts +3 -0
  233. package/dist/session.d.ts +3 -0
  234. package/dist/session.js +5 -0
  235. package/dist/session.js.map +1 -0
  236. package/dist/status-Dx9zAFo9.d.ts +327 -0
  237. package/dist/status-wgTM26V7.d.cts +327 -0
  238. package/dist/store-CjmLgp9g.d.cts +64 -0
  239. package/dist/store-CjmLgp9g.d.ts +64 -0
  240. package/dist/types-BEEM7WdG.d.cts +25 -0
  241. package/dist/types-BEEM7WdG.d.ts +25 -0
  242. package/dist/types-BilBTDqK.d.cts +27 -0
  243. package/dist/types-BilBTDqK.d.ts +27 -0
  244. package/package.json +245 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/paymaster/abi.ts","../src/paymaster/reasons.ts","../src/paymaster/api.ts"],"names":[],"mappings":"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","file":"chunk-IY3ALPUJ.js","sourcesContent":["/**\n * ABI of the PEPU v2 sponsored paymaster (PepuSponsoredPaymasterV7.sol).\n * COPIED from services/paymaster/policy-service/src/sponsorship/abi.ts (generated there with\n * `forge inspect PepuSponsoredPaymasterV7 abi --json`). Do not edit by hand; re-copy when the contract changes.\n */\nexport const pepuSponsoredPaymasterV2Abi = [\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"_entryPoint\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_manager\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_signers\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"_bundlers\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"_adminChangeDelay\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n },\n {\n \"name\": \"_postOpOverheadGas\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n },\n {\n \"name\": \"_defaultMaxFeePerGas\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"MAX_ADMIN_CHANGE_DELAY\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"MIN_ADMIN_CHANGE_DELAY\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"MIN_POSTOP_GAS_LIMIT\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"MIN_POSTOP_OVERHEAD_GAS\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"PENDING_EXPIRY\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"SURPLUS_RESERVE\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"acceptOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"acceptProjectOwnership\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"addStake\",\n \"inputs\": [\n {\n \"name\": \"unstakeDelaySec\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"adminChangeDelay\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancelAdminChange\",\n \"inputs\": [\n {\n \"name\": \"kind\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancelReclaim\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimDigest\",\n \"inputs\": [\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimProject\",\n \"inputs\": [\n {\n \"name\": \"c\",\n \"type\": \"tuple\",\n \"internalType\": \"struct PepuSponsoredPaymasterV7.Claim\",\n \"components\": [\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimUsed\",\n \"inputs\": [\n {\n \"name\": \"digest\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"used\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"creditSurplusToFreePool\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"credited\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"defaultMaxFeePerGas\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"depositFor\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"domainSeparator\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"effectiveMaxFeePerGas\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"entryPoint\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"contract IEntryPoint\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"executeAdminChange\",\n \"inputs\": [\n {\n \"name\": \"kind\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"executeReclaim\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"freeEnabled\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"freeMaxOpCost\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"fundFreePool\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getHash\",\n \"inputs\": [\n {\n \"name\": \"_mode\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"_userOp\",\n \"type\": \"tuple\",\n \"internalType\": \"struct PackedUserOperation\",\n \"components\": [\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"initCode\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"callData\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"accountGasLimits\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"preVerificationGas\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"gasFees\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"paymasterAndData\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProject\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"projectOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"paused\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"senderDailyLimit\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n },\n {\n \"name\": \"balance\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"dailyLimit\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n },\n {\n \"name\": \"spentToday\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n },\n {\n \"name\": \"spentDay\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getSenderSpend\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"day\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n },\n {\n \"name\": \"spent\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isBundlerAllowed\",\n \"inputs\": [\n {\n \"name\": \"bundler\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"allowed\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isTargetAllowed\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"target\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"manager\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"maxPostOpOverheadGas\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"pauseFreePool\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"pendingAdminChange\",\n \"inputs\": [\n {\n \"name\": \"key\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"pendingOwner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"pendingProjectOwner\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"pendingReclaim\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n },\n {\n \"name\": \"signer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"postOp\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint8\",\n \"internalType\": \"enum PostOpMode\"\n },\n {\n \"name\": \"context\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"actualGasCost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"actualUserOpFeePerGas\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"postOpOverheadGas\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"projectIdOf\",\n \"inputs\": [\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"pure\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proposeAdminChange\",\n \"inputs\": [\n {\n \"name\": \"kind\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proposeProjectOwner\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reclaimProject\",\n \"inputs\": [\n {\n \"name\": \"c\",\n \"type\": \"tuple\",\n \"internalType\": \"struct PepuSponsoredPaymasterV7.Claim\",\n \"components\": [\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"removeBundlers\",\n \"inputs\": [\n {\n \"name\": \"bundlers\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"removeSigner\",\n \"inputs\": [\n {\n \"name\": \"_signer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"requiredAccountCodehash\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"codehash\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setDailyLimit\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFreeMaxFeePerGas\",\n \"inputs\": [\n {\n \"name\": \"cap\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFreeTargets\",\n \"inputs\": [\n {\n \"name\": \"targets\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFreeTier\",\n \"inputs\": [\n {\n \"name\": \"maxOpCost\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"senderDailyLimit\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setManager\",\n \"inputs\": [\n {\n \"name\": \"newManager\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setMaxFeePerGas\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"cap\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setPaused\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"paused\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setPostOpOverheadGas\",\n \"inputs\": [\n {\n \"name\": \"gas\",\n \"type\": \"uint32\",\n \"internalType\": \"uint32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setRequiredAccountCodehash\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"codehash\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setSenderDailyLimit\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint112\",\n \"internalType\": \"uint112\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setTargets\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"targets\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"signerRemovedAt\",\n \"inputs\": [\n {\n \"name\": \"signer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"removedAt\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"signers\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"isValidSigner\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"surplus\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"totalLiabilities\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"unlockStake\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"validatePaymasterUserOp\",\n \"inputs\": [\n {\n \"name\": \"userOp\",\n \"type\": \"tuple\",\n \"internalType\": \"struct PackedUserOperation\",\n \"components\": [\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"initCode\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"callData\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"accountGasLimits\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"preVerificationGas\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"gasFees\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"paymasterAndData\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"signature\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"userOpHash\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"maxCost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"context\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"validationData\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"vetoedReclaimant\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawStake\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"address\",\n \"internalType\": \"address payable\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"AdminChangeCancelled\",\n \"inputs\": [\n {\n \"name\": \"key\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"kind\",\n \"type\": \"uint8\",\n \"indexed\": false,\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AdminChangeProposed\",\n \"inputs\": [\n {\n \"name\": \"key\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"kind\",\n \"type\": \"uint8\",\n \"indexed\": false,\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"indexed\": false,\n \"internalType\": \"uint48\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"BundlerAllowlistUpdated\",\n \"inputs\": [\n {\n \"name\": \"bundler\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\",\n \"indexed\": false,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"DailyLimitSet\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Deposited\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"from\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newBalance\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"FreeTierConfigured\",\n \"inputs\": [\n {\n \"name\": \"maxOpCost\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"senderDailyLimit\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\",\n \"indexed\": false,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ManagerSet\",\n \"inputs\": [\n {\n \"name\": \"manager\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"MaxFeePerGasSet\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"cap\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferStarted\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"PausedSet\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"paused\",\n \"type\": \"bool\",\n \"indexed\": false,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"PostOpOverheadGasSet\",\n \"inputs\": [\n {\n \"name\": \"gas\",\n \"type\": \"uint32\",\n \"indexed\": false,\n \"internalType\": \"uint32\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectClaimProposed\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"indexed\": false,\n \"internalType\": \"uint48\"\n },\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"indexed\": false,\n \"internalType\": \"string\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectClaimed\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"appId\",\n \"type\": \"string\",\n \"indexed\": false,\n \"internalType\": \"string\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectOwnershipTransferStarted\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectOwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"oldOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectReclaimCancelled\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProjectReclaimProposed\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"currentOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"indexed\": false,\n \"internalType\": \"uint48\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RequiredAccountCodehashSet\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"codehash\",\n \"type\": \"bytes32\",\n \"indexed\": false,\n \"internalType\": \"bytes32\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SenderDailyLimitSet\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SignerAdded\",\n \"inputs\": [\n {\n \"name\": \"signer\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SignerRemoved\",\n \"inputs\": [\n {\n \"name\": \"signer\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SponsorReserved\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"userOpHash\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SurplusCreditedToFreePool\",\n \"inputs\": [\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TargetSet\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"target\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\",\n \"indexed\": false,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UserOpSettled\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"userOpHash\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"reserved\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"charged\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"AccountCodehashMismatch\",\n \"inputs\": [\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"codehash\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"AdminChangeAlreadyProposed\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"AdminChangeNotProposed\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"AdminChangeNotReady\",\n \"inputs\": [\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"BundlerNotAllowed\",\n \"inputs\": [\n {\n \"name\": \"bundler\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ClaimAlreadyUsed\",\n \"inputs\": [\n {\n \"name\": \"digest\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ClaimDeadlineTooFar\",\n \"inputs\": [\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ClaimExpired\",\n \"inputs\": [\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"CostTooLarge\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"DailyLimitExceeded\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"DelayTooLong\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"DelayTooShort\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"FreeTierDisabled\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InsufficientSponsorBalance\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"balance\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxCost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidAdminChange\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidAppId\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidClaimSignature\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidFreeTierConfig\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidOwner\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidValidityWindow\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"MaxFeePerGasTooHigh\",\n \"inputs\": [\n {\n \"name\": \"maxFeePerGas\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"cap\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NoPendingReclaim\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotEntryPoint\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NotOwnerOrManager\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NotPendingProjectOwner\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NotProjectOwner\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NothingToCredit\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"OpCostTooHigh\",\n \"inputs\": [\n {\n \"name\": \"maxCost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OverheadOutOfBounds\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"PaymasterAndDataLengthInvalid\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"PaymasterConfigLengthInvalid\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"PaymasterModeInvalid\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"PaymasterSignatureLengthInvalid\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"PostOpGasLimitTooLow\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"ProjectAlreadyClaimed\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProjectNotClaimed\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReclaimNotCancellable\",\n \"inputs\": [\n {\n \"name\": \"projectId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReclaimNotReady\",\n \"inputs\": [\n {\n \"name\": \"executableAt\",\n \"type\": \"uint48\",\n \"internalType\": \"uint48\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReclaimSignerRemoved\",\n \"inputs\": [\n {\n \"name\": \"signer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"SenderDailyLimitExceeded\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"SponsorPaused\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"TargetNotAllowed\",\n \"inputs\": [\n {\n \"name\": \"target\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnknownSponsor\",\n \"inputs\": [\n {\n \"name\": \"sponsorId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnsupportedCallData\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"ZeroAmount\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"ZeroDailyLimit\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"ZeroFeeCap\",\n \"inputs\": []\n }\n] as const;\n","import { decodeErrorResult } from \"viem\";\nimport type { Hex } from \"viem\";\n\nimport { PepuPaymasterError } from \"../errors.js\";\nimport type { PepuErrorCode } from \"../errors.js\";\nimport { pepuSponsoredPaymasterV2Abi } from \"./abi.js\";\n\n/**\n * Denial reasons the v2 policy service returns (services/paymaster/policy-service/src/sponsorship/types.ts,\n * `SponsorshipDenialReason`) plus the v1-only reasons (`src/types.ts`, `DenialReason`).\n */\nexport const PAYMASTER_DENIAL_REASONS = [\n // v2\n \"unknown_or_invalid_app_credential\",\n \"app_suspended\",\n \"invalid_or_expired_token\",\n \"sender_not_owned_by_token_user\",\n \"calldata_decode_failed\",\n \"project_not_claimed_onchain\",\n \"project_owner_changed\",\n \"project_paused\",\n \"project_balance_exhausted\",\n \"project_daily_limit_reached\",\n \"project_user_cap_exceeded\",\n \"project_identity_required\",\n \"project_origin_not_allowed\",\n \"project_sender_limit_reached\",\n \"project_sender_limit_not_set\",\n \"account_deployment_disabled\",\n \"target_not_allowed_onchain\",\n \"destination_not_allowed_for_app\",\n \"free_tier_disabled\",\n \"free_tier_identity_required\",\n \"free_tier_user_daily_exceeded\",\n \"free_tier_user_hourly_exceeded\",\n \"free_tier_count_exceeded\",\n \"free_tier_sender_limit_reached\",\n \"free_pool_empty\",\n \"free_pool_op_too_large\",\n \"chain_read_failed\",\n \"gas_limits_out_of_bounds\",\n \"fee_out_of_bounds\",\n \"fee_above_onchain_cap\",\n \"reservation_cap_exceeded\",\n \"rate_limited\",\n \"malformed_request\",\n // v1 only\n \"destination_not_globally_allowed\",\n \"user_hourly_count_cap_exceeded\",\n \"user_daily_count_cap_exceeded\",\n \"user_lifetime_count_cap_exceeded\",\n \"user_hourly_spend_cap_exceeded\",\n \"user_daily_spend_cap_exceeded\",\n \"user_lifetime_spend_cap_exceeded\",\n \"app_daily_spend_cap_exceeded\",\n \"app_lifetime_spend_cap_exceeded\",\n \"global_circuit_breaker_tripped\",\n] as const;\n\nexport type PaymasterDenialReason = (typeof PAYMASTER_DENIAL_REASONS)[number];\n\n/** Reason to catalog code. Exhaustive over {@link PAYMASTER_DENIAL_REASONS} (checked by the compiler). */\nexport const PAYMASTER_REASON_CODES: Readonly<Record<PaymasterDenialReason, PepuErrorCode>> = {\n unknown_or_invalid_app_credential: \"PAYMASTER_DENIED\",\n app_suspended: \"PAYMASTER_DENIED\",\n invalid_or_expired_token: \"AUTH_INVALID_TOKEN\",\n sender_not_owned_by_token_user: \"PAYMASTER_DENIED\",\n calldata_decode_failed: \"PAYMASTER_DENIED\",\n project_not_claimed_onchain: \"PAYMASTER_PROJECT_NOT_CLAIMED\",\n project_owner_changed: \"PAYMASTER_PROJECT_OWNER_CHANGED\",\n project_paused: \"PAYMASTER_PROJECT_PAUSED\",\n project_balance_exhausted: \"PAYMASTER_NO_BALANCE\",\n project_daily_limit_reached: \"PAYMASTER_CAP\",\n project_user_cap_exceeded: \"PAYMASTER_CAP\",\n project_identity_required: \"PAYMASTER_IDENTITY_REQUIRED\",\n project_origin_not_allowed: \"PAYMASTER_ORIGIN_NOT_ALLOWED\",\n project_sender_limit_reached: \"PAYMASTER_CAP\",\n project_sender_limit_not_set: \"PAYMASTER_DENIED\",\n account_deployment_disabled: \"PAYMASTER_DENIED\",\n target_not_allowed_onchain: \"PAYMASTER_DESTINATION_NOT_ALLOWED\",\n destination_not_allowed_for_app: \"PAYMASTER_DESTINATION_NOT_ALLOWED\",\n free_tier_disabled: \"PAYMASTER_FREE_TIER_UNAVAILABLE\",\n free_tier_identity_required: \"PAYMASTER_IDENTITY_REQUIRED\",\n free_tier_user_daily_exceeded: \"PAYMASTER_CAP\",\n free_tier_user_hourly_exceeded: \"PAYMASTER_CAP\",\n free_tier_count_exceeded: \"PAYMASTER_CAP\",\n free_tier_sender_limit_reached: \"PAYMASTER_CAP\",\n free_pool_empty: \"PAYMASTER_FREE_TIER_UNAVAILABLE\",\n free_pool_op_too_large: \"PAYMASTER_FREE_TIER_UNAVAILABLE\",\n chain_read_failed: \"PAYMASTER_API_ERROR\",\n gas_limits_out_of_bounds: \"PAYMASTER_DENIED\",\n fee_out_of_bounds: \"PAYMASTER_DENIED\",\n fee_above_onchain_cap: \"PAYMASTER_CAP\",\n reservation_cap_exceeded: \"PAYMASTER_CAP\",\n rate_limited: \"PAYMASTER_RATE_LIMITED\",\n malformed_request: \"PAYMASTER_DENIED\",\n destination_not_globally_allowed: \"PAYMASTER_DESTINATION_NOT_ALLOWED\",\n user_hourly_count_cap_exceeded: \"PAYMASTER_CAP\",\n user_daily_count_cap_exceeded: \"PAYMASTER_CAP\",\n user_lifetime_count_cap_exceeded: \"PAYMASTER_CAP\",\n user_hourly_spend_cap_exceeded: \"PAYMASTER_CAP\",\n user_daily_spend_cap_exceeded: \"PAYMASTER_CAP\",\n user_lifetime_spend_cap_exceeded: \"PAYMASTER_CAP\",\n app_daily_spend_cap_exceeded: \"PAYMASTER_CAP\",\n app_lifetime_spend_cap_exceeded: \"PAYMASTER_CAP\",\n global_circuit_breaker_tripped: \"PAYMASTER_CAP\",\n};\n\n/** Reasons that are transient (retrying later can succeed). Everything else follows the catalog default. */\nconst RETRYABLE_REASONS: ReadonlySet<string> = new Set([\"chain_read_failed\", \"rate_limited\"]);\n\n/**\n * Map a denial reason string to a catalog code. Unknown reasons (a newer\n * service) map to `PAYMASTER_DENIED` so callers always get a typed error.\n *\n * @example\n * ```ts\n * mapPaymasterReason(\"project_not_claimed_onchain\"); // \"PAYMASTER_PROJECT_NOT_CLAIMED\"\n * ```\n */\nexport function mapPaymasterReason(reason: string | undefined): PepuErrorCode {\n if (reason !== undefined && Object.prototype.hasOwnProperty.call(PAYMASTER_REASON_CODES, reason)) {\n return PAYMASTER_REASON_CODES[reason as PaymasterDenialReason];\n }\n return \"PAYMASTER_DENIED\";\n}\n\n/**\n * Build the typed error for a denial reason. The message carries the reason\n * code and the service's message (service messages never contain credentials).\n *\n * @example\n * ```ts\n * throw paymasterReasonToError(\"project_paused\", \"project is paused\");\n * ```\n */\nexport function paymasterReasonToError(\n reason: string | undefined,\n message?: string,\n details?: unknown,\n): PepuPaymasterError {\n const code = mapPaymasterReason(reason);\n const text = `Paymaster denied the operation${reason ? ` (${reason})` : \"\"}${message ? `: ${message}` : \".\"}`;\n const retryable = reason !== undefined && RETRYABLE_REASONS.has(reason) ? true : undefined;\n return new PepuPaymasterError(code, text, {\n details: { reason, ...(details && typeof details === \"object\" ? (details as object) : {}) },\n ...(retryable === undefined ? {} : { retryable }),\n });\n}\n\n/**\n * Decode raw revert data from the v2 paymaster contract (for example\n * `ProjectNotClaimed(bytes32)`, `ClaimExpired(uint256)`, `NotProjectOwner()`).\n * Returns `null` when the data is not one of the contract's errors.\n *\n * @example\n * ```ts\n * const r = decodePaymasterRevert(\"0x...\"); // { errorName: \"NotProjectOwner\", args: undefined }\n * ```\n */\nexport function decodePaymasterRevert(data: Hex): { errorName: string; args: readonly unknown[] | undefined } | null {\n try {\n const d = decodeErrorResult({ abi: pepuSponsoredPaymasterV2Abi, data });\n return { errorName: d.errorName, args: d.args };\n } catch {\n return null;\n }\n}\n","import { createSiweMessage } from \"viem/siwe\";\nimport { isAddress, toHex } from \"viem\";\nimport type { Address, Hex } from \"viem\";\n\nimport { pepuMainnet } from \"../chains.js\";\nimport { PEPU_HOSTED, resolvePepuEndpoints } from \"../endpoints.js\";\nimport { PepuConfigError, PepuPaymasterError } from \"../errors.js\";\nimport type { PepuErrorCode } from \"../errors.js\";\nimport type { ProjectClaimAttestation } from \"./onchain.js\";\nimport { mapPaymasterReason, paymasterReasonToError } from \"./reasons.js\";\n\n/**\n * REST client for the PEPU paymaster policy service: v1 (`/sponsor`, ERC-7677 at `/paymaster/<token>`) and\n * v2 (`/v2/*`, tiered, on-chain projects). Isomorphic (plain `fetch`), so it is safe in a browser EXCEPT for\n * the claim attestation call that carries a Privy app secret, which lives in `@pepu-chain/sdk/paymaster/server`.\n *\n * Contract: services/paymaster/policy-service/openapi.yaml and SPONSORSHIP-SPEC.md. Credentials: a server key\n * (`ppk_...`, secret, any wallet) and a client token (`ppt_...`, publishable, bound to allowed origins).\n */\n\n// ---------------------------------------------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------------------------------------------\n\n/** A quantity as the service accepts it: `0x` hex or bigint (converted for you). */\nexport type Quantity = Hex | bigint;\n\n/** The UserOperation fields `POST /sponsor` and `POST /v2/sponsor` read (EntryPoint v0.7, unpacked). */\nexport interface SponsorUserOp {\n sender: Address;\n nonce: Quantity;\n factory?: Address;\n factoryData?: Hex;\n callData: Hex;\n callGasLimit: Quantity;\n verificationGasLimit: Quantity;\n preVerificationGas: Quantity;\n maxFeePerGas: Quantity;\n maxPriorityFeePerGas: Quantity;\n}\n\nexport interface SponsorApproval {\n status: \"approved\";\n chainId: number;\n paymaster: Address;\n paymasterVerificationGasLimit: Hex;\n paymasterPostOpGasLimit: Hex;\n paymasterData: Hex;\n validUntil: number;\n validAfter: number;\n /** EntryPoint's canonical userOpHash. */\n userOpHash: Hex;\n /** v2 only. */\n sponsor?: { kind: \"project\" | \"free\"; sponsorId: Hex; projectKey: string };\n /** v2 only: worst-case cost, decimal wei. */\n maxCostWei?: string;\n}\n\nexport interface SponsorDenial {\n status: \"denied\";\n /** Machine-readable reason, see {@link PAYMASTER_DENIAL_REASONS}. */\n reason: string;\n message: string;\n /** v2: per-tier reasons when both tiers were tried. */\n detail?: { project?: string; free?: string };\n}\n\nexport type SponsorResult = SponsorApproval | SponsorDenial;\n\n/** Credentials for a sponsor call. */\nexport interface SponsorAuth {\n /** The project's server key (`ppk_`) or client token (`ppt_`). Sent as `X-Api-Key`. */\n apiKey: string;\n /** The user's Privy access token. REQUIRED by v1 and by the v2 free tier. Sent as `Authorization: Bearer`. */\n privyAccessToken?: string;\n /** Origin header, for server-side calls with a client token (browsers set it themselves). */\n origin?: string;\n}\n\nexport interface V2LoginResult {\n token: string;\n address: Address;\n /** ISO timestamp. */\n expiresAt: string;\n}\n\nexport type V2ConfigResponse = Record<string, unknown>;\nexport type V2FreeTierInfo = Record<string, unknown>;\n\nexport interface V2ContractInfo {\n address: Address;\n chainId: number;\n entryPoint: Address;\n abi: readonly unknown[];\n}\n\n/** `POST /v2/projects/prepare` response: a transaction for the owner's wallet to send. */\nexport interface PreparedTx {\n chainId: number;\n to: Address;\n data: Hex;\n /** Decimal wei string. */\n value: string;\n function: string;\n description: string;\n}\n\ntype Wei = string;\ntype Bytes32 = Hex;\n\n/** Body of `POST /v2/projects/prepare`. */\nexport type PrepareRequest =\n | { action: \"claimProject\" | \"reclaimProject\"; attestation: SerializedAttestation }\n | { action: \"depositFor\"; projectId: Bytes32; amountWei: Wei }\n | { action: \"executeReclaim\" | \"cancelReclaim\" | \"acceptProjectOwnership\"; projectId: Bytes32 }\n | { action: \"setTargets\"; projectId: Bytes32; targets: Address[]; allowed: boolean }\n | { action: \"setDailyLimit\" | \"setSenderDailyLimit\"; projectId: Bytes32; limitWei: Wei }\n | { action: \"setPaused\"; projectId: Bytes32; paused: boolean }\n | { action: \"proposeProjectOwner\"; projectId: Bytes32; newOwner: Address };\n\n/** Attestation in the service's wire format (decimal strings). */\nexport interface SerializedAttestation {\n appId: string;\n newOwner: Address;\n nonce: string;\n deadline: string;\n signature: Hex;\n}\n\nexport interface RegisterProjectRequest {\n /** Give `projectId` or `appId` (the id is keccak256(appId)). */\n projectId?: Bytes32;\n appId?: string;\n perUserDailyCapWei?: Wei;\n /** Opt in: refuse wallets without a verified Privy token. Default false (any wallet). */\n requireIdentity?: boolean;\n /** Plain origins (scheme://host[:port], http only for localhost). Max 20. None means server-key only. */\n allowedOrigins?: string[];\n}\n\nexport interface RegisterProjectResponse {\n /** Publishable client token (`ppt_...`), shown once. */\n token: string;\n /** ERC-7677 URL embedding the client token. */\n paymasterUrl: string;\n /** SECRET server key (`ppk_...`), shown once. Backend only. */\n serverKey?: string;\n}\n\nexport interface ProjectSettings {\n perUserDailyCapWei?: Wei;\n requireIdentity?: boolean;\n allowedOrigins?: string[];\n}\n\nexport interface ProjectDetail {\n projectId: Bytes32;\n appId: string | null;\n indexed: boolean;\n owner: Address;\n onchain: {\n balance: Wei;\n spendable: Wei;\n outstandingApprovals: Wei;\n paused: boolean;\n dailyLimit: Wei;\n senderDailyLimit: Wei;\n spentToday: Wei;\n dailyRemaining: Wei;\n };\n adminChangeDelaySeconds: number | null;\n allowlist: Address[] | null;\n offchain: Record<string, unknown> | null;\n usage24h: { ops: number; projectFundedWei: Wei; freeTierFundedWei: Wei } | null;\n contract: { address: Address; chainId: number };\n}\n\n/** Options for the low-level request escape hatch. */\nexport interface V2RequestOptions {\n body?: unknown;\n query?: Record<string, string | number | undefined>;\n /** Send the stored SIWE session as a bearer token. Default false. */\n session?: boolean;\n /**\n * Never put the service's message into thrown errors (only the HTTP status and error code). Set for calls whose\n * request body holds a secret.\n */\n quietErrors?: boolean;\n}\n\nexport interface CreatePaymasterApiOptions {\n /**\n * Policy-service base URL (no trailing path). Defaults to `PEPU_PAYMASTER_URL` /\n * `NEXT_PUBLIC_PEPU_PAYMASTER_URL`, then the hosted default once it exists.\n */\n baseUrl?: string;\n /** Fetch implementation (tests, custom agents). Defaults to global `fetch`. */\n fetch?: typeof fetch;\n /** Environment for URL resolution. Defaults to `process.env`. */\n env?: Record<string, string | undefined>;\n /** Request timeout in milliseconds. Default 15000. */\n timeoutMs?: number;\n /** Start with an existing SIWE session token. */\n sessionToken?: string;\n}\n\nexport interface PaymasterApiV1 {\n /** `POST /sponsor`. Needs the user's Privy access token and the app API key. */\n sponsor(userOp: SponsorUserOp, auth: SponsorAuth): Promise<SponsorResult>;\n /** `GET /health`. */\n health(): Promise<{ status: string }>;\n /** ERC-7677 URL for this service (`<base>/paymaster/<token>`). */\n erc7677Url(appToken: string): string;\n}\n\nexport interface PaymasterApiV2 {\n /** `POST /v2/sponsor`. Denials are returned (not thrown); use {@link assertApproved}. */\n sponsor(userOp: SponsorUserOp, auth: SponsorAuth): Promise<SponsorResult>;\n /** ERC-7677 URL for this service (`<base>/v2/paymaster/<token>`). */\n erc7677Url(appToken: string): string;\n config(): Promise<V2ConfigResponse>;\n contract(): Promise<V2ContractInfo>;\n freeTier(): Promise<V2FreeTierInfo>;\n auth: {\n nonce(): Promise<{ nonce: string; expiresAt: string }>;\n /** Stores the returned session token on this client. */\n login(message: string, signature: Hex): Promise<V2LoginResult>;\n logout(): Promise<void>;\n };\n /** `GET /v2/me`: the session address. */\n me(): Promise<{ address: Address }>;\n /**\n * Full SIWE sign-in: nonce, EIP-4361 message, your signature, login. The session lasts 1 hour and is stored\n * on this client.\n */\n loginWithWallet(sign: (message: string) => Promise<Hex>, o: LoginWithWalletOptions): Promise<V2LoginResult>;\n /** Current session token, if signed in. */\n getSessionToken(): string | null;\n setSessionToken(token: string | null): void;\n projects: {\n /** `POST /v2/projects/prepare`: calldata for the owner's wallet. Sends nothing. */\n prepare(request: PrepareRequest): Promise<PreparedTx>;\n /** `POST /v2/projects`: index a claimed project and get its credentials. */\n register(request: RegisterProjectRequest): Promise<RegisterProjectResponse>;\n list(): Promise<{ projects: unknown[]; onchainUnindexed?: unknown[] }>;\n get(projectId: Hex): Promise<ProjectDetail>;\n rotateClientToken(projectId: Hex): Promise<{ token: string; paymasterUrl: string; note?: string }>;\n rotateServerKey(projectId: Hex): Promise<{ serverKey: string; note?: string }>;\n updateSettings(projectId: Hex, settings: ProjectSettings): Promise<Record<string, unknown>>;\n usage(projectId: Hex, q?: { limit?: number; before?: number }): Promise<Record<string, unknown>>;\n events(projectId: Hex, q?: { fromBlock?: number; limit?: number }): Promise<{ projectId: Hex; events: unknown[] }>;\n allowlist(projectId: Hex): Promise<{ projectId: Hex; source: string; targets: Address[] }>;\n };\n /**\n * Low-level call to any `/v2` path, with the same error mapping. Used by `@pepu-chain/sdk/paymaster/server`\n * for `POST /v2/projects/verify`. Prefer the typed methods.\n */\n request<T>(method: \"GET\" | \"POST\" | \"PATCH\", path: string, options?: V2RequestOptions): Promise<T>;\n}\n\nexport interface PaymasterApi {\n /** Resolved base URL, no trailing slash. */\n readonly baseUrl: string;\n v1: PaymasterApiV1;\n v2: PaymasterApiV2;\n}\n\nexport interface LoginWithWalletOptions {\n /** The signing wallet's address. */\n address: Address;\n /** SIWE domain; must be one of the service's `SIWE_DOMAINS` (for example `app.example.com`). */\n domain: string;\n /** SIWE `uri`. Default `https://<domain>`. */\n uri?: string;\n /** Chain id in the message. Default 97741. */\n chainId?: number;\n statement?: string;\n /** Message lifetime in seconds (service maximum is 600 by default). Default 300. */\n lifetimeSeconds?: number;\n now?: () => number;\n}\n\n// ---------------------------------------------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------------------------------------------\n\nconst CLIENT_TOKEN_PREFIX = \"ppt_\";\nconst SERVER_KEY_PREFIX = \"ppk_\";\n\n/** `\"client\"` for `ppt_` tokens, `\"server\"` for `ppk_` keys, otherwise `null`. Never inspects beyond the prefix. */\nexport function credentialKind(credential: string): \"client\" | \"server\" | null {\n if (credential.startsWith(CLIENT_TOKEN_PREFIX)) return \"client\";\n if (credential.startsWith(SERVER_KEY_PREFIX)) return \"server\";\n return null;\n}\n\nfunction trimBase(url: string): string {\n return url.replace(/\\/+$/, \"\");\n}\n\nexport interface BuildErc7677UrlOptions {\n /** Policy-service base URL. */\n baseUrl: string;\n /** Client token (`ppt_`, browser-safe) or server key (`ppk_`, secret). */\n token: string;\n /** Default 2. v1 serves `/paymaster/<token>`, v2 serves `/v2/paymaster/<token>`. */\n version?: 1 | 2;\n}\n\n/**\n * Build the ERC-7677 paymaster URL for a project credential (paste it into a Privy \"Paymaster URL\" or pass it\n * to a viem paymaster client). Refuses a server key (`ppk_`) in a browser, because the URL embeds it.\n *\n * @example\n * ```ts\n * const url = buildErc7677Url({ baseUrl: \"https://paymaster.example.com\", token: \"ppt_abc\" });\n * // https://paymaster.example.com/v2/paymaster/ppt_abc\n * ```\n */\nexport function buildErc7677Url(options: BuildErc7677UrlOptions): string {\n const token = options.token.trim();\n if (token === \"\") {\n throw new PepuConfigError(\"CONFIG_MISSING_ENV\", \"buildErc7677Url needs a project client token or server key.\");\n }\n if (credentialKind(token) === \"server\" && (globalThis as { window?: unknown }).window !== undefined) {\n throw new PepuConfigError(\n \"CONFIG_SERVER_ONLY\",\n \"Refusing to build an ERC-7677 URL from a server key (ppk_) in a browser: the URL embeds the secret. Use the client token (ppt_).\",\n );\n }\n let base: URL;\n try {\n base = new URL(options.baseUrl);\n } catch {\n throw new PepuConfigError(\"CONFIG_BAD_URL\", \"buildErc7677Url: baseUrl is not a valid URL.\");\n }\n if (base.protocol !== \"http:\" && base.protocol !== \"https:\") {\n throw new PepuConfigError(\"CONFIG_BAD_URL\", \"buildErc7677Url: baseUrl must be an http(s) URL.\");\n }\n const prefix = (options.version ?? 2) === 2 ? \"/v2/paymaster/\" : \"/paymaster/\";\n return `${trimBase(options.baseUrl)}${prefix}${encodeURIComponent(token)}`;\n}\n\n/**\n * The hosted ERC-7677 URL for a project credential: `<hosted base>/v2/paymaster/<token>`.\n * Pass the project's client token (`ppt_`, browser-safe); a server key is refused in a browser.\n *\n * @example\n * const url = hostedErc7677Url(\"ppt_abc\");\n * // https://paymaster.pepeunchained.com/v2/paymaster/ppt_abc\n */\nexport function hostedErc7677Url(token: string): string {\n if (PEPU_HOSTED.paymasterBaseUrl === null) {\n throw new PepuConfigError(\"CONFIG_MISSING_ENV\", \"No hosted paymaster base URL is set.\");\n }\n return buildErc7677Url({ baseUrl: PEPU_HOSTED.paymasterBaseUrl, token });\n}\n\nfunction toQuantity(v: Quantity): Hex {\n return typeof v === \"bigint\" ? toHex(v) : v;\n}\n\nfunction serializeUserOp(op: SponsorUserOp): Record<string, string> {\n const out: Record<string, string> = {\n sender: op.sender,\n nonce: toQuantity(op.nonce),\n callData: op.callData,\n callGasLimit: toQuantity(op.callGasLimit),\n verificationGasLimit: toQuantity(op.verificationGasLimit),\n preVerificationGas: toQuantity(op.preVerificationGas),\n maxFeePerGas: toQuantity(op.maxFeePerGas),\n maxPriorityFeePerGas: toQuantity(op.maxPriorityFeePerGas),\n };\n if (op.factory !== undefined) out[\"factory\"] = op.factory;\n if (op.factoryData !== undefined) out[\"factoryData\"] = op.factoryData;\n return out;\n}\n\n/**\n * Turn a sponsor result into the approval, or throw the mapped {@link PepuPaymasterError}\n * (`project_not_claimed_onchain` becomes `PAYMASTER_PROJECT_NOT_CLAIMED`, and so on).\n *\n * @example\n * ```ts\n * const approval = assertApproved(await api.v2.sponsor(userOp, { apiKey }));\n * ```\n */\nexport function assertApproved(result: SponsorResult): SponsorApproval {\n if (result.status === \"approved\") return result;\n throw paymasterReasonToError(result.reason, result.message, result.detail ? { detail: result.detail } : undefined);\n}\n\n/** Pull `retryAfterSeconds` out of a Retry-After header. */\nfunction retryAfter(res: Response): number | undefined {\n const raw = res.headers.get(\"retry-after\");\n const n = raw === null ? NaN : Number(raw);\n return Number.isFinite(n) ? n : undefined;\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n\nfunction missingBaseUrl(): PepuConfigError {\n return new PepuConfigError(\n \"CONFIG_MISSING_ENV\",\n \"No paymaster URL configured. Set PEPU_PAYMASTER_URL (or NEXT_PUBLIC_PEPU_PAYMASTER_URL), or pass baseUrl to createPaymasterApi.\",\n );\n}\n\n// ---------------------------------------------------------------------------------------------------------------\n// Client\n// ---------------------------------------------------------------------------------------------------------------\n\n/**\n * Create the paymaster REST client.\n *\n * @example\n * ```ts\n * const api = createPaymasterApi({ baseUrl: \"https://paymaster.example.com\" });\n * const free = await api.v2.freeTier();\n * const result = await api.v2.sponsor(userOp, { apiKey: process.env.PEPU_SERVER_KEY!, privyAccessToken });\n * if (result.status === \"denied\") console.log(result.reason);\n * ```\n */\nexport function createPaymasterApi(options: CreatePaymasterApiOptions = {}): PaymasterApi {\n const resolved = options.baseUrl ?? resolvePepuEndpoints(options.env ? { env: options.env } : {}).paymasterBaseUrl;\n if (resolved === null || resolved === undefined || resolved.trim() === \"\") throw missingBaseUrl();\n try {\n const u = new URL(resolved);\n if (u.protocol !== \"http:\" && u.protocol !== \"https:\") throw new Error(\"protocol\");\n } catch {\n throw new PepuConfigError(\"CONFIG_BAD_URL\", \"The paymaster baseUrl is not a valid http(s) URL.\");\n }\n const baseUrl = trimBase(resolved.trim());\n const doFetch = options.fetch ?? ((...args: Parameters<typeof fetch>) => fetch(...args));\n const timeoutMs = options.timeoutMs ?? 15_000;\n let sessionToken: string | null = options.sessionToken ?? null;\n\n /** Fetch with timeout; network failures become BUNDLER_UNREACHABLE without echoing request details. */\n async function send(url: string, init: RequestInit): Promise<Response> {\n try {\n return await doFetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });\n } catch (e) {\n const timedOut = e instanceof Error && (e.name === \"TimeoutError\" || e.name === \"AbortError\");\n throw new PepuPaymasterError(\n \"BUNDLER_UNREACHABLE\",\n timedOut ? \"The paymaster did not answer in time.\" : \"Could not reach the paymaster service.\",\n { details: { path: new URL(url).pathname.replace(/\\/(ppt_|ppk_)[^/]*/, \"/<credential>\") } },\n );\n }\n }\n\n async function readJson(res: Response): Promise<unknown> {\n const text = await res.text().catch(() => \"\");\n if (text === \"\") return undefined;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return undefined;\n }\n }\n\n function apiError(res: Response, body: unknown, quiet: boolean): PepuPaymasterError {\n const rec = isRecord(body) ? body : {};\n const errorCode = typeof rec[\"error\"] === \"string\" ? rec[\"error\"] : undefined;\n const reason = typeof rec[\"reason\"] === \"string\" ? rec[\"reason\"] : undefined;\n const serverMessage = typeof rec[\"message\"] === \"string\" && !quiet ? rec[\"message\"] : undefined;\n const details = { status: res.status, error: errorCode, reason, retryAfterSeconds: retryAfter(res) };\n const tagged = reason ?? errorCode;\n let code: PepuErrorCode;\n if (res.status === 401 && errorCode === \"unauthenticated\") code = \"PAYMASTER_SESSION_REQUIRED\";\n else if (tagged !== undefined && mapPaymasterReason(tagged) !== \"PAYMASTER_DENIED\") code = mapPaymasterReason(tagged);\n else if (res.status === 401 && errorCode !== \"login_failed\") code = \"PAYMASTER_SESSION_REQUIRED\";\n else if (res.status === 401) code = \"PAYMASTER_DENIED\";\n else if (res.status === 429) code = \"PAYMASTER_RATE_LIMITED\";\n else if (res.status === 403) code = \"PAYMASTER_DENIED\";\n else code = \"PAYMASTER_API_ERROR\";\n const label = `Paymaster API ${res.status}${errorCode ? ` ${errorCode}` : \"\"}${reason && reason !== errorCode ? ` (${reason})` : \"\"}`;\n return new PepuPaymasterError(code, serverMessage ? `${label}: ${serverMessage}` : `${label}.`, {\n details,\n ...(res.status === 429 || res.status === 503 ? { retryable: true } : {}),\n });\n }\n\n async function request<T>(method: \"GET\" | \"POST\" | \"PATCH\", path: string, o: V2RequestOptions = {}): Promise<T> {\n const headers: Record<string, string> = { accept: \"application/json\" };\n if (o.body !== undefined) headers[\"content-type\"] = \"application/json\";\n if (o.session) {\n if (!sessionToken) {\n throw new PepuPaymasterError(\"PAYMASTER_SESSION_REQUIRED\", \"This call needs a SIWE session. Call loginWithWallet() first.\");\n }\n headers[\"authorization\"] = `Bearer ${sessionToken}`;\n }\n let url = `${baseUrl}${path}`;\n if (o.query) {\n const qs = new URLSearchParams();\n for (const [k, v] of Object.entries(o.query)) if (v !== undefined) qs.set(k, String(v));\n const s = qs.toString();\n if (s) url += `?${s}`;\n }\n const res = await send(url, { method, headers, ...(o.body !== undefined ? { body: JSON.stringify(o.body) } : {}) });\n const body = await readJson(res);\n if (!res.ok) throw apiError(res, body, o.quietErrors === true);\n return body as T;\n }\n\n async function sponsor(path: string, userOp: SponsorUserOp, auth: SponsorAuth): Promise<SponsorResult> {\n if (!auth.apiKey) {\n throw new PepuConfigError(\"CONFIG_MISSING_ENV\", \"sponsor needs auth.apiKey (the project server key or client token).\");\n }\n const headers: Record<string, string> = {\n accept: \"application/json\",\n \"content-type\": \"application/json\",\n \"x-api-key\": auth.apiKey,\n };\n if (auth.privyAccessToken) headers[\"authorization\"] = `Bearer ${auth.privyAccessToken}`;\n if (auth.origin) headers[\"origin\"] = auth.origin;\n const res = await send(`${baseUrl}${path}`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ userOp: serializeUserOp(userOp) }),\n });\n const body = await readJson(res);\n if (isRecord(body) && (body[\"status\"] === \"approved\" || body[\"status\"] === \"denied\")) {\n return body as unknown as SponsorResult;\n }\n throw apiError(res, body, false);\n }\n\n const projectPath = (id: Hex, sub = \"\"): string => {\n if (!/^0x[0-9a-fA-F]{64}$/.test(id)) {\n throw new PepuPaymasterError(\"PAYMASTER_DENIED\", \"projectId must be a 0x-prefixed 32-byte hex string.\");\n }\n return `/v2/projects/${id}${sub}`;\n };\n\n const v1: PaymasterApiV1 = {\n sponsor: async (userOp, auth) => {\n if (!auth.privyAccessToken) {\n throw new PepuPaymasterError(\n \"PAYMASTER_IDENTITY_REQUIRED\",\n \"The v1 /sponsor endpoint requires the user's Privy access token (auth.privyAccessToken).\",\n );\n }\n return sponsor(\"/sponsor\", userOp, auth);\n },\n health: async () => {\n const res = await send(`${baseUrl}/health`, { method: \"GET\" });\n const body = await readJson(res);\n if (!res.ok) throw apiError(res, body, false);\n return (isRecord(body) ? body : { status: \"ok\" }) as { status: string };\n },\n erc7677Url: (token) => buildErc7677Url({ baseUrl, token, version: 1 }),\n };\n\n const v2: PaymasterApiV2 = {\n sponsor: (userOp, auth) => sponsor(\"/v2/sponsor\", userOp, auth),\n erc7677Url: (token) => buildErc7677Url({ baseUrl, token, version: 2 }),\n config: () => request(\"GET\", \"/v2/config\"),\n contract: () => request(\"GET\", \"/v2/contract\"),\n freeTier: () => request(\"GET\", \"/v2/free-tier\"),\n auth: {\n nonce: () => request(\"GET\", \"/v2/auth/nonce\"),\n login: async (message, signature) => {\n const r = await request<V2LoginResult>(\"POST\", \"/v2/auth/login\", { body: { message, signature } });\n sessionToken = r.token;\n return r;\n },\n logout: async () => {\n await request(\"POST\", \"/v2/auth/logout\", { session: true });\n sessionToken = null;\n },\n },\n me: () => request(\"GET\", \"/v2/me\", { session: true }),\n loginWithWallet: async (sign, o) => {\n if (!isAddress(o.address, { strict: false })) {\n throw new PepuPaymasterError(\"PAYMASTER_DENIED\", \"loginWithWallet: address is not a valid address.\");\n }\n const { nonce } = await v2.auth.nonce();\n const now = (o.now ?? Date.now)();\n const message = createSiweMessage({\n address: o.address,\n chainId: o.chainId ?? pepuMainnet.id,\n domain: o.domain,\n nonce,\n uri: o.uri ?? `https://${o.domain}`,\n version: \"1\",\n statement: o.statement ?? \"Sign in to manage your PEPU gas sponsorship project. This does not move any funds.\",\n issuedAt: new Date(now),\n expirationTime: new Date(now + (o.lifetimeSeconds ?? 300) * 1000),\n });\n const signature = await sign(message);\n return v2.auth.login(message, signature);\n },\n getSessionToken: () => sessionToken,\n setSessionToken: (t) => {\n sessionToken = t;\n },\n projects: {\n prepare: (body) => request(\"POST\", \"/v2/projects/prepare\", { session: true, body }),\n register: (body) => request(\"POST\", \"/v2/projects\", { session: true, body }),\n list: () => request(\"GET\", \"/v2/projects\", { session: true }),\n get: async (id) => request(\"GET\", projectPath(id), { session: true }),\n rotateClientToken: async (id) => request(\"POST\", projectPath(id, \"/token/rotate\"), { session: true }),\n rotateServerKey: async (id) => request(\"POST\", projectPath(id, \"/server-key/rotate\"), { session: true }),\n updateSettings: async (id, body) => request(\"PATCH\", projectPath(id, \"/settings\"), { session: true, body }),\n usage: async (id, q = {}) => request(\"GET\", projectPath(id, \"/usage\"), { session: true, query: { ...q } }),\n events: async (id, q = {}) => request(\"GET\", projectPath(id, \"/events\"), { session: true, query: { ...q } }),\n allowlist: async (id) => request(\"GET\", projectPath(id, \"/allowlist\"), { session: true }),\n },\n request,\n };\n\n return { baseUrl, v1, v2 };\n}\n\n/** Serialize a typed attestation into the wire format for `projects.prepare`. */\nexport function serializeAttestation(a: ProjectClaimAttestation): SerializedAttestation {\n return {\n appId: a.appId,\n newOwner: a.newOwner,\n nonce: a.nonce.toString(),\n deadline: a.deadline.toString(),\n signature: a.signature,\n };\n}\n"]}
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var chunkYQL7NISX_cjs = require('./chunk-YQL7NISX.cjs');
4
+ var viem = require('viem');
5
+
6
+ function findFunction(call) {
7
+ const fn = call.abi.find((item) => item.type === "function" && item.name === call.functionName);
8
+ if (!fn) {
9
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", `The ABI has no function named "${call.functionName}".`);
10
+ }
11
+ return fn;
12
+ }
13
+ function assertCalls(calls) {
14
+ if (calls.length === 0) {
15
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", "A session needs at least one allowed call.");
16
+ }
17
+ for (const c of calls) {
18
+ if (!/^0x[0-9a-fA-F]{40}$/.test(c.target)) {
19
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", "Every session call needs a valid 0x target address.");
20
+ }
21
+ findFunction(c);
22
+ }
23
+ }
24
+ function describeKernelSessionScope(p) {
25
+ assertCalls(p.calls);
26
+ return {
27
+ calls: p.calls.map((c) => {
28
+ const fn = findFunction(c);
29
+ return {
30
+ target: c.target,
31
+ functionName: c.functionName,
32
+ signature: viem.toFunctionSignature(fn).replace(/^function /, ""),
33
+ selector: viem.toFunctionSelector(fn),
34
+ maxValueWei: (c.valueLimit ?? 0n).toString()
35
+ };
36
+ }),
37
+ validAfter: p.validAfter ?? 0,
38
+ validUntil: p.validUntil
39
+ };
40
+ }
41
+ function isCallInScope(scope, call) {
42
+ const selector = call.data.slice(0, 10).toLowerCase();
43
+ return scope.calls.some(
44
+ (c) => c.target.toLowerCase() === call.to.toLowerCase() && c.selector.toLowerCase() === selector && (call.value ?? 0n) <= BigInt(c.maxValueWei)
45
+ );
46
+ }
47
+ function decodeBase64Json(text) {
48
+ const binary = atob(text);
49
+ const bytes = Uint8Array.from(binary, (ch) => ch.charCodeAt(0));
50
+ return JSON.parse(new TextDecoder().decode(bytes));
51
+ }
52
+ function parseApproval(approval) {
53
+ try {
54
+ const json = decodeBase64Json(approval);
55
+ if (typeof json !== "object" || json === null) return null;
56
+ const record = json;
57
+ const permissionParams = record.permissionParams;
58
+ const accountParams = record.accountParams;
59
+ return {
60
+ permissionId: typeof permissionParams?.permissionId === "string" ? permissionParams.permissionId : null,
61
+ accountAddress: typeof accountParams?.accountAddress === "string" ? accountParams.accountAddress : null,
62
+ isPreInstalled: typeof record.isPreInstalled === "boolean" ? record.isPreInstalled : null,
63
+ hasPrivateKey: typeof record.privateKey === "string" && record.privateKey.length > 0
64
+ };
65
+ } catch {
66
+ return null;
67
+ }
68
+ }
69
+ function checkApproval(approval, expected) {
70
+ if (approval.length === 0 || approval.length > 2e4) {
71
+ return { ok: false, reason: "Approval has an unexpected size." };
72
+ }
73
+ const parsed = parseApproval(approval);
74
+ if (!parsed) return { ok: false, reason: "Approval is not a valid session approval." };
75
+ if (parsed.hasPrivateKey) return { ok: false, reason: "Approval must not contain a private key." };
76
+ if (parsed.isPreInstalled !== false) return { ok: false, reason: "Approval must be an enable-mode grant." };
77
+ if (parsed.accountAddress?.toLowerCase() !== expected.kernelAddress.toLowerCase()) {
78
+ return { ok: false, reason: "Approval is for a different smart account than yours." };
79
+ }
80
+ if (parsed.permissionId?.toLowerCase() !== expected.permissionId.toLowerCase()) {
81
+ return { ok: false, reason: "Approval does not match the scope, session key or expiry this server issued." };
82
+ }
83
+ return { ok: true };
84
+ }
85
+
86
+ exports.assertCalls = assertCalls;
87
+ exports.checkApproval = checkApproval;
88
+ exports.describeKernelSessionScope = describeKernelSessionScope;
89
+ exports.findFunction = findFunction;
90
+ exports.isCallInScope = isCallInScope;
91
+ exports.parseApproval = parseApproval;
92
+ //# sourceMappingURL=chunk-J3O2ZGG3.cjs.map
93
+ //# sourceMappingURL=chunk-J3O2ZGG3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/session/scope.ts"],"names":["PepuPolicyError","toFunctionSignature","toFunctionSelector"],"mappings":"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","file":"chunk-J3O2ZGG3.cjs","sourcesContent":["import { toFunctionSelector, toFunctionSignature } from \"viem\";\nimport type { Abi, AbiFunction, Address, Hex } from \"viem\";\n\nimport { PepuPolicyError } from \"../errors.js\";\n\n/**\n * Pure Kernel session helpers (scope types, consent-screen data, call-in-scope\n * check, approval parsing). They need only `viem`, so they load without any\n * `@zerodev/*` peer. Also re-exported from `@pepu-chain/sdk/session/kernel`.\n */\n\n/** One function a session may call on one contract. */\nexport interface KernelSessionCall {\n target: Address;\n abi: Abi;\n functionName: string;\n /** Max native value per call, in wei. Default `0n`. */\n valueLimit?: bigint;\n}\n\n/** What a Kernel session allows, as plain data for a consent screen. */\nexport interface KernelSessionScope {\n calls: {\n target: Address;\n functionName: string;\n /** e.g. `tap()`. */\n signature: string;\n selector: Hex;\n /** Max value per call in wei, as a decimal string. */\n maxValueWei: string;\n }[];\n validAfter: number;\n validUntil: number;\n}\n\nexport function findFunction(call: KernelSessionCall): AbiFunction {\n const fn = call.abi.find((item): item is AbiFunction => item.type === \"function\" && item.name === call.functionName);\n if (!fn) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", `The ABI has no function named \"${call.functionName}\".`);\n }\n return fn;\n}\n\nexport function assertCalls(calls: readonly KernelSessionCall[]): void {\n if (calls.length === 0) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", \"A session needs at least one allowed call.\");\n }\n for (const c of calls) {\n if (!/^0x[0-9a-fA-F]{40}$/.test(c.target)) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", \"Every session call needs a valid 0x target address.\");\n }\n findFunction(c);\n }\n}\n\n/**\n * Consent-screen data: each allowed call with its selector, the value limit\n * and the expiry. Pure.\n *\n * @example\n * const scope = describeKernelSessionScope({ calls, validUntil });\n * scope.calls[0]?.signature; // \"tap()\"\n */\nexport function describeKernelSessionScope(p: {\n calls: readonly KernelSessionCall[];\n validUntil: number;\n validAfter?: number;\n}): KernelSessionScope {\n assertCalls(p.calls);\n return {\n calls: p.calls.map((c) => {\n const fn = findFunction(c);\n return {\n target: c.target,\n functionName: c.functionName,\n signature: toFunctionSignature(fn).replace(/^function /, \"\"),\n selector: toFunctionSelector(fn),\n maxValueWei: (c.valueLimit ?? 0n).toString(),\n };\n }),\n validAfter: p.validAfter ?? 0,\n validUntil: p.validUntil,\n };\n}\n\n/**\n * True when `call` (target plus 4-byte selector, value) is inside `scope`.\n * Used server-side to fail fast before sponsoring; the chain still enforces\n * the real limit. Pure.\n *\n * @example\n * isCallInScope(scope, { to, data, value: 0n });\n */\nexport function isCallInScope(\n scope: Pick<KernelSessionScope, \"calls\">,\n call: { to: Address; data: Hex; value?: bigint },\n): boolean {\n const selector = call.data.slice(0, 10).toLowerCase();\n return scope.calls.some(\n (c) =>\n c.target.toLowerCase() === call.to.toLowerCase() &&\n c.selector.toLowerCase() === selector &&\n (call.value ?? 0n) <= BigInt(c.maxValueWei),\n );\n}\n\n/** Parsed fields of an `approval` string. */\nexport interface ParsedApproval {\n permissionId: string | null;\n accountAddress: string | null;\n isPreInstalled: boolean | null;\n hasPrivateKey: boolean;\n}\n\nfunction decodeBase64Json(text: string): unknown {\n const binary = atob(text);\n const bytes = Uint8Array.from(binary, (ch) => ch.charCodeAt(0));\n return JSON.parse(new TextDecoder().decode(bytes));\n}\n\n/**\n * Parse a serialized approval (base64 JSON from `serializePermissionAccount`)\n * without trusting it. Returns `null` when it is not an approval at all.\n *\n * @example\n * parseApproval(approval)?.permissionId;\n */\nexport function parseApproval(approval: string): ParsedApproval | null {\n try {\n const json = decodeBase64Json(approval);\n if (typeof json !== \"object\" || json === null) return null;\n const record = json as Record<string, unknown>;\n const permissionParams = record.permissionParams as { permissionId?: unknown } | undefined;\n const accountParams = record.accountParams as { accountAddress?: unknown } | undefined;\n return {\n permissionId: typeof permissionParams?.permissionId === \"string\" ? permissionParams.permissionId : null,\n accountAddress: typeof accountParams?.accountAddress === \"string\" ? accountParams.accountAddress : null,\n isPreInstalled: typeof record.isPreInstalled === \"boolean\" ? record.isPreInstalled : null,\n hasPrivateKey: typeof record.privateKey === \"string\" && record.privateKey.length > 0,\n };\n } catch {\n return null;\n }\n}\n\n/** Result of {@link checkApproval}. */\nexport type ApprovalCheck = { ok: true } | { ok: false; reason: string };\n\n/**\n * Check a browser-supplied approval before the server stores it. It rejects a\n * payload that carries a private key, is not an enable-mode grant, is for\n * another account, or whose permission id differs from the one this server\n * issued (so scope, session key or expiry changed). The approval is untrusted\n * input; the chain enforces the real limits regardless.\n *\n * @example\n * const check = checkApproval(approval, { kernelAddress, permissionId });\n * if (!check.ok) console.log(check.reason);\n */\nexport function checkApproval(\n approval: string,\n expected: { kernelAddress: Address; permissionId: string },\n): ApprovalCheck {\n if (approval.length === 0 || approval.length > 20_000) {\n return { ok: false, reason: \"Approval has an unexpected size.\" };\n }\n const parsed = parseApproval(approval);\n if (!parsed) return { ok: false, reason: \"Approval is not a valid session approval.\" };\n if (parsed.hasPrivateKey) return { ok: false, reason: \"Approval must not contain a private key.\" };\n if (parsed.isPreInstalled !== false) return { ok: false, reason: \"Approval must be an enable-mode grant.\" };\n if (parsed.accountAddress?.toLowerCase() !== expected.kernelAddress.toLowerCase()) {\n return { ok: false, reason: \"Approval is for a different smart account than yours.\" };\n }\n if (parsed.permissionId?.toLowerCase() !== expected.permissionId.toLowerCase()) {\n return { ok: false, reason: \"Approval does not match the scope, session key or expiry this server issued.\" };\n }\n return { ok: true };\n}\n\n"]}
@@ -0,0 +1,37 @@
1
+ import { pepuMainnet } from './chunk-VTQIHMF3.js';
2
+
3
+ // src/explorer.ts
4
+ function explorerUrl(chain, type, value) {
5
+ const explorer = chain.blockExplorers?.default;
6
+ if (!explorer) {
7
+ throw new Error(
8
+ `explorerUrl: no block explorer is configured for chain "${chain.name}" (id ${chain.id}).`
9
+ );
10
+ }
11
+ return `${explorer.url}/${type}/${value}`;
12
+ }
13
+ function txUrl(chain, hash) {
14
+ return explorerUrl(chain, "tx", hash);
15
+ }
16
+ function addressUrl(chain, address) {
17
+ return explorerUrl(chain, "address", address);
18
+ }
19
+ function tokenUrl(chain, address) {
20
+ return explorerUrl(chain, "token", address);
21
+ }
22
+ function blockUrl(chain, blockNumberOrHash) {
23
+ return explorerUrl(chain, "block", blockNumberOrHash);
24
+ }
25
+ function explorerLinks(o, chain = pepuMainnet) {
26
+ const out = {};
27
+ if (o.tx !== void 0) out.tx = txUrl(chain, o.tx);
28
+ if (o.address !== void 0) out.address = addressUrl(chain, o.address);
29
+ if (o.sender !== void 0) out.sender = addressUrl(chain, o.sender);
30
+ if (o.token !== void 0) out.token = tokenUrl(chain, o.token);
31
+ if (o.block !== void 0) out.block = blockUrl(chain, String(o.block));
32
+ return out;
33
+ }
34
+
35
+ export { addressUrl, blockUrl, explorerLinks, explorerUrl, tokenUrl, txUrl };
36
+ //# sourceMappingURL=chunk-J6UXXHBE.js.map
37
+ //# sourceMappingURL=chunk-J6UXXHBE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/explorer.ts"],"names":[],"mappings":";;;AAaO,SAAS,WAAA,CACd,KAAA,EACA,IAAA,EACA,KAAA,EACQ;AACR,EAAA,MAAM,QAAA,GAAW,MAAM,cAAA,EAAgB,OAAA;AACvC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,wDAAA,EAA2D,KAAA,CAAM,IAAI,CAAA,MAAA,EAAS,MAAM,EAAE,CAAA,EAAA;AAAA,KACxF;AAAA,EACF;AACA,EAAA,OAAO,GAAG,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,IAAI,IAAI,KAAK,CAAA,CAAA;AACzC;AAGO,SAAS,KAAA,CAAM,OAAkB,IAAA,EAAsB;AAC5D,EAAA,OAAO,WAAA,CAAY,KAAA,EAAO,IAAA,EAAM,IAAI,CAAA;AACtC;AAGO,SAAS,UAAA,CAAW,OAAkB,OAAA,EAAyB;AACpE,EAAA,OAAO,WAAA,CAAY,KAAA,EAAO,SAAA,EAAW,OAAO,CAAA;AAC9C;AAGO,SAAS,QAAA,CAAS,OAAkB,OAAA,EAAyB;AAClE,EAAA,OAAO,WAAA,CAAY,KAAA,EAAO,OAAA,EAAS,OAAO,CAAA;AAC5C;AAGO,SAAS,QAAA,CAAS,OAAkB,iBAAA,EAA4C;AACrF,EAAA,OAAO,WAAA,CAAY,KAAA,EAAO,OAAA,EAAS,iBAAiB,CAAA;AACtD;AAaO,SAAS,aAAA,CACd,CAAA,EAOA,KAAA,GAAmB,WAAA,EACiE;AACpF,EAAA,MAAM,MAA0F,EAAC;AACjG,EAAA,IAAI,CAAA,CAAE,OAAO,MAAA,EAAW,GAAA,CAAI,KAAK,KAAA,CAAM,KAAA,EAAO,EAAE,EAAE,CAAA;AAClD,EAAA,IAAI,CAAA,CAAE,YAAY,MAAA,EAAW,GAAA,CAAI,UAAU,UAAA,CAAW,KAAA,EAAO,EAAE,OAAO,CAAA;AACtE,EAAA,IAAI,CAAA,CAAE,WAAW,MAAA,EAAW,GAAA,CAAI,SAAS,UAAA,CAAW,KAAA,EAAO,EAAE,MAAM,CAAA;AACnE,EAAA,IAAI,CAAA,CAAE,UAAU,MAAA,EAAW,GAAA,CAAI,QAAQ,QAAA,CAAS,KAAA,EAAO,EAAE,KAAK,CAAA;AAC9D,EAAA,IAAI,CAAA,CAAE,KAAA,KAAU,MAAA,EAAW,GAAA,CAAI,KAAA,GAAQ,SAAS,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,OAAO,GAAA;AACT","file":"chunk-J6UXXHBE.js","sourcesContent":["import { type PepuChain, pepuMainnet } from \"./chains.js\";\n\n/** Resource types supported by Blockscout's URL scheme. */\nexport type ExplorerResourceType = \"tx\" | \"address\" | \"token\" | \"block\";\n\n/**\n * Build a Blockscout explorer URL for a transaction hash, address, token\n * address, or block (by number or hash) on a Pepe Unchained V2 chain.\n *\n * Throws if the given chain has no `blockExplorers.default` configured\n * (this is currently the case for {@link pepuTestnet} — see `chains.ts`\n * for why).\n */\nexport function explorerUrl(\n chain: PepuChain,\n type: ExplorerResourceType,\n value: string | number,\n): string {\n const explorer = chain.blockExplorers?.default;\n if (!explorer) {\n throw new Error(\n `explorerUrl: no block explorer is configured for chain \"${chain.name}\" (id ${chain.id}).`,\n );\n }\n return `${explorer.url}/${type}/${value}`;\n}\n\n/** Build a transaction-page URL. Shorthand for `explorerUrl(chain, \"tx\", hash)`. */\nexport function txUrl(chain: PepuChain, hash: string): string {\n return explorerUrl(chain, \"tx\", hash);\n}\n\n/** Build an address-page URL. Shorthand for `explorerUrl(chain, \"address\", address)`. */\nexport function addressUrl(chain: PepuChain, address: string): string {\n return explorerUrl(chain, \"address\", address);\n}\n\n/** Build a token-page URL. Shorthand for `explorerUrl(chain, \"token\", address)`. */\nexport function tokenUrl(chain: PepuChain, address: string): string {\n return explorerUrl(chain, \"token\", address);\n}\n\n/** Build a block-page URL, by block number or block hash. Shorthand for `explorerUrl(chain, \"block\", value)`. */\nexport function blockUrl(chain: PepuChain, blockNumberOrHash: string | number): string {\n return explorerUrl(chain, \"block\", blockNumberOrHash);\n}\n\n/**\n * Convenience bundle of explorer links. pepuscan (Blockscout) has no UserOp\n * pages, so a UserOperation is linked through its bundle `tx` and its\n * `sender` (the smart account address).\n *\n * @example\n * ```ts\n * explorerLinks({ tx: \"0xabc\", sender: \"0xdef\" });\n * // { tx: \"https://pepuscan.com/tx/0xabc\", sender: \"https://pepuscan.com/address/0xdef\" }\n * ```\n */\nexport function explorerLinks(\n o: {\n tx?: string;\n address?: string;\n sender?: string;\n token?: string;\n block?: bigint | number | string;\n },\n chain: PepuChain = pepuMainnet,\n): { tx?: string; address?: string; sender?: string; token?: string; block?: string } {\n const out: { tx?: string; address?: string; sender?: string; token?: string; block?: string } = {};\n if (o.tx !== undefined) out.tx = txUrl(chain, o.tx);\n if (o.address !== undefined) out.address = addressUrl(chain, o.address);\n if (o.sender !== undefined) out.sender = addressUrl(chain, o.sender);\n if (o.token !== undefined) out.token = tokenUrl(chain, o.token);\n if (o.block !== undefined) out.block = blockUrl(chain, String(o.block));\n return out;\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { pepuMainnet } from './chunk-VTQIHMF3.js';
2
+
3
+ // src/privy/config.ts
4
+ function createPepuPrivyConfig(options = {}) {
5
+ const chain = options.chain ?? pepuMainnet;
6
+ return {
7
+ ...options.loginMethods ? { loginMethods: options.loginMethods } : {},
8
+ ...options.appearance ? { appearance: options.appearance } : {},
9
+ defaultChain: chain,
10
+ supportedChains: [chain],
11
+ embeddedWallets: {
12
+ ethereum: { createOnLogin: options.createOnLogin ?? "off" }
13
+ },
14
+ externalWallets: {
15
+ coinbaseWallet: { config: { preference: { options: "eoaOnly" } } }
16
+ }
17
+ };
18
+ }
19
+
20
+ export { createPepuPrivyConfig };
21
+ //# sourceMappingURL=chunk-JLZ4LZ4Z.js.map
22
+ //# sourceMappingURL=chunk-JLZ4LZ4Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/privy/config.ts"],"names":[],"mappings":";;;AAwDO,SAAS,qBAAA,CACd,OAAA,GAAwC,EAAC,EAClB;AACvB,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,WAAA;AAC/B,EAAA,OAAO;AAAA,IACL,GAAI,QAAQ,YAAA,GAAe,EAAE,cAAc,OAAA,CAAQ,YAAA,KAAiB,EAAC;AAAA,IACrE,GAAI,QAAQ,UAAA,GAAa,EAAE,YAAY,OAAA,CAAQ,UAAA,KAAe,EAAC;AAAA,IAC/D,YAAA,EAAc,KAAA;AAAA,IACd,eAAA,EAAiB,CAAC,KAAK,CAAA;AAAA,IACvB,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU,EAAE,aAAA,EAAe,OAAA,CAAQ,iBAAiB,KAAA;AAAM,KAC5D;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,cAAA,EAAgB,EAAE,MAAA,EAAQ,EAAE,YAAY,EAAE,OAAA,EAAS,SAAA,EAAU,EAAE;AAAE;AACnE,GACF;AACF","file":"chunk-JLZ4LZ4Z.js","sourcesContent":["import { pepuMainnet } from \"../chains.js\";\nimport type { PepuChain } from \"../chains.js\";\n\n/**\n * Typed Privy client config for PEPU (`@pepu-chain/sdk/privy`). Client-safe:\n * no secrets, no Node APIs, and no dependency on any Privy package (the result\n * is structurally assignable to `PrivyClientConfig` from\n * `@privy-io/react-auth`).\n *\n * What it encodes, each a real, reproduced PEPU requirement:\n *\n * - `defaultChain` / `supportedChains` are PEPU mainnet only.\n * - `embeddedWallets.ethereum.createOnLogin` defaults to `\"off\"`: the\n * recommended pattern is to provision the wallet server-side (see the\n * wallet-provisioning recipe). NOTE the Privy Dashboard's setting wins over\n * this value at runtime; it is kept for intent and documentation.\n * - Coinbase Wallet is pinned to `eoaOnly`: Coinbase Smart Wallet does not\n * support chain 97741, and the default floods the console with \"The\n * configured chains are not supported by Coinbase Smart Wallet\".\n */\n\nexport type PrivyLoginMethod =\n | \"email\"\n | \"google\"\n | \"wallet\"\n | \"sms\"\n | \"apple\"\n | \"twitter\"\n | \"discord\"\n | \"github\";\n\nexport type EmbeddedWalletCreateOnLogin = \"off\" | \"users-without-wallets\" | \"all-users\";\n\nexport interface PepuPrivyClientConfig {\n loginMethods?: PrivyLoginMethod[];\n appearance?: { theme?: \"light\" | \"dark\" | `#${string}`; accentColor?: `#${string}`; logo?: string };\n defaultChain: PepuChain;\n supportedChains: PepuChain[];\n embeddedWallets: {\n ethereum: { createOnLogin: EmbeddedWalletCreateOnLogin };\n };\n externalWallets: {\n coinbaseWallet: { config: { preference: { options: \"eoaOnly\" } } };\n };\n}\n\nexport interface CreatePepuPrivyConfigOptions {\n loginMethods?: PrivyLoginMethod[];\n appearance?: PepuPrivyClientConfig[\"appearance\"];\n /** Default `\"off\"`. The Privy Dashboard setting overrides this at runtime. */\n createOnLogin?: EmbeddedWalletCreateOnLogin;\n /** Default {@link pepuMainnet}. Only pass a different PEPU chain deliberately. */\n chain?: PepuChain;\n}\n\n/** Build the `config` prop for Privy's `<PrivyProvider>` on PEPU. */\nexport function createPepuPrivyConfig(\n options: CreatePepuPrivyConfigOptions = {},\n): PepuPrivyClientConfig {\n const chain = options.chain ?? pepuMainnet;\n return {\n ...(options.loginMethods ? { loginMethods: options.loginMethods } : {}),\n ...(options.appearance ? { appearance: options.appearance } : {}),\n defaultChain: chain,\n supportedChains: [chain],\n embeddedWallets: {\n ethereum: { createOnLogin: options.createOnLogin ?? \"off\" },\n },\n externalWallets: {\n coinbaseWallet: { config: { preference: { options: \"eoaOnly\" } } },\n },\n };\n}\n\nexport * from \"./requirements.js\";\n"]}