@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":["PepuPaymasterError","decodeErrorResult","PepuConfigError","PEPU_HOSTED","toHex","resolvePepuEndpoints","isAddress","createSiweMessage","pepuMainnet"],"mappings":"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","file":"chunk-A5LP2UCS.cjs","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,121 @@
1
+ 'use strict';
2
+
3
+ var chunkYQL7NISX_cjs = require('./chunk-YQL7NISX.cjs');
4
+ var viem = require('viem');
5
+ var accountAbstraction = require('viem/account-abstraction');
6
+
7
+ function normalizeCalls(calls) {
8
+ if (calls.length === 0) {
9
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", "A sponsored send needs at least one call.", {
10
+ hint: "Pass calls: [{ to, data }] or [{ to, abi, functionName, args }]."
11
+ });
12
+ }
13
+ return calls.map((c, i) => {
14
+ if (c.data !== void 0 && c.functionName !== void 0) {
15
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", `Call ${i} sets both data and functionName.`, {
16
+ hint: "Use either raw data or abi plus functionName, not both."
17
+ });
18
+ }
19
+ let data = c.data ?? "0x";
20
+ if (c.functionName !== void 0) {
21
+ if (!c.abi) {
22
+ throw new chunkYQL7NISX_cjs.PepuPolicyError("POLICY_UNSCOPED", `Call ${i} has functionName but no abi.`, {
23
+ hint: "Pass the contract abi alongside functionName."
24
+ });
25
+ }
26
+ data = viem.encodeFunctionData({
27
+ abi: c.abi,
28
+ functionName: c.functionName,
29
+ ...c.args ? { args: c.args } : {}
30
+ });
31
+ }
32
+ return { to: c.to, value: c.value ?? 0n, data };
33
+ });
34
+ }
35
+ function userOpEventFromReceipt(receipt, sender) {
36
+ const events = viem.parseEventLogs({
37
+ abi: accountAbstraction.entryPoint07Abi,
38
+ eventName: "UserOperationEvent",
39
+ logs: receipt.logs,
40
+ strict: false
41
+ });
42
+ const ev = events.find((e) => e.args.sender?.toLowerCase() === sender.toLowerCase());
43
+ if (!ev || ev.args.userOpHash === void 0) return null;
44
+ const pm = ev.args.paymaster;
45
+ const zero = "0x0000000000000000000000000000000000000000";
46
+ return {
47
+ userOpHash: ev.args.userOpHash,
48
+ paymaster: pm && pm.toLowerCase() !== zero ? pm : null,
49
+ actualGasCost: ev.args.actualGasCost ?? 0n,
50
+ success: ev.args.success ?? false
51
+ };
52
+ }
53
+ function userOpEventsFromReceipt(receipt) {
54
+ const zero = "0x0000000000000000000000000000000000000000";
55
+ const out = [];
56
+ for (const ev of viem.parseEventLogs({
57
+ abi: accountAbstraction.entryPoint07Abi,
58
+ eventName: "UserOperationEvent",
59
+ logs: receipt.logs,
60
+ strict: false
61
+ })) {
62
+ const a = ev.args;
63
+ if (a.sender === void 0 || a.userOpHash === void 0) continue;
64
+ out.push({
65
+ sender: a.sender,
66
+ userOpHash: a.userOpHash,
67
+ nonce: a.nonce ?? 0n,
68
+ paymaster: a.paymaster && a.paymaster.toLowerCase() !== zero ? a.paymaster : null,
69
+ actualGasCost: a.actualGasCost ?? 0n,
70
+ actualGasUsed: a.actualGasUsed ?? 0n,
71
+ success: a.success ?? false
72
+ });
73
+ }
74
+ return out;
75
+ }
76
+ var KERNEL_EXECUTE_ABI = [
77
+ {
78
+ type: "function",
79
+ name: "execute",
80
+ stateMutability: "payable",
81
+ inputs: [
82
+ { name: "execMode", type: "bytes32" },
83
+ { name: "executionCalldata", type: "bytes" }
84
+ ],
85
+ outputs: []
86
+ }
87
+ ];
88
+ var EXEC_MODE_SINGLE = viem.pad("0x00", { size: 32, dir: "right" });
89
+ var EXEC_MODE_BATCH = viem.pad("0x01", { size: 32, dir: "right" });
90
+ function encodeKernelExecute(calls) {
91
+ const encoded = normalizeCalls(calls);
92
+ if (encoded.length === 1 && encoded[0]) {
93
+ const c = encoded[0];
94
+ return viem.encodeFunctionData({
95
+ abi: KERNEL_EXECUTE_ABI,
96
+ functionName: "execute",
97
+ args: [EXEC_MODE_SINGLE, viem.encodePacked(["address", "uint256", "bytes"], [c.to, c.value, c.data])]
98
+ });
99
+ }
100
+ const batch = viem.encodeAbiParameters(
101
+ [
102
+ {
103
+ type: "tuple[]",
104
+ components: [
105
+ { name: "target", type: "address" },
106
+ { name: "value", type: "uint256" },
107
+ { name: "callData", type: "bytes" }
108
+ ]
109
+ }
110
+ ],
111
+ [encoded.map((c) => ({ target: c.to, value: c.value, callData: c.data }))]
112
+ );
113
+ return viem.encodeFunctionData({ abi: KERNEL_EXECUTE_ABI, functionName: "execute", args: [EXEC_MODE_BATCH, batch] });
114
+ }
115
+
116
+ exports.encodeKernelExecute = encodeKernelExecute;
117
+ exports.normalizeCalls = normalizeCalls;
118
+ exports.userOpEventFromReceipt = userOpEventFromReceipt;
119
+ exports.userOpEventsFromReceipt = userOpEventsFromReceipt;
120
+ //# sourceMappingURL=chunk-AJS4UFQX.cjs.map
121
+ //# sourceMappingURL=chunk-AJS4UFQX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/aa/calls.ts"],"names":["PepuPolicyError","encodeFunctionData","parseEventLogs","entryPoint07Abi","pad","encodePacked","encodeAbiParameters"],"mappings":"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","file":"chunk-AJS4UFQX.cjs","sourcesContent":["import { encodeAbiParameters, encodeFunctionData, encodePacked, pad, parseEventLogs } from \"viem\";\nimport type { Abi } from \"viem\";\nimport type { Address, Hex, TransactionReceipt } from \"viem\";\nimport { entryPoint07Abi } from \"viem/account-abstraction\";\n\nimport { PepuPolicyError } from \"../errors.js\";\nimport type { Call } from \"./types.js\";\n\n/** A call in the exact `{ to, value, data }` shape smart-account clients take. */\nexport interface EncodedCall {\n to: Address;\n value: bigint;\n data: Hex;\n}\n\n/**\n * Normalize {@link Call}s: encode `abi`/`functionName`/`args` into `data`,\n * default `value` to 0 and `data` to `0x`. Throws a PepuError for an empty\n * list or an ambiguous call.\n *\n * @example\n * normalizeCalls([{ to, abi: tapScoreAbi, functionName: \"tap\" }]);\n */\nexport function normalizeCalls(calls: readonly Call[]): EncodedCall[] {\n if (calls.length === 0) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", \"A sponsored send needs at least one call.\", {\n hint: \"Pass calls: [{ to, data }] or [{ to, abi, functionName, args }].\",\n });\n }\n return calls.map((c, i) => {\n if (c.data !== undefined && c.functionName !== undefined) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", `Call ${i} sets both data and functionName.`, {\n hint: \"Use either raw data or abi plus functionName, not both.\",\n });\n }\n let data: Hex = c.data ?? \"0x\";\n if (c.functionName !== undefined) {\n if (!c.abi) {\n throw new PepuPolicyError(\"POLICY_UNSCOPED\", `Call ${i} has functionName but no abi.`, {\n hint: \"Pass the contract abi alongside functionName.\",\n });\n }\n data = encodeFunctionData({\n abi: c.abi,\n functionName: c.functionName,\n ...(c.args ? { args: c.args } : {}),\n } as Parameters<typeof encodeFunctionData>[0]);\n }\n return { to: c.to, value: c.value ?? 0n, data };\n });\n}\n\n/**\n * Read who paid and how much from a bundle transaction receipt's\n * `UserOperationEvent` (EntryPoint v0.7). Returns `null` when the receipt has\n * no event for `sender`.\n *\n * @example\n * const paid = userOpEventFromReceipt(receipt, smartAccountAddress);\n */\nexport function userOpEventFromReceipt(\n receipt: Pick<TransactionReceipt, \"logs\">,\n sender: Address,\n): { userOpHash: Hex; paymaster: Address | null; actualGasCost: bigint; success: boolean } | null {\n const events = parseEventLogs({\n abi: entryPoint07Abi,\n eventName: \"UserOperationEvent\",\n logs: receipt.logs,\n strict: false,\n });\n const ev = events.find((e) => e.args.sender?.toLowerCase() === sender.toLowerCase());\n if (!ev || ev.args.userOpHash === undefined) return null;\n const pm = ev.args.paymaster;\n const zero = \"0x0000000000000000000000000000000000000000\";\n return {\n userOpHash: ev.args.userOpHash,\n paymaster: pm && pm.toLowerCase() !== zero ? pm : null,\n actualGasCost: ev.args.actualGasCost ?? 0n,\n success: ev.args.success ?? false,\n };\n}\n\n/** One UserOperationEvent from a bundle receipt. */\nexport interface UserOpEvent {\n sender: Address;\n userOpHash: Hex;\n nonce: bigint;\n /** The paymaster the EntryPoint charged, or `null` when the account paid for itself. */\n paymaster: Address | null;\n actualGasCost: bigint;\n actualGasUsed: bigint;\n success: boolean;\n}\n\n/**\n * Every `UserOperationEvent` in a receipt, without knowing the sender. A\n * bundle can carry several operations; use this to inspect them all (for\n * example when you only have a transaction hash). Pure.\n *\n * @example\n * const events = userOpEventsFromReceipt(receipt);\n * events.map((e) => [e.sender, e.success]);\n */\nexport function userOpEventsFromReceipt(receipt: Pick<TransactionReceipt, \"logs\">): UserOpEvent[] {\n const zero = \"0x0000000000000000000000000000000000000000\";\n const out: UserOpEvent[] = [];\n for (const ev of parseEventLogs({\n abi: entryPoint07Abi,\n eventName: \"UserOperationEvent\",\n logs: receipt.logs,\n strict: false,\n })) {\n const a = ev.args;\n if (a.sender === undefined || a.userOpHash === undefined) continue;\n out.push({\n sender: a.sender,\n userOpHash: a.userOpHash,\n nonce: a.nonce ?? 0n,\n paymaster: a.paymaster && a.paymaster.toLowerCase() !== zero ? a.paymaster : null,\n actualGasCost: a.actualGasCost ?? 0n,\n actualGasUsed: a.actualGasUsed ?? 0n,\n success: a.success ?? false,\n });\n }\n return out;\n}\n\nconst KERNEL_EXECUTE_ABI = [\n {\n type: \"function\",\n name: \"execute\",\n stateMutability: \"payable\",\n inputs: [\n { name: \"execMode\", type: \"bytes32\" },\n { name: \"executionCalldata\", type: \"bytes\" },\n ],\n outputs: [],\n },\n] as const satisfies Abi;\n\n/** ERC-7579 execution modes: callType (1 byte) then zeros, default exec type. */\nconst EXEC_MODE_SINGLE: Hex = pad(\"0x00\", { size: 32, dir: \"right\" });\nconst EXEC_MODE_BATCH: Hex = pad(\"0x01\", { size: 32, dir: \"right\" });\n\n/**\n * The ERC-7579 `execute(bytes32 mode, bytes executionCalldata)` callData a\n * Kernel v3 account puts in a UserOperation. One call uses single mode\n * (callType 0x00, packed `target ++ value ++ data`); several use batch mode\n * (callType 0x01, ABI-encoded `Execution[]`). Pure: needs no live account. It\n * is the same bytes `account.encodeCalls(calls)` returns for a Kernel v3.1\n * account (`toPepuKernelAccount`, `@pepu-chain/sdk/aa/kernel`).\n *\n * Calls take either raw `data` or `abi` + `functionName` (+ `args`), like\n * `sendSponsored`. Throws a PepuError for an empty list or ambiguous call.\n *\n * @example\n * const callData = encodeKernelExecute([{ to: tapScore, abi: tapScoreAbi, functionName: \"tap\" }]);\n */\nexport function encodeKernelExecute(calls: readonly Call[]): Hex {\n const encoded = normalizeCalls(calls);\n if (encoded.length === 1 && encoded[0]) {\n const c = encoded[0];\n return encodeFunctionData({\n abi: KERNEL_EXECUTE_ABI,\n functionName: \"execute\",\n args: [EXEC_MODE_SINGLE, encodePacked([\"address\", \"uint256\", \"bytes\"], [c.to, c.value, c.data])],\n });\n }\n const batch = encodeAbiParameters(\n [\n {\n type: \"tuple[]\",\n components: [\n { name: \"target\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"callData\", type: \"bytes\" },\n ],\n },\n ],\n [encoded.map((c) => ({ target: c.to, value: c.value, callData: c.data }))],\n );\n return encodeFunctionData({ abi: KERNEL_EXECUTE_ABI, functionName: \"execute\", args: [EXEC_MODE_BATCH, batch] });\n}\n"]}