@aastar/sdk 0.14.0 → 0.14.3

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 (812) hide show
  1. package/.eslintrc.js +28 -0
  2. package/.gitmodules +9 -0
  3. package/README.md +170 -0
  4. package/aastar-sdk.code-workspace +14 -0
  5. package/abis/BLSAggregator.json +572 -0
  6. package/abis/BLSValidator.json +26 -0
  7. package/abis/DVTValidator.json +370 -0
  8. package/abis/Eip7702Support.json +24 -0
  9. package/abis/EntryPoint.json +1379 -0
  10. package/abis/GToken.json +479 -0
  11. package/abis/GTokenStaking.json +944 -0
  12. package/abis/LegacyAccount.json +625 -0
  13. package/abis/MySBT.json +1586 -0
  14. package/abis/Paymaster.json +1205 -0
  15. package/abis/PaymasterFactory.json +650 -0
  16. package/abis/PaymasterV4_2.json +1183 -0
  17. package/abis/Registry.json +1636 -0
  18. package/abis/ReputationSystem.json +477 -0
  19. package/abis/SenderCreator.json +99 -0
  20. package/abis/Simple7702Account.json +395 -0
  21. package/abis/SimpleAccount.json +625 -0
  22. package/abis/SimpleAccountFactory.json +108 -0
  23. package/abis/SimpleAccountFactoryV08.json +87 -0
  24. package/abis/SimpleAccountV08.json +557 -0
  25. package/abis/SuperPaymaster.json +1399 -0
  26. package/abis/UserOperationLib.json +57 -0
  27. package/abis/aPNTs.json +1173 -0
  28. package/abis/xPNTsFactory.json +728 -0
  29. package/abis/xPNTsToken.json +1173 -0
  30. package/config/networks/README.md +54 -0
  31. package/config/networks/mainnet.env.example +39 -0
  32. package/config/networks/optimism-sepolia.env.example +35 -0
  33. package/config/networks/optimism.env.example +36 -0
  34. package/config/networks/sepolia.env.example +36 -0
  35. package/data/experiment_data.csv +36 -0
  36. package/data/industry_baseline_2025-12-23.json +154 -0
  37. package/data/industry_baseline_latest.json +154 -0
  38. package/docs/API_REFERENCE.md +796 -0
  39. package/docs/DAO_Mining_Distribution_Plan.md +522 -0
  40. package/docs/DOCUMENTATION_PLAN.md +455 -0
  41. package/docs/Plan.md +266 -0
  42. package/docs/Regression_Testing_Guide.md +70 -0
  43. package/docs/SDK_Optimization_Evaluation_Plan.md +51 -0
  44. package/docs/SEPOLIA_ENV_REFERENCE.md +51 -0
  45. package/docs/STAGE_3_SCENARIO_EXP_PLAN.md +77 -0
  46. package/docs/Script_Comparison_Report.md +91 -0
  47. package/docs/Sepolia_Latest_Deployment.md +117 -0
  48. package/docs/TEST_COVERAGE_MATRIX.md +72 -0
  49. package/docs/TODO_SDK_COVERAGE.md +55 -0
  50. package/docs/USER_CASE_DESIGN.md +110 -0
  51. package/docs/api/@aastar/account/README.md +15 -0
  52. package/docs/api/@aastar/account/classes/UserOpClient.md +87 -0
  53. package/docs/api/@aastar/account/functions/createEOAWalletClient.md +21 -0
  54. package/docs/api/@aastar/account/functions/getUserOpHash.md +23 -0
  55. package/docs/api/@aastar/account/functions/packUserOpLimits.md +19 -0
  56. package/docs/api/@aastar/account/functions/toSimpleSmartAccount.md +83 -0
  57. package/docs/api/@aastar/account/type-aliases/EOAWalletClient.md +37 -0
  58. package/docs/api/@aastar/account/type-aliases/SimpleSmartAccount.md +39 -0
  59. package/docs/api/@aastar/core/README.md +136 -0
  60. package/docs/api/@aastar/core/classes/BLSSigner.md +147 -0
  61. package/docs/api/@aastar/core/enumerations/NodeType.md +33 -0
  62. package/docs/api/@aastar/core/functions/aggregatorActions.md +2714 -0
  63. package/docs/api/@aastar/core/functions/createAAStarPublicClient.md +3105 -0
  64. package/docs/api/@aastar/core/functions/dvtActions.md +2714 -0
  65. package/docs/api/@aastar/core/functions/factoryActions.md +2714 -0
  66. package/docs/api/@aastar/core/functions/getAddressUrl.md +32 -0
  67. package/docs/api/@aastar/core/functions/getAllCommunityConfigs.md +9 -0
  68. package/docs/api/@aastar/core/functions/getAllV2Contracts.md +20 -0
  69. package/docs/api/@aastar/core/functions/getBlockExplorer.md +26 -0
  70. package/docs/api/@aastar/core/functions/getChainId.md +26 -0
  71. package/docs/api/@aastar/core/functions/getCommunities.md +76 -0
  72. package/docs/api/@aastar/core/functions/getCommunity.md +32 -0
  73. package/docs/api/@aastar/core/functions/getCommunityConfig.md +15 -0
  74. package/docs/api/@aastar/core/functions/getContract.md +37 -0
  75. package/docs/api/@aastar/core/functions/getContractNetworks.md +18 -0
  76. package/docs/api/@aastar/core/functions/getContracts.md +178 -0
  77. package/docs/api/@aastar/core/functions/getCoreContracts.md +55 -0
  78. package/docs/api/@aastar/core/functions/getDeploymentDate.md +32 -0
  79. package/docs/api/@aastar/core/functions/getEntryPoint.md +25 -0
  80. package/docs/api/@aastar/core/functions/getNetwork.md +26 -0
  81. package/docs/api/@aastar/core/functions/getPaymasterV4_1.md +25 -0
  82. package/docs/api/@aastar/core/functions/getRpcUrl.md +25 -0
  83. package/docs/api/@aastar/core/functions/getSimpleAccountFactory.md +25 -0
  84. package/docs/api/@aastar/core/functions/getSuperPaymasterV2.md +25 -0
  85. package/docs/api/@aastar/core/functions/getTestAccounts.md +30 -0
  86. package/docs/api/@aastar/core/functions/getTestTokenContracts.md +38 -0
  87. package/docs/api/@aastar/core/functions/getTokenContracts.md +31 -0
  88. package/docs/api/@aastar/core/functions/getTxUrl.md +32 -0
  89. package/docs/api/@aastar/core/functions/getV2ContractByAddress.md +28 -0
  90. package/docs/api/@aastar/core/functions/getV2ContractByName.md +28 -0
  91. package/docs/api/@aastar/core/functions/getV2ContractsByDate.md +26 -0
  92. package/docs/api/@aastar/core/functions/isContractNetworkSupported.md +27 -0
  93. package/docs/api/@aastar/core/functions/isRegisteredCommunity.md +15 -0
  94. package/docs/api/@aastar/core/functions/isV2Contract.md +27 -0
  95. package/docs/api/@aastar/core/functions/paymasterV4Actions.md +2719 -0
  96. package/docs/api/@aastar/core/functions/registryActions.md +2720 -0
  97. package/docs/api/@aastar/core/functions/reputationActions.md +2720 -0
  98. package/docs/api/@aastar/core/functions/sbtActions.md +2720 -0
  99. package/docs/api/@aastar/core/functions/stakingActions.md +2720 -0
  100. package/docs/api/@aastar/core/functions/superPaymasterActions.md +2720 -0
  101. package/docs/api/@aastar/core/functions/tokenActions.md +2714 -0
  102. package/docs/api/@aastar/core/interfaces/CommunityConfig.md +81 -0
  103. package/docs/api/@aastar/core/interfaces/ContractVersion.md +63 -0
  104. package/docs/api/@aastar/core/type-aliases/AggregatorActions.md +79 -0
  105. package/docs/api/@aastar/core/type-aliases/ContractCategory.md +5 -0
  106. package/docs/api/@aastar/core/type-aliases/ContractNetwork.md +5 -0
  107. package/docs/api/@aastar/core/type-aliases/DVTActions.md +139 -0
  108. package/docs/api/@aastar/core/type-aliases/FactoryActions.md +99 -0
  109. package/docs/api/@aastar/core/type-aliases/NetworkContracts.md +5 -0
  110. package/docs/api/@aastar/core/type-aliases/PaymasterV4Actions.md +422 -0
  111. package/docs/api/@aastar/core/type-aliases/RegistryActions.md +263 -0
  112. package/docs/api/@aastar/core/type-aliases/ReputationActions.md +47 -0
  113. package/docs/api/@aastar/core/type-aliases/RoleConfig.md +83 -0
  114. package/docs/api/@aastar/core/type-aliases/SBTActions.md +203 -0
  115. package/docs/api/@aastar/core/type-aliases/StakingActions.md +179 -0
  116. package/docs/api/@aastar/core/type-aliases/SuperPaymasterActions.md +219 -0
  117. package/docs/api/@aastar/core/type-aliases/SupportedNetwork.md +3 -0
  118. package/docs/api/@aastar/core/type-aliases/TokenActions.md +151 -0
  119. package/docs/api/@aastar/core/variables/AASTAR_COMMUNITY.md +8 -0
  120. package/docs/api/@aastar/core/variables/ALL_ADDRESSES.md +71 -0
  121. package/docs/api/@aastar/core/variables/BLSAggregatorABI.md +3 -0
  122. package/docs/api/@aastar/core/variables/BLSHelpers.md +91 -0
  123. package/docs/api/@aastar/core/variables/BPS_DENOMINATOR.md +5 -0
  124. package/docs/api/@aastar/core/variables/BRANDING.md +67 -0
  125. package/docs/api/@aastar/core/variables/BREAD_COMMUNITY.md +8 -0
  126. package/docs/api/@aastar/core/variables/COMMUNITIES.md +5 -0
  127. package/docs/api/@aastar/core/variables/COMMUNITY_OWNERS.md +15 -0
  128. package/docs/api/@aastar/core/variables/CONTRACTS.md +163 -0
  129. package/docs/api/@aastar/core/variables/CONTRACT_METADATA.md +67 -0
  130. package/docs/api/@aastar/core/variables/CORE_ADDRESSES.md +35 -0
  131. package/docs/api/@aastar/core/variables/DEFAULT_APNTS_PRICE_USD.md +5 -0
  132. package/docs/api/@aastar/core/variables/DEFAULT_GAS_TOKEN_MINT_AMOUNT.md +5 -0
  133. package/docs/api/@aastar/core/variables/DEFAULT_USDT_MINT_AMOUNT.md +5 -0
  134. package/docs/api/@aastar/core/variables/DVTValidatorABI.md +3 -0
  135. package/docs/api/@aastar/core/variables/EntryPointABI.md +3 -0
  136. package/docs/api/@aastar/core/variables/FAUCET_API_URL.md +5 -0
  137. package/docs/api/@aastar/core/variables/GTokenABI.md +3 -0
  138. package/docs/api/@aastar/core/variables/GTokenStakingABI.md +3 -0
  139. package/docs/api/@aastar/core/variables/LINKS.md +33 -0
  140. package/docs/api/@aastar/core/variables/MAX_SERVICE_FEE.md +5 -0
  141. package/docs/api/@aastar/core/variables/MONITORING_ADDRESSES.md +15 -0
  142. package/docs/api/@aastar/core/variables/MySBTABI.md +3 -0
  143. package/docs/api/@aastar/core/variables/NETWORKS.md +79 -0
  144. package/docs/api/@aastar/core/variables/NODE_STAKE_AMOUNTS.md +31 -0
  145. package/docs/api/@aastar/core/variables/OFFICIAL_ADDRESSES.md +11 -0
  146. package/docs/api/@aastar/core/variables/PAYMASTER_ADDRESSES.md +15 -0
  147. package/docs/api/@aastar/core/variables/PaymasterABI.md +3 -0
  148. package/docs/api/@aastar/core/variables/PaymasterFactoryABI.md +3 -0
  149. package/docs/api/@aastar/core/variables/PaymasterV4ABI.md +3 -0
  150. package/docs/api/@aastar/core/variables/ROLE_ANODE.md +3 -0
  151. package/docs/api/@aastar/core/variables/ROLE_COMMUNITY.md +3 -0
  152. package/docs/api/@aastar/core/variables/ROLE_ENDUSER.md +5 -0
  153. package/docs/api/@aastar/core/variables/ROLE_KMS.md +3 -0
  154. package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_AOA.md +3 -0
  155. package/docs/api/@aastar/core/variables/ROLE_PAYMASTER_SUPER.md +3 -0
  156. package/docs/api/@aastar/core/variables/RegistryABI.md +3 -0
  157. package/docs/api/@aastar/core/variables/ReputationSystemABI.md +3 -0
  158. package/docs/api/@aastar/core/variables/ReputationSystemV3ABI.md +3 -0
  159. package/docs/api/@aastar/core/variables/SEPOLIA_CONTRACTS.md +159 -0
  160. package/docs/api/@aastar/core/variables/SEPOLIA_V2_VERSIONS.md +67 -0
  161. package/docs/api/@aastar/core/variables/SERVICE_FEE_RATE.md +5 -0
  162. package/docs/api/@aastar/core/variables/Simple7702AccountABI.md +3 -0
  163. package/docs/api/@aastar/core/variables/SimpleAccountABI.md +3 -0
  164. package/docs/api/@aastar/core/variables/SimpleAccountFactoryABI.md +3 -0
  165. package/docs/api/@aastar/core/variables/SimpleAccountFactoryV08ABI.md +3 -0
  166. package/docs/api/@aastar/core/variables/SimpleAccountV08ABI.md +3 -0
  167. package/docs/api/@aastar/core/variables/SuperPaymasterABI.md +3 -0
  168. package/docs/api/@aastar/core/variables/SuperPaymasterV3ABI.md +3 -0
  169. package/docs/api/@aastar/core/variables/TEST_ACCOUNT_ADDRESSES.md +11 -0
  170. package/docs/api/@aastar/core/variables/TEST_ACCOUNT_POOL_SIZE.md +5 -0
  171. package/docs/api/@aastar/core/variables/TEST_COMMUNITIES.md +19 -0
  172. package/docs/api/@aastar/core/variables/TEST_TOKEN_ADDRESSES.md +19 -0
  173. package/docs/api/@aastar/core/variables/TOKEN_ADDRESSES.md +11 -0
  174. package/docs/api/@aastar/core/variables/V2_SUMMARY.md +39 -0
  175. package/docs/api/@aastar/core/variables/xPNTsFactoryABI.md +3 -0
  176. package/docs/api/@aastar/core/variables/xPNTsTokenABI.md +3 -0
  177. package/docs/api/@aastar/paymaster/README.md +14 -0
  178. package/docs/api/@aastar/paymaster/classes/SuperPaymasterClient.md +163 -0
  179. package/docs/api/@aastar/paymaster/functions/checkEligibility.md +28 -0
  180. package/docs/api/@aastar/paymaster/functions/getPaymasterV4Middleware.md +32 -0
  181. package/docs/api/@aastar/paymaster/functions/getSuperPaymasterMiddleware.md +32 -0
  182. package/docs/api/@aastar/paymaster/type-aliases/PaymasterConfig.md +35 -0
  183. package/docs/api/@aastar/paymaster/type-aliases/PaymasterV4MiddlewareConfig.md +35 -0
  184. package/docs/api/@aastar/tokens/README.md +3 -0
  185. package/docs/api/@aastar/tokens/classes/FinanceClient.md +8653 -0
  186. package/docs/api/README.md +6 -0
  187. package/docs/examples/community-flow.md +28 -0
  188. package/docs/examples/enduser-flow.md +24 -0
  189. package/docs/examples/index.md +18 -0
  190. package/docs/examples/multi-chain.md +31 -0
  191. package/docs/examples/operator-flow.md +28 -0
  192. package/docs/guide/CLI_GUIDE.md +65 -0
  193. package/docs/guide/DOCUMENTATION_PLAN.md +455 -0
  194. package/docs/guide/Security-solution.md +106 -0
  195. package/docs/guide/TEST_COMMANDS.md +320 -0
  196. package/docs/guide/getting-started.md +133 -0
  197. package/docs/guide/installation.md +40 -0
  198. package/docs/guide/paper-data-collection.md +69 -0
  199. package/docs/guide/quick-start.md +52 -0
  200. package/docs/guide/task_breakdown.md +121 -0
  201. package/docs/old-solution.md +1078 -0
  202. package/docs/paper-data-collection.md +69 -0
  203. package/docs/technical_plan.md +510 -0
  204. package/docs/zh/examples/community-flow.md +38 -0
  205. package/docs/zh/examples/complete-workflow.md +10 -0
  206. package/docs/zh/examples/enduser-flow.md +33 -0
  207. package/docs/zh/examples/index.md +18 -0
  208. package/docs/zh/examples/multi-chain.md +46 -0
  209. package/docs/zh/examples/operator-flow.md +37 -0
  210. package/docs/zh/guide/CLI_GUIDE.md +48 -0
  211. package/docs/zh/guide/DOCUMENTATION_PLAN.md +455 -0
  212. package/docs/zh/guide/Plan.md +266 -0
  213. package/docs/zh/guide/SDK_Optimization_Evaluation_Plan.md +51 -0
  214. package/docs/zh/guide/Security-solution.md +106 -0
  215. package/docs/zh/guide/TEST_COMMANDS.md +125 -0
  216. package/docs/zh/guide/TEST_COVERAGE_MATRIX.md +72 -0
  217. package/docs/zh/guide/concepts/account-abstraction.md +95 -0
  218. package/docs/zh/guide/concepts/rainbow-bridge.md +68 -0
  219. package/docs/zh/guide/concepts/reputation.md +95 -0
  220. package/docs/zh/guide/concepts/superpaymaster.md +141 -0
  221. package/docs/zh/guide/getting-started.md +133 -0
  222. package/docs/zh/guide/installation.md +107 -0
  223. package/docs/zh/guide/old-solution.md +1078 -0
  224. package/docs/zh/guide/paper-data-collection.md +69 -0
  225. package/docs/zh/guide/quick-start.md +134 -0
  226. package/docs/zh/guide/sdk-readme.md +253 -0
  227. package/docs/zh/guide/task_breakdown.md +76 -0
  228. package/docs/zh/guide/technical_plan.md +510 -0
  229. package/docs/zh/guide/use-cases/community-management.md +141 -0
  230. package/docs/zh/guide/use-cases/gasless-transactions.md +71 -0
  231. package/docs/zh/guide/use-cases/operator-staking.md +84 -0
  232. package/docs/zh/guide/use-cases/yop.md +72 -0
  233. package/examples/sdk-demo/DEVELOPER_GUIDE.md +159 -0
  234. package/examples/sdk-demo/README.md +30 -0
  235. package/examples/sdk-demo/usage.ts +137 -0
  236. package/ext/aastar-shared-config/.env.example +6 -0
  237. package/ext/aastar-shared-config/.github/workflows/check-secrets.yml +257 -0
  238. package/ext/aastar-shared-config/AGENTS.md +21 -0
  239. package/ext/aastar-shared-config/CHANGELOG.md +99 -0
  240. package/ext/aastar-shared-config/LICENSE +21 -0
  241. package/ext/aastar-shared-config/QUICK_START.md +215 -0
  242. package/ext/aastar-shared-config/README.md +412 -0
  243. package/ext/aastar-shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  244. package/ext/aastar-shared-config/check-locker-status.mjs +7 -0
  245. package/ext/aastar-shared-config/favicon.ico +0 -0
  246. package/ext/aastar-shared-config/generate-comparison-table.sh +67 -0
  247. package/ext/aastar-shared-config/package.json +46 -0
  248. package/ext/aastar-shared-config/pnpm-lock.yaml +1182 -0
  249. package/ext/aastar-shared-config/src/abis/BLSAggregator.json +1 -0
  250. package/ext/aastar-shared-config/src/abis/DVTValidator.json +1 -0
  251. package/ext/aastar-shared-config/src/abis/GToken.json +1 -0
  252. package/ext/aastar-shared-config/src/abis/GTokenStaking.json +1 -0
  253. package/ext/aastar-shared-config/src/abis/MySBT.json +1 -0
  254. package/ext/aastar-shared-config/src/abis/PaymasterFactory.json +1 -0
  255. package/ext/aastar-shared-config/src/abis/PaymasterV4.json +1098 -0
  256. package/ext/aastar-shared-config/src/abis/Registry.json +1 -0
  257. package/ext/aastar-shared-config/src/abis/SimpleAccount.json +557 -0
  258. package/ext/aastar-shared-config/src/abis/SimpleAccountFactory.json +87 -0
  259. package/ext/aastar-shared-config/src/abis/SuperPaymasterV2.json +1 -0
  260. package/ext/aastar-shared-config/src/abis/index.ts +45 -0
  261. package/ext/aastar-shared-config/src/abis/xPNTsFactory.json +1 -0
  262. package/ext/aastar-shared-config/src/abis/xPNTsToken.json +1 -0
  263. package/ext/aastar-shared-config/src/branding.ts +32 -0
  264. package/ext/aastar-shared-config/src/communities.ts +93 -0
  265. package/ext/aastar-shared-config/src/constants.ts +67 -0
  266. package/ext/aastar-shared-config/src/contract-addresses.ts +95 -0
  267. package/ext/aastar-shared-config/src/contract-versions.ts +374 -0
  268. package/ext/aastar-shared-config/src/contracts.ts +414 -0
  269. package/ext/aastar-shared-config/src/index.ts +14 -0
  270. package/ext/aastar-shared-config/src/networks.ts +117 -0
  271. package/ext/aastar-shared-config/sync-abis.sh +92 -0
  272. package/ext/aastar-shared-config/sync-versions.mjs +150 -0
  273. package/ext/aastar-shared-config/tsconfig.json +18 -0
  274. package/ext/aastar-shared-config/tsup.config.ts +10 -0
  275. package/ext/aastar-shared-config/verify-all.sh +207 -0
  276. package/ext/aastar-shared-config/verify-contracts.sh +85 -0
  277. package/ext/aastar-shared-config/verify-mysbt-v243.mjs +27 -0
  278. package/ext/aastar-shared-config/verify-onchain-versions.mjs +93 -0
  279. package/ext/permissionless.js/.changeset/README.md +8 -0
  280. package/ext/permissionless.js/.changeset/config.json +11 -0
  281. package/ext/permissionless.js/.env-example +2 -0
  282. package/ext/permissionless.js/.github/actions/install-dependencies/action.yml +17 -0
  283. package/ext/permissionless.js/.github/dependabot.yaml +10 -0
  284. package/ext/permissionless.js/.github/workflows/canary.yml +49 -0
  285. package/ext/permissionless.js/.github/workflows/on-pull-request.yml +61 -0
  286. package/ext/permissionless.js/.github/workflows/on-push-to-main.yml +59 -0
  287. package/ext/permissionless.js/.github/workflows/prune-tags.yml +92 -0
  288. package/ext/permissionless.js/.github/workflows/verify.yml +114 -0
  289. package/ext/permissionless.js/.size-limit.json +13 -0
  290. package/ext/permissionless.js/LICENSE +21 -0
  291. package/ext/permissionless.js/assets/banner.png +0 -0
  292. package/ext/permissionless.js/biome.json +46 -0
  293. package/ext/permissionless.js/bun.lock +2340 -0
  294. package/ext/permissionless.js/bun.lockb +0 -0
  295. package/ext/permissionless.js/package.json +82 -0
  296. package/ext/permissionless.js/packages/mock-paymaster/CHANGELOG.md +31 -0
  297. package/ext/permissionless.js/packages/mock-paymaster/constants.ts +84 -0
  298. package/ext/permissionless.js/packages/mock-paymaster/helpers/abi.ts +1048 -0
  299. package/ext/permissionless.js/packages/mock-paymaster/helpers/erc20-utils.ts +105 -0
  300. package/ext/permissionless.js/packages/mock-paymaster/helpers/schema.ts +307 -0
  301. package/ext/permissionless.js/packages/mock-paymaster/helpers/utils.ts +78 -0
  302. package/ext/permissionless.js/packages/mock-paymaster/index.ts +63 -0
  303. package/ext/permissionless.js/packages/mock-paymaster/package.json +33 -0
  304. package/ext/permissionless.js/packages/mock-paymaster/relay.ts +424 -0
  305. package/ext/permissionless.js/packages/mock-paymaster/setup.ts +163 -0
  306. package/ext/permissionless.js/packages/mock-paymaster/singletonPaymasters.ts +230 -0
  307. package/ext/permissionless.js/packages/permissionless/CHANGELOG.md +893 -0
  308. package/ext/permissionless.js/packages/permissionless/README.md +122 -0
  309. package/ext/permissionless.js/packages/permissionless/accounts/biconomy/abi/BiconomySmartAccountAbi.ts +128 -0
  310. package/ext/permissionless.js/packages/permissionless/accounts/biconomy/toBiconomySmartAccount.ts +374 -0
  311. package/ext/permissionless.js/packages/permissionless/accounts/decodeCalls.test.ts +505 -0
  312. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/abi/EtherspotBootstrapAbi.ts +94 -0
  313. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/constants.ts +27 -0
  314. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/toEtherspotSmartAccount.ts +369 -0
  315. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getInitMSAData.ts +56 -0
  316. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/getNonceKey.ts +21 -0
  317. package/ext/permissionless.js/packages/permissionless/accounts/etherspot/utils/wrapMessageHash.ts +43 -0
  318. package/ext/permissionless.js/packages/permissionless/accounts/index.ts +86 -0
  319. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelAccountAbi.ts +87 -0
  320. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3AccountAbi.ts +813 -0
  321. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3FactoryAbi.ts +12 -0
  322. package/ext/permissionless.js/packages/permissionless/accounts/kernel/abi/KernelV3MetaFactoryAbi.ts +17 -0
  323. package/ext/permissionless.js/packages/permissionless/accounts/kernel/constants.ts +14 -0
  324. package/ext/permissionless.js/packages/permissionless/accounts/kernel/to7702KernelSmartAccount.ts +63 -0
  325. package/ext/permissionless.js/packages/permissionless/accounts/kernel/toEcdsaKernelSmartAccount.ts +62 -0
  326. package/ext/permissionless.js/packages/permissionless/accounts/kernel/toKernelSmartAccount.ts +984 -0
  327. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/decodeCallData.ts +43 -0
  328. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/encodeCallData.ts +57 -0
  329. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/getNonceKey.ts +33 -0
  330. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isKernelV2.ts +6 -0
  331. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/isWebAuthnAccount.ts +8 -0
  332. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signMessage.ts +115 -0
  333. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/signTypedData.ts +97 -0
  334. package/ext/permissionless.js/packages/permissionless/accounts/kernel/utils/wrapMessageHash.ts +44 -0
  335. package/ext/permissionless.js/packages/permissionless/accounts/light/toLightSmartAccount.ts +496 -0
  336. package/ext/permissionless.js/packages/permissionless/accounts/nexus/toNexusSmartAccount.ts +351 -0
  337. package/ext/permissionless.js/packages/permissionless/accounts/safe/index.ts +14 -0
  338. package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.test.ts +275 -0
  339. package/ext/permissionless.js/packages/permissionless/accounts/safe/signUserOperation.ts +316 -0
  340. package/ext/permissionless.js/packages/permissionless/accounts/safe/toSafeSmartAccount.ts +1980 -0
  341. package/ext/permissionless.js/packages/permissionless/accounts/simple/to7702SimpleSmartAccount.ts +51 -0
  342. package/ext/permissionless.js/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts +585 -0
  343. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/toThirdwebSmartAccount.ts +221 -0
  344. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/decodeCallData.ts +87 -0
  345. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/encodeCallData.ts +81 -0
  346. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getAccountAddress.ts +48 -0
  347. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/getFactoryData.ts +40 -0
  348. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signMessage.ts +33 -0
  349. package/ext/permissionless.js/packages/permissionless/accounts/thirdweb/utils/signTypedData.ts +67 -0
  350. package/ext/permissionless.js/packages/permissionless/accounts/trust/toTrustSmartAccount.ts +232 -0
  351. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/decodeCallData.ts +87 -0
  352. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/encodeCallData.ts +81 -0
  353. package/ext/permissionless.js/packages/permissionless/accounts/trust/utils/getFactoryData.ts +51 -0
  354. package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.test.ts +39 -0
  355. package/ext/permissionless.js/packages/permissionless/actions/erc7579/accountId.ts +93 -0
  356. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.test.ts +216 -0
  357. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModule.ts +99 -0
  358. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.test.ts +237 -0
  359. package/ext/permissionless.js/packages/permissionless/actions/erc7579/installModules.ts +96 -0
  360. package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.test.ts +72 -0
  361. package/ext/permissionless.js/packages/permissionless/actions/erc7579/isModuleInstalled.ts +132 -0
  362. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.test.ts +108 -0
  363. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsExecutionMode.ts +158 -0
  364. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.test.ts +35 -0
  365. package/ext/permissionless.js/packages/permissionless/actions/erc7579/supportsModule.ts +120 -0
  366. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.test.ts +129 -0
  367. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModule.ts +98 -0
  368. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.test.ts +117 -0
  369. package/ext/permissionless.js/packages/permissionless/actions/erc7579/uninstallModules.ts +87 -0
  370. package/ext/permissionless.js/packages/permissionless/actions/erc7579.ts +103 -0
  371. package/ext/permissionless.js/packages/permissionless/actions/etherspot/getUserOperationGasPrice.ts +32 -0
  372. package/ext/permissionless.js/packages/permissionless/actions/etherspot.ts +4 -0
  373. package/ext/permissionless.js/packages/permissionless/actions/index.ts +9 -0
  374. package/ext/permissionless.js/packages/permissionless/actions/package.json +6 -0
  375. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/getCredentials.ts +47 -0
  376. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startAuthentication.ts +39 -0
  377. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/startRegistration.ts +126 -0
  378. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyAuthentication.ts +142 -0
  379. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer/verifyRegistration.ts +132 -0
  380. package/ext/permissionless.js/packages/permissionless/actions/passkeyServer.ts +17 -0
  381. package/ext/permissionless.js/packages/permissionless/actions/pimlico/estimateErc20PaymasterCost.ts +102 -0
  382. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.test.ts +90 -0
  383. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getTokenQuotes.ts +77 -0
  384. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.test.ts +82 -0
  385. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationGasPrice.ts +67 -0
  386. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.test.ts +199 -0
  387. package/ext/permissionless.js/packages/permissionless/actions/pimlico/getUserOperationStatus.ts +49 -0
  388. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sendCompressedUserOperation.ts +59 -0
  389. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.test.ts +236 -0
  390. package/ext/permissionless.js/packages/permissionless/actions/pimlico/sponsorUserOperation.ts +151 -0
  391. package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.test.ts +153 -0
  392. package/ext/permissionless.js/packages/permissionless/actions/pimlico/validateSponsorshipPolicies.ts +74 -0
  393. package/ext/permissionless.js/packages/permissionless/actions/pimlico.ts +38 -0
  394. package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.test.ts +96 -0
  395. package/ext/permissionless.js/packages/permissionless/actions/public/getAccountNonce.ts +75 -0
  396. package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.test.ts +154 -0
  397. package/ext/permissionless.js/packages/permissionless/actions/public/getSenderAddress.ts +129 -0
  398. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.test.ts +255 -0
  399. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/getCallsStatus.ts +91 -0
  400. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.test.ts +571 -0
  401. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendCalls.ts +38 -0
  402. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.test.ts +416 -0
  403. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/sendTransaction.ts +133 -0
  404. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.test.ts +219 -0
  405. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signMessage.ts +73 -0
  406. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.test.ts +228 -0
  407. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/signTypedData.ts +157 -0
  408. package/ext/permissionless.js/packages/permissionless/actions/smartAccount/writeContract.ts +70 -0
  409. package/ext/permissionless.js/packages/permissionless/actions/smartAccount.ts +7 -0
  410. package/ext/permissionless.js/packages/permissionless/clients/createSmartAccountClient.ts +181 -0
  411. package/ext/permissionless.js/packages/permissionless/clients/decorators/passkeyServer.ts +57 -0
  412. package/ext/permissionless.js/packages/permissionless/clients/decorators/pimlico.ts +189 -0
  413. package/ext/permissionless.js/packages/permissionless/clients/decorators/smartAccount.ts +350 -0
  414. package/ext/permissionless.js/packages/permissionless/clients/index.ts +2 -0
  415. package/ext/permissionless.js/packages/permissionless/clients/passkeyServer.ts +69 -0
  416. package/ext/permissionless.js/packages/permissionless/clients/pimlico.ts +124 -0
  417. package/ext/permissionless.js/packages/permissionless/errors/index.ts +17 -0
  418. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/index.ts +1 -0
  419. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +523 -0
  420. package/ext/permissionless.js/packages/permissionless/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts +369 -0
  421. package/ext/permissionless.js/packages/permissionless/index.ts +3 -0
  422. package/ext/permissionless.js/packages/permissionless/package.json +102 -0
  423. package/ext/permissionless.js/packages/permissionless/types/etherspot.ts +12 -0
  424. package/ext/permissionless.js/packages/permissionless/types/package.json +6 -0
  425. package/ext/permissionless.js/packages/permissionless/types/passkeyServer.ts +125 -0
  426. package/ext/permissionless.js/packages/permissionless/types/pimlico.ts +151 -0
  427. package/ext/permissionless.js/packages/permissionless/utils/decode7579Calls.ts +133 -0
  428. package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.test.ts +40 -0
  429. package/ext/permissionless.js/packages/permissionless/utils/decodeNonce.ts +10 -0
  430. package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.test.ts +57 -0
  431. package/ext/permissionless.js/packages/permissionless/utils/deepHexlify.ts +35 -0
  432. package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.test.ts +69 -0
  433. package/ext/permissionless.js/packages/permissionless/utils/encode7579Calls.ts +114 -0
  434. package/ext/permissionless.js/packages/permissionless/utils/encodeInstallModule.ts +91 -0
  435. package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.test.ts +38 -0
  436. package/ext/permissionless.js/packages/permissionless/utils/encodeNonce.ts +8 -0
  437. package/ext/permissionless.js/packages/permissionless/utils/encodeUninstallModule.ts +88 -0
  438. package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.test.ts +59 -0
  439. package/ext/permissionless.js/packages/permissionless/utils/erc20AllowanceOverride.ts +66 -0
  440. package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.test.ts +57 -0
  441. package/ext/permissionless.js/packages/permissionless/utils/erc20BalanceOverride.ts +49 -0
  442. package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.test.ts +31 -0
  443. package/ext/permissionless.js/packages/permissionless/utils/getAddressFromInitCodeOrPaymasterAndData.ts +13 -0
  444. package/ext/permissionless.js/packages/permissionless/utils/getEstimationCallData.ts +297 -0
  445. package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.test.ts +204 -0
  446. package/ext/permissionless.js/packages/permissionless/utils/getPackedUserOperation.ts +122 -0
  447. package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.test.ts +90 -0
  448. package/ext/permissionless.js/packages/permissionless/utils/getRequiredPrefund.ts +56 -0
  449. package/ext/permissionless.js/packages/permissionless/utils/index.ts +43 -0
  450. package/ext/permissionless.js/packages/permissionless/utils/isSmartAccountDeployed.ts +13 -0
  451. package/ext/permissionless.js/packages/permissionless/utils/ox.ts +48 -0
  452. package/ext/permissionless.js/packages/permissionless/utils/toOwner.ts +89 -0
  453. package/ext/permissionless.js/packages/permissionless/vitest.config.ts +31 -0
  454. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/biconomy.ts +22 -0
  455. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/etherspot.ts +12 -0
  456. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/kernel.ts +63 -0
  457. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/light.ts +10 -0
  458. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/nexus.ts +16 -0
  459. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/safe.ts +75 -0
  460. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/simple.ts +16 -0
  461. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/thirdweb.ts +7 -0
  462. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/accounts/trust.ts +26 -0
  463. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/core.ts +24 -0
  464. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/constants/index.ts +10 -0
  465. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/index.ts +783 -0
  466. package/ext/permissionless.js/packages/permissionless-test/mock-aa-infra/alto/instance.ts +290 -0
  467. package/ext/permissionless.js/packages/permissionless-test/src/testWithRpc.ts +128 -0
  468. package/ext/permissionless.js/packages/permissionless-test/src/types.ts +12 -0
  469. package/ext/permissionless.js/packages/permissionless-test/src/utils.ts +1091 -0
  470. package/ext/permissionless.js/packages/wagmi/CHANGELOG.md +53 -0
  471. package/ext/permissionless.js/packages/wagmi/README.md +93 -0
  472. package/ext/permissionless.js/packages/wagmi/context.ts +22 -0
  473. package/ext/permissionless.js/packages/wagmi/hooks/useAvailableCapabilities.ts +43 -0
  474. package/ext/permissionless.js/packages/wagmi/hooks/useSendTransaction.ts +164 -0
  475. package/ext/permissionless.js/packages/wagmi/hooks/useWaitForTransactionReceipt.ts +427 -0
  476. package/ext/permissionless.js/packages/wagmi/index.ts +15 -0
  477. package/ext/permissionless.js/packages/wagmi/package.json +26 -0
  478. package/ext/permissionless.js/packages/wagmi/utils/observe.ts +76 -0
  479. package/ext/permissionless.js/packages/wagmi-demo/README.md +1 -0
  480. package/ext/permissionless.js/packages/wagmi-demo/biome.json +13 -0
  481. package/ext/permissionless.js/packages/wagmi-demo/index.html +12 -0
  482. package/ext/permissionless.js/packages/wagmi-demo/package.json +16 -0
  483. package/ext/permissionless.js/packages/wagmi-demo/src/App.tsx +98 -0
  484. package/ext/permissionless.js/packages/wagmi-demo/src/PasskeyServerDemo.tsx +286 -0
  485. package/ext/permissionless.js/packages/wagmi-demo/src/PasskeysDemo.tsx +457 -0
  486. package/ext/permissionless.js/packages/wagmi-demo/src/index.css +21 -0
  487. package/ext/permissionless.js/packages/wagmi-demo/src/main.tsx +275 -0
  488. package/ext/permissionless.js/packages/wagmi-demo/src/vite-env.d.ts +1 -0
  489. package/ext/permissionless.js/packages/wagmi-demo/src/wagmi.ts +33 -0
  490. package/ext/permissionless.js/packages/wagmi-demo/tsconfig.json +25 -0
  491. package/ext/permissionless.js/packages/wagmi-demo/tsconfig.node.json +12 -0
  492. package/ext/permissionless.js/packages/wagmi-demo/vite.config.ts +7 -0
  493. package/ext/permissionless.js/tsconfig/tsconfig.base.json +42 -0
  494. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.cjs.json +11 -0
  495. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.esm.json +9 -0
  496. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.json +17 -0
  497. package/ext/permissionless.js/tsconfig/tsconfig.mock-paymaster.types.json +13 -0
  498. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.cjs.json +11 -0
  499. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.esm.json +9 -0
  500. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.json +18 -0
  501. package/ext/permissionless.js/tsconfig/tsconfig.permissionless.types.json +13 -0
  502. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.esm.json +8 -0
  503. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.json +19 -0
  504. package/ext/permissionless.js/tsconfig/tsconfig.wagmi.types.json +12 -0
  505. package/extract_abis.sh +140 -0
  506. package/extract_addresses_to_env.sh +67 -0
  507. package/final_safe_harmonize.py +77 -0
  508. package/lib/SHARED_CONFIG_REFERENCE.md +133 -0
  509. package/lib/shared-config/.env.example +6 -0
  510. package/lib/shared-config/.github/workflows/check-secrets.yml +257 -0
  511. package/lib/shared-config/AGENTS.md +21 -0
  512. package/lib/shared-config/CHANGELOG.md +99 -0
  513. package/lib/shared-config/LICENSE +21 -0
  514. package/lib/shared-config/QUICK_START.md +215 -0
  515. package/lib/shared-config/README.md +412 -0
  516. package/lib/shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  517. package/lib/shared-config/check-locker-status.mjs +7 -0
  518. package/lib/shared-config/favicon.ico +0 -0
  519. package/lib/shared-config/generate-comparison-table.sh +67 -0
  520. package/lib/shared-config/package.json +46 -0
  521. package/lib/shared-config/pnpm-lock.yaml +1182 -0
  522. package/lib/shared-config/src/abis/BLSAggregator.json +1 -0
  523. package/lib/shared-config/src/abis/DVTValidator.json +1 -0
  524. package/lib/shared-config/src/abis/GToken.json +1 -0
  525. package/lib/shared-config/src/abis/GTokenStaking.json +1 -0
  526. package/lib/shared-config/src/abis/MySBT.json +1 -0
  527. package/lib/shared-config/src/abis/PaymasterFactory.json +1 -0
  528. package/lib/shared-config/src/abis/PaymasterV4.json +1098 -0
  529. package/lib/shared-config/src/abis/Registry.json +1 -0
  530. package/lib/shared-config/src/abis/SimpleAccount.json +557 -0
  531. package/lib/shared-config/src/abis/SimpleAccountFactory.json +87 -0
  532. package/lib/shared-config/src/abis/SuperPaymasterV2.json +1 -0
  533. package/lib/shared-config/src/abis/index.ts +45 -0
  534. package/lib/shared-config/src/abis/xPNTsFactory.json +1 -0
  535. package/lib/shared-config/src/abis/xPNTsToken.json +1 -0
  536. package/lib/shared-config/src/branding.ts +32 -0
  537. package/lib/shared-config/src/communities.ts +93 -0
  538. package/lib/shared-config/src/constants.ts +67 -0
  539. package/lib/shared-config/src/contract-addresses.ts +95 -0
  540. package/lib/shared-config/src/contract-versions.ts +374 -0
  541. package/lib/shared-config/src/contracts.ts +414 -0
  542. package/lib/shared-config/src/index.ts +14 -0
  543. package/lib/shared-config/src/networks.ts +117 -0
  544. package/lib/shared-config/sync-abis.sh +92 -0
  545. package/lib/shared-config/sync-versions.mjs +150 -0
  546. package/lib/shared-config/tsconfig.json +18 -0
  547. package/lib/shared-config/tsup.config.ts +10 -0
  548. package/lib/shared-config/verify-all.sh +207 -0
  549. package/lib/shared-config/verify-contracts.sh +85 -0
  550. package/lib/shared-config/verify-mysbt-v243.mjs +27 -0
  551. package/lib/shared-config/verify-onchain-versions.mjs +93 -0
  552. package/package.json +53 -21
  553. package/packages/account/package.json +20 -0
  554. package/packages/account/src/accounts/simple.ts +84 -0
  555. package/packages/account/src/eoa.ts +31 -0
  556. package/packages/account/src/index.ts +61 -0
  557. package/packages/account/tsconfig.json +12 -0
  558. package/packages/analytics/package.json +21 -0
  559. package/packages/analytics/src/index.ts +145 -0
  560. package/packages/analytics/tsconfig.json +16 -0
  561. package/packages/community/package.json +22 -0
  562. package/packages/community/src/index.ts +306 -0
  563. package/packages/community/tsconfig.json +8 -0
  564. package/packages/core/package.json +22 -0
  565. package/packages/core/src/abis/BLSAggregator.json +572 -0
  566. package/packages/core/src/abis/BLSValidator.json +26 -0
  567. package/packages/core/src/abis/DVTValidator.json +370 -0
  568. package/packages/core/src/abis/Eip7702Support.json +24 -0
  569. package/packages/core/src/abis/EntryPoint.json +1379 -0
  570. package/packages/core/src/abis/GToken.json +523 -0
  571. package/packages/core/src/abis/GTokenStaking.json +931 -0
  572. package/packages/core/src/abis/LegacyAccount.json +625 -0
  573. package/packages/core/src/abis/MySBT.json +1586 -0
  574. package/packages/core/src/abis/Paymaster.json +1205 -0
  575. package/packages/core/src/abis/PaymasterFactory.json +650 -0
  576. package/packages/core/src/abis/PaymasterV4_2.json +1183 -0
  577. package/packages/core/src/abis/Registry.json +1636 -0
  578. package/packages/core/src/abis/ReputationSystem.json +477 -0
  579. package/packages/core/src/abis/SenderCreator.json +99 -0
  580. package/packages/core/src/abis/Simple7702Account.json +395 -0
  581. package/packages/core/src/abis/SimpleAccount.json +625 -0
  582. package/packages/core/src/abis/SimpleAccountFactory.json +108 -0
  583. package/packages/core/src/abis/SimpleAccountFactoryV08.json +87 -0
  584. package/packages/core/src/abis/SimpleAccountV08.json +557 -0
  585. package/packages/core/src/abis/SuperPaymaster.json +1399 -0
  586. package/packages/core/src/abis/UserOperationLib.json +57 -0
  587. package/packages/core/src/abis/aPNTs.json +1173 -0
  588. package/packages/core/src/abis/index.ts +68 -0
  589. package/packages/core/src/abis/xPNTsFactory.json +728 -0
  590. package/packages/core/src/abis/xPNTsToken.json +1173 -0
  591. package/packages/core/src/actions/aggregator.ts +41 -0
  592. package/packages/core/src/actions/dvt.ts +53 -0
  593. package/packages/core/src/actions/factory.ts +41 -0
  594. package/packages/core/src/actions/index.ts +10 -0
  595. package/packages/core/src/actions/paymasterV4.ts +263 -0
  596. package/packages/core/src/actions/registry.ts +120 -0
  597. package/packages/core/src/actions/reputation.ts +27 -0
  598. package/packages/core/src/actions/sbt.ts +97 -0
  599. package/packages/core/src/actions/staking.ts +79 -0
  600. package/packages/core/src/actions/superPaymaster.ts +117 -0
  601. package/packages/core/src/actions/tokens.ts +65 -0
  602. package/packages/core/src/branding.ts +32 -0
  603. package/packages/core/src/clients.ts +13 -0
  604. package/packages/core/src/communities.ts +93 -0
  605. package/packages/core/src/constants.ts +81 -0
  606. package/packages/core/src/contract-addresses.ts +101 -0
  607. package/packages/core/src/contract-versions.ts +374 -0
  608. package/packages/core/src/contracts.ts +414 -0
  609. package/packages/core/src/crypto/blsSigner.ts +124 -0
  610. package/packages/core/src/crypto/index.ts +1 -0
  611. package/packages/core/src/index.ts +19 -0
  612. package/packages/core/src/networks.ts +127 -0
  613. package/packages/core/src/requirementChecker.ts +225 -0
  614. package/packages/core/src/roles.ts +244 -0
  615. package/packages/core/src/utils.ts +23 -0
  616. package/packages/core/tsconfig.json +12 -0
  617. package/packages/dapp/package.json +27 -0
  618. package/packages/dapp/src/index.ts +4 -0
  619. package/packages/dapp/src/ui/components/EvaluationPanel.tsx +40 -0
  620. package/packages/dapp/src/ui/hooks/useCreditScore.ts +44 -0
  621. package/packages/dapp/src/ui/hooks/useSuperPaymaster.ts +31 -0
  622. package/packages/dapp/src/ui/index.ts +22 -0
  623. package/packages/dapp/tsconfig.json +13 -0
  624. package/packages/enduser/package.json +21 -0
  625. package/packages/enduser/src/index.ts +138 -0
  626. package/packages/enduser/tsconfig.json +8 -0
  627. package/packages/identity/package.json +22 -0
  628. package/packages/identity/src/index.ts +82 -0
  629. package/packages/identity/src/mysbt.ts +48 -0
  630. package/packages/identity/tsconfig.json +12 -0
  631. package/packages/operator/package.json +21 -0
  632. package/packages/operator/src/index.ts +172 -0
  633. package/packages/operator/tsconfig.json +8 -0
  634. package/packages/paymaster/package.json +22 -0
  635. package/packages/paymaster/src/SuperPaymaster/index.ts +168 -0
  636. package/packages/paymaster/src/V4/index.ts +123 -0
  637. package/packages/paymaster/src/index.ts +5 -0
  638. package/packages/paymaster/tsconfig.json +12 -0
  639. package/packages/sdk/README.md +150 -0
  640. package/packages/sdk/aastar/package.json +21 -0
  641. package/packages/sdk/aastar/src/index.ts +3 -0
  642. package/packages/sdk/aastar/tsconfig.json +8 -0
  643. package/packages/sdk/examples/config.json +1 -0
  644. package/packages/sdk/examples/regression_test.ts +106 -0
  645. package/packages/sdk/package.json +32 -0
  646. package/packages/sdk/src/clients/admin.ts +54 -0
  647. package/packages/sdk/src/clients/community.ts +403 -0
  648. package/packages/sdk/src/clients/endUser.ts +173 -0
  649. package/packages/sdk/src/clients/operator.ts +277 -0
  650. package/packages/sdk/src/errors/decoder.ts +48 -0
  651. package/{dist/index.js → packages/sdk/src/index.ts} +9 -1
  652. package/packages/sdk/src/utils/errorHandler.ts +167 -0
  653. package/packages/sdk/src/utils/funding.ts +280 -0
  654. package/packages/sdk/src/utils/keys.ts +159 -0
  655. package/packages/sdk/src/utils/roleData.ts +151 -0
  656. package/packages/sdk/src/utils/validation.ts +356 -0
  657. package/packages/sdk/tsconfig.json +12 -0
  658. package/packages/tokens/package.json +22 -0
  659. package/packages/tokens/src/index.ts +245 -0
  660. package/packages/tokens/tsconfig.json +12 -0
  661. package/pnpm-workspace.yaml +2 -0
  662. package/run_full_regression.sh +215 -0
  663. package/run_sdk_regression.sh +213 -0
  664. package/safe_harmonize.py +107 -0
  665. package/scripts/00_utils.ts +59 -0
  666. package/scripts/00_verify_phase1.ts +130 -0
  667. package/scripts/01_1_prep_gtoken.ts +81 -0
  668. package/scripts/01_2_register_sbt.ts +88 -0
  669. package/scripts/01_3_prep_tokens_paymaster.ts +102 -0
  670. package/scripts/01_prepare_all.ts +271 -0
  671. package/scripts/02_test_eoa.ts +50 -0
  672. package/scripts/03_test_standard_aa.ts +173 -0
  673. package/scripts/04_0_check_deploy.ts +24 -0
  674. package/scripts/04_1_check_allowance.ts +44 -0
  675. package/scripts/04_2_construct_verify.ts +96 -0
  676. package/scripts/04_3_verify_estimate.ts +66 -0
  677. package/scripts/04_4_verify_pack.ts +74 -0
  678. package/scripts/04_test_paymaster_v4.ts +217 -0
  679. package/scripts/05_1_deposit.ts +48 -0
  680. package/scripts/05_test_superpaymaster.ts +380 -0
  681. package/scripts/06_local_test_v3_admin.ts +163 -0
  682. package/scripts/06_local_test_v3_execution.ts +132 -0
  683. package/scripts/06_local_test_v3_full.ts +490 -0
  684. package/scripts/06_local_test_v3_funding.ts +124 -0
  685. package/scripts/06_local_test_v3_reputation.ts +234 -0
  686. package/scripts/07_local_test_v3_audit.ts +181 -0
  687. package/scripts/08_local_test_registry_lifecycle.ts +382 -0
  688. package/scripts/09_local_test_community_lifecycle.ts +384 -0
  689. package/scripts/09_local_test_community_simple.ts +108 -0
  690. package/scripts/09_scenario_bread_independent.ts +247 -0
  691. package/scripts/10_scenario_super_shared.ts +196 -0
  692. package/scripts/10_test_protocol_admin_full.ts +173 -0
  693. package/scripts/11_scenario_hacker_defense.ts +104 -0
  694. package/scripts/11_test_core_flows_full.ts +279 -0
  695. package/scripts/12_test_slash_mechanism.ts +205 -0
  696. package/scripts/12_test_slash_queries.ts +83 -0
  697. package/scripts/12_test_staking_exit.ts +152 -0
  698. package/scripts/12_test_staking_slash.ts +301 -0
  699. package/scripts/12_test_tier2_slash.ts +139 -0
  700. package/scripts/13_test_sbt_burn_linkage.ts +266 -0
  701. package/scripts/14_test_credit_redesign.ts +266 -0
  702. package/scripts/15_test_bls_full.ts +125 -0
  703. package/scripts/15_test_dvt_bls_full.ts +133 -0
  704. package/scripts/17_test_cross_role_collaboration.ts +95 -0
  705. package/scripts/18_sdk_e2e_verification.ts +67 -0
  706. package/scripts/18_test_dvt_sdk_flow.ts +138 -0
  707. package/scripts/18_test_lifecycle_completion.ts +144 -0
  708. package/scripts/19_sdk_experiment_runner.ts +89 -0
  709. package/scripts/19_sdk_experiment_runner.ts.backup +391 -0
  710. package/scripts/20_sdk_full_capability.ts +95 -0
  711. package/scripts/20_test_superpaymaster_new_apis.ts +193 -0
  712. package/scripts/21_test_paymasterv4_complete.ts +341 -0
  713. package/scripts/22_test_bls_signing.ts +260 -0
  714. package/scripts/23_test_middleware.ts +197 -0
  715. package/scripts/98_edge_reentrancy.ts +85 -0
  716. package/scripts/99_bug_hunting_fast.ts +216 -0
  717. package/scripts/collect_industry_baseline.ts +236 -0
  718. package/scripts/complete_env_config.ts +97 -0
  719. package/scripts/debug_account_c.ts +43 -0
  720. package/scripts/debug_bls.ts +58 -0
  721. package/scripts/debug_config_v036.ts +13 -0
  722. package/scripts/debug_contracts.ts +2 -0
  723. package/scripts/debug_env.ts +69 -0
  724. package/scripts/debug_find_paymaster.ts +98 -0
  725. package/scripts/debug_isolated_registration.ts +256 -0
  726. package/scripts/debug_paymaster_config.ts +19 -0
  727. package/scripts/debug_pim_addr.ts +23 -0
  728. package/scripts/debug_pm_status.ts +51 -0
  729. package/scripts/debug_registry.ts +39 -0
  730. package/scripts/debug_registry_setup.ts +129 -0
  731. package/scripts/debug_sanity.ts +32 -0
  732. package/scripts/debug_shared_config.ts +10 -0
  733. package/scripts/debug_token_compat.ts +51 -0
  734. package/scripts/debug_tokens.ts +41 -0
  735. package/scripts/debug_vcheck.ts +33 -0
  736. package/scripts/deploy_and_init_v3.sh +134 -0
  737. package/scripts/deploy_anvil_accounts.ts +144 -0
  738. package/scripts/deploy_paymaster_v4.ts +139 -0
  739. package/scripts/deploy_test_accounts.ts +401 -0
  740. package/scripts/experiment/stage3/SETUP_GUIDE.md +258 -0
  741. package/scripts/experiment/stage3/archived_scripts/00_token_distribution.ts +78 -0
  742. package/scripts/experiment/stage3/archived_scripts/01_dao_launch.ts +96 -0
  743. package/scripts/experiment/stage3/archived_scripts/01b_bread_launch.ts +112 -0
  744. package/scripts/experiment/stage3/archived_scripts/02_operator_setup.ts +84 -0
  745. package/scripts/experiment/stage3/archived_scripts/02b_operator_b_setup.ts +104 -0
  746. package/scripts/experiment/stage3/archived_scripts/02c_finalize_operators.ts +86 -0
  747. package/scripts/experiment/stage3/archived_scripts/02d_operator_collateral.ts +89 -0
  748. package/scripts/experiment/stage3/archived_scripts/03_user_onboarding.ts +83 -0
  749. package/scripts/experiment/stage3/archived_scripts/03b_deploy_aa_account.ts +61 -0
  750. package/scripts/experiment/stage3/archived_scripts/03c_aa_onboarding.ts +104 -0
  751. package/scripts/experiment/stage3/archived_scripts/03d_mint_points.ts +60 -0
  752. package/scripts/experiment/stage3/archived_scripts/04_benchmarking.ts +100 -0
  753. package/scripts/experiment/stage3/archived_scripts/05_multi_op_setup.ts +149 -0
  754. package/scripts/experiment/stage3/archived_scripts/README.md +58 -0
  755. package/scripts/experiment/stage3/archived_scripts/check_roles.ts +29 -0
  756. package/scripts/experiment/stage3/archived_scripts/decode_error.ts +23 -0
  757. package/scripts/experiment/stage3/archived_scripts/fund_user.ts +51 -0
  758. package/scripts/experiment/stage3/archived_scripts/gen_b_key.ts +3 -0
  759. package/scripts/experiment/stage3/archived_scripts/gen_keys.ts +4 -0
  760. package/scripts/experiment/stage3/archived_scripts/setup.ts +105 -0
  761. package/scripts/experiment/stage3/archived_scripts/test_key.ts +4 -0
  762. package/scripts/experiment/stage3/archived_scripts/verify_state.ts +59 -0
  763. package/scripts/experiment/stage3/refactored/00_token_distribution.ts +46 -0
  764. package/scripts/experiment/stage3/refactored/02_operator_setup.ts +65 -0
  765. package/scripts/experiment/stage3/refactored/03_user_onboarding.ts +68 -0
  766. package/scripts/experiment/stage3/refactored/05_multi_op_setup.ts +63 -0
  767. package/scripts/experiment/stage3/refactored/README.md +71 -0
  768. package/scripts/extract-docs.sh +72 -0
  769. package/scripts/generate_env_from_deployment.ts +109 -0
  770. package/scripts/publish_all.sh +39 -0
  771. package/scripts/quick_setup.ts +124 -0
  772. package/scripts/run_automated_experiment.sh +121 -0
  773. package/scripts/run_daily_experiment.ts +70 -0
  774. package/scripts/security_audit.sh +172 -0
  775. package/scripts/sync_config_to_env.ts +88 -0
  776. package/scripts/test_groups.ts +267 -0
  777. package/scripts/test_multi_community_anvil.ts +276 -0
  778. package/scripts/test_new_sdk_apis_sepolia.ts +115 -0
  779. package/scripts/test_sdk_join_idempotent.ts +233 -0
  780. package/scripts/test_simple_sepolia.ts +44 -0
  781. package/scripts/v2_regression/00_validate_env.ts +77 -0
  782. package/scripts/v2_regression/01_setup_and_fund.ts +132 -0
  783. package/scripts/v2_regression/02_operator_onboarding.ts +300 -0
  784. package/scripts/v2_regression/03_community_registry.ts +173 -0
  785. package/scripts/v2_regression/04_enduser_flow.ts +174 -0
  786. package/scripts/v2_regression/05_admin_audit.ts +157 -0
  787. package/scripts/v2_regression/README.md +161 -0
  788. package/scripts/validate_env.ts +112 -0
  789. package/scripts/validate_environment.ts +140 -0
  790. package/sdk_experiment_data.csv +2 -0
  791. package/surgical_harmonize.py +83 -0
  792. package/tsconfig.json +15 -0
  793. package/typedoc.json +25 -0
  794. package/dist/clients/admin.d.ts +0 -12
  795. package/dist/clients/admin.d.ts.map +0 -1
  796. package/dist/clients/admin.js +0 -20
  797. package/dist/clients/admin.js.map +0 -1
  798. package/dist/clients/community.d.ts +0 -12
  799. package/dist/clients/community.d.ts.map +0 -1
  800. package/dist/clients/community.js +0 -18
  801. package/dist/clients/community.js.map +0 -1
  802. package/dist/clients/endUser.d.ts +0 -12
  803. package/dist/clients/endUser.d.ts.map +0 -1
  804. package/dist/clients/endUser.js +0 -20
  805. package/dist/clients/endUser.js.map +0 -1
  806. package/dist/clients/operator.d.ts +0 -18
  807. package/dist/clients/operator.d.ts.map +0 -1
  808. package/dist/clients/operator.js +0 -65
  809. package/dist/clients/operator.js.map +0 -1
  810. package/dist/index.d.ts +0 -11
  811. package/dist/index.d.ts.map +0 -1
  812. package/dist/index.js.map +0 -1
Binary file
@@ -0,0 +1,82 @@
1
+ {
2
+ "workspaces": [
3
+ "packages/permissionless",
4
+ "packages/wagmi",
5
+ "packages/wagmi-demo",
6
+ "packages/mock-paymaster"
7
+ ],
8
+ "private": true,
9
+ "author": "Pimlico",
10
+ "type": "module",
11
+ "sideEffects": false,
12
+ "devDependencies": {
13
+ "@biomejs/biome": "^1.0.0",
14
+ "@changesets/changelog-git": "^0.1.14",
15
+ "@changesets/changelog-github": "^0.4.8",
16
+ "@changesets/cli": "^2.26.2",
17
+ "@permissionless/wagmi": "workspace:packages/wagmi",
18
+ "@pimlico/mock-paymaster": "workspace:packages/mock-paymaster",
19
+ "@pimlico/alto": "^0.0.19",
20
+ "@size-limit/esbuild-why": "^9.0.0",
21
+ "@size-limit/preset-small-lib": "^9.0.0",
22
+ "@tanstack/react-query": "5.45.1",
23
+ "@types/react": "^18.3.1",
24
+ "@types/react-dom": "^18.3.0",
25
+ "@vitejs/plugin-react": "^4.2.1",
26
+ "@vitest/coverage-v8": "^2.1.5",
27
+ "@wagmi/cli": "latest",
28
+ "async-mutex": "^0.5.0",
29
+ "buffer": "^6.0.3",
30
+ "bun-types": "^1.0.7",
31
+ "get-port": "^7.0.0",
32
+ "ox": "0.8.0",
33
+ "prool": "^0.0.25",
34
+ "react": "^18.3.1",
35
+ "react-dom": "^18.3.1",
36
+ "rimraf": "^6.0.1",
37
+ "simple-git-hooks": "^2.9.0",
38
+ "size-limit": "^9.0.0",
39
+ "tsc-alias": "^1.8.8",
40
+ "tslib": "^2.6.2",
41
+ "typescript": "^5.2.2",
42
+ "viem": "2.28.1",
43
+ "vite": "^5.4.10",
44
+ "vitest": "^2.1.5",
45
+ "wagmi": "^2.15.1",
46
+ "@wagmi/core": "2.17.1"
47
+ },
48
+ "description": "",
49
+ "keywords": [],
50
+ "license": "MIT",
51
+ "scripts": {
52
+ "build": "bun run build:permissionless && bun run build:wagmi && bun run build:mock-paymaster",
53
+ "build:permissionless": "bun run clean:permissionless && bun run build:permissionless:cjs && bun run build:permissionless:esm && bun run build:permissionless:types",
54
+ "build:mock-paymaster": "bun run clean:mock-paymaster && bun run build:mock-paymaster:cjs && bun run build:mock-paymaster:esm && bun run build:mock-paymaster:types",
55
+ "build:wagmi": "bun run clean:wagmi && bun run build:wagmi:esm && bun run build:wagmi:types",
56
+ "build:permissionless:cjs": "tsc --project ./tsconfig/tsconfig.permissionless.cjs.json && tsc-alias -p ./tsconfig/tsconfig.permissionless.cjs.json && printf '{\"type\":\"commonjs\"}' > ./packages/permissionless/_cjs/package.json",
57
+ "build:permissionless:esm": "tsc --project ./tsconfig/tsconfig.permissionless.esm.json && tsc-alias -p ./tsconfig/tsconfig.permissionless.esm.json && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./packages/permissionless/_esm/package.json",
58
+ "build:permissionless:types": "tsc --project ./tsconfig/tsconfig.permissionless.types.json && tsc-alias -p ./tsconfig/tsconfig.permissionless.types.json",
59
+ "build:wagmi:types": "tsc --project ./tsconfig/tsconfig.wagmi.types.json && tsc-alias -p ./tsconfig/tsconfig.wagmi.types.json",
60
+ "build:wagmi:esm": "tsc --project ./tsconfig/tsconfig.wagmi.esm.json && tsc-alias -p ./tsconfig/tsconfig.wagmi.esm.json && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./packages/wagmi/_esm/package.json",
61
+ "build:mock-paymaster:cjs": "tsc --project ./tsconfig/tsconfig.mock-paymaster.cjs.json && tsc-alias -p ./tsconfig/tsconfig.mock-paymaster.cjs.json && printf '{\"type\":\"commonjs\"}' > ./packages/mock-paymaster/_cjs/package.json",
62
+ "build:mock-paymaster:esm": "tsc --project ./tsconfig/tsconfig.mock-paymaster.esm.json && tsc-alias -p ./tsconfig/tsconfig.mock-paymaster.esm.json && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./packages/mock-paymaster/_esm/package.json",
63
+ "build:mock-paymaster:types": "tsc --project ./tsconfig/tsconfig.mock-paymaster.types.json && tsc-alias -p ./tsconfig/tsconfig.mock-paymaster.types.json",
64
+ "clean": "bun run clean:permissionless && bun run clean:wagmi && bun run clean:mock-paymaster",
65
+ "clean:permissionless": "rimraf ./packages/permissionless/_esm ./packages/permissionless/_cjs ./packages/permissionless/_types",
66
+ "clean:wagmi": "rimraf ./packages/wagmi/_esm ./packages/wagmi/_cjs ./packages/wagmi/_types",
67
+ "clean:mock-paymaster": "rimraf ./packages/mock-paymaster/_esm ./packages/mock-paymaster/_cjs ./packages/mock-paymaster/_types",
68
+ "changeset": "changeset",
69
+ "changeset:release": "bun run build && changeset publish",
70
+ "changeset:version": "changeset version && bun install --lockfile-only",
71
+ "format": "biome format . --write",
72
+ "lint": "biome check .",
73
+ "lint:fix": "bun run lint --write",
74
+ "test": "vitest dev -c ./packages/permissionless/vitest.config.ts",
75
+ "test:ci-no-coverage": "CI=true && vitest -c ./packages/permissionless/vitest.config.ts --pool=forks",
76
+ "test:ci": "CI=true && vitest -c ./packages/permissionless/vitest.config.ts --coverage --pool=forks",
77
+ "wagmi-demo": "bun run --cwd packages/wagmi-demo dev"
78
+ },
79
+ "simple-git-hooks": {
80
+ "pre-commit": "bun run format && bun run lint:fix"
81
+ }
82
+ }
@@ -0,0 +1,31 @@
1
+ # @pimlico/mock-paymaster
2
+
3
+ ## 0.0.6
4
+
5
+ ### Patch Changes
6
+
7
+ - e9b6b788aaed05236cab85ff79f2d1ddc0c81dd4: Added boost_sendUserOperation support and forward unknown requests to bundler
8
+
9
+ ## 0.0.5
10
+
11
+ ### Patch Changes
12
+
13
+ - a13670ca63d8be655c8ffe35c5cadf325d8ddc2f: Export erc20Address and sudoMintTokens
14
+
15
+ ## 0.0.4
16
+
17
+ ### Patch Changes
18
+
19
+ - e1cf6a5a70d2084d6222f646e90033cd4a6830c4: Added host input param
20
+
21
+ ## 0.0.3
22
+
23
+ ### Patch Changes
24
+
25
+ - 2289de57ebf07ed1fce806a139fd4ca5d229477c: Fixed AA34 error in pm_sponsorUserOperation due to signing wrong userOp fields
26
+
27
+ ## 0.0.2
28
+
29
+ ### Patch Changes
30
+
31
+ - acdd01a6a92ac60d00763b42c78950a0eca0d0e1: Added paymaster instance for the prool
@@ -0,0 +1,84 @@
1
+ import {
2
+ type Address,
3
+ type Hex,
4
+ concat,
5
+ getAddress,
6
+ getCreate2Address,
7
+ pad
8
+ } from "viem"
9
+ import {
10
+ entryPoint06Address,
11
+ entryPoint07Address,
12
+ entryPoint08Address
13
+ } from "viem/account-abstraction"
14
+
15
+ export const constants = {
16
+ deterministicDeployer: getAddress(
17
+ "0x4e59b44847b379578588920ca78fbf26c0b4956c"
18
+ ),
19
+ exchangeRate: 30_000_000n,
20
+ validForSeconds: 60_000,
21
+ postOpGasOverhead: 100_000n,
22
+ treasury: getAddress("0xD8Baa107006C93a030d1455A2eF43261b384F21c"),
23
+ dummySignature:
24
+ "0xcd91f19f0f19ce862d7bec7b7d9b95457145afc6f639c28fd0360f488937bfa41e6eedcd3a46054fd95fcd0e3ef6b0bc0a615c4d975eef55c8a3517257904d5b1c" as Hex,
25
+ create2Salt:
26
+ "0x0000000000000000000000000000000000000000000000000000000000000000" as Hex
27
+ }
28
+
29
+ export const getSingletonPaymaster08InitCode = (owner: Address): Hex =>
30
+ concat([
31
+ "0x6101806040525f60a052600160c081905260e052607561010052600c61012052603461014052601461016052348015610036575f5ffd5b50604051613e2a380380613e2a833981016040819052610055916102f4565b6001600160a01b0384166080528383838383838383808484846100785f83610115565b506100a37f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0882610115565b505f925050505b8151811015610102576001805f8484815181106100c9576100c961036d565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016100aa565b5050505050505050505050505050610381565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166101b5575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561016d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101b8565b505f5b92915050565b5f6001600160a01b0382166101b8565b6101d7816101be565b81146101e1575f5ffd5b50565b80516101b8816101ce565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b0382111715610228576102286101ef565b6040525050565b5f61023960405190565b90506102458282610203565b919050565b5f6001600160401b03821115610262576102626101ef565b5060209081020190565b5f61027e6102798461024a565b61022f565b8381529050602080820190840283018581111561029c5761029c5f5ffd5b835b818110156102c057806102b188826101e4565b8452506020928301920161029e565b5050509392505050565b5f82601f8301126102dc576102dc5f5ffd5b81516102ec84826020860161026c565b949350505050565b5f5f5f5f6080858703121561030a5761030a5f5ffd5b5f61031587876101e4565b9450506020610326878288016101e4565b9350506040610337878288016101e4565b92505060608501516001600160401b03811115610355576103555f5ffd5b610361878288016102ca565b91505092959194509250565b634e487b7160e01b5f52603260045260245ffd5b60805160a05160c05160e051610100516101205161014051610160516139cc61045e5f395f50505f8181610b1c0152818161146b015261168801525f8181610a440152611e3f01525f8181610a9e0152611ff701525f8181610a6501528181610abf0152610afa01525f81816114ef015281816115c401526118c601525f8181610a10015281816115200152818161158501528181611a4f0152611b6001525f818161040b015281816106c3015281816108be01528181610e5b01528181610f1701528181610fa20152818161105801526113f901526139cc5ff3fe60806040526004361061018e575f3560e01c80637c627b21116100dc578063c23a5cea11610087578063d547741f11610062578063d547741f14610489578063eb12d61e146104a8578063ec87621c146104c7578063feaf513e146104fa575f5ffd5b8063c23a5cea1461044e578063c399ec881461046d578063d0e30db014610481575f5ffd5b8063a217fddf116100b7578063a217fddf146103e7578063b0d691fe146103fa578063bb9fe6bf1461043a575f5ffd5b80637c627b211461035a5780637dd345cb1461037957806391d1485414610398575f5ffd5b806336568abe1161013c5780635525dcfb116101175780635525dcfb146102ee57806363b241aa1461030d578063736c0d5b1461032c575f5ffd5b806336568abe146102745780634031c20e1461029357806352b7512c146102c1575f5ffd5b8063205c28781161016c578063205c2878146101fb578063248a9ca31461021a5780632f2ff15d14610255575f5ffd5b806301ffc9a7146101925780630396cb60146101c75780630e316ab7146101dc575b5f5ffd5b34801561019d575f5ffd5b506101b16101ac366004612b49565b61051e565b6040516101be9190612b79565b60405180910390f35b6101da6101d5366004612b9e565b6105b6565b005b3480156101e7575f5ffd5b506101da6101f6366004612bed565b61072b565b348015610206575f5ffd5b506101da610215366004612c1c565b610877565b348015610225575f5ffd5b50610248610234366004612c56565b5f9081526020819052604090206001015490565b6040516101be9190612c7a565b348015610260575f5ffd5b506101da61026f366004612c88565b610927565b34801561027f575f5ffd5b506101da61028e366004612c88565b610951565b34801561029e575f5ffd5b506101b16102ad366004612bed565b60026020525f908152604090205460ff1681565b3480156102cc575f5ffd5b506102e06102db366004612cd2565b6109af565b6040516101be929190612d92565b3480156102f9575f5ffd5b50610248610308366004612db2565b6109d1565b348015610318575f5ffd5b50610248610327366004612e26565b610a0d565b348015610337575f5ffd5b506101b1610346366004612bed565b60016020525f908152604090205460ff1681565b348015610365575f5ffd5b506101da610374366004612ed5565b610bc1565b348015610384575f5ffd5b506101da610393366004612fad565b610bdd565b3480156103a3575f5ffd5b506101b16103b2366004612c88565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156103f2575f5ffd5b506102485f81565b348015610405575f5ffd5b5061042d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be9190613053565b348015610445575f5ffd5b506101da610d92565b348015610459575f5ffd5b506101da610468366004612bed565b610ed0565b348015610478575f5ffd5b50610248610f63565b6101da61101b565b348015610494575f5ffd5b506101da6104a3366004612c88565b6110b8565b3480156104b3575f5ffd5b506101da6104c2366004612bed565b6110dc565b3480156104d2575f5ffd5b506102487f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b348015610505575f5ffd5b50610248610514366004613084565b5f95945050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105b057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161580156106225750335f9081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b1561068657337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b60405180910390fd5b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630396cb609034906106fa90859060040161311a565b5f604051808303818588803b158015610711575f5ffd5b505af1158015610723573d5f5f3e3d5ffd5b505050505050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161580156107975750335f9081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156107f257337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b9061086c908390613128565b60405180910390a150565b5f61088181611222565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063205c2878906108f590869086906004016130f3565b5f604051808303815f87803b15801561090c575f5ffd5b505af115801561091e573d5f5f3e3d5ffd5b50505050505050565b5f8281526020819052604090206001015461094181611222565b61094b838361122f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109a0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109aa8282611328565b505050565b60605f6109ba6113e1565b6109c5858585611452565b91509150935093915050565b5f670de0b6b3a7640000826109e68587613163565b6109f09088613182565b6109fa9190613163565b610a0491906131c2565b95945050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000060ff168360ff1603610a9857610a9182610a897f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006131d5565b60ff16611613565b90506105b0565b5f610ae37f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006131d5565b90505f610af360e08501856131f2565b610b4060ff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000613182565b818110610b4f57610b4f61326b565b919091013560f81c9150506001811615156002821615156004831615801590610b8057610b7d6010866131d5565b94505b8215610b9457610b916010866131d5565b94505b8115610ba857610ba56014866131d5565b94505b610bb5878660ff16611613565b98975050505050505050565b610bc96113e1565b610bd6858585858561172d565b5050505050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610c495750335f9081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610ca457337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b5f5b8281101561094b578160025f868685818110610cc457610cc461326b565b9050602002016020810190610cd99190612bed565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790557f8ff8c5211f68ef53b4bdd15ab2ea6d87be8a3dbf58865bd8325c984057e4fcb4848483818110610d5e57610d5e61326b565b9050602002016020810190610d739190612bed565b83604051610d82929190613298565b60405180910390a1600101610ca6565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610dfe5750335f9081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610e5957337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610ebe575f5ffd5b505af115801561094b573d5f5f3e3d5ffd5b5f610eda81611222565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90610f4c908590600401613128565b5f604051808303815f87803b158015610711575f5ffd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610fd7903090600401613128565b602060405180830381865afa158015610ff2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101691906132be565b905090565b6040517fb760faf900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b760faf990349061108f903090600401613128565b5f604051808303818588803b1580156110a6575f5ffd5b505af1158015610bd6573d5f5f3e3d5ffd5b5f828152602081905260409020600101546110d281611222565b61094b8383611328565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161580156111485750335f9081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156111a357337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602081905260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055517f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249061086c908390613128565b61122c8133611915565b50565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16611321575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556112bf3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105b0565b505f6105b0565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615611321575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105b0565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067d906132dc565b565b60605f8080368161148f61146960e08b018b6131f2565b7f0000000000000000000000000000000000000000000000000000000000000000611983565b9350935093509350821580156114b45750325f9081526002602052604090205460ff16155b156114ed57326040517f55d3ab4600000000000000000000000000000000000000000000000000000000815260040161067d9190613128565b7f000000000000000000000000000000000000000000000000000000000000000060ff168460ff161415801561154957507f000000000000000000000000000000000000000000000000000000000000000060ff168460ff1614155b15611580576040517f654a4f2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60605f7f000000000000000000000000000000000000000000000000000000000000000060ff168660ff16036115c2576115bc8b85858d611a2d565b90925090505b7f000000000000000000000000000000000000000000000000000000000000000060ff168660ff1603611603576115fd868c86868e8e611bbb565b90925090505b909a909950975050505050505050565b5f8083356020850135608086013560a087013560c088013561163860408a018a6131f2565b604051611646929190613334565b60405190819003902061165c60608b018b6131f2565b60405161166a929190613334565b60405190819003902061168060e08c018c6131f2565b5f906116ac8d7f0000000000000000000000000000000000000000000000000000000000000000613182565b926116b993929190613340565b6040516116c7929190613334565b6040519081900381206116e3989796959493929160200161336d565b604051602081830303815290604052805190602001209050804660405160200161170e9291906133e4565b6040516020818303038152906040528051906020012091505092915050565b5f6117388585611cec565b90505f5f6117468286613182565b90505f8361018001516fffffffffffffffffffffffffffffffff166117878386608001516fffffffffffffffffffffffffffffffff168888606001516109d1565b6117919190613182565b90505f84610120015182116117b657818561012001516117b191906133f2565b6117c6565b6101208501516117c690836133f2565b9050611808856020015186610120015184116117e65786604001516117e9565b86515b87610120015185116117fc578751611802565b87604001515b84611ddf565b5f670de0b6b3a764000086606001518761010001516118279190613163565b61183191906131c2565b6101a087015190915073ffffffffffffffffffffffffffffffffffffffff161580159061185d57508281115b1561188457602086015186516101a088015161188492919061187f87866133f2565b611ddf565b855f015173ffffffffffffffffffffffffffffffffffffffff168660a001517f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000008960200151878b60600151604051611900949392919061340e565b60405180910390a35050505050505050505050565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661197f5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161067d9291906130f3565b5050565b5f803681611992856001613182565b8610156119cb576040517fcc32193e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8787878181106119de576119de61326b565b919091013560f881901c925060018084161515925060f99190911c9036905f908c908c90611a0d908d90613182565b611a18928290613340565b939d949c509a50919850919650505050505050565b60605f5f5f365f611a3e8989611e37565b93509350935093505f611aa6611a747f00000000000000000000000000000000000000000000000000000000000000008d610a0d565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b90505f611ae88285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611f3e92505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205491925060ff90911690611b2282158989611f66565b90508d3573ffffffffffffffffffffffffffffffffffffffff168b7f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000005f5f5f604051611b929493929190613457565b60405180910390a360408051602081019091525f81529e909d509b505050505050505050505050565b60605f5f611bc98787611f9c565b90505f611bd9611a748b8b610a0d565b90505f611bea828460c00151611f3e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260016020908152604080832054918701519087015193945060ff90911692611c2f91841591611f66565b90505f611c3e8d8b888c6126f9565b905082611c535796509450611ce19350505050565b5f611c648a5f5f8a60a001516109d1565b9050808761010001511115611ca5576040517f79183c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010087015115611cd757611cd787608001518f5f016020810190611cca9190612bed565b89516101008b0151611ddf565b5096509450505050505b965096945050505050565b611dcc604051806101c001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f6fffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6fffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b611dd882840184613664565b9392505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f51141716611e2a57637939f4245f526004601cfd5b5f60605260405250505050565b5f80368160ff7f000000000000000000000000000000000000000000000000000000000000000016851015611e98576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611ea6600682888a613340565b611eaf91613683565b60d01c90505f611ec3600c6006898b613340565b611ecc91613683565b60d01c9050365f611ee089600c818d613340565b909250905060408114801590611ef7575060418114155b15611f2e576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9299919850965090945092505050565b5f5f5f5f611f4c8686612886565b925092509250611f5c82826128cf565b5090949350505050565b5f60d08265ffffffffffff16901b60a08465ffffffffffff16901b85611f8c575f611f8f565b60015b60ff161717949350505050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260e081018290526101008101829052610120810182905261014081019190915260ff7f000000000000000000000000000000000000000000000000000000000000000016821015612050576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80848482816120625761206261326b565b919091013560f81c9150506001808216151590600283161515906004841615159061208d90866136ee565b9450876fffffffffffffffffffffffffffffffff8616886120af8860066136ee565b6fffffffffffffffffffffffffffffffff16926120ce93929190613340565b6120d791613683565b60d01c60208701526120ea6006866136ee565b9450876fffffffffffffffffffffffffffffffff86168861210c8860066136ee565b6fffffffffffffffffffffffffffffffff169261212b93929190613340565b61213491613683565b60d01c60408701526121476006866136ee565b9450876fffffffffffffffffffffffffffffffff8616886121698860146136ee565b6fffffffffffffffffffffffffffffffff169261218893929190613340565b6121919161371a565b60601c60808701526121a46014866136ee565b9450876fffffffffffffffffffffffffffffffff8616886121c68860106136ee565b6fffffffffffffffffffffffffffffffff16926121e593929190613340565b6121ee91613778565b60801c60608701526122016010866136ee565b9450876fffffffffffffffffffffffffffffffff8616886122238860206136ee565b6fffffffffffffffffffffffffffffffff169261224293929190613340565b61224b916137d6565b60a087015261225b6020866136ee565b9450876fffffffffffffffffffffffffffffffff86168861227d8860106136ee565b6fffffffffffffffffffffffffffffffff169261229c93929190613340565b6122a591613778565b60801c60e08701526122b86010866136ee565b9450876fffffffffffffffffffffffffffffffff8616886122da8860146136ee565b6fffffffffffffffffffffffffffffffff16926122f993929190613340565b6123029161371a565b60601c86526123126014866136ee565b5f610100880152945080156123d65761232c8560106136ee565b6fffffffffffffffffffffffffffffffff16871015612377576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff8616886123978860106136ee565b6fffffffffffffffffffffffffffffffff16926123b693929190613340565b6123bf91613778565b60801c6101008701526123d36010866136ee565b94505b5f6101208701528215612498576123ee8560106136ee565b6fffffffffffffffffffffffffffffffff16871015612439576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff8616886124598860106136ee565b6fffffffffffffffffffffffffffffffff169261247893929190613340565b61248191613778565b60801c6101208701526124956010866136ee565b94505b5f610140870152811561255a576124b08560146136ee565b6fffffffffffffffffffffffffffffffff168710156124fb576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff86168861251b8860146136ee565b6fffffffffffffffffffffffffffffffff169261253a93929190613340565b6125439161371a565b60601c6101408701526125576014866136ee565b94505b612578876fffffffffffffffffffffffffffffffff8716818b613340565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050505060c0870152608086015173ffffffffffffffffffffffffffffffffffffffff16612601576040517f33c1dac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560a001515f0361263e576040517f5b33c69600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015612664575061014086015173ffffffffffffffffffffffffffffffffffffffff16155b1561269b576040517f497189f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560c00151516040141580156126b757508560c0015151604114155b156126ee576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505092915050565b60605f612705866129d0565b61270e876129ff565b6127189190613182565b90505f8460e001516fffffffffffffffffffffffffffffffff1661273b88612a1c565b6127499060a08a0135613182565b6127539190613182565b604080516101c081019091529091508061277060208a018a612bed565b73ffffffffffffffffffffffffffffffffffffffff168152602001866080015173ffffffffffffffffffffffffffffffffffffffff168152602001865f015173ffffffffffffffffffffffffffffffffffffffff1681526020018660a00151815260200186606001516fffffffffffffffffffffffffffffffff1681526020018781526020015f81526020015f815260200185815260200186610100015181526020018381526020018281526020018661012001516fffffffffffffffffffffffffffffffff16815260200186610140015173ffffffffffffffffffffffffffffffffffffffff1681525060405160200161286b919061393f565b60405160208183030381529060405292505050949350505050565b5f5f5f83516041036128bd576020840151604085015160608601515f1a6128af88828585612a2b565b9550955095505050506128c8565b505081515f91506002905b9250925092565b5f8260038111156128e2576128e261394e565b036128eb575050565b60018260038111156128ff576128ff61394e565b03612936576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600282600381111561294a5761294a61394e565b03612983576040517ffce698f700000000000000000000000000000000000000000000000000000000815261067d908290600401612c7a565b60038260038111156129975761299761394e565b0361197f57806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161067d9190612c7a565b5f6129de60e08301836131f2565b6129ed91603491602491613340565b6129f691613778565b60801c92915050565b5f6fffffffffffffffffffffffffffffffff6080830135166105b0565b5f6105b0826080013560801c90565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612a6457505f91506003905082612b06565b5f6001888888886040515f8152602001604052604051612a87949392919061397b565b6020604051602081039080840390855afa158015612aa7573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612afd57505f925060019150829050612b06565b92505f91508190505b9450945094915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461122c575f5ffd5b80356105b081612b10565b5f60208284031215612b5c57612b5c5f5ffd5b5f612b678484612b3e565b949350505050565b8015155b82525050565b602081016105b08284612b6f565b63ffffffff8116612b34565b80356105b081612b87565b5f60208284031215612bb157612bb15f5ffd5b5f612b678484612b93565b5f73ffffffffffffffffffffffffffffffffffffffff82166105b0565b612b3481612bbc565b80356105b081612bd9565b5f60208284031215612c0057612c005f5ffd5b5f612b678484612be2565b80612b34565b80356105b081612c0b565b5f5f60408385031215612c3057612c305f5ffd5b5f612c3b8585612be2565b9250506020612c4c85828601612c11565b9150509250929050565b5f60208284031215612c6957612c695f5ffd5b5f612b678484612c11565b80612b73565b602081016105b08284612c74565b5f5f60408385031215612c9c57612c9c5f5ffd5b5f612ca78585612c11565b9250506020612c4c85828601612be2565b5f6101208284031215612ccc57612ccc5f5ffd5b50919050565b5f5f5f60608486031215612ce757612ce75f5ffd5b833567ffffffffffffffff811115612d0057612d005f5ffd5b612d0c86828701612cb8565b9350506020612d1d86828701612c11565b9250506040612d2e86828701612c11565b9150509250925092565b8281835e505f910152565b5f612d4c825190565b808452602084019350612d63818560208601612d38565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b60408082528101612da38185612d43565b9050611dd86020830184612c74565b5f5f5f5f60808587031215612dc857612dc85f5ffd5b5f612dd38787612c11565b9450506020612de487828801612c11565b9350506040612df587828801612c11565b9250506060612e0687828801612c11565b91505092959194509250565b60ff8116612b34565b80356105b081612e12565b5f5f60408385031215612e3a57612e3a5f5ffd5b5f612e458585612e1b565b925050602083013567ffffffffffffffff811115612e6457612e645f5ffd5b612c4c85828601612cb8565b6003811061122c575f5ffd5b80356105b081612e70565b5f5f83601f840112612e9a57612e9a5f5ffd5b50813567ffffffffffffffff811115612eb457612eb45f5ffd5b602083019150836001820283011115612ece57612ece5f5ffd5b9250929050565b5f5f5f5f5f60808688031215612eec57612eec5f5ffd5b5f612ef78888612e7c565b955050602086013567ffffffffffffffff811115612f1657612f165f5ffd5b612f2288828901612e87565b94509450506040612f3588828901612c11565b9250506060612f4688828901612c11565b9150509295509295909350565b5f5f83601f840112612f6657612f665f5ffd5b50813567ffffffffffffffff811115612f8057612f805f5ffd5b602083019150836020820283011115612ece57612ece5f5ffd5b801515612b34565b80356105b081612f9a565b5f5f5f60408486031215612fc257612fc25f5ffd5b833567ffffffffffffffff811115612fdb57612fdb5f5ffd5b612fe786828701612f53565b93509350506020612d2e86828701612fa2565b5f6105b073ffffffffffffffffffffffffffffffffffffffff831661301d565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b5f6105b082612ffa565b5f6105b082613036565b612b7381613040565b602081016105b0828461304a565b6fffffffffffffffffffffffffffffffff8116612b34565b80356105b081613061565b5f5f5f5f5f60a0868803121561309b5761309b5f5ffd5b5f6130a68888612c11565b95505060206130b788828901612c11565b94505060406130c888828901613079565b93505060606130d988828901612c11565b9250506080612f4688828901612c11565b612b7381612bbc565b6040810161310182856130ea565b611dd86020830184612c74565b63ffffffff8116612b73565b602081016105b0828461310e565b602081016105b082846130ea565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810280821583820485141761317b5761317b613136565b5092915050565b808201808211156105b0576105b0613136565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826131d0576131d0613195565b500490565b60ff9182169190811690828201908111156105b0576105b0613136565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe136859003018112613229576132295f5ffd5b80840192508235915067ffffffffffffffff821115613249576132495f5ffd5b602083019250600182023603831315613263576132635f5ffd5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081016132a682856130ea565b611dd86020830184612b6f565b80516105b081612c0b565b5f602082840312156132d1576132d15f5ffd5b5f612b6784846132b3565b602080825281016105b081601581527f53656e646572206e6f7420456e747279506f696e740000000000000000000000602082015260400190565b82818337505f910152565b5f61332e838584613317565b50500190565b5f612b67828486613322565b5f5f85851115613351576133515f5ffd5b83861115613360576133605f5ffd5b5050820193919092039150565b610100810161337c828b6130ea565b613389602083018a612c74565b6133966040830189612c74565b6133a36060830188612c74565b6133b06080830187612c74565b6133bd60a0830186612c74565b6133ca60c0830185612c74565b6133d760e0830184612c74565b9998505050505050505050565b604081016131018285612c74565b818103818111156105b0576105b0613136565b60ff8116612b73565b6080810161341c8287613405565b61342960208301866130ea565b6134366040830185612c74565b610a046060830184612c74565b5f6105b061301a8381565b612b7381613443565b608081016134658287613405565b61347260208301866130ea565b61347f604083018561344e565b610a04606083018461344e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156134fd576134fd61348c565b6040525050565b5f61350e60405190565b905061351a82826134b9565b919050565b5f6101c08284031215613533576135335f5ffd5b61353e6101c0613504565b90505f61354b8484612be2565b825250602061355c84848301612be2565b602083015250604061357084828501612be2565b604083015250606061358484828501612c11565b606083015250608061359884828501613079565b60808301525060a06135ac84828501612c11565b60a08301525060c06135c084828501612c11565b60c08301525060e06135d484828501612c11565b60e0830152506101006135e984828501612c11565b610100830152506101206135ff84828501612c11565b6101208301525061014061361584828501612c11565b6101408301525061016061362b84828501612c11565b6101608301525061018061364184828501613079565b610180830152506101a061365784828501612be2565b6101a08301525092915050565b5f6101c08284031215613678576136785f5ffd5b5f612b67848461351f565b80357fffffffffffff000000000000000000000000000000000000000000000000000016828260068210156136e6576136e17fffffffffffff0000000000000000000000000000000000000000000000000000836006036008021b90565b831692505b505092915050565b6fffffffffffffffffffffffffffffffff9182169190811690828201908111156105b0576105b0613136565b80357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016828260148210156136e6576136e17fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008021b90565b80357fffffffffffffffffffffffffffffffff0000000000000000000000000000000016828260108210156136e6576136e17fffffffffffffffffffffffffffffffff00000000000000000000000000000000836010036008021b90565b8035828260208210156136e6576136e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008021b90565b6fffffffffffffffffffffffffffffffff8116612b73565b80516101c083019061383c84826130ea565b50602082015161384f60208501826130ea565b50604082015161386260408501826130ea565b5060608201516138756060850182612c74565b5060808201516138886080850182613812565b5060a082015161389b60a0850182612c74565b5060c08201516138ae60c0850182612c74565b5060e08201516138c160e0850182612c74565b506101008201516138d6610100850182612c74565b506101208201516138eb610120850182612c74565b50610140820151613900610140850182612c74565b50610160820151613915610160850182612c74565b5061018082015161392a610180850182613812565b506101a082015161094b6101a08501826130ea565b6101c081016105b0828461382a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b608081016139898287612c74565b613429602083018661340556fea26469706673582212208a15a0763d0e9e3763499efb24664c89aecc3b170e7b24ffc642014b6ca6baa764736f6c634300081c0033",
32
+ pad(entryPoint08Address), // entrypoint
33
+ pad(owner), // owner
34
+ pad(owner), // manager
35
+ // couldn't get encodeAbiParameters with type address[] to work
36
+ "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001",
37
+ pad(owner) // signer
38
+ ])
39
+
40
+ export const getSingletonPaymaster07InitCode = (owner: Address): Hex =>
41
+ concat([
42
+ "0x610180604052600060a052600160c081905260e052607561010052600c6101205260346101405260146101605234801561003857600080fd5b50604051613f87380380613f87833981016040819052610057916102fe565b6001600160a01b0384166080528383838380848484610077600083610112565b506100a27f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0882610112565b5050505060005b81518110156101035760018060008484815181106100c9576100c961037c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016100a9565b50505050505050505050610392565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166101b4576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561016c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101b8565b5060005b92915050565b60006001600160a01b0382166101b8565b6101d8816101be565b81146101e357600080fd5b50565b80516101b8816101cf565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171561022c5761022c6101f1565b6040525050565b600061023e60405190565b905061024a8282610207565b919050565b60006001600160401b03821115610268576102686101f1565b5060209081020190565b60006102856102808461024f565b610233565b838152905060208082019084028301858111156102a4576102a4600080fd5b835b818110156102c857806102b988826101e6565b845250602092830192016102a6565b5050509392505050565b600082601f8301126102e6576102e6600080fd5b81516102f6848260208601610272565b949350505050565b6000806000806080858703121561031757610317600080fd5b600061032387876101e6565b9450506020610334878288016101e6565b9350506040610345878288016101e6565b92505060608501516001600160401b0381111561036457610364600080fd5b610370878288016102d2565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e05161010051610120516101405161016051613b0e6104796000396000505060008181610b520152818161154a015261176b015260008181610a780152611ef4015260008181610ad301526120b4015260008181610a9901528181610af40152610b300152600081816115cf015281816116a501526119cd015260008181610a44015281816116000152818161166601528181611b5e0152611c73015260008181610429015281816106e6015281816108e901528181610e9801528181610f5a01528181610fe9015281816110a101526114d70152613b0e6000f3fe6080604052600436106101965760003560e01c80637c627b21116100e1578063c23a5cea1161008a578063d547741f11610064578063d547741f146104aa578063eb12d61e146104ca578063ec87621c146104ea578063feaf513e1461051e57600080fd5b8063c23a5cea1461046d578063c399ec881461048d578063d0e30db0146104a257600080fd5b8063a217fddf116100bb578063a217fddf14610402578063b0d691fe14610417578063bb9fe6bf1461045857600080fd5b80637c627b21146103715780637dd345cb1461039157806391d14854146103b157600080fd5b806336568abe116101435780635525dcfb1161011d5780635525dcfb1461030157806363b241aa14610321578063736c0d5b1461034157600080fd5b806336568abe146102835780634031c20e146102a357806352b7512c146102d357600080fd5b8063205c287811610174578063205c287814610206578063248a9ca3146102265780632f2ff15d1461026357600080fd5b806301ffc9a71461019b5780630396cb60146101d15780630e316ab7146101e6575b600080fd5b3480156101a757600080fd5b506101bb6101b6366004612c22565b61053e565b6040516101c89190612c55565b60405180910390f35b6101e46101df366004612c7a565b6105d7565b005b3480156101f257600080fd5b506101e4610201366004612ccd565b610752565b34801561021257600080fd5b506101e4610221366004612cff565b6108a1565b34801561023257600080fd5b50610256610241366004612d3c565b60009081526020819052604090206001015490565b6040516101c89190612d63565b34801561026f57600080fd5b506101e461027e366004612d71565b610957565b34801561028f57600080fd5b506101e461029e366004612d71565b610982565b3480156102af57600080fd5b506101bb6102be366004612ccd565b60026020526000908152604090205460ff1681565b3480156102df57600080fd5b506102f36102ee366004612dc0565b6109e0565b6040516101c8929190612e9e565b34801561030d57600080fd5b5061025661031c366004612ebe565b610a03565b34801561032d57600080fd5b5061025661033c366004612f36565b610a40565b34801561034d57600080fd5b506101bb61035c366004612ccd565b60016020526000908152604090205460ff1681565b34801561037d57600080fd5b506101e461038c366004612fee565b610bf7565b34801561039d57600080fd5b506101e46103ac3660046130d0565b610c13565b3480156103bd57600080fd5b506101bb6103cc366004612d71565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561040e57600080fd5b50610256600081565b34801561042357600080fd5b5061044b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101c8919061317d565b34801561046457600080fd5b506101e4610dcd565b34801561047957600080fd5b506101e4610488366004612ccd565b610f12565b34801561049957600080fd5b50610256610fa9565b6101e4611064565b3480156104b657600080fd5b506101e46104c5366004612d71565b611105565b3480156104d657600080fd5b506101e46104e5366004612ccd565b61112a565b3480156104f657600080fd5b506102567f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b34801561052a57600080fd5b506102566105393660046131ae565b611273565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105d157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615801561064557503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156106a957337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b60405180910390fd5b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630396cb6090349061071d908590600401613249565b6000604051808303818588803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161580156107c057503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b1561081b57337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b90610896908390613257565b60405180910390a150565b60006108ac816112fb565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063205c2878906109209086908690600401613222565b600060405180830381600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b50505050505050565b600082815260208190526040902060010154610972816112fb565b61097c8383611308565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109d1576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109db8282611404565b505050565b606060006109ec6114bf565b6109f7858585611530565b91509150935093915050565b6000670de0b6b3a764000082610a198587613294565b610a2390886132b3565b610a2d9190613294565b610a3791906132f5565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000060ff168360ff1603610acc57610ac582610abd7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613309565b60ff166116f4565b90506105d1565b6000610b187f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613309565b90506000610b2960e0850185613326565b610b7660ff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000006132b3565b818110610b8557610b856133a3565b919091013560f81c9150506001811615156002821615156004831615801590610bb657610bb3601086613309565b94505b8215610bca57610bc7601086613309565b94505b8115610bde57610bdb601486613309565b94505b610beb878660ff166116f4565b98975050505050505050565b610bff6114bf565b610c0c8585858585611810565b5050505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610c8157503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610cdc57337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b60005b8281101561097c578160026000868685818110610cfe57610cfe6133a3565b9050602002016020810190610d139190612ccd565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790557f8ff8c5211f68ef53b4bdd15ab2ea6d87be8a3dbf58865bd8325c984057e4fcb4848483818110610d9957610d996133a3565b9050602002016020810190610dae9190612ccd565b83604051610dbd9291906133d2565b60405180910390a1600101610cdf565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610e3b57503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610e9657337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610efe57600080fd5b505af115801561097c573d6000803e3d6000fd5b6000610f1d816112fb565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90610f8f908590600401613257565b600060405180830381600087803b15801561073657600080fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a082319061101e903090600401613257565b602060405180830381865afa15801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f91906133f8565b905090565b6040517fb760faf900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b760faf99034906110d8903090600401613257565b6000604051808303818588803b1580156110f157600080fd5b505af1158015610c0c573d6000803e3d6000fd5b600082815260208190526040902060010154611120816112fb565b61097c8383611404565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615801561119857503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156111f357337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602081905260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055517f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f2490610896908390613257565b600080806fffffffffffffffffffffffffffffffff8616611294888a6132f5565b61129e91906132b3565b9050848111156112b5576112b28582613419565b91505b6000828511156112e4576064600a6112cd8588613419565b6112d79190613294565b6112e191906132f5565b90505b6112ee8882613294565b9998505050505050505050565b6113058133611a1c565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff166113fc5760008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561139a3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105d1565b5060006105d1565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16156113fc5760008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105d1565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461152e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a09061342c565b565b606060008080368161156e61154860e08b018b613326565b7f0000000000000000000000000000000000000000000000000000000000000000611a8b565b93509350935093508215801561159457503260009081526002602052604090205460ff16155b156115cd57326040517f55d3ab460000000000000000000000000000000000000000000000000000000081526004016106a09190613257565b7f000000000000000000000000000000000000000000000000000000000000000060ff168460ff161415801561162957507f000000000000000000000000000000000000000000000000000000000000000060ff168460ff1614155b15611660576040517f654a4f2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060007f000000000000000000000000000000000000000000000000000000000000000060ff168660ff16036116a35761169d8b85858d611b38565b90925090505b7f000000000000000000000000000000000000000000000000000000000000000060ff168660ff16036116e4576116de868c86868e8e611cd1565b90925090505b909a909950975050505050505050565b60008083356020850135608086013560a087013560c088013561171a60408a018a613326565b604051611728929190613486565b60405190819003902061173e60608b018b613326565b60405161174c929190613486565b60405190819003902061176260e08c018c613326565b60009061178f8d7f00000000000000000000000000000000000000000000000000000000000000006132b3565b9261179c93929190613493565b6040516117aa929190613486565b6040519081900381206117c698979695949392916020016134c3565b60405160208183030381529060405280519060200120905080466040516020016117f192919061352d565b6040516020818303038152906040528051906020012091505092915050565b600061181c8585611e0a565b9050600061183b84848460800151856101600151866101400151611273565b9050600061184982866132b3565b905060008361018001516fffffffffffffffffffffffffffffffff1661188b8386608001516fffffffffffffffffffffffffffffffff16888860600151610a03565b61189591906132b3565b9050600084610120015182116118bb57818561012001516118b69190613419565b6118cb565b6101208501516118cb9083613419565b905061190d856020015186610120015184116118eb5786604001516118ee565b86515b8761012001518511611901578751611907565b87604001515b84611e8e565b6000670de0b6b3a7640000866060015187610100015161192d9190613294565b61193791906132f5565b6101a087015190915073ffffffffffffffffffffffffffffffffffffffff161580159061196357508281115b1561198a57602086015186516101a088015161198a9291906119858786613419565b611e8e565b856000015173ffffffffffffffffffffffffffffffffffffffff168660a001517f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000008960200151878b60600151604051611a079493929190613544565b60405180910390a35050505050505050505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611a875780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016106a0929190613222565b5050565b6000803681611a9b8560016132b3565b861015611ad4576040517fcc32193e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000878787818110611ae857611ae86133a3565b919091013560f881901c925060018084161515925060f99190911c9036906000908c908c90611b18908d906132b3565b611b23928290613493565b939d949c509a50919850919650505050505050565b60606000806000366000611b4c8989611eeb565b93509350935093506000611bb6611b837f00000000000000000000000000000000000000000000000000000000000000008d610a40565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b90506000611bfa8285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ff692505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205491925060ff90911690611c3582158989612020565b90508d3573ffffffffffffffffffffffffffffffffffffffff168b7f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000006000806000604051611ca7949392919061358e565b60405180910390a36040805160208101909152600081529e909d509b505050505050505050505050565b6060600080611ce08787612058565b90506000611cf1611b838b8b610a40565b90506000611d03828460c00151611ff6565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832054918701519087015193945060ff90911692611d4991841591612020565b90506000611d598d8b888c6127bc565b905082611d6e5796509450611dff9350505050565b6000611d818a6000808a60a00151610a03565b9050808761010001511115611dc2576040517f79183c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010087015115611df557611df587608001518f6000016020810190611de89190612ccd565b89516101008b0151611e8e565b5096509450505050505b965096945050505050565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810191909152611e87828401846137a1565b9392505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d156001600051141716611edd57637939f4246000526004601cfd5b600060605260405250505050565b600080368160ff7f000000000000000000000000000000000000000000000000000000000000000016851015611f4d576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611f5c600682888a613493565b611f65916137c3565b60d01c90506000611f7a600c6006898b613493565b611f83916137c3565b60d01c9050366000611f9889600c818d613493565b909250905060408114801590611faf575060418114155b15611fe6576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9299919850965090945092505050565b600080600080612006868661294e565b925092509250612016828261299b565b5090949350505050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561204857600061204b565b60015b60ff161717949350505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260e081018290526101008101829052610120810182905261014081019190915260ff7f00000000000000000000000000000000000000000000000000000000000000001682101561210d576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008084848281612120576121206133a3565b919091013560f81c9150506001808216151590600283161515906004841615159061214b908661382e565b9450876fffffffffffffffffffffffffffffffff86168861216d88600661382e565b6fffffffffffffffffffffffffffffffff169261218c93929190613493565b612195916137c3565b60d01c60208701526121a860068661382e565b9450876fffffffffffffffffffffffffffffffff8616886121ca88600661382e565b6fffffffffffffffffffffffffffffffff16926121e993929190613493565b6121f2916137c3565b60d01c604087015261220560068661382e565b9450876fffffffffffffffffffffffffffffffff86168861222788601461382e565b6fffffffffffffffffffffffffffffffff169261224693929190613493565b61224f9161385a565b60601c608087015261226260148661382e565b9450876fffffffffffffffffffffffffffffffff86168861228488601061382e565b6fffffffffffffffffffffffffffffffff16926122a393929190613493565b6122ac916138b8565b60801c60608701526122bf60108661382e565b9450876fffffffffffffffffffffffffffffffff8616886122e188602061382e565b6fffffffffffffffffffffffffffffffff169261230093929190613493565b61230991613916565b60a087015261231960208661382e565b9450876fffffffffffffffffffffffffffffffff86168861233b88601061382e565b6fffffffffffffffffffffffffffffffff169261235a93929190613493565b612363916138b8565b60801c60e087015261237660108661382e565b9450876fffffffffffffffffffffffffffffffff86168861239888601461382e565b6fffffffffffffffffffffffffffffffff16926123b793929190613493565b6123c09161385a565b60601c86526123d060148661382e565b600061010088015294508015612495576123eb85601061382e565b6fffffffffffffffffffffffffffffffff16871015612436576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff86168861245688601061382e565b6fffffffffffffffffffffffffffffffff169261247593929190613493565b61247e916138b8565b60801c61010087015261249260108661382e565b94505b60006101208701528215612558576124ae85601061382e565b6fffffffffffffffffffffffffffffffff168710156124f9576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff86168861251988601061382e565b6fffffffffffffffffffffffffffffffff169261253893929190613493565b612541916138b8565b60801c61012087015261255560108661382e565b94505b6000610140870152811561261b5761257185601461382e565b6fffffffffffffffffffffffffffffffff168710156125bc576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff8616886125dc88601461382e565b6fffffffffffffffffffffffffffffffff16926125fb93929190613493565b6126049161385a565b60601c61014087015261261860148661382e565b94505b612639876fffffffffffffffffffffffffffffffff8716818b613493565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0870152608086015173ffffffffffffffffffffffffffffffffffffffff166126c3576040517f33c1dac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560a00151600003612701576040517f5b33c69600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015612727575061014086015173ffffffffffffffffffffffffffffffffffffffff16155b1561275e576040517f497189f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560c001515160401415801561277a57508560c0015151604114155b156127b1576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505092915050565b606060006127c986612a9d565b6127d287612acd565b6127dc91906132b3565b905060008460e001516fffffffffffffffffffffffffffffffff1661280088612aeb565b61280e9060a08a01356132b3565b61281891906132b3565b604080516101c081019091529091508061283560208a018a612ccd565b73ffffffffffffffffffffffffffffffffffffffff168152602001866080015173ffffffffffffffffffffffffffffffffffffffff168152602001866000015173ffffffffffffffffffffffffffffffffffffffff1681526020018660a00151815260200186606001516fffffffffffffffffffffffffffffffff168152602001878152602001600081526020016000815260200185815260200186610100015181526020018381526020018281526020018661012001516fffffffffffffffffffffffffffffffff16815260200186610140015173ffffffffffffffffffffffffffffffffffffffff168152506040516020016129339190613a7f565b60405160208183030381529060405292505050949350505050565b600080600083516041036129885760208401516040850151606086015160001a61297a88828585612afb565b955095509550505050612994565b50508151600091506002905b9250925092565b60008260038111156129af576129af613a8e565b036129b8575050565b60018260038111156129cc576129cc613a8e565b03612a03576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115612a1757612a17613a8e565b03612a50576040517ffce698f70000000000000000000000000000000000000000000000000000000081526106a0908290600401612d63565b6003826003811115612a6457612a64613a8e565b03611a8757806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016106a09190612d63565b6000612aac60e0830183613326565b612abb91603491602491613493565b612ac4916138b8565b60801c92915050565b60006fffffffffffffffffffffffffffffffff6080830135166105d1565b60006105d1826080013560801c90565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612b365750600091506003905082612bde565b600060018888888860405160008152602001604052604051612b5b9493929190613abd565b6020604051602081039080840390855afa158015612b7d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612bd457506000925060019150829050612bde565b9250600091508190505b9450945094915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461130557600080fd5b80356105d181612be8565b600060208284031215612c3757612c37600080fd5b6000612c438484612c17565b949350505050565b8015155b82525050565b602081016105d18284612c4b565b63ffffffff8116612c0c565b80356105d181612c63565b600060208284031215612c8f57612c8f600080fd5b6000612c438484612c6f565b600073ffffffffffffffffffffffffffffffffffffffff82166105d1565b612c0c81612c9b565b80356105d181612cb9565b600060208284031215612ce257612ce2600080fd5b6000612c438484612cc2565b80612c0c565b80356105d181612cee565b60008060408385031215612d1557612d15600080fd5b6000612d218585612cc2565b9250506020612d3285828601612cf4565b9150509250929050565b600060208284031215612d5157612d51600080fd5b6000612c438484612cf4565b80612c4f565b602081016105d18284612d5d565b60008060408385031215612d8757612d87600080fd5b6000612d938585612cf4565b9250506020612d3285828601612cc2565b60006101208284031215612dba57612dba600080fd5b50919050565b600080600060608486031215612dd857612dd8600080fd5b833567ffffffffffffffff811115612df257612df2600080fd5b612dfe86828701612da4565b9350506020612e0f86828701612cf4565b9250506040612e2086828701612cf4565b9150509250925092565b60005b83811015612e45578181015183820152602001612e2d565b50506000910152565b6000612e58825190565b808452602084019350612e6f818560208601612e2a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b60408082528101612eaf8185612e4e565b9050611e876020830184612d5d565b60008060008060808587031215612ed757612ed7600080fd5b6000612ee38787612cf4565b9450506020612ef487828801612cf4565b9350506040612f0587828801612cf4565b9250506060612f1687828801612cf4565b91505092959194509250565b60ff8116612c0c565b80356105d181612f22565b60008060408385031215612f4c57612f4c600080fd5b6000612f588585612f2b565b925050602083013567ffffffffffffffff811115612f7857612f78600080fd5b612d3285828601612da4565b6003811061130557600080fd5b80356105d181612f84565b60008083601f840112612fb157612fb1600080fd5b50813567ffffffffffffffff811115612fcc57612fcc600080fd5b602083019150836001820283011115612fe757612fe7600080fd5b9250929050565b60008060008060006080868803121561300957613009600080fd5b60006130158888612f91565b955050602086013567ffffffffffffffff81111561303557613035600080fd5b61304188828901612f9c565b9450945050604061305488828901612cf4565b925050606061306588828901612cf4565b9150509295509295909350565b60008083601f84011261308757613087600080fd5b50813567ffffffffffffffff8111156130a2576130a2600080fd5b602083019150836020820283011115612fe757612fe7600080fd5b801515612c0c565b80356105d1816130bd565b6000806000604084860312156130e8576130e8600080fd5b833567ffffffffffffffff81111561310257613102600080fd5b61310e86828701613072565b93509350506020612e20868287016130c5565b60006105d173ffffffffffffffffffffffffffffffffffffffff8316613145565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60006105d182613121565b60006105d18261315e565b612c4f81613169565b602081016105d18284613174565b6fffffffffffffffffffffffffffffffff8116612c0c565b80356105d18161318b565b600080600080600060a086880312156131c9576131c9600080fd5b60006131d58888612cf4565b95505060206131e688828901612cf4565b94505060406131f7888289016131a3565b935050606061320888828901612cf4565b925050608061306588828901612cf4565b612c4f81612c9b565b604081016132308285613219565b611e876020830184612d5d565b63ffffffff8116612c4f565b602081016105d1828461323d565b602081016105d18284613219565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028082158382048514176132ac576132ac613265565b5092915050565b808201808211156105d1576105d1613265565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613304576133046132c6565b500490565b60ff9182169190811690828201908111156105d1576105d1613265565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe13685900301811261335f5761335f600080fd5b80840192508235915067ffffffffffffffff82111561338057613380600080fd5b60208301925060018202360383131561339b5761339b600080fd5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b604081016133e08285613219565b611e876020830184612c4b565b80516105d181612cee565b60006020828403121561340d5761340d600080fd5b6000612c4384846133ed565b818103818111156105d1576105d1613265565b602080825281016105d181601581527f53656e646572206e6f7420456e747279506f696e740000000000000000000000602082015260400190565b82818337506000910152565b6000613480838584613467565b50500190565b6000612c43828486613473565b600080858511156134a6576134a6600080fd5b838611156134b6576134b6600080fd5b5050820193919092039150565b61010081016134d2828b613219565b6134df602083018a612d5d565b6134ec6040830189612d5d565b6134f96060830188612d5d565b6135066080830187612d5d565b61351360a0830186612d5d565b61352060c0830185612d5d565b6112ee60e0830184612d5d565b604081016132308285612d5d565b60ff8116612c4f565b60808101613552828761353b565b61355f6020830186613219565b61356c6040830185612d5d565b610a376060830184612d5d565b60006105d16131428381565b612c4f81613579565b6080810161359c828761353b565b6135a96020830186613219565b6135b66040830185613585565b610a376060830184613585565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715613636576136366135c3565b6040525050565b600061364860405190565b905061365482826135f2565b919050565b60006101c0828403121561366f5761366f600080fd5b61367a6101c061363d565b905060006136888484612cc2565b825250602061369984848301612cc2565b60208301525060406136ad84828501612cc2565b60408301525060606136c184828501612cf4565b60608301525060806136d5848285016131a3565b60808301525060a06136e984828501612cf4565b60a08301525060c06136fd84828501612cf4565b60c08301525060e061371184828501612cf4565b60e08301525061010061372684828501612cf4565b6101008301525061012061373c84828501612cf4565b6101208301525061014061375284828501612cf4565b6101408301525061016061376884828501612cf4565b6101608301525061018061377e848285016131a3565b610180830152506101a061379484828501612cc2565b6101a08301525092915050565b60006101c082840312156137b7576137b7600080fd5b6000612c438484613659565b80357fffffffffffff00000000000000000000000000000000000000000000000000001682826006821015613826576138217fffffffffffff0000000000000000000000000000000000000000000000000000836006036008021b90565b831692505b505092915050565b6fffffffffffffffffffffffffffffffff9182169190811690828201908111156105d1576105d1613265565b80357fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001682826014821015613826576138217fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008021b90565b80357fffffffffffffffffffffffffffffffff000000000000000000000000000000001682826010821015613826576138217fffffffffffffffffffffffffffffffff00000000000000000000000000000000836010036008021b90565b803582826020821015613826576138217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008021b90565b6fffffffffffffffffffffffffffffffff8116612c4f565b80516101c083019061397c8482613219565b50602082015161398f6020850182613219565b5060408201516139a26040850182613219565b5060608201516139b56060850182612d5d565b5060808201516139c86080850182613952565b5060a08201516139db60a0850182612d5d565b5060c08201516139ee60c0850182612d5d565b5060e0820151613a0160e0850182612d5d565b50610100820151613a16610100850182612d5d565b50610120820151613a2b610120850182612d5d565b50610140820151613a40610140850182612d5d565b50610160820151613a55610160850182612d5d565b50610180820151613a6a610180850182613952565b506101a082015161097c6101a0850182613219565b6101c081016105d1828461396a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60808101613acb8287612d5d565b61355f602083018661353b56fea2646970667358221220e0ac4cfab19cb7c97427e7c850ed5c509238b8485841fe4834625b6cb3b2d04c64736f6c634300081a0033",
43
+ pad(entryPoint07Address), // entrypoint
44
+ pad(owner), // owner
45
+ pad(owner), // manager
46
+ // couldn't get encodeAbiParameters with type address[] to work
47
+ "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001",
48
+ pad(owner) // signer
49
+ ])
50
+
51
+ export const getSingletonPaymaster06InitCode = (owner: Address): Hex =>
52
+ concat([
53
+ "0x610160604052600060a052600160c081905260e052607561010052600c6101205260146101405234801561003257600080fd5b50604051613f94380380613f94833981016040819052610051916102f8565b6001600160a01b038416608052838383838084848461007160008361010c565b5061009c7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b088261010c565b5050505060005b81518110156100fd5760018060008484815181106100c3576100c3610376565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016100a3565b5050505050505050505061038c565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166101ae576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101663390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101b2565b5060005b92915050565b60006001600160a01b0382166101b2565b6101d2816101b8565b81146101dd57600080fd5b50565b80516101b2816101c9565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715610226576102266101eb565b6040525050565b600061023860405190565b90506102448282610201565b919050565b60006001600160401b03821115610262576102626101eb565b5060209081020190565b600061027f61027a84610249565b61022d565b8381529050602080820190840283018581111561029e5761029e600080fd5b835b818110156102c257806102b388826101e0565b845250602092830192016102a0565b5050509392505050565b600082601f8301126102e0576102e0600080fd5b81516102f084826020860161026c565b949350505050565b6000806000806080858703121561031157610311600080fd5b600061031d87876101e0565b945050602061032e878288016101e0565b935050604061033f878288016101e0565b92505060608501516001600160401b0381111561035e5761035e600080fd5b61036a878288016102cc565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e051610100516101205161014051613b22610472600039600081816110370152818161173c01526117fe015260008181610f7d0152611f1f015260008181610fd801526120df015260008181610f5c01528181610fb7015261101501526000818161165e01528181611883015281816119590152611dc3015260008181610f28015281816118b40152818161191a01528181611c2a0152611d4a0152600081816103d0015281816106bb015281816108be01528181610c8b01528181610d4d01528181610ddc01528181610e9401526114240152613b226000f3fe60806040526004361061018b5760003560e01c8063a217fddf116100d6578063d0e30db01161007f578063eb12d61e11610059578063eb12d61e14610491578063ec87621c146104b1578063f465c77e146104e557600080fd5b8063d0e30db014610449578063d547741f14610451578063dd16f8471461047157600080fd5b8063bb9fe6bf116100b0578063bb9fe6bf146103ff578063c23a5cea14610414578063c399ec881461043457600080fd5b8063a217fddf14610389578063a9a234091461039e578063b0d691fe146103be57600080fd5b806336568abe11610138578063736c0d5b11610112578063736c0d5b146102e85780637dd345cb1461031857806391d148541461033857600080fd5b806336568abe146102785780634031c20e146102985780635525dcfb146102c857600080fd5b8063205c287811610169578063205c2878146101fb578063248a9ca31461021b5780632f2ff15d1461025857600080fd5b806301ffc9a7146101905780630396cb60146101c65780630e316ab7146101db575b600080fd5b34801561019c57600080fd5b506101b06101ab366004612c02565b610513565b6040516101bd9190612c35565b60405180910390f35b6101d96101d4366004612c5a565b6105ac565b005b3480156101e757600080fd5b506101d96101f6366004612cad565b610727565b34801561020757600080fd5b506101d9610216366004612cdf565b610876565b34801561022757600080fd5b5061024b610236366004612d1c565b60009081526020819052604090206001015490565b6040516101bd9190612d43565b34801561026457600080fd5b506101d9610273366004612d51565b61092c565b34801561028457600080fd5b506101d9610293366004612d51565b610957565b3480156102a457600080fd5b506101b06102b3366004612cad565b60026020526000908152604090205460ff1681565b3480156102d457600080fd5b5061024b6102e3366004612d84565b6109b5565b3480156102f457600080fd5b506101b0610303366004612cad565b60016020526000908152604090205460ff1681565b34801561032457600080fd5b506101d9610333366004612e4d565b6109f2565b34801561034457600080fd5b506101b0610353366004612d51565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561039557600080fd5b5061024b600081565b3480156103aa57600080fd5b506101d96103b9366004612f0b565b610bac565b3480156103ca57600080fd5b506103f27f000000000000000000000000000000000000000000000000000000000000000081565b6040516101bd9190612fcb565b34801561040b57600080fd5b506101d9610bc0565b34801561042057600080fd5b506101d961042f366004612cad565b610d05565b34801561044057600080fd5b5061024b610d9c565b6101d9610e57565b34801561045d57600080fd5b506101d961046c366004612d51565b610eff565b34801561047d57600080fd5b5061024b61048c366004613009565b610f24565b34801561049d57600080fd5b506101d96104ac366004612cad565b6110dc565b3480156104bd57600080fd5b5061024b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b3480156104f157600080fd5b50610505610500366004613057565b611225565b6040516101bd92919061312b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105a657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615801561061a57503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b1561067e57337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b60405180910390fd5b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630396cb609034906106f290859060040161317b565b6000604051808303818588803b15801561070b57600080fd5b505af115801561071f573d6000803e3d6000fd5b505050505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615801561079557503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156107f057337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b9061086b908390613189565b60405180910390a150565b600061088181611248565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063205c2878906108f59086908690600401613154565b600060405180830381600087803b15801561090f57600080fd5b505af1158015610923573d6000803e3d6000fd5b50505050505050565b60008281526020819052604090206001015461094781611248565b6109518383611255565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109a6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b08282611351565b505050565b6000670de0b6b3a7640000826109cb85876131c6565b6109d590886131e5565b6109df91906131c6565b6109e99190613227565b95945050505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610a6057503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610abb57337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b60005b82811015610951578160026000868685818110610add57610add61323b565b9050602002016020810190610af29190612cad565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790557f8ff8c5211f68ef53b4bdd15ab2ea6d87be8a3dbf58865bd8325c984057e4fcb4848483818110610b7857610b7861323b565b9050602002016020810190610b8d9190612cad565b83604051610b9c92919061326a565b60405180910390a1600101610abe565b610bb461140c565b6109518484848461147d565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16158015610c2e57503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b15610c8957337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cf157600080fd5b505af1158015610951573d6000803e3d6000fd5b6000610d1081611248565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90610d82908590600401613189565b600060405180830381600087803b15801561070b57600080fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610e11903090600401613189565b602060405180830381865afa158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e529190613290565b905090565b6040517fb760faf900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b760faf9903490610ecb903090600401613189565b6000604051808303818588803b158015610ee457600080fd5b505af1158015610ef8573d6000803e3d6000fd5b5050505050565b600082815260208190526040902060010154610f1a81611248565b6109518383611351565b60007f000000000000000000000000000000000000000000000000000000000000000060ff168360ff1603610fb057610fa982610fa17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006132b1565b60ff166116ac565b90506105a6565b6000610ffc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006132b1565b9050600061100e6101208501856132ce565b61105b60ff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000006131e5565b81811061106a5761106a61323b565b919091013560f81c915050600181161515600282161515600483161580159061109b576110986010866132b1565b94505b82156110af576110ac6010866132b1565b94505b81156110c3576110c06014866132b1565b94505b6110d0878660ff166116ac565b955050505050506105a6565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615801561114a57503360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16155b156111a557337f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602081905260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055517f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249061086b908390613189565b6060600061123161140c565b61123c8585856117e3565b91509150935093915050565b61125281336119a7565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff166113495760008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556112e73390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105a6565b5060006105a6565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16156113495760008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105a6565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067590613382565b565b60006114898484611a16565b9050600061149f8260c001518360e00151611a9a565b905060008261018001516fffffffffffffffffffffffffffffffff166114e18585608001516fffffffffffffffffffffffffffffffff168587606001516109b5565b6114eb91906131e5565b905060008361012001518211611511578184610120015161150c9190613392565b611521565b6101208401516115219083613392565b9050600061156585602001518661012001518511611543578660400151611546565b86515b876101200151861161155957875161155f565b87604001515b85611abd565b90508061159e576040517f1db0f4fb000000000000000000000000000000000000000000000000000000008152600401610675906133d9565b6000670de0b6b3a764000086606001518761010001516115be91906131c6565b6115c89190613227565b6101a087015190915073ffffffffffffffffffffffffffffffffffffffff16158015906115f457508381115b1561161b57602086015186516101a088015161161b9291906116168886613392565b611b10565b856000015173ffffffffffffffffffffffffffffffffffffffff168660a001517f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000008960200151888b6060015160405161169894939291906133f2565b60405180910390a350505050505050505050565b6000806116bc6020850185612cad565b6020850135608086013560a087013560c088013560e08901356101008a01356116e860608c018c6132ce565b6040516116f6929190613446565b60405180910390208b806040019061170e91906132ce565b60405161171c929190613446565b6040519081900390206117336101208e018e6132ce565b6000906117608f7f00000000000000000000000000000000000000000000000000000000000000006131e5565b9261176d93929190613453565b60405161177b929190613446565b6040519081900381206117999a999897969594939291602001613483565b60405160208183030381529060405280519060200120905080466040516020016117c4929190613518565b6040516020818303038152906040528051906020012091505092915050565b60606000808036816118226117fc6101208b018b6132ce565b7f0000000000000000000000000000000000000000000000000000000000000000611b57565b93509350935093508215801561184857503260009081526002602052604090205460ff16155b1561188157326040517f55d3ab460000000000000000000000000000000000000000000000000000000081526004016106759190613189565b7f000000000000000000000000000000000000000000000000000000000000000060ff168460ff16141580156118dd57507f000000000000000000000000000000000000000000000000000000000000000060ff168460ff1614155b15611914576040517f654a4f2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060007f000000000000000000000000000000000000000000000000000000000000000060ff168660ff1603611957576119518b85858d611c04565b90925090505b7f000000000000000000000000000000000000000000000000000000000000000060ff168660ff1603611997576119918b85858d8d611da8565b90925090505b909a909950975050505050505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611a125780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610675929190613154565b5050565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810191909152611a9382840184613727565b9392505050565b6000818303611aaa5750816105a6565b610fa983611ab848856131e5565b611f00565b600060405182606052836040528460601b602c526f23b872dd000000000000000000000000600c52602060006064601c60008a5af13d156001600051141716915060006060528060405250949350505050565b6000611b1e85858585611abd565b905080610ef8576040517f1db0f4fb0000000000000000000000000000000000000000000000000000000081526004016106759061377d565b6000803681611b678560016131e5565b861015611ba0576040517fcc32193e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000878787818110611bb457611bb461323b565b919091013560f881901c925060018084161515925060f99190911c9036906000908c908c90611be4908d906131e5565b611bef928290613453565b939d949c509a50919850919650505050505050565b60606000806000366000611c188989611f16565b93509350935093506000611c82611c4f7f00000000000000000000000000000000000000000000000000000000000000008d610f24565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b90506000611cc68285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061202192505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205491925060ff90911690611d018215898961204b565b9050611d1060208f018f612cad565b73ffffffffffffffffffffffffffffffffffffffff168b7f7a270f29ae17e8e2304ff1245deb50c3b6206bca82928d904f3e284d35c5ffd27f00000000000000000000000000000000000000000000000000000000000000006000806000604051611d7e94939291906137a2565b60405180910390a36040805160208101909152600081529e909d509b505050505050505050505050565b6060600080611db78787612083565b90506000611de8611c4f7f00000000000000000000000000000000000000000000000000000000000000008b610f24565b90506000611dfa828460c00151612021565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832054918701519087015193945060ff90911692611e409184159161204b565b90506000611e508d8b888c6127e7565b905082611e655796509450611ef69350505050565b6000611e788a6000808a60a001516109b5565b9050808761010001511115611eb9576040517f79183c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010087015115611eec57611eec87608001518f6000016020810190611edf9190612cad565b89516101008b015161292f565b5096509450505050505b9550959350505050565b6000818310611f0f5781611a93565b5090919050565b600080368160ff7f000000000000000000000000000000000000000000000000000000000000000016851015611f78576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611f87600682888a613453565b611f90916137d7565b60d01c90506000611fa5600c6006898b613453565b611fae916137d7565b60d01c9050366000611fc389600c818d613453565b909250905060408114801590611fda575060418114155b15612011576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9299919850965090945092505050565b600080600080612031868661298c565b92509250925061204182826129d9565b5090949350505050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b85612073576000612076565b60015b60ff161717949350505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082015260e081018290526101008101829052610120810182905261014081019190915260ff7f000000000000000000000000000000000000000000000000000000000000000016821015612138576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808484828161214b5761214b61323b565b919091013560f81c915050600180821615159060028316151590600484161515906121769086613842565b9450876fffffffffffffffffffffffffffffffff861688612198886006613842565b6fffffffffffffffffffffffffffffffff16926121b793929190613453565b6121c0916137d7565b60d01c60208701526121d3600686613842565b9450876fffffffffffffffffffffffffffffffff8616886121f5886006613842565b6fffffffffffffffffffffffffffffffff169261221493929190613453565b61221d916137d7565b60d01c6040870152612230600686613842565b9450876fffffffffffffffffffffffffffffffff861688612252886014613842565b6fffffffffffffffffffffffffffffffff169261227193929190613453565b61227a9161386e565b60601c608087015261228d601486613842565b9450876fffffffffffffffffffffffffffffffff8616886122af886010613842565b6fffffffffffffffffffffffffffffffff16926122ce93929190613453565b6122d7916138cc565b60801c60608701526122ea601086613842565b9450876fffffffffffffffffffffffffffffffff86168861230c886020613842565b6fffffffffffffffffffffffffffffffff169261232b93929190613453565b6123349161392a565b60a0870152612344602086613842565b9450876fffffffffffffffffffffffffffffffff861688612366886010613842565b6fffffffffffffffffffffffffffffffff169261238593929190613453565b61238e916138cc565b60801c60e08701526123a1601086613842565b9450876fffffffffffffffffffffffffffffffff8616886123c3886014613842565b6fffffffffffffffffffffffffffffffff16926123e293929190613453565b6123eb9161386e565b60601c86526123fb601486613842565b6000610100880152945080156124c057612416856010613842565b6fffffffffffffffffffffffffffffffff16871015612461576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff861688612481886010613842565b6fffffffffffffffffffffffffffffffff16926124a093929190613453565b6124a9916138cc565b60801c6101008701526124bd601086613842565b94505b60006101208701528215612583576124d9856010613842565b6fffffffffffffffffffffffffffffffff16871015612524576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff861688612544886010613842565b6fffffffffffffffffffffffffffffffff169261256393929190613453565b61256c916138cc565b60801c610120870152612580601086613842565b94505b600061014087015281156126465761259c856014613842565b6fffffffffffffffffffffffffffffffff168710156125e7576040517ff96ce32900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b876fffffffffffffffffffffffffffffffff861688612607886014613842565b6fffffffffffffffffffffffffffffffff169261262693929190613453565b61262f9161386e565b60601c610140870152612643601486613842565b94505b612664876fffffffffffffffffffffffffffffffff8716818b613453565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0870152608086015173ffffffffffffffffffffffffffffffffffffffff166126ee576040517f33c1dac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560a0015160000361272c576040517f5b33c69600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015612752575061014086015173ffffffffffffffffffffffffffffffffffffffff16155b15612789576040517f497189f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560c00151516040141580156127a557508560c0015151604114155b156127dc576040517ff95eeeac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505092915050565b608082015160a08301516060848101518551610120870151610140880151604080516101c08101909152949695948061282360208e018e612cad565b73ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001868152602001856fffffffffffffffffffffffffffffffff1681526020018b81526020018c60e0013581526020018c610100013581526020018981526020018a610100015181526020016000815260200160008152602001836fffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152506040516020016129109190613a93565b6040516020818303038152906040529650505050505050949350505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661297e57637939f4246000526004601cfd5b600060605260405250505050565b600080600083516041036129c65760208401516040850151606086015160001a6129b888828585612adb565b9550955095505050506129d2565b50508151600091506002905b9250925092565b60008260038111156129ed576129ed613aa2565b036129f6575050565b6001826003811115612a0a57612a0a613aa2565b03612a41576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115612a5557612a55613aa2565b03612a8e576040517ffce698f7000000000000000000000000000000000000000000000000000000008152610675908290600401612d43565b6003826003811115612aa257612aa2613aa2565b03611a1257806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016106759190612d43565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612b165750600091506003905082612bbe565b600060018888888860405160008152602001604052604051612b3b9493929190613ad1565b6020604051602081039080840390855afa158015612b5d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612bb457506000925060019150829050612bbe565b9250600091508190505b9450945094915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461125257600080fd5b80356105a681612bc8565b600060208284031215612c1757612c17600080fd5b6000612c238484612bf7565b949350505050565b8015155b82525050565b602081016105a68284612c2b565b63ffffffff8116612bec565b80356105a681612c43565b600060208284031215612c6f57612c6f600080fd5b6000612c238484612c4f565b600073ffffffffffffffffffffffffffffffffffffffff82166105a6565b612bec81612c7b565b80356105a681612c99565b600060208284031215612cc257612cc2600080fd5b6000612c238484612ca2565b80612bec565b80356105a681612cce565b60008060408385031215612cf557612cf5600080fd5b6000612d018585612ca2565b9250506020612d1285828601612cd4565b9150509250929050565b600060208284031215612d3157612d31600080fd5b6000612c238484612cd4565b80612c2f565b602081016105a68284612d3d565b60008060408385031215612d6757612d67600080fd5b6000612d738585612cd4565b9250506020612d1285828601612ca2565b60008060008060808587031215612d9d57612d9d600080fd5b6000612da98787612cd4565b9450506020612dba87828801612cd4565b9350506040612dcb87828801612cd4565b9250506060612ddc87828801612cd4565b91505092959194509250565b60008083601f840112612dfd57612dfd600080fd5b50813567ffffffffffffffff811115612e1857612e18600080fd5b602083019150836020820283011115612e3357612e33600080fd5b9250929050565b801515612bec565b80356105a681612e3a565b600080600060408486031215612e6557612e65600080fd5b833567ffffffffffffffff811115612e7f57612e7f600080fd5b612e8b86828701612de8565b93509350506020612e9e86828701612e42565b9150509250925092565b6003811061125257600080fd5b80356105a681612ea8565b60008083601f840112612ed557612ed5600080fd5b50813567ffffffffffffffff811115612ef057612ef0600080fd5b602083019150836001820283011115612e3357612e33600080fd5b60008060008060608587031215612f2457612f24600080fd5b6000612f308787612eb5565b945050602085013567ffffffffffffffff811115612f5057612f50600080fd5b612f5c87828801612ec0565b93509350506040612ddc87828801612cd4565b60006105a673ffffffffffffffffffffffffffffffffffffffff8316612f93565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60006105a682612f6f565b60006105a682612fac565b612c2f81612fb7565b602081016105a68284612fc2565b60ff8116612bec565b80356105a681612fd9565b6000610160828403121561300357613003600080fd5b50919050565b6000806040838503121561301f5761301f600080fd5b600061302b8585612fe2565b925050602083013567ffffffffffffffff81111561304b5761304b600080fd5b612d1285828601612fed565b60008060006060848603121561306f5761306f600080fd5b833567ffffffffffffffff81111561308957613089600080fd5b61309586828701612fed565b93505060206130a686828701612cd4565b9250506040612e9e86828701612cd4565b60005b838110156130d25781810151838201526020016130ba565b50506000910152565b60006130e5825190565b8084526020840193506130fc8185602086016130b7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b6040808252810161313c81856130db565b9050611a936020830184612d3d565b612c2f81612c7b565b60408101613162828561314b565b611a936020830184612d3d565b63ffffffff8116612c2f565b602081016105a6828461316f565b602081016105a6828461314b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028082158382048514176131de576131de613197565b5092915050565b808201808211156105a6576105a6613197565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613236576132366131f8565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60408101613278828561314b565b611a936020830184612c2b565b80516105a681612cce565b6000602082840312156132a5576132a5600080fd5b6000612c238484613285565b60ff9182169190811690828201908111156105a6576105a6613197565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe13685900301811261330757613307600080fd5b80840192508235915067ffffffffffffffff82111561332857613328600080fd5b60208301925060018202360383131561334357613343600080fd5b509250929050565b601581526000602082017f53656e646572206e6f7420456e747279506f696e740000000000000000000000815291505b5060200190565b602080825281016105a68161334b565b818103818111156105a6576105a6613197565b601481526000602082017f5452414e534645525f46524f4d5f4641494c45440000000000000000000000008152915061337b565b602080825281016105a6816133a5565b60ff8116612c2f565b6080810161340082876133e9565b61340d602083018661314b565b61341a6040830185612d3d565b6109e96060830184612d3d565b82818337506000910152565b6000613440838584613427565b50500190565b6000612c23828486613433565b6000808585111561346657613466600080fd5b8386111561347657613476600080fd5b5050820193919092039150565b6101408101613492828d61314b565b61349f602083018c612d3d565b6134ac604083018b612d3d565b6134b9606083018a612d3d565b6134c66080830189612d3d565b6134d360a0830188612d3d565b6134e060c0830187612d3d565b6134ed60e0830186612d3d565b6134fb610100830185612d3d565b613509610120830184612d3d565b9b9a5050505050505050505050565b604081016131628285612d3d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff8211171561359957613599613526565b6040525050565b60006135ab60405190565b90506135b78282613555565b919050565b6fffffffffffffffffffffffffffffffff8116612bec565b80356105a6816135bc565b60006101c082840312156135f5576135f5600080fd5b6136006101c06135a0565b9050600061360e8484612ca2565b825250602061361f84848301612ca2565b602083015250604061363384828501612ca2565b604083015250606061364784828501612cd4565b606083015250608061365b848285016135d4565b60808301525060a061366f84828501612cd4565b60a08301525060c061368384828501612cd4565b60c08301525060e061369784828501612cd4565b60e0830152506101006136ac84828501612cd4565b610100830152506101206136c284828501612cd4565b610120830152506101406136d884828501612cd4565b610140830152506101606136ee84828501612cd4565b61016083015250610180613704848285016135d4565b610180830152506101a061371a84828501612ca2565b6101a08301525092915050565b60006101c0828403121561373d5761373d600080fd5b6000612c2384846135df565b601c81526000602082017f5452414e534645525f544f5f524543495049454e545f4641494c4544000000008152915061337b565b602080825281016105a681613749565b60006105a6612f908381565b612c2f8161378d565b608081016137b082876133e9565b6137bd602083018661314b565b6137ca6040830185613799565b6109e96060830184613799565b80357fffffffffffff0000000000000000000000000000000000000000000000000000168282600682101561383a576138357fffffffffffff0000000000000000000000000000000000000000000000000000836006036008021b90565b831692505b505092915050565b6fffffffffffffffffffffffffffffffff9182169190811690828201908111156105a6576105a6613197565b80357fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168282601482101561383a576138357fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008021b90565b80357fffffffffffffffffffffffffffffffff00000000000000000000000000000000168282601082101561383a576138357fffffffffffffffffffffffffffffffff00000000000000000000000000000000836010036008021b90565b80358282602082101561383a576138357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008021b90565b6fffffffffffffffffffffffffffffffff8116612c2f565b80516101c0830190613990848261314b565b5060208201516139a3602085018261314b565b5060408201516139b6604085018261314b565b5060608201516139c96060850182612d3d565b5060808201516139dc6080850182613966565b5060a08201516139ef60a0850182612d3d565b5060c0820151613a0260c0850182612d3d565b5060e0820151613a1560e0850182612d3d565b50610100820151613a2a610100850182612d3d565b50610120820151613a3f610120850182612d3d565b50610140820151613a54610140850182612d3d565b50610160820151613a69610160850182612d3d565b50610180820151613a7e610180850182613966565b506101a08201516109516101a085018261314b565b6101c081016105a6828461397e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60808101613adf8287612d3d565b61340d60208301866133e956fea264697066735822122049a9c1a3dcf5fa2782f0d7c004b87ccc2187f4a4dd5ee7f6ca1aa008a0f70ea964736f6c634300081a0033",
54
+ pad(entryPoint06Address), // entrypoint
55
+ pad(owner), // owner
56
+ pad(owner), // manager
57
+ // couldn't get encodeAbiParameters with type address[] to work
58
+ "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001",
59
+ pad(owner) // signer
60
+ ])
61
+
62
+ export const getSingletonPaymaster08Address = (owner: Address) =>
63
+ getCreate2Address({
64
+ from: constants.deterministicDeployer,
65
+ salt: constants.create2Salt,
66
+ bytecode: getSingletonPaymaster08InitCode(owner)
67
+ })
68
+
69
+ export const getSingletonPaymaster07Address = (owner: Address) =>
70
+ getCreate2Address({
71
+ from: constants.deterministicDeployer,
72
+ salt: constants.create2Salt,
73
+ bytecode: getSingletonPaymaster07InitCode(owner)
74
+ })
75
+
76
+ export const getSingletonPaymaster06Address = (owner: Address) =>
77
+ getCreate2Address({
78
+ from: constants.deterministicDeployer,
79
+ salt: constants.create2Salt,
80
+ bytecode: getSingletonPaymaster06InitCode(owner)
81
+ })
82
+
83
+ export const sponsorshipIcon =
84
+ "data:image/jpeg;base64,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"