@aastar/sdk 0.14.0 → 0.16.6

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 (656) hide show
  1. package/.eslintrc.cjs +30 -0
  2. package/.gitmodules +9 -0
  3. package/README.md +299 -0
  4. package/aastar-sdk.code-workspace +14 -0
  5. package/abis/BLSAggregator.json +572 -0
  6. package/abis/BLSValidator.json +39 -0
  7. package/abis/DVTValidator.json +383 -0
  8. package/abis/Eip7702Support.json +24 -0
  9. package/abis/EntryPoint.json +1379 -0
  10. package/abis/GToken.json +510 -0
  11. package/abis/GTokenStaking.json +918 -0
  12. package/abis/LegacyAccount.json +625 -0
  13. package/abis/MySBT.json +1547 -0
  14. package/abis/Paymaster.json +1192 -0
  15. package/abis/PaymasterFactory.json +637 -0
  16. package/abis/PaymasterV4_2.json +1193 -0
  17. package/abis/Registry.json +1677 -0
  18. package/abis/ReputationSystem.json +659 -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 +1568 -0
  26. package/abis/UserOperationLib.json +57 -0
  27. package/abis/aPNTs.json +1160 -0
  28. package/abis/xPNTsFactory.json +715 -0
  29. package/abis/xPNTsToken.json +1160 -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/config.anvil.json +1 -0
  36. package/config.sepolia.json +1 -0
  37. package/config.test.json +27 -0
  38. package/data/experiment_data.csv +36 -0
  39. package/data/industry_baseline_2025-12-23.json +154 -0
  40. package/data/industry_baseline_latest.json +154 -0
  41. package/docs/ABI_Change_Tracking_Workflow.md +41 -0
  42. package/docs/ABI_MAINTENANCE_PLAN.md +132 -0
  43. package/docs/API_REFERENCE.md +956 -0
  44. package/docs/Configuration_Sync.md +47 -0
  45. package/docs/DAO_Mining_Distribution_Plan.md +522 -0
  46. package/docs/DEMO_REFACTOR_PLAN.md +289 -0
  47. package/docs/DOCUMENTATION_PLAN.md +455 -0
  48. package/docs/ENV_SEPOLIA_UPDATE.md +68 -0
  49. package/docs/Faucet_Gasless_Plan.md +56 -0
  50. package/docs/L2_BUSINESS_CLIENTS_PLAN.md +394 -0
  51. package/docs/L4_Manual_Test_CheatSheet.md +215 -0
  52. package/docs/Plan.md +266 -0
  53. package/docs/Regression_Testing_Guide.md +70 -0
  54. package/docs/SDK_ABI_COVERAGE.md +839 -0
  55. package/docs/SDK_COVERAGE_STRATEGY.md +397 -0
  56. package/docs/SDK_Optimization_Evaluation_Plan.md +51 -0
  57. package/docs/SDK_REGRESSION_AND_API_PLAN.md +98 -0
  58. package/docs/SDK_STAGE3_PLAN.md +151 -0
  59. package/docs/SEPOLIA_ENV_REFERENCE.md +51 -0
  60. package/docs/STAGE3.md +191 -0
  61. package/docs/Script_Comparison_Report.md +91 -0
  62. package/docs/Sepolia_Latest_Deployment.md +117 -0
  63. package/docs/TESTER_GUIDE_GASLESS.md +663 -0
  64. package/docs/TEST_COVERAGE_MATRIX.md +72 -0
  65. package/docs/TODO_SDK_COVERAGE.md +55 -0
  66. package/docs/USER_CASE_DESIGN.md +110 -0
  67. package/docs/Verifier_L4_Gasless_Plan.md +454 -0
  68. package/docs/api/@aastar/account.md +235 -0
  69. package/docs/api/@aastar/analytics.md +219 -0
  70. package/docs/api/@aastar/core.md +26830 -0
  71. package/docs/api/@aastar/dapp.md +130 -0
  72. package/docs/api/@aastar/identity.md +482 -0
  73. package/docs/api/@aastar/paymaster.md +1387 -0
  74. package/docs/api/@aastar/sdk/README.md +155 -0
  75. package/docs/api/@aastar/sdk/node.md +4044 -0
  76. package/docs/api/@aastar/tokens.md +1971 -0
  77. package/docs/api/README.md +10 -0
  78. package/docs/changelog.md +99 -0
  79. package/docs/examples/README.md +18 -0
  80. package/docs/examples/community-flow.md +28 -0
  81. package/docs/examples/enduser-flow.md +24 -0
  82. package/docs/examples/index.md +18 -0
  83. package/docs/examples/multi-chain.md +31 -0
  84. package/docs/examples/operator-flow.md +28 -0
  85. package/docs/guide/CLI_GUIDE.md +65 -0
  86. package/docs/guide/DOCUMENTATION_PLAN.md +455 -0
  87. package/docs/guide/Security-solution.md +106 -0
  88. package/docs/guide/TEST_COMMANDS.md +320 -0
  89. package/docs/guide/concepts/account-abstraction.md +95 -0
  90. package/docs/guide/concepts/rainbow-bridge.md +68 -0
  91. package/docs/guide/concepts/reputation.md +95 -0
  92. package/docs/guide/concepts/superpaymaster.md +141 -0
  93. package/docs/guide/getting-started.md +133 -0
  94. package/docs/guide/installation.md +40 -0
  95. package/docs/guide/paper-data-collection.md +69 -0
  96. package/docs/guide/quick-start.md +52 -0
  97. package/docs/guide/task_breakdown.md +121 -0
  98. package/docs/guide/use-cases/community-management.md +141 -0
  99. package/docs/guide/use-cases/gasless-transactions.md +71 -0
  100. package/docs/guide/use-cases/operator-staking.md +84 -0
  101. package/docs/guide/use-cases/yop.md +72 -0
  102. package/docs/old-solution.md +1078 -0
  103. package/docs/paper-data-collection.md +69 -0
  104. package/docs/refactor/2026-01-13-221242-trae-refactor.md +224 -0
  105. package/docs/refactor/2026-01-13-audit-analysis.md +96 -0
  106. package/docs/refactor/2026-01-13-audit-report-v0.16.2.md +76 -0
  107. package/docs/refactor/2026-01-13-audit-report-v0.17.0.md +74 -0
  108. package/docs/refactor/2026-01-13-cursor-refactor.md +511 -0
  109. package/docs/refactor/2026-01-13-refactor-plan.md +88 -0
  110. package/docs/refactor/2026-01-13-refactor-response-plan.md +77 -0
  111. package/docs/refactor/2026-01-13-refactor-review.md +39 -0
  112. package/docs/refactor/2026-01-13-sdk-enhancement-plan.md +120 -0
  113. package/docs/refactor/2026-01-14-audit-response.md +242 -0
  114. package/docs/refactor/2026-01-14-audit-summary.md +133 -0
  115. package/docs/refactor/cursor-2026-01-13-14-00-audit-report.md +267 -0
  116. package/docs/technical_plan.md +510 -0
  117. package/docs/zh/examples/community-flow.md +38 -0
  118. package/docs/zh/examples/complete-workflow.md +10 -0
  119. package/docs/zh/examples/enduser-flow.md +33 -0
  120. package/docs/zh/examples/index.md +18 -0
  121. package/docs/zh/examples/multi-chain.md +46 -0
  122. package/docs/zh/examples/operator-flow.md +37 -0
  123. package/docs/zh/guide/CLI_GUIDE.md +48 -0
  124. package/docs/zh/guide/DOCUMENTATION_PLAN.md +455 -0
  125. package/docs/zh/guide/Plan.md +266 -0
  126. package/docs/zh/guide/SDK_Optimization_Evaluation_Plan.md +51 -0
  127. package/docs/zh/guide/Security-solution.md +106 -0
  128. package/docs/zh/guide/TEST_COMMANDS.md +125 -0
  129. package/docs/zh/guide/TEST_COVERAGE_MATRIX.md +72 -0
  130. package/docs/zh/guide/concepts/account-abstraction.md +95 -0
  131. package/docs/zh/guide/concepts/rainbow-bridge.md +68 -0
  132. package/docs/zh/guide/concepts/reputation.md +95 -0
  133. package/docs/zh/guide/concepts/superpaymaster.md +141 -0
  134. package/docs/zh/guide/getting-started.md +133 -0
  135. package/docs/zh/guide/installation.md +107 -0
  136. package/docs/zh/guide/old-solution.md +1078 -0
  137. package/docs/zh/guide/paper-data-collection.md +69 -0
  138. package/docs/zh/guide/quick-start.md +134 -0
  139. package/docs/zh/guide/sdk-readme.md +253 -0
  140. package/docs/zh/guide/task_breakdown.md +76 -0
  141. package/docs/zh/guide/technical_plan.md +510 -0
  142. package/docs/zh/guide/use-cases/community-management.md +141 -0
  143. package/docs/zh/guide/use-cases/gasless-transactions.md +71 -0
  144. package/docs/zh/guide/use-cases/operator-staking.md +84 -0
  145. package/docs/zh/guide/use-cases/yop.md +72 -0
  146. package/env.template +32 -0
  147. package/examples/l1-api-demo.ts +184 -0
  148. package/examples/l2-clients-demo.ts +138 -0
  149. package/examples/l3-user-onboarding.ts +74 -0
  150. package/examples/prepare-gasless.ts +89 -0
  151. package/examples/sdk-demo/DEVELOPER_GUIDE.md +159 -0
  152. package/examples/sdk-demo/README.md +30 -0
  153. package/examples/sdk-demo/usage.ts +137 -0
  154. package/examples/simple-gasless-demo.ts +80 -0
  155. package/examples/simple-superpaymaster-demo.ts +96 -0
  156. package/ext/aastar-shared-config/.env.example +6 -0
  157. package/ext/aastar-shared-config/.github/workflows/check-secrets.yml +257 -0
  158. package/ext/aastar-shared-config/AGENTS.md +21 -0
  159. package/ext/aastar-shared-config/CHANGELOG.md +99 -0
  160. package/ext/aastar-shared-config/LICENSE +21 -0
  161. package/ext/aastar-shared-config/QUICK_START.md +215 -0
  162. package/ext/aastar-shared-config/README.md +412 -0
  163. package/ext/aastar-shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  164. package/ext/aastar-shared-config/check-locker-status.mjs +7 -0
  165. package/ext/aastar-shared-config/favicon.ico +0 -0
  166. package/ext/aastar-shared-config/generate-comparison-table.sh +67 -0
  167. package/ext/aastar-shared-config/package.json +46 -0
  168. package/ext/aastar-shared-config/pnpm-lock.yaml +1182 -0
  169. package/ext/aastar-shared-config/src/abis/BLSAggregator.json +1 -0
  170. package/ext/aastar-shared-config/src/abis/DVTValidator.json +1 -0
  171. package/ext/aastar-shared-config/src/abis/GToken.json +1 -0
  172. package/ext/aastar-shared-config/src/abis/GTokenStaking.json +1 -0
  173. package/ext/aastar-shared-config/src/abis/MySBT.json +1 -0
  174. package/ext/aastar-shared-config/src/abis/PaymasterFactory.json +1 -0
  175. package/ext/aastar-shared-config/src/abis/PaymasterV4.json +1098 -0
  176. package/ext/aastar-shared-config/src/abis/Registry.json +1 -0
  177. package/ext/aastar-shared-config/src/abis/SimpleAccount.json +557 -0
  178. package/ext/aastar-shared-config/src/abis/SimpleAccountFactory.json +87 -0
  179. package/ext/aastar-shared-config/src/abis/SuperPaymasterV2.json +1 -0
  180. package/ext/aastar-shared-config/src/abis/index.ts +45 -0
  181. package/ext/aastar-shared-config/src/abis/xPNTsFactory.json +1 -0
  182. package/ext/aastar-shared-config/src/abis/xPNTsToken.json +1 -0
  183. package/ext/aastar-shared-config/src/branding.ts +32 -0
  184. package/ext/aastar-shared-config/src/communities.ts +93 -0
  185. package/ext/aastar-shared-config/src/constants.ts +67 -0
  186. package/ext/aastar-shared-config/src/contract-addresses.ts +95 -0
  187. package/ext/aastar-shared-config/src/contract-versions.ts +374 -0
  188. package/ext/aastar-shared-config/src/contracts.ts +414 -0
  189. package/ext/aastar-shared-config/src/index.ts +14 -0
  190. package/ext/aastar-shared-config/src/networks.ts +117 -0
  191. package/ext/aastar-shared-config/sync-abis.sh +92 -0
  192. package/ext/aastar-shared-config/sync-versions.mjs +150 -0
  193. package/ext/aastar-shared-config/tsconfig.json +18 -0
  194. package/ext/aastar-shared-config/tsup.config.ts +10 -0
  195. package/ext/aastar-shared-config/verify-all.sh +207 -0
  196. package/ext/aastar-shared-config/verify-contracts.sh +85 -0
  197. package/ext/aastar-shared-config/verify-mysbt-v243.mjs +27 -0
  198. package/ext/aastar-shared-config/verify-onchain-versions.mjs +93 -0
  199. package/l4-setup.sh +11 -0
  200. package/lib/SHARED_CONFIG_REFERENCE.md +133 -0
  201. package/lib/shared-config/.env.example +6 -0
  202. package/lib/shared-config/.github/workflows/check-secrets.yml +257 -0
  203. package/lib/shared-config/AGENTS.md +21 -0
  204. package/lib/shared-config/CHANGELOG.md +99 -0
  205. package/lib/shared-config/LICENSE +21 -0
  206. package/lib/shared-config/QUICK_START.md +215 -0
  207. package/lib/shared-config/README.md +412 -0
  208. package/lib/shared-config/SHARED_CONFIG_SUMMARY.md +273 -0
  209. package/lib/shared-config/check-locker-status.mjs +7 -0
  210. package/lib/shared-config/favicon.ico +0 -0
  211. package/lib/shared-config/generate-comparison-table.sh +67 -0
  212. package/lib/shared-config/package.json +46 -0
  213. package/lib/shared-config/pnpm-lock.yaml +1182 -0
  214. package/lib/shared-config/src/abis/BLSAggregator.json +1 -0
  215. package/lib/shared-config/src/abis/DVTValidator.json +1 -0
  216. package/lib/shared-config/src/abis/GToken.json +1 -0
  217. package/lib/shared-config/src/abis/GTokenStaking.json +1 -0
  218. package/lib/shared-config/src/abis/MySBT.json +1 -0
  219. package/lib/shared-config/src/abis/PaymasterFactory.json +1 -0
  220. package/lib/shared-config/src/abis/PaymasterV4.json +1098 -0
  221. package/lib/shared-config/src/abis/Registry.json +1 -0
  222. package/lib/shared-config/src/abis/SimpleAccount.json +557 -0
  223. package/lib/shared-config/src/abis/SimpleAccountFactory.json +87 -0
  224. package/lib/shared-config/src/abis/SuperPaymasterV2.json +1 -0
  225. package/lib/shared-config/src/abis/index.ts +45 -0
  226. package/lib/shared-config/src/abis/xPNTsFactory.json +1 -0
  227. package/lib/shared-config/src/abis/xPNTsToken.json +1 -0
  228. package/lib/shared-config/src/branding.ts +32 -0
  229. package/lib/shared-config/src/communities.ts +93 -0
  230. package/lib/shared-config/src/constants.ts +67 -0
  231. package/lib/shared-config/src/contract-addresses.ts +95 -0
  232. package/lib/shared-config/src/contract-versions.ts +374 -0
  233. package/lib/shared-config/src/contracts.ts +414 -0
  234. package/lib/shared-config/src/index.ts +14 -0
  235. package/lib/shared-config/src/networks.ts +117 -0
  236. package/lib/shared-config/sync-abis.sh +92 -0
  237. package/lib/shared-config/sync-versions.mjs +150 -0
  238. package/lib/shared-config/tsconfig.json +18 -0
  239. package/lib/shared-config/tsup.config.ts +10 -0
  240. package/lib/shared-config/verify-all.sh +207 -0
  241. package/lib/shared-config/verify-contracts.sh +85 -0
  242. package/lib/shared-config/verify-mysbt-v243.mjs +27 -0
  243. package/lib/shared-config/verify-onchain-versions.mjs +93 -0
  244. package/package.json +58 -22
  245. package/packages/account/package.json +23 -0
  246. package/packages/account/src/accounts/simple.test.ts +93 -0
  247. package/packages/account/src/accounts/simple.ts +84 -0
  248. package/packages/account/src/eoa.test.ts +37 -0
  249. package/packages/account/src/eoa.ts +33 -0
  250. package/packages/account/src/index.test.ts +34 -0
  251. package/packages/account/src/index.ts +61 -0
  252. package/packages/account/tsconfig.json +11 -0
  253. package/packages/analytics/package.json +28 -0
  254. package/packages/analytics/src/index.ts +145 -0
  255. package/packages/analytics/tsconfig.json +11 -0
  256. package/packages/core/package.json +32 -0
  257. package/packages/core/scripts/audit-abi-coverage.ts +165 -0
  258. package/packages/core/scripts/debug-regex.ts +36 -0
  259. package/packages/core/src/abis/.abi-hashes.json +26 -0
  260. package/packages/core/src/abis/BLSAggregator.json +686 -0
  261. package/packages/core/src/abis/BLSValidator.json +42 -0
  262. package/packages/core/src/abis/DVTValidator.json +368 -0
  263. package/packages/core/src/abis/Eip7702Support.json +24 -0
  264. package/packages/core/src/abis/EntryPoint.json +1382 -0
  265. package/packages/core/src/abis/GToken.json +513 -0
  266. package/packages/core/src/abis/GTokenStaking.json +949 -0
  267. package/packages/core/src/abis/LegacyAccount.json +625 -0
  268. package/packages/core/src/abis/MySBT.json +1518 -0
  269. package/packages/core/src/abis/Paymaster.json +1143 -0
  270. package/packages/core/src/abis/PaymasterFactory.json +640 -0
  271. package/packages/core/src/abis/Registry.json +1942 -0
  272. package/packages/core/src/abis/ReputationSystem.json +699 -0
  273. package/packages/core/src/abis/SenderCreator.json +99 -0
  274. package/packages/core/src/abis/Simple7702Account.json +395 -0
  275. package/packages/core/src/abis/SimpleAccount.json +560 -0
  276. package/packages/core/src/abis/SimpleAccountFactory.json +111 -0
  277. package/packages/core/src/abis/SimpleAccountFactoryV08.json +87 -0
  278. package/packages/core/src/abis/SimpleAccountV08.json +557 -0
  279. package/packages/core/src/abis/SuperPaymaster.json +1781 -0
  280. package/packages/core/src/abis/UserOperationLib.json +57 -0
  281. package/packages/core/src/abis/abi.config.json +24 -0
  282. package/packages/core/src/abis/index.ts +104 -0
  283. package/packages/core/src/abis/xPNTsFactory.json +718 -0
  284. package/packages/core/src/abis/xPNTsToken.json +1280 -0
  285. package/packages/core/src/actions/StateValidator.test.ts +175 -0
  286. package/packages/core/src/actions/StateValidator.ts +253 -0
  287. package/packages/core/src/actions/account.test.ts +155 -0
  288. package/packages/core/src/actions/account.ts +179 -0
  289. package/packages/core/src/actions/aggregator.test.ts +88 -0
  290. package/packages/core/src/actions/aggregator.ts +41 -0
  291. package/packages/core/src/actions/dvt.test.ts +124 -0
  292. package/packages/core/src/actions/dvt.ts +53 -0
  293. package/packages/core/src/actions/entryPoint.test.ts +176 -0
  294. package/packages/core/src/actions/entryPoint.ts +266 -0
  295. package/packages/core/src/actions/factory.test.ts +250 -0
  296. package/packages/core/src/actions/factory.ts +613 -0
  297. package/packages/core/src/actions/faucet.test.ts +202 -0
  298. package/packages/core/src/actions/faucet.ts +421 -0
  299. package/packages/core/src/actions/gtokenExtended.test.ts +162 -0
  300. package/packages/core/src/actions/gtokenExtended.ts +153 -0
  301. package/packages/core/src/actions/index.ts +18 -0
  302. package/packages/core/src/actions/paymasterV4.test.ts +209 -0
  303. package/packages/core/src/actions/paymasterV4.ts +455 -0
  304. package/packages/core/src/actions/registry.test.ts +443 -0
  305. package/packages/core/src/actions/registry.ts +860 -0
  306. package/packages/core/src/actions/reputation.test.ts +225 -0
  307. package/packages/core/src/actions/reputation.ts +378 -0
  308. package/packages/core/src/actions/sbt.test.ts +322 -0
  309. package/packages/core/src/actions/sbt.ts +681 -0
  310. package/packages/core/src/actions/staking.test.ts +273 -0
  311. package/packages/core/src/actions/staking.ts +421 -0
  312. package/packages/core/src/actions/superPaymaster.test.ts +356 -0
  313. package/packages/core/src/actions/superPaymaster.ts +828 -0
  314. package/packages/core/src/actions/tokens.test.ts +60 -0
  315. package/packages/core/src/actions/tokens.ts +527 -0
  316. package/packages/core/src/actions/validators.test.ts +239 -0
  317. package/packages/core/src/actions/validators.ts +590 -0
  318. package/packages/core/src/branding.ts +32 -0
  319. package/packages/core/src/clients/BaseClient.ts +78 -0
  320. package/packages/core/src/clients/types.ts +69 -0
  321. package/packages/core/src/clients.ts +13 -0
  322. package/packages/core/src/communities.ts +93 -0
  323. package/packages/core/src/config/ContractConfigManager.ts +63 -0
  324. package/packages/core/src/constants.ts +145 -0
  325. package/packages/core/src/contract-addresses.ts +125 -0
  326. package/packages/core/src/contracts.test.ts +58 -0
  327. package/packages/core/src/contracts.ts +414 -0
  328. package/packages/core/src/crypto/blsSigner.ts +124 -0
  329. package/packages/core/src/crypto/index.ts +1 -0
  330. package/packages/core/src/index.ts +22 -0
  331. package/packages/core/src/networks.ts +127 -0
  332. package/packages/core/src/requirementChecker.test.ts +71 -0
  333. package/packages/core/src/requirementChecker.ts +187 -0
  334. package/packages/core/src/roles.test.ts +34 -0
  335. package/packages/core/src/roles.ts +255 -0
  336. package/packages/core/src/utils/validation.test.ts +50 -0
  337. package/packages/core/src/utils/validation.ts +66 -0
  338. package/packages/core/src/utils.ts +23 -0
  339. package/packages/core/tsconfig.json +12 -0
  340. package/packages/core/vitest.config.ts +14 -0
  341. package/packages/dapp/package.json +30 -0
  342. package/packages/dapp/src/index.ts +4 -0
  343. package/packages/dapp/src/ui/components/EvaluationPanel.tsx +40 -0
  344. package/packages/dapp/src/ui/hooks/useCreditScore.ts +44 -0
  345. package/packages/dapp/src/ui/hooks/useSuperPaymaster.ts +31 -0
  346. package/packages/dapp/src/ui/index.ts +22 -0
  347. package/packages/dapp/tsconfig.json +12 -0
  348. package/packages/identity/package.json +25 -0
  349. package/packages/identity/src/index.ts +114 -0
  350. package/packages/identity/src/mysbt.ts +48 -0
  351. package/packages/identity/tsconfig.json +11 -0
  352. package/packages/paymaster/package.json +25 -0
  353. package/packages/paymaster/src/SuperPaymaster/index.ts +168 -0
  354. package/packages/paymaster/src/V4/PaymasterClient.test.ts +114 -0
  355. package/packages/paymaster/src/V4/PaymasterClient.ts +385 -0
  356. package/packages/paymaster/src/V4/PaymasterOperator.test.ts +80 -0
  357. package/packages/paymaster/src/V4/PaymasterOperator.ts +282 -0
  358. package/packages/paymaster/src/V4/PaymasterUtils.test.ts +54 -0
  359. package/packages/paymaster/src/V4/PaymasterUtils.ts +185 -0
  360. package/packages/paymaster/src/V4/SuperPaymasterClient.test.ts +79 -0
  361. package/packages/paymaster/src/V4/SuperPaymasterClient.ts +123 -0
  362. package/packages/paymaster/src/V4/index.ts +4 -0
  363. package/packages/paymaster/src/index.ts +5 -0
  364. package/packages/paymaster/tsconfig.json +11 -0
  365. package/packages/sdk/README.md +150 -0
  366. package/packages/sdk/aastar/package.json +21 -0
  367. package/packages/sdk/aastar/src/index.ts +3 -0
  368. package/packages/sdk/aastar/tsconfig.json +7 -0
  369. package/packages/sdk/coverage_output.txt +393 -0
  370. package/packages/sdk/coverage_output_final.txt +739 -0
  371. package/packages/sdk/coverage_output_final_v2.txt +722 -0
  372. package/packages/sdk/coverage_output_final_v3.txt +722 -0
  373. package/packages/sdk/examples/config.json +1 -0
  374. package/packages/sdk/examples/regression_test.ts +106 -0
  375. package/packages/sdk/package.json +44 -0
  376. package/packages/sdk/src/clients/ExperimentClient.test.ts +65 -0
  377. package/packages/sdk/src/clients/ExperimentClient.ts +80 -0
  378. package/packages/sdk/src/clients/admin.test.ts +98 -0
  379. package/packages/sdk/src/clients/admin.ts +154 -0
  380. package/packages/sdk/src/clients/clients.test.ts +104 -0
  381. package/packages/sdk/src/clients/community.test.ts +118 -0
  382. package/packages/sdk/src/clients/community.ts +337 -0
  383. package/packages/sdk/src/clients/endUser.test.ts +221 -0
  384. package/packages/sdk/src/clients/endUser.ts +551 -0
  385. package/packages/sdk/src/clients/operator.test.ts +162 -0
  386. package/packages/sdk/src/clients/operator.ts +355 -0
  387. package/packages/sdk/src/errors/AAStarError.test.ts +92 -0
  388. package/packages/sdk/src/errors/AAStarError.ts +70 -0
  389. package/packages/sdk/src/errors/decoder.test.ts +107 -0
  390. package/packages/sdk/src/errors/decoder.ts +91 -0
  391. package/packages/sdk/src/index.ts +23 -0
  392. package/packages/sdk/src/node/index.ts +8 -0
  393. package/packages/sdk/src/types/result.ts +29 -0
  394. package/packages/sdk/src/utils/errorHandler.test.ts +102 -0
  395. package/packages/sdk/src/utils/errorHandler.ts +167 -0
  396. package/packages/sdk/src/utils/eventDecoder.test.ts +56 -0
  397. package/packages/sdk/src/utils/eventDecoder.ts +66 -0
  398. package/packages/sdk/src/utils/funding.test.ts +117 -0
  399. package/packages/sdk/src/utils/funding.ts +280 -0
  400. package/packages/sdk/src/utils/keys.test.ts +105 -0
  401. package/packages/sdk/src/utils/keys.ts +174 -0
  402. package/packages/sdk/src/utils/roleData.test.ts +85 -0
  403. package/packages/sdk/src/utils/roleData.ts +140 -0
  404. package/packages/sdk/src/utils/testScenarios.test.ts +79 -0
  405. package/packages/sdk/src/utils/testScenarios.ts +128 -0
  406. package/packages/sdk/src/utils/userOp.test.ts +190 -0
  407. package/packages/sdk/src/utils/userOp.ts +265 -0
  408. package/packages/sdk/tests/scenarios/01_onboard_community.ts +62 -0
  409. package/packages/sdk/tests/scenarios/02_onboard_operator.ts +109 -0
  410. package/packages/sdk/tests/scenarios/03_onboard_user.ts +53 -0
  411. package/packages/sdk/tests/scenarios/04_gasless_tx_flow.ts +68 -0
  412. package/packages/sdk/tests/scenarios/check_entrypoint.ts +19 -0
  413. package/packages/sdk/tests/scenarios/check_initialization.ts +65 -0
  414. package/packages/sdk/tests/scenarios/debug_addresses.ts +26 -0
  415. package/packages/sdk/tests/scenarios/diagnose_scenario4.ts +55 -0
  416. package/packages/sdk/tests/scenarios/setup.ts +33 -0
  417. package/packages/sdk/tests/scenarios/test_entrypoint_nonce.ts +46 -0
  418. package/packages/sdk/tsconfig.json +11 -0
  419. package/packages/tokens/package.json +25 -0
  420. package/packages/tokens/src/index.ts +273 -0
  421. package/packages/tokens/tsconfig.json +11 -0
  422. package/pnpm-workspace.yaml +2 -0
  423. package/run_l4_gasless_regression.sh +79 -0
  424. package/run_sdk_regression.sh +238 -0
  425. package/scripts/00_utils.ts +59 -0
  426. package/scripts/00_verify_phase1.ts +130 -0
  427. package/scripts/01_1_prep_gtoken.ts +81 -0
  428. package/scripts/01_2_register_sbt.ts +88 -0
  429. package/scripts/01_3_prep_tokens_paymaster.ts +102 -0
  430. package/scripts/01_prepare_all.ts +222 -0
  431. package/scripts/02_test_eoa.ts +53 -0
  432. package/scripts/03_test_standard_aa.ts +68 -0
  433. package/scripts/04_0_check_deploy.ts +24 -0
  434. package/scripts/04_1_check_allowance.ts +44 -0
  435. package/scripts/04_2_construct_verify.ts +96 -0
  436. package/scripts/04_3_verify_estimate.ts +66 -0
  437. package/scripts/04_4_verify_pack.ts +74 -0
  438. package/scripts/04_test_paymaster_v4.ts +60 -0
  439. package/scripts/05_1_deposit.ts +48 -0
  440. package/scripts/05_test_superpaymaster.ts +58 -0
  441. package/scripts/06_local_test_v3_admin.ts +163 -0
  442. package/scripts/06_local_test_v3_execution.ts +132 -0
  443. package/scripts/06_local_test_v3_full.ts +490 -0
  444. package/scripts/06_local_test_v3_funding.ts +124 -0
  445. package/scripts/06_local_test_v3_reputation.ts +234 -0
  446. package/scripts/07_local_test_v3_audit.ts +181 -0
  447. package/scripts/08_local_test_registry_lifecycle.ts +382 -0
  448. package/scripts/09_local_test_community_lifecycle.ts +385 -0
  449. package/scripts/09_local_test_community_simple.ts +108 -0
  450. package/scripts/09_scenario_bread_independent.ts +247 -0
  451. package/scripts/10_scenario_super_shared.ts +196 -0
  452. package/scripts/10_test_protocol_admin_full.ts +173 -0
  453. package/scripts/11_scenario_hacker_defense.ts +104 -0
  454. package/scripts/11_test_core_flows_full.ts +157 -0
  455. package/scripts/12_test_slash_mechanism.ts +205 -0
  456. package/scripts/12_test_slash_queries.ts +83 -0
  457. package/scripts/12_test_staking_exit.ts +152 -0
  458. package/scripts/12_test_staking_slash.ts +301 -0
  459. package/scripts/12_test_tier2_slash.ts +139 -0
  460. package/scripts/13_test_sbt_burn_linkage.ts +266 -0
  461. package/scripts/14_test_credit_redesign.ts +266 -0
  462. package/scripts/15_test_bls_full.ts +148 -0
  463. package/scripts/15_test_dvt_bls_full.ts +140 -0
  464. package/scripts/17_test_cross_role_collaboration.ts +95 -0
  465. package/scripts/18_sdk_e2e_verification.ts +67 -0
  466. package/scripts/18_test_dvt_sdk_flow.ts +138 -0
  467. package/scripts/18_test_lifecycle_completion.ts +144 -0
  468. package/scripts/19_sdk_experiment_runner.ts +114 -0
  469. package/scripts/19_sdk_experiment_runner.ts.backup +391 -0
  470. package/scripts/20_sdk_full_capability.ts +93 -0
  471. package/scripts/20_test_superpaymaster_new_apis.ts +193 -0
  472. package/scripts/21_test_paymasterv4_complete.ts +341 -0
  473. package/scripts/22_test_bls_signing.ts +260 -0
  474. package/scripts/23_test_middleware.ts +197 -0
  475. package/scripts/98_edge_reentrancy.ts +85 -0
  476. package/scripts/99_bug_hunting_fast.ts +99 -0
  477. package/scripts/analyze_abi_coverage.ts +169 -0
  478. package/scripts/check-admin.ts +95 -0
  479. package/scripts/check-jason-status.ts +184 -0
  480. package/scripts/check-roles.ts +36 -0
  481. package/scripts/clear-nonce.ts +47 -0
  482. package/scripts/collect_industry_baseline.ts +236 -0
  483. package/scripts/complete-jack-superpaymaster.ts +171 -0
  484. package/scripts/complete_env_config.ts +97 -0
  485. package/scripts/debug-addr.ts +43 -0
  486. package/scripts/debug-community-registration.ts +92 -0
  487. package/scripts/debug-deploy-v4.ts +116 -0
  488. package/scripts/debug-paymaster.ts +127 -0
  489. package/scripts/debug-register-role.ts +101 -0
  490. package/scripts/debug-version.ts +71 -0
  491. package/scripts/debug_account_c.ts +43 -0
  492. package/scripts/debug_bls.ts +58 -0
  493. package/scripts/debug_config_v036.ts +13 -0
  494. package/scripts/debug_contracts.ts +2 -0
  495. package/scripts/debug_env.ts +69 -0
  496. package/scripts/debug_find_paymaster.ts +98 -0
  497. package/scripts/debug_isolated_registration.ts +256 -0
  498. package/scripts/debug_paymaster_config.ts +19 -0
  499. package/scripts/debug_pim_addr.ts +23 -0
  500. package/scripts/debug_pm_status.ts +51 -0
  501. package/scripts/debug_registry.ts +39 -0
  502. package/scripts/debug_registry_setup.ts +129 -0
  503. package/scripts/debug_sanity.ts +32 -0
  504. package/scripts/debug_shared_config.ts +10 -0
  505. package/scripts/debug_token_compat.ts +51 -0
  506. package/scripts/debug_tokens.ts +41 -0
  507. package/scripts/debug_vcheck.ts +33 -0
  508. package/scripts/deploy-sync.ts +104 -0
  509. package/scripts/deploy_and_init_v3.sh +134 -0
  510. package/scripts/deploy_anvil_accounts.ts +144 -0
  511. package/scripts/deploy_paymaster_v4.ts +139 -0
  512. package/scripts/deploy_test_accounts.ts +401 -0
  513. package/scripts/deprecated/check_aa_entrypoint.ts +29 -0
  514. package/scripts/deprecated/check_paymaster_deposits.ts +45 -0
  515. package/scripts/deprecated/debug_aoa_function.ts +28 -0
  516. package/scripts/deprecated/debug_aoa_issue.ts +16 -0
  517. package/scripts/deprecated/debug_pimlico_aa23.ts +40 -0
  518. package/scripts/deprecated/debug_summary.ts +34 -0
  519. package/scripts/deprecated/deploy_v07_aa.ts +99 -0
  520. package/scripts/deprecated/fix_all_issues.ts +61 -0
  521. package/scripts/deprecated/fund_bpnts.ts +52 -0
  522. package/scripts/deprecated/get_factory_addresses.ts +28 -0
  523. package/scripts/deprecated/recheck_pim.ts +34 -0
  524. package/scripts/dev_tools/extract_abis.sh +151 -0
  525. package/scripts/dev_tools/extract_addresses_to_env.sh +67 -0
  526. package/scripts/dev_tools/final_safe_harmonize.py +77 -0
  527. package/scripts/dev_tools/safe_harmonize.py +107 -0
  528. package/scripts/dev_tools/surgical_harmonize.py +83 -0
  529. package/scripts/experiment/stage3/SETUP_GUIDE.md +258 -0
  530. package/scripts/experiment/stage3/archived_scripts/00_token_distribution.ts +78 -0
  531. package/scripts/experiment/stage3/archived_scripts/01_dao_launch.ts +96 -0
  532. package/scripts/experiment/stage3/archived_scripts/01b_bread_launch.ts +112 -0
  533. package/scripts/experiment/stage3/archived_scripts/02_operator_setup.ts +84 -0
  534. package/scripts/experiment/stage3/archived_scripts/02b_operator_b_setup.ts +104 -0
  535. package/scripts/experiment/stage3/archived_scripts/02c_finalize_operators.ts +86 -0
  536. package/scripts/experiment/stage3/archived_scripts/02d_operator_collateral.ts +89 -0
  537. package/scripts/experiment/stage3/archived_scripts/03_user_onboarding.ts +83 -0
  538. package/scripts/experiment/stage3/archived_scripts/03b_deploy_aa_account.ts +61 -0
  539. package/scripts/experiment/stage3/archived_scripts/03c_aa_onboarding.ts +104 -0
  540. package/scripts/experiment/stage3/archived_scripts/03d_mint_points.ts +60 -0
  541. package/scripts/experiment/stage3/archived_scripts/04_benchmarking.ts +100 -0
  542. package/scripts/experiment/stage3/archived_scripts/05_multi_op_setup.ts +149 -0
  543. package/scripts/experiment/stage3/archived_scripts/README.md +58 -0
  544. package/scripts/experiment/stage3/archived_scripts/check_roles.ts +29 -0
  545. package/scripts/experiment/stage3/archived_scripts/decode_error.ts +23 -0
  546. package/scripts/experiment/stage3/archived_scripts/fund_user.ts +51 -0
  547. package/scripts/experiment/stage3/archived_scripts/gen_b_key.ts +3 -0
  548. package/scripts/experiment/stage3/archived_scripts/gen_keys.ts +4 -0
  549. package/scripts/experiment/stage3/archived_scripts/setup.ts +105 -0
  550. package/scripts/experiment/stage3/archived_scripts/test_key.ts +4 -0
  551. package/scripts/experiment/stage3/archived_scripts/verify_state.ts +59 -0
  552. package/scripts/experiment/stage3/refactored/00_token_distribution.ts +46 -0
  553. package/scripts/experiment/stage3/refactored/02_operator_setup.ts +65 -0
  554. package/scripts/experiment/stage3/refactored/03_user_onboarding.ts +68 -0
  555. package/scripts/experiment/stage3/refactored/05_multi_op_setup.ts +63 -0
  556. package/scripts/experiment/stage3/refactored/README.md +71 -0
  557. package/scripts/extract-docs.sh +141 -0
  558. package/scripts/fund-jack.ts +38 -0
  559. package/scripts/generate_env_from_deployment.ts +109 -0
  560. package/scripts/inspect-anni-token.ts +116 -0
  561. package/scripts/inspect-factory.ts +83 -0
  562. package/scripts/l4-paymasterv4-transfer-test.ts +228 -0
  563. package/scripts/l4-setup.ts +453 -0
  564. package/scripts/l4-state.json +80 -0
  565. package/scripts/phase1_verify_contracts.ts +207 -0
  566. package/scripts/pre_test_sync.ts +83 -0
  567. package/scripts/prepare_sepolia_resources.ts +154 -0
  568. package/scripts/publish_all.sh +39 -0
  569. package/scripts/query-jack-token.ts +22 -0
  570. package/scripts/quick_setup.ts +124 -0
  571. package/scripts/quick_setup_account.ts +80 -0
  572. package/scripts/run_automated_experiment.sh +121 -0
  573. package/scripts/run_daily_experiment.ts +70 -0
  574. package/scripts/run_l4_gasless_regression.sh +32 -0
  575. package/scripts/run_sdk_experiment.sh +13 -0
  576. package/scripts/run_sdk_regression-v2.sh +38 -0
  577. package/scripts/sdk_regression_v2.ts +162 -0
  578. package/scripts/security_audit.sh +172 -0
  579. package/scripts/setup-bbq-community.ts +187 -0
  580. package/scripts/setup-dancing-community.ts +223 -0
  581. package/scripts/setup_test_accounts.ts +88 -0
  582. package/scripts/setup_test_environment.ts +147 -0
  583. package/scripts/sync_anvil_config.cjs +44 -0
  584. package/scripts/sync_config_to_env.ts +88 -0
  585. package/scripts/sync_contract_addresses.ts +186 -0
  586. package/scripts/sync_sepolia_config.cjs +90 -0
  587. package/scripts/sync_sepolia_config.mjs +74 -0
  588. package/scripts/test-brown-v4-deploy.ts +90 -0
  589. package/scripts/test-faucet-and-gasless.ts +170 -0
  590. package/scripts/test-jack-gasless.ts +119 -0
  591. package/scripts/test-jack-registration.ts +133 -0
  592. package/scripts/test-jack-superpaymaster-api.ts +112 -0
  593. package/scripts/test-kms-gasless.ts +138 -0
  594. package/scripts/test_groups.ts +138 -0
  595. package/scripts/test_multi_community_anvil.ts +276 -0
  596. package/scripts/test_new_sdk_apis_sepolia.ts +193 -0
  597. package/scripts/test_sdk_join_idempotent.ts +233 -0
  598. package/scripts/test_simple_sepolia.ts +44 -0
  599. package/scripts/update_env_from_config.ts +83 -0
  600. package/scripts/v2_regression/00_validate_env.ts +101 -0
  601. package/scripts/v2_regression/01_setup_and_fund.ts +132 -0
  602. package/scripts/v2_regression/02_operator_onboarding.ts +174 -0
  603. package/scripts/v2_regression/03_community_registry.ts +139 -0
  604. package/scripts/v2_regression/04_enduser_flow.ts +141 -0
  605. package/scripts/v2_regression/05_admin_audit.ts +157 -0
  606. package/scripts/v2_regression/README.md +161 -0
  607. package/scripts/validate_env.ts +112 -0
  608. package/scripts/verify-tx-status.ts +81 -0
  609. package/scripts/verify_onchain_milestone.ts +114 -0
  610. package/scripts/verify_phase1.ts +66 -0
  611. package/scripts/verify_phase2.ts +66 -0
  612. package/sdk_experiment_data.csv +4 -0
  613. package/simple-test-paymaster.sh +2 -0
  614. package/simple-test-superpaymaster.sh +1 -0
  615. package/tests/l1-regression.test.ts +458 -0
  616. package/tests/l4-test-anni-gasless.ts +105 -0
  617. package/tests/l4-test-jason1-gasless.ts +150 -0
  618. package/tests/l4-test-jason2-gasless.ts +174 -0
  619. package/tests/l4-test-pmv4-deposit.ts +111 -0
  620. package/tests/l4-test-pmv4-gasless.ts +166 -0
  621. package/tests/l4-test-pmv4-submit.ts +223 -0
  622. package/tests/regression/README.md +168 -0
  623. package/tests/regression/config.ts +215 -0
  624. package/tests/regression/display-versions.ts +85 -0
  625. package/tests/regression/index.ts +67 -0
  626. package/tests/regression/l1-tests.ts +267 -0
  627. package/tests/regression/l2-tests.ts +171 -0
  628. package/tests/regression/l3-tests.ts +125 -0
  629. package/tests/regression/l4-gasless.ts +897 -0
  630. package/tests/regression/l4-runner.ts +52 -0
  631. package/tests/reports/phase1_contract_verification.md +45 -0
  632. package/tests/utils/contractVerifier.ts +237 -0
  633. package/tests/utils/userOpHelper.ts +194 -0
  634. package/tsconfig.json +41 -0
  635. package/typedoc.json +59 -0
  636. package/vitest.config.ts +16 -0
  637. package/dist/clients/admin.d.ts +0 -12
  638. package/dist/clients/admin.d.ts.map +0 -1
  639. package/dist/clients/admin.js +0 -20
  640. package/dist/clients/admin.js.map +0 -1
  641. package/dist/clients/community.d.ts +0 -12
  642. package/dist/clients/community.d.ts.map +0 -1
  643. package/dist/clients/community.js +0 -18
  644. package/dist/clients/community.js.map +0 -1
  645. package/dist/clients/endUser.d.ts +0 -12
  646. package/dist/clients/endUser.d.ts.map +0 -1
  647. package/dist/clients/endUser.js +0 -20
  648. package/dist/clients/endUser.js.map +0 -1
  649. package/dist/clients/operator.d.ts +0 -18
  650. package/dist/clients/operator.d.ts.map +0 -1
  651. package/dist/clients/operator.js +0 -65
  652. package/dist/clients/operator.js.map +0 -1
  653. package/dist/index.d.ts +0 -11
  654. package/dist/index.d.ts.map +0 -1
  655. package/dist/index.js +0 -12
  656. package/dist/index.js.map +0 -1
@@ -0,0 +1,949 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "type": "constructor",
5
+ "inputs": [
6
+ {
7
+ "name": "_gtoken",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "_treasury",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ }
16
+ ],
17
+ "stateMutability": "nonpayable"
18
+ },
19
+ {
20
+ "type": "function",
21
+ "name": "GTOKEN",
22
+ "inputs": [],
23
+ "outputs": [
24
+ {
25
+ "name": "",
26
+ "type": "address",
27
+ "internalType": "contract IERC20"
28
+ }
29
+ ],
30
+ "stateMutability": "view"
31
+ },
32
+ {
33
+ "type": "function",
34
+ "name": "REGISTRY",
35
+ "inputs": [],
36
+ "outputs": [
37
+ {
38
+ "name": "",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ }
42
+ ],
43
+ "stateMutability": "view"
44
+ },
45
+ {
46
+ "type": "function",
47
+ "name": "authorizedSlashers",
48
+ "inputs": [
49
+ {
50
+ "name": "",
51
+ "type": "address",
52
+ "internalType": "address"
53
+ }
54
+ ],
55
+ "outputs": [
56
+ {
57
+ "name": "",
58
+ "type": "bool",
59
+ "internalType": "bool"
60
+ }
61
+ ],
62
+ "stateMutability": "view"
63
+ },
64
+ {
65
+ "type": "function",
66
+ "name": "availableBalance",
67
+ "inputs": [
68
+ {
69
+ "name": "",
70
+ "type": "address",
71
+ "internalType": "address"
72
+ }
73
+ ],
74
+ "outputs": [
75
+ {
76
+ "name": "",
77
+ "type": "uint256",
78
+ "internalType": "uint256"
79
+ }
80
+ ],
81
+ "stateMutability": "pure"
82
+ },
83
+ {
84
+ "type": "function",
85
+ "name": "balanceOf",
86
+ "inputs": [
87
+ {
88
+ "name": "user",
89
+ "type": "address",
90
+ "internalType": "address"
91
+ }
92
+ ],
93
+ "outputs": [
94
+ {
95
+ "name": "",
96
+ "type": "uint256",
97
+ "internalType": "uint256"
98
+ }
99
+ ],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "getLockedStake",
105
+ "inputs": [
106
+ {
107
+ "name": "user",
108
+ "type": "address",
109
+ "internalType": "address"
110
+ },
111
+ {
112
+ "name": "roleId",
113
+ "type": "bytes32",
114
+ "internalType": "bytes32"
115
+ }
116
+ ],
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "uint256",
121
+ "internalType": "uint256"
122
+ }
123
+ ],
124
+ "stateMutability": "view"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "getStakeInfo",
129
+ "inputs": [
130
+ {
131
+ "name": "operator",
132
+ "type": "address",
133
+ "internalType": "address"
134
+ },
135
+ {
136
+ "name": "roleId",
137
+ "type": "bytes32",
138
+ "internalType": "bytes32"
139
+ }
140
+ ],
141
+ "outputs": [
142
+ {
143
+ "name": "",
144
+ "type": "tuple",
145
+ "internalType": "struct IGTokenStaking.StakeInfo",
146
+ "components": [
147
+ {
148
+ "name": "amount",
149
+ "type": "uint256",
150
+ "internalType": "uint256"
151
+ },
152
+ {
153
+ "name": "slashedAmount",
154
+ "type": "uint256",
155
+ "internalType": "uint256"
156
+ },
157
+ {
158
+ "name": "stakedAt",
159
+ "type": "uint256",
160
+ "internalType": "uint256"
161
+ },
162
+ {
163
+ "name": "unstakeRequestedAt",
164
+ "type": "uint256",
165
+ "internalType": "uint256"
166
+ }
167
+ ]
168
+ }
169
+ ],
170
+ "stateMutability": "view"
171
+ },
172
+ {
173
+ "type": "function",
174
+ "name": "getUserRoleLocks",
175
+ "inputs": [
176
+ {
177
+ "name": "user",
178
+ "type": "address",
179
+ "internalType": "address"
180
+ }
181
+ ],
182
+ "outputs": [
183
+ {
184
+ "name": "",
185
+ "type": "tuple[]",
186
+ "internalType": "struct IGTokenStaking.RoleLock[]",
187
+ "components": [
188
+ {
189
+ "name": "amount",
190
+ "type": "uint128",
191
+ "internalType": "uint128"
192
+ },
193
+ {
194
+ "name": "entryBurn",
195
+ "type": "uint128",
196
+ "internalType": "uint128"
197
+ },
198
+ {
199
+ "name": "lockedAt",
200
+ "type": "uint48",
201
+ "internalType": "uint48"
202
+ },
203
+ {
204
+ "name": "roleId",
205
+ "type": "bytes32",
206
+ "internalType": "bytes32"
207
+ },
208
+ {
209
+ "name": "metadata",
210
+ "type": "bytes",
211
+ "internalType": "bytes"
212
+ }
213
+ ]
214
+ }
215
+ ],
216
+ "stateMutability": "view"
217
+ },
218
+ {
219
+ "type": "function",
220
+ "name": "hasRoleLock",
221
+ "inputs": [
222
+ {
223
+ "name": "user",
224
+ "type": "address",
225
+ "internalType": "address"
226
+ },
227
+ {
228
+ "name": "roleId",
229
+ "type": "bytes32",
230
+ "internalType": "bytes32"
231
+ }
232
+ ],
233
+ "outputs": [
234
+ {
235
+ "name": "",
236
+ "type": "bool",
237
+ "internalType": "bool"
238
+ }
239
+ ],
240
+ "stateMutability": "view"
241
+ },
242
+ {
243
+ "type": "function",
244
+ "name": "lockStake",
245
+ "inputs": [
246
+ {
247
+ "name": "user",
248
+ "type": "address",
249
+ "internalType": "address"
250
+ },
251
+ {
252
+ "name": "roleId",
253
+ "type": "bytes32",
254
+ "internalType": "bytes32"
255
+ },
256
+ {
257
+ "name": "stakeAmount",
258
+ "type": "uint256",
259
+ "internalType": "uint256"
260
+ },
261
+ {
262
+ "name": "entryBurn",
263
+ "type": "uint256",
264
+ "internalType": "uint256"
265
+ },
266
+ {
267
+ "name": "payer",
268
+ "type": "address",
269
+ "internalType": "address"
270
+ }
271
+ ],
272
+ "outputs": [
273
+ {
274
+ "name": "lockId",
275
+ "type": "uint256",
276
+ "internalType": "uint256"
277
+ }
278
+ ],
279
+ "stateMutability": "nonpayable"
280
+ },
281
+ {
282
+ "type": "function",
283
+ "name": "owner",
284
+ "inputs": [],
285
+ "outputs": [
286
+ {
287
+ "name": "",
288
+ "type": "address",
289
+ "internalType": "address"
290
+ }
291
+ ],
292
+ "stateMutability": "view"
293
+ },
294
+ {
295
+ "type": "function",
296
+ "name": "previewExitFee",
297
+ "inputs": [
298
+ {
299
+ "name": "user",
300
+ "type": "address",
301
+ "internalType": "address"
302
+ },
303
+ {
304
+ "name": "roleId",
305
+ "type": "bytes32",
306
+ "internalType": "bytes32"
307
+ }
308
+ ],
309
+ "outputs": [
310
+ {
311
+ "name": "fee",
312
+ "type": "uint256",
313
+ "internalType": "uint256"
314
+ },
315
+ {
316
+ "name": "netAmount",
317
+ "type": "uint256",
318
+ "internalType": "uint256"
319
+ }
320
+ ],
321
+ "stateMutability": "view"
322
+ },
323
+ {
324
+ "type": "function",
325
+ "name": "renounceOwnership",
326
+ "inputs": [],
327
+ "outputs": [],
328
+ "stateMutability": "nonpayable"
329
+ },
330
+ {
331
+ "type": "function",
332
+ "name": "roleExitConfigs",
333
+ "inputs": [
334
+ {
335
+ "name": "",
336
+ "type": "bytes32",
337
+ "internalType": "bytes32"
338
+ }
339
+ ],
340
+ "outputs": [
341
+ {
342
+ "name": "feePercent",
343
+ "type": "uint256",
344
+ "internalType": "uint256"
345
+ },
346
+ {
347
+ "name": "minFee",
348
+ "type": "uint256",
349
+ "internalType": "uint256"
350
+ }
351
+ ],
352
+ "stateMutability": "view"
353
+ },
354
+ {
355
+ "type": "function",
356
+ "name": "roleLocks",
357
+ "inputs": [
358
+ {
359
+ "name": "",
360
+ "type": "address",
361
+ "internalType": "address"
362
+ },
363
+ {
364
+ "name": "",
365
+ "type": "bytes32",
366
+ "internalType": "bytes32"
367
+ }
368
+ ],
369
+ "outputs": [
370
+ {
371
+ "name": "amount",
372
+ "type": "uint128",
373
+ "internalType": "uint128"
374
+ },
375
+ {
376
+ "name": "entryBurn",
377
+ "type": "uint128",
378
+ "internalType": "uint128"
379
+ },
380
+ {
381
+ "name": "lockedAt",
382
+ "type": "uint48",
383
+ "internalType": "uint48"
384
+ },
385
+ {
386
+ "name": "roleId",
387
+ "type": "bytes32",
388
+ "internalType": "bytes32"
389
+ },
390
+ {
391
+ "name": "metadata",
392
+ "type": "bytes",
393
+ "internalType": "bytes"
394
+ }
395
+ ],
396
+ "stateMutability": "view"
397
+ },
398
+ {
399
+ "type": "function",
400
+ "name": "setAuthorizedSlasher",
401
+ "inputs": [
402
+ {
403
+ "name": "slasher",
404
+ "type": "address",
405
+ "internalType": "address"
406
+ },
407
+ {
408
+ "name": "authorized",
409
+ "type": "bool",
410
+ "internalType": "bool"
411
+ }
412
+ ],
413
+ "outputs": [],
414
+ "stateMutability": "nonpayable"
415
+ },
416
+ {
417
+ "type": "function",
418
+ "name": "setRegistry",
419
+ "inputs": [
420
+ {
421
+ "name": "_registry",
422
+ "type": "address",
423
+ "internalType": "address"
424
+ }
425
+ ],
426
+ "outputs": [],
427
+ "stateMutability": "nonpayable"
428
+ },
429
+ {
430
+ "type": "function",
431
+ "name": "setRoleExitFee",
432
+ "inputs": [
433
+ {
434
+ "name": "roleId",
435
+ "type": "bytes32",
436
+ "internalType": "bytes32"
437
+ },
438
+ {
439
+ "name": "feePercent",
440
+ "type": "uint256",
441
+ "internalType": "uint256"
442
+ },
443
+ {
444
+ "name": "minFee",
445
+ "type": "uint256",
446
+ "internalType": "uint256"
447
+ }
448
+ ],
449
+ "outputs": [],
450
+ "stateMutability": "nonpayable"
451
+ },
452
+ {
453
+ "type": "function",
454
+ "name": "setTreasury",
455
+ "inputs": [
456
+ {
457
+ "name": "_treasury",
458
+ "type": "address",
459
+ "internalType": "address"
460
+ }
461
+ ],
462
+ "outputs": [],
463
+ "stateMutability": "nonpayable"
464
+ },
465
+ {
466
+ "type": "function",
467
+ "name": "slash",
468
+ "inputs": [
469
+ {
470
+ "name": "user",
471
+ "type": "address",
472
+ "internalType": "address"
473
+ },
474
+ {
475
+ "name": "amount",
476
+ "type": "uint256",
477
+ "internalType": "uint256"
478
+ },
479
+ {
480
+ "name": "reason",
481
+ "type": "string",
482
+ "internalType": "string"
483
+ }
484
+ ],
485
+ "outputs": [
486
+ {
487
+ "name": "slashedAmount",
488
+ "type": "uint256",
489
+ "internalType": "uint256"
490
+ }
491
+ ],
492
+ "stateMutability": "nonpayable"
493
+ },
494
+ {
495
+ "type": "function",
496
+ "name": "slashByDVT",
497
+ "inputs": [
498
+ {
499
+ "name": "operator",
500
+ "type": "address",
501
+ "internalType": "address"
502
+ },
503
+ {
504
+ "name": "roleId",
505
+ "type": "bytes32",
506
+ "internalType": "bytes32"
507
+ },
508
+ {
509
+ "name": "penaltyAmount",
510
+ "type": "uint256",
511
+ "internalType": "uint256"
512
+ },
513
+ {
514
+ "name": "reason",
515
+ "type": "string",
516
+ "internalType": "string"
517
+ }
518
+ ],
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable"
521
+ },
522
+ {
523
+ "type": "function",
524
+ "name": "stakes",
525
+ "inputs": [
526
+ {
527
+ "name": "",
528
+ "type": "address",
529
+ "internalType": "address"
530
+ }
531
+ ],
532
+ "outputs": [
533
+ {
534
+ "name": "amount",
535
+ "type": "uint256",
536
+ "internalType": "uint256"
537
+ },
538
+ {
539
+ "name": "slashedAmount",
540
+ "type": "uint256",
541
+ "internalType": "uint256"
542
+ },
543
+ {
544
+ "name": "stakedAt",
545
+ "type": "uint256",
546
+ "internalType": "uint256"
547
+ },
548
+ {
549
+ "name": "unstakeRequestedAt",
550
+ "type": "uint256",
551
+ "internalType": "uint256"
552
+ }
553
+ ],
554
+ "stateMutability": "view"
555
+ },
556
+ {
557
+ "type": "function",
558
+ "name": "topUpStake",
559
+ "inputs": [
560
+ {
561
+ "name": "user",
562
+ "type": "address",
563
+ "internalType": "address"
564
+ },
565
+ {
566
+ "name": "roleId",
567
+ "type": "bytes32",
568
+ "internalType": "bytes32"
569
+ },
570
+ {
571
+ "name": "stakeAmount",
572
+ "type": "uint256",
573
+ "internalType": "uint256"
574
+ },
575
+ {
576
+ "name": "payer",
577
+ "type": "address",
578
+ "internalType": "address"
579
+ }
580
+ ],
581
+ "outputs": [],
582
+ "stateMutability": "nonpayable"
583
+ },
584
+ {
585
+ "type": "function",
586
+ "name": "totalStaked",
587
+ "inputs": [],
588
+ "outputs": [
589
+ {
590
+ "name": "",
591
+ "type": "uint256",
592
+ "internalType": "uint256"
593
+ }
594
+ ],
595
+ "stateMutability": "view"
596
+ },
597
+ {
598
+ "type": "function",
599
+ "name": "transferOwnership",
600
+ "inputs": [
601
+ {
602
+ "name": "newOwner",
603
+ "type": "address",
604
+ "internalType": "address"
605
+ }
606
+ ],
607
+ "outputs": [],
608
+ "stateMutability": "nonpayable"
609
+ },
610
+ {
611
+ "type": "function",
612
+ "name": "treasury",
613
+ "inputs": [],
614
+ "outputs": [
615
+ {
616
+ "name": "",
617
+ "type": "address",
618
+ "internalType": "address"
619
+ }
620
+ ],
621
+ "stateMutability": "view"
622
+ },
623
+ {
624
+ "type": "function",
625
+ "name": "unlockAndTransfer",
626
+ "inputs": [
627
+ {
628
+ "name": "user",
629
+ "type": "address",
630
+ "internalType": "address"
631
+ },
632
+ {
633
+ "name": "roleId",
634
+ "type": "bytes32",
635
+ "internalType": "bytes32"
636
+ }
637
+ ],
638
+ "outputs": [
639
+ {
640
+ "name": "netAmount",
641
+ "type": "uint256",
642
+ "internalType": "uint256"
643
+ }
644
+ ],
645
+ "stateMutability": "nonpayable"
646
+ },
647
+ {
648
+ "type": "function",
649
+ "name": "userActiveRoles",
650
+ "inputs": [
651
+ {
652
+ "name": "",
653
+ "type": "address",
654
+ "internalType": "address"
655
+ },
656
+ {
657
+ "name": "",
658
+ "type": "uint256",
659
+ "internalType": "uint256"
660
+ }
661
+ ],
662
+ "outputs": [
663
+ {
664
+ "name": "",
665
+ "type": "bytes32",
666
+ "internalType": "bytes32"
667
+ }
668
+ ],
669
+ "stateMutability": "view"
670
+ },
671
+ {
672
+ "type": "function",
673
+ "name": "version",
674
+ "inputs": [],
675
+ "outputs": [
676
+ {
677
+ "name": "",
678
+ "type": "string",
679
+ "internalType": "string"
680
+ }
681
+ ],
682
+ "stateMutability": "pure"
683
+ },
684
+ {
685
+ "type": "event",
686
+ "name": "OwnershipTransferred",
687
+ "inputs": [
688
+ {
689
+ "name": "previousOwner",
690
+ "type": "address",
691
+ "indexed": true,
692
+ "internalType": "address"
693
+ },
694
+ {
695
+ "name": "newOwner",
696
+ "type": "address",
697
+ "indexed": true,
698
+ "internalType": "address"
699
+ }
700
+ ],
701
+ "anonymous": false
702
+ },
703
+ {
704
+ "type": "event",
705
+ "name": "StakeLocked",
706
+ "inputs": [
707
+ {
708
+ "name": "user",
709
+ "type": "address",
710
+ "indexed": true,
711
+ "internalType": "address"
712
+ },
713
+ {
714
+ "name": "roleId",
715
+ "type": "bytes32",
716
+ "indexed": true,
717
+ "internalType": "bytes32"
718
+ },
719
+ {
720
+ "name": "amount",
721
+ "type": "uint256",
722
+ "indexed": false,
723
+ "internalType": "uint256"
724
+ },
725
+ {
726
+ "name": "entryBurn",
727
+ "type": "uint256",
728
+ "indexed": false,
729
+ "internalType": "uint256"
730
+ },
731
+ {
732
+ "name": "timestamp",
733
+ "type": "uint256",
734
+ "indexed": false,
735
+ "internalType": "uint256"
736
+ }
737
+ ],
738
+ "anonymous": false
739
+ },
740
+ {
741
+ "type": "event",
742
+ "name": "StakeSlashed",
743
+ "inputs": [
744
+ {
745
+ "name": "operator",
746
+ "type": "address",
747
+ "indexed": true,
748
+ "internalType": "address"
749
+ },
750
+ {
751
+ "name": "roleId",
752
+ "type": "bytes32",
753
+ "indexed": true,
754
+ "internalType": "bytes32"
755
+ },
756
+ {
757
+ "name": "amount",
758
+ "type": "uint256",
759
+ "indexed": false,
760
+ "internalType": "uint256"
761
+ },
762
+ {
763
+ "name": "reason",
764
+ "type": "string",
765
+ "indexed": false,
766
+ "internalType": "string"
767
+ },
768
+ {
769
+ "name": "timestamp",
770
+ "type": "uint256",
771
+ "indexed": false,
772
+ "internalType": "uint256"
773
+ }
774
+ ],
775
+ "anonymous": false
776
+ },
777
+ {
778
+ "type": "event",
779
+ "name": "StakeUnlocked",
780
+ "inputs": [
781
+ {
782
+ "name": "user",
783
+ "type": "address",
784
+ "indexed": true,
785
+ "internalType": "address"
786
+ },
787
+ {
788
+ "name": "roleId",
789
+ "type": "bytes32",
790
+ "indexed": true,
791
+ "internalType": "bytes32"
792
+ },
793
+ {
794
+ "name": "grossAmount",
795
+ "type": "uint256",
796
+ "indexed": false,
797
+ "internalType": "uint256"
798
+ },
799
+ {
800
+ "name": "exitFee",
801
+ "type": "uint256",
802
+ "indexed": false,
803
+ "internalType": "uint256"
804
+ },
805
+ {
806
+ "name": "netAmount",
807
+ "type": "uint256",
808
+ "indexed": false,
809
+ "internalType": "uint256"
810
+ },
811
+ {
812
+ "name": "timestamp",
813
+ "type": "uint256",
814
+ "indexed": false,
815
+ "internalType": "uint256"
816
+ }
817
+ ],
818
+ "anonymous": false
819
+ },
820
+ {
821
+ "type": "event",
822
+ "name": "TokensBurned",
823
+ "inputs": [
824
+ {
825
+ "name": "user",
826
+ "type": "address",
827
+ "indexed": true,
828
+ "internalType": "address"
829
+ },
830
+ {
831
+ "name": "roleId",
832
+ "type": "bytes32",
833
+ "indexed": true,
834
+ "internalType": "bytes32"
835
+ },
836
+ {
837
+ "name": "amount",
838
+ "type": "uint256",
839
+ "indexed": false,
840
+ "internalType": "uint256"
841
+ },
842
+ {
843
+ "name": "purpose",
844
+ "type": "string",
845
+ "indexed": false,
846
+ "internalType": "string"
847
+ }
848
+ ],
849
+ "anonymous": false
850
+ },
851
+ {
852
+ "type": "event",
853
+ "name": "UserSlashed",
854
+ "inputs": [
855
+ {
856
+ "name": "user",
857
+ "type": "address",
858
+ "indexed": true,
859
+ "internalType": "address"
860
+ },
861
+ {
862
+ "name": "amount",
863
+ "type": "uint256",
864
+ "indexed": false,
865
+ "internalType": "uint256"
866
+ },
867
+ {
868
+ "name": "reason",
869
+ "type": "string",
870
+ "indexed": false,
871
+ "internalType": "string"
872
+ },
873
+ {
874
+ "name": "timestamp",
875
+ "type": "uint256",
876
+ "indexed": false,
877
+ "internalType": "uint256"
878
+ }
879
+ ],
880
+ "anonymous": false
881
+ },
882
+ {
883
+ "type": "error",
884
+ "name": "AddressEmptyCode",
885
+ "inputs": [
886
+ {
887
+ "name": "target",
888
+ "type": "address",
889
+ "internalType": "address"
890
+ }
891
+ ]
892
+ },
893
+ {
894
+ "type": "error",
895
+ "name": "AddressInsufficientBalance",
896
+ "inputs": [
897
+ {
898
+ "name": "account",
899
+ "type": "address",
900
+ "internalType": "address"
901
+ }
902
+ ]
903
+ },
904
+ {
905
+ "type": "error",
906
+ "name": "FailedInnerCall",
907
+ "inputs": []
908
+ },
909
+ {
910
+ "type": "error",
911
+ "name": "OwnableInvalidOwner",
912
+ "inputs": [
913
+ {
914
+ "name": "owner",
915
+ "type": "address",
916
+ "internalType": "address"
917
+ }
918
+ ]
919
+ },
920
+ {
921
+ "type": "error",
922
+ "name": "OwnableUnauthorizedAccount",
923
+ "inputs": [
924
+ {
925
+ "name": "account",
926
+ "type": "address",
927
+ "internalType": "address"
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "type": "error",
933
+ "name": "ReentrancyGuardReentrantCall",
934
+ "inputs": []
935
+ },
936
+ {
937
+ "type": "error",
938
+ "name": "SafeERC20FailedOperation",
939
+ "inputs": [
940
+ {
941
+ "name": "token",
942
+ "type": "address",
943
+ "internalType": "address"
944
+ }
945
+ ]
946
+ }
947
+ ],
948
+ "bytecode": "0x60a03461019c57601f6120f438819003918201601f19168301916001600160401b038311848410176101a057808492604094855283398101031261019c57610052602061004b836101b4565b92016101b4565b60015f5533156101895760018054336001600160a01b0319821681179092556040519391906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031691821561015657506001600160a01b031690811561011e57608052600380546001600160a01b031916919091179055604051611f2b90816101c982396080518181816104b501528181610e0701528181610ed6015281816111a2015281816113fa0152818161170801526117470152f35b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420547265617375727960801b6044820152606490fd5b62461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21023aa37b5b2b760911b6044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361019c5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306433b1b146119715750806316934fc41461192257806330b039ee1461189057806336cb2b821461183d578063374e4d73146114f45780634bcb80a21461137357806354fd4d501461132057806361d027b3146112f8578063678b3ee2146110775780636d265c11146110295780636da12d0c14610fd157806370a0823114610f99578063715018a614610f515780637c50309f14610f055780637f6b337b14610ec1578063817b1cd214610ea45780638da5cb5b14610e7c5780638f76484814610ce957806391b65cd614610ac857806394e2b21e14610a95578063a0821be314610a71578063a91ee0dc146109f3578063aed2d908146109b6578063b4d81fb314610901578063befa570e14610420578063d64c66aa1461038e578063f0f442601461030e578063f2fde38b146102985763f50102c01461015d575f80fd5b3461029557604036600319011261029557608090610179611994565b81606060405161018881611a48565b828152826020820152826040820152015260018060a01b03169081815260056020526040812060243582526020526040812091604051906101c882611a2d565b8354600180871b0381168352851c6020830152610205600365ffffffffffff60018701541695604085019687526002810154606086015201611a86565b858301528252600460205265ffffffffffff604083209160405161022881611a48565b8354815260606003600186015495866020850152600281015460408501520154910152600180871b0390511693511690606060405161026681611a48565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b80fd5b5034610295576020366003190112610295576102b2611994565b6102ba611c9b565b6001600160a01b031680156102fa57600180546001600160a01b0319811683179091556001600160a01b03165f516020611e965f395f51905f528380a380f35b631e4fbdf760e01b82526004829052602482fd5b503461029557602036600319011261029557610328611994565b610330611c9b565b6001600160a01b0316801561035657600380546001600160a01b03191691909117905580f35b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420547265617375727960801b6044820152606490fd5b5034610295576060366003190112610295576002546001600160a01b03163314158061040b575b6103d75760043581526007602052604081206024358155600160443591015580f35b60405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606490fd5b506001546001600160a01b03163314156103b5565b503461088d5760a036600319011261088d5761043a611994565b606435916024359160843590604435906001600160a01b038316830361088d57610462611cc2565b6002546001600160a01b031633036108cc576001600160a01b03165f8181526005602090815260408083208884529091529020549092906001600160801b0316610891576104dd6104b38784611bd6565b7f000000000000000000000000000000000000000000000000000000000000000092309084611d20565b856107e0575b508183526004602052604083206104fb828254611bd6565b905581835260046020526002604084200154156107ca575b6001600160801b03811161078c576001600160801b03851161078c576040519461053c86611a2d565b6001600160801b038281168752811660208088019182524265ffffffffffff166040808a0191825260608a0189815290519299929360039392906105808c87611a63565b8986526080848101968752898b5260058d526040808c208d8d528e528b2094519151901b6001600160801b0319166001600160801b03919091161783555160018301805465ffffffffffff191665ffffffffffff929092169190911790555160028201559151805191909201916001600160401b03821161077857819061060784546119c6565b601f811161073f575b508990601f83116001146106dd5788926106d2575b50508160011b915f199060031b1c19161790555b8284526006865260408420805490600160401b8210156106be57869360019695938561069361067d866060968c5f516020611eb65f395f51905f5299018155611b77565b819391549060031b91821b915f19901b19161790565b90556106a182600854611bd6565b60085560405191825289820152426040820152a355604051908152f35b634e487b7160e01b86526041600452602486fd5b015190505f80610625565b8489528a89209250601f198416895b8c828210610729575050908460019594939210610711575b505050811b019055610639565b01515f1960f88460031b161c191690555f8080610704565b60018596829396860151815501950193016106ec565b61076890858a528b8a20601f850160051c8101918d861061076e575b601f0160051c0190611ba0565b5f610610565b909150819061075b565b634e487b7160e01b87526041600452602487fd5b60405162461bcd60e51b8152602060048201526016602482015275082dadeeadce840caf0c6cacac8e640ead2dce86264760531b6044820152606490fd5b8183526004602052426002604085200155610513565b6001600160a01b0316803b1561088d575f8091602460405180948193630852cd8d60e31b83528b60048401525af180156108825761086d575b5083827fbbd5bd0123b04ed83c5d79cf2f6fca38e7b242f17f09d9eea712fb1cbe2fb861608060405189815260406020820152600a60408201526922b73a393c90213ab93760b11b6060820152a35f6104e3565b61087a9193505f90611a63565b5f915f610819565b6040513d5f823e3d90fd5b5f80fd5b60405162461bcd60e51b8152602060048201526013602482015272149bdb1948185b1c9958591e481b1bd8dad959606a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c4f6e6c7920526567697374727960981b6044820152606490fd5b3461088d57604036600319011261088d57604061091c611994565b6001600160a01b03165f9081526005602090815282822060243583528152828220546007909152908290208251916001600160801b0316906127109061097c90610965856119fe565b602060018254928388520154950194855283611bb6565b0491518083106109ae575b508082116109a6575b8161099a91611bc9565b82519182526020820152f35b905080610990565b915083610987565b3461088d57602036600319011261088d576001600160a01b036109d7611994565b165f526009602052602060ff60405f2054166040519015158152f35b3461088d57602036600319011261088d57610a0c611994565b610a14611c9b565b6001600160a01b03168015610a3957600280546001600160a01b031916919091179055005b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420526567697374727960801b6044820152606490fd5b3461088d57602036600319011261088d57610a8a611994565b5060206040515f8152f35b3461088d57602036600319011261088d576004355f5260076020526040805f206001815491015482519182526020820152f35b3461088d57602036600319011261088d576001600160a01b03610ae9611994565b16805f52600660205260405f2090604051808360208295549384815201905f5260205f20925f5b818110610cd0575050610b2592500383611a63565b815191610b3183611c70565b92610b3f6040519485611a63565b808452610b4e601f1991611c70565b015f5b818110610c9a5750505f5b8151811015610bf057600190835f52600560205260405f20610b7e8285611c87565b515f5260205260405f20610bcf600360405192610b9a84611a2d565b8054868060801b038116855260801c602085015265ffffffffffff868201541660408501526002810154606085015201611a86565b6080820152610bde8287611c87565b52610be98186611c87565b5001610b5c565b836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610c2857505050500390f35b91936001919395506020610c8a8192603f198a820301865260a060808a518780831b0381511684528780831b0386820151168685015265ffffffffffff6040820151166040850152606081015160608501520151918160808201520190611b26565b9601920192018594939192610c19565b602090604051610ca981611a2d565b5f81525f838201525f60408201525f60608201526060608082015282828801015201610b51565b8454835260019485019487945060209093019201610b10565b3461088d57608036600319011261088d57610d02611994565b604435906064356001600160401b03811161088d57610d25903690600401611b4a565b90335f52600960205260ff60405f20541615610e3e57610e395f516020611e765f395f51905f529360018060a01b031694855f52600560205260405f206024355f5260205260405f2060018060801b03815416610d8483821015611c2f565b6001600160801b0390610d9a9084831690611be3565b82546001600160801b03191691161790555f8681526004602052604090208054610de2908390610dcc82821015611c2f565b60018401610ddb838254611bd6565b9055611bc9565b9055610df081600854611bc9565b600855600354610e2b9082906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b604051938493429285611bfc565b0390a2005b60405162461bcd60e51b81526020600482015260166024820152752737ba1030baba3437b934bd32b21039b630b9b432b960511b6044820152606490fd5b3461088d575f36600319011261088d576001546040516001600160a01b039091168152602090f35b3461088d575f36600319011261088d576020600854604051908152f35b3461088d575f36600319011261088d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461088d57604036600319011261088d576001600160a01b03610f26611994565b165f52600560205260405f206024355f52602052602060018060801b0360405f205416604051908152f35b3461088d575f36600319011261088d57610f69611c9b565b600180546001600160a01b031981169091555f906001600160a01b03165f516020611e965f395f51905f528280a3005b3461088d57602036600319011261088d576001600160a01b03610fba611994565b165f526004602052602060405f2054604051908152f35b3461088d57604036600319011261088d57610fea611994565b6001600160a01b03165f9081526006602052604090208054602435919082101561088d5760209161101a91611b77565b90549060031b1c604051908152f35b3461088d57604036600319011261088d576001600160a01b0361104a611994565b165f52600560205260405f206024355f52602052602060018060801b0360405f2054161515604051908152f35b3461088d57606036600319011261088d57611090611994565b6024356044356001600160401b03811161088d576110b2903690600401611b4a565b926110bb611cc2565b6002546001600160a01b0316331415806112e1575b61129e576001600160a01b03165f818152600460205260409020805493919291848111156112985750835b84611136575b50505f516020611e765f395f51905f529060209461112760405192839242918885611bfc565b0390a260015f55604051908152f35b8461114a9160018401610ddb838254611bd6565b815561115884600854611bc9565b600855825f5260066020526111728460405f209254611bd6565b80159182156111cf575b5050505f516020611e765f395f51905f52906020946111c68560018060a01b03600354167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b94819250611101565b919594925f9491945b835481101561127757825f52600560205260405f206111f78286611b77565b90549060031b1c5f5260205260405f209060018060801b038254169161121d8784611bb6565b928a6112635788600194049080821161125b575b608085901b859003916112479190831690611be3565b16838060801b0319825416179055016111d8565b905080611231565b634e487b7160e01b5f52601260045260245ffd5b5091509250602094505f516020611e765f395f51905f52919394819261117c565b936110fb565b60405162461bcd60e51b815260206004820152601b60248201527a13db9b1e48149959da5cdd1c9e481bdc88185d5d1a1bdc9a5e9959602a1b6044820152606490fd5b50335f52600960205260ff60405f205416156110d0565b3461088d575f36600319011261088d576003546040516001600160a01b039091168152602090f35b3461088d575f36600319011261088d5761136f604051611341604082611a63565b600d81526c29ba30b5b4b73396999718971960991b6020820152604051918291602083526020830190611b26565b0390f35b3461088d57608036600319011261088d5761138c611994565b6024359060443590606435906001600160a01b038216820361088d576113b0611cc2565b6002546001600160a01b031633036108cc5760018060a01b031691825f52600560205260405f20845f5260205260405f209160018060801b03835416156114bd578161141e9130907f0000000000000000000000000000000000000000000000000000000000000000611d20565b81546001600160801b0390811682821601919082116114a95765ffffffffffff60015f516020611eb65f395f51905f5294606094828060801b0316828060801b0319825416178155865f52600460205260405f2061147d858254611bd6565b905561148b84600854611bd6565b6008550154166040519182525f60208301526040820152a360015f55005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152600f60248201526e149bdb19481b9bdd081b1bd8dad959608a1b6044820152606490fd5b3461088d57604036600319011261088d5761150d611994565b60243590611519611cc2565b6002546001600160a01b031633036108cc5760018060a01b03811691825f52600560205260405f20815f5260205260405f2065ffffffffffff600182015416156118085760018060801b0390541690835f52600560205260405f20815f52602052600360405f205f81555f60018201555f60028201550161159a81546119c6565b90816117c5575b5050835f52600660205260405f20935f5b8554808210156117a857836115c78389611b77565b90549060031b1c146115dc57506001016115b2565b5f95929394951981019081116114a95761067d6115fc61160a9289611b77565b90549060031b1c9288611b77565b90558454908115611794576020955f516020611ed65f395f51905f52925f1901906116358282611b77565b8154905f199060031b1b19169055555b825f526004865260405f2061165b868254611bc9565b9055825f526004865260405f20541561177f575b61167b85600854611bc9565b600855835f526007865260405f206127106116b26040519261169c846119fe565b8960018254928387520154940193845288611bb6565b049051808210611777575b50858111611770575b6116f36116d38288611bc9565b96879383611733575b8480611702575b50506040519384934292856119aa565b0390a360015f55604051908152f35b61172c917f0000000000000000000000000000000000000000000000000000000000000000611ce0565b89846116e3565b60035461176b9085906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b6116dc565b50846116c6565b9050876116bd565b825f52600486525f600160408220015561166f565b634e487b7160e01b5f52603160045260245ffd5b5050909192602094505f516020611ed65f395f51905f5290611645565b81601f5f93116001146117dc5750555b84806115a1565b818352602083206117f891601f0160051c810190600101611ba0565b80825281602081209155556117d5565b60405162461bcd60e51b815260206004820152600d60248201526c139bc81b1bd8dac8199bdd5b99609a1b6044820152606490fd5b3461088d57604036600319011261088d57611856611994565b6024359081151580920361088d5761186c611c9b565b60018060a01b03165f52600960205260405f209060ff801983541691161790555f80f35b3461088d57604036600319011261088d576001600160a01b036118b1611994565b165f52600560205260405f206024355f5260205260405f20805461136f65ffffffffffff600184015416926118ed600360028301549201611a86565b9060405194859460018060801b038116865260801c60208601526040850152606084015260a0608084015260a0830190611b26565b3461088d57602036600319011261088d576001600160a01b03611943611994565b165f52600460205260405f20805461136f6001830154926003600282015491015490604051948594856119aa565b3461088d575f36600319011261088d576002546001600160a01b03168152602090f35b600435906001600160a01b038216820361088d57565b9094939260609260808301968352602083015260408201520152565b90600182811c921680156119f4575b60208310146119e057565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119d5565b604081019081106001600160401b03821117611a1957604052565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b03821117611a1957604052565b608081019081106001600160401b03821117611a1957604052565b601f909101601f19168101906001600160401b03821190821017611a1957604052565b9060405191825f825492611a99846119c6565b8084529360018116908115611b045750600114611ac0575b50611abe92500383611a63565b565b90505f9291925260205f20905f915b818310611ae8575050906020611abe928201015f611ab1565b6020919350806001915483858901015201910190918492611acf565b905060209250611abe94915060ff191682840152151560051b8201015f611ab1565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561088d578235916001600160401b03831161088d576020838186019501011161088d57565b8054821015611b8c575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b818110611bab575050565b5f8155600101611ba0565b818102929181159184041417156114a957565b919082039182116114a957565b919082018092116114a957565b6001600160801b0391821690821603919082116114a957565b94939280604093608093885260606020890152816060890152838801375f828288010152601f8019910116850101930152565b15611c3657565b60405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e74207374616b6560701b6044820152606490fd5b6001600160401b038111611a195760051b60200190565b8051821015611b8c5760209160051b010190565b6001546001600160a01b03163303611caf57565b63118cdaa760e01b5f523360045260245ffd5b60025f5414611cd15760025f55565b633ee5aeb560e01b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611abe91611d1b606483611a63565b611d64565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152611abe91611d1b608483611a63565b81516001600160a01b03909116915f91829160200182855af13d15611e0b573d6001600160401b038111611a1957604051611dbf929091611daf601f8201601f191660200184611a63565b82523d5f602084013e5b83611e17565b8051908115159182611de7575b5050611dd55750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261088d576020015180159081150361088d575f80611dcc565b611dbf90606090611db9565b90611e3b5750805115611e2c57805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580611e6c575b611e4c575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e4456fe6951689eba99e77d7e3b622f276c0ad8e36126c3c510f181b86d05d685eaa0748be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0e4c76dcad70ec0bf6b921afbe6bb7b4950aedf705245ec68942ea9ecf00f8a0c9cadbc33680e22a2f04ed8eb0d7cc7f218ee9231b3473ed05904c7ec5e2d483da26469706673582212202b02889027c7547c7f85c863dc6a1a547412a5b58bf0673f5d104e22cfaed3a564736f6c634300081c0033"
949
+ }