@andrewkimjoseph/celina-sdk 0.15.1 → 0.15.2

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 (361) hide show
  1. package/build/config/celina-tag.d.ts +5 -0
  2. package/build/config/celina-tag.js +67 -3
  3. package/build/config/celina-tag.js.map +1 -1
  4. package/build/index.d.ts +1 -1
  5. package/build/index.js +1 -1
  6. package/build/index.js.map +1 -1
  7. package/build/src/a2a/agent-card.d.ts +37 -0
  8. package/build/src/a2a/agent-card.js +46 -0
  9. package/build/src/a2a/agent-card.js.map +1 -0
  10. package/build/src/a2a/index.d.ts +2 -0
  11. package/build/src/a2a/index.js +3 -0
  12. package/build/src/a2a/index.js.map +1 -0
  13. package/build/src/a2a/skills.d.ts +18 -0
  14. package/build/src/a2a/skills.js +106 -0
  15. package/build/src/a2a/skills.js.map +1 -0
  16. package/build/src/aa/create-aa-client.d.ts +44 -0
  17. package/build/src/aa/create-aa-client.js +115 -0
  18. package/build/src/aa/create-aa-client.js.map +1 -0
  19. package/build/src/aa/gas-sponsorship.d.ts +27 -0
  20. package/build/src/aa/gas-sponsorship.js +65 -0
  21. package/build/src/aa/gas-sponsorship.js.map +1 -0
  22. package/build/src/aa/index.d.ts +4 -0
  23. package/build/src/aa/index.js +4 -0
  24. package/build/src/aa/index.js.map +1 -0
  25. package/build/src/aa/prepared-calls.d.ts +8 -0
  26. package/build/src/aa/prepared-calls.js +27 -0
  27. package/build/src/aa/prepared-calls.js.map +1 -0
  28. package/build/src/aa/types.d.ts +61 -0
  29. package/build/src/aa/types.js +2 -0
  30. package/build/src/aa/types.js.map +1 -0
  31. package/build/src/abis/aave-pool.d.ts +37 -0
  32. package/build/src/abis/aave-pool.js +26 -0
  33. package/build/src/abis/aave-pool.js.map +1 -0
  34. package/build/src/abis/accounts.d.ts +13 -0
  35. package/build/src/abis/accounts.js +10 -0
  36. package/build/src/abis/accounts.js.map +1 -0
  37. package/build/src/abis/election.d.ts +124 -0
  38. package/build/src/abis/election.js +88 -0
  39. package/build/src/abis/election.js.map +1 -0
  40. package/build/src/abis/gooddollar-broker.d.ts +77 -0
  41. package/build/src/abis/gooddollar-broker.js +44 -0
  42. package/build/src/abis/gooddollar-broker.js.map +1 -0
  43. package/build/src/abis/gooddollar-identity.d.ts +85 -0
  44. package/build/src/abis/gooddollar-identity.js +52 -0
  45. package/build/src/abis/gooddollar-identity.js.map +1 -0
  46. package/build/src/abis/governance.d.ts +86 -0
  47. package/build/src/abis/governance.js +68 -0
  48. package/build/src/abis/governance.js.map +1 -0
  49. package/build/src/abis/locked-gold.d.ts +10 -0
  50. package/build/src/abis/locked-gold.js +10 -0
  51. package/build/src/abis/locked-gold.js.map +1 -0
  52. package/build/src/abis/nft.d.ts +107 -0
  53. package/build/src/abis/nft.js +75 -0
  54. package/build/src/abis/nft.js.map +1 -0
  55. package/build/src/abis/permit2.d.ts +43 -0
  56. package/build/src/abis/permit2.js +30 -0
  57. package/build/src/abis/permit2.js.map +1 -0
  58. package/build/src/abis/self-registry.d.ts +194 -0
  59. package/build/src/abis/self-registry.js +120 -0
  60. package/build/src/abis/self-registry.js.map +1 -0
  61. package/build/src/abis/ubi-scheme.d.ts +91 -0
  62. package/build/src/abis/ubi-scheme.js +66 -0
  63. package/build/src/abis/ubi-scheme.js.map +1 -0
  64. package/build/src/abis/uniswap-state-view.d.ts +34 -0
  65. package/build/src/abis/uniswap-state-view.js +22 -0
  66. package/build/src/abis/uniswap-state-view.js.map +1 -0
  67. package/build/src/abis/uniswap-v4-quoter.d.ts +86 -0
  68. package/build/src/abis/uniswap-v4-quoter.js +64 -0
  69. package/build/src/abis/uniswap-v4-quoter.js.map +1 -0
  70. package/build/src/abis/universal-router.d.ts +16 -0
  71. package/build/src/abis/universal-router.js +14 -0
  72. package/build/src/abis/universal-router.js.map +1 -0
  73. package/build/src/abis/validators-minimal.d.ts +65 -0
  74. package/build/src/abis/validators-minimal.js +39 -0
  75. package/build/src/abis/validators-minimal.js.map +1 -0
  76. package/build/src/analytics/amplitude.d.ts +11 -0
  77. package/build/src/analytics/amplitude.js +76 -0
  78. package/build/src/analytics/amplitude.js.map +1 -0
  79. package/build/src/analytics/config.d.ts +7 -0
  80. package/build/src/analytics/config.js +25 -0
  81. package/build/src/analytics/config.js.map +1 -0
  82. package/build/src/analytics/consumer-package.d.ts +9 -0
  83. package/build/src/analytics/consumer-package.js +143 -0
  84. package/build/src/analytics/consumer-package.js.map +1 -0
  85. package/build/src/analytics/mcp-tool-events.d.ts +5 -0
  86. package/build/src/analytics/mcp-tool-events.js +53 -0
  87. package/build/src/analytics/mcp-tool-events.js.map +1 -0
  88. package/build/src/analytics/wallet-context.d.ts +11 -0
  89. package/build/src/analytics/wallet-context.js +81 -0
  90. package/build/src/analytics/wallet-context.js.map +1 -0
  91. package/build/src/analytics/wallet-extract.d.ts +9 -0
  92. package/build/src/analytics/wallet-extract.js +21 -0
  93. package/build/src/analytics/wallet-extract.js.map +1 -0
  94. package/build/src/analytics/wrap-service.d.ts +5 -0
  95. package/build/src/analytics/wrap-service.js +38 -0
  96. package/build/src/analytics/wrap-service.js.map +1 -0
  97. package/build/src/clients/celo-client.d.ts +19 -0
  98. package/build/src/clients/celo-client.js +32 -0
  99. package/build/src/clients/celo-client.js.map +1 -0
  100. package/build/src/clients/ens-client.d.ts +17 -0
  101. package/build/src/clients/ens-client.js +30 -0
  102. package/build/src/clients/ens-client.js.map +1 -0
  103. package/build/src/clients/mento-sdk.d.ts +2 -0
  104. package/build/src/clients/mento-sdk.js +9 -0
  105. package/build/src/clients/mento-sdk.js.map +1 -0
  106. package/build/src/clients/self-api.d.ts +82 -0
  107. package/build/src/clients/self-api.js +242 -0
  108. package/build/src/clients/self-api.js.map +1 -0
  109. package/build/src/clients/uniswap-sdk.d.ts +4 -0
  110. package/build/src/clients/uniswap-sdk.js +13 -0
  111. package/build/src/clients/uniswap-sdk.js.map +1 -0
  112. package/build/src/config/aave.d.ts +17 -0
  113. package/build/src/config/aave.js +77 -0
  114. package/build/src/config/aave.js.map +1 -0
  115. package/build/src/config/celina-tag.d.ts +55 -0
  116. package/build/src/config/celina-tag.js +234 -0
  117. package/build/src/config/celina-tag.js.map +1 -0
  118. package/build/src/config/celo-core-contracts.d.ts +8 -0
  119. package/build/src/config/celo-core-contracts.js +9 -0
  120. package/build/src/config/celo-core-contracts.js.map +1 -0
  121. package/build/src/config/chains.d.ts +937 -0
  122. package/build/src/config/chains.js +319 -0
  123. package/build/src/config/chains.js.map +1 -0
  124. package/build/src/config/gooddollar.d.ts +16 -0
  125. package/build/src/config/gooddollar.js +24 -0
  126. package/build/src/config/gooddollar.js.map +1 -0
  127. package/build/src/config/sdk-config.d.ts +44 -0
  128. package/build/src/config/sdk-config.js +28 -0
  129. package/build/src/config/sdk-config.js.map +1 -0
  130. package/build/src/config/self.d.ts +22 -0
  131. package/build/src/config/self.js +27 -0
  132. package/build/src/config/self.js.map +1 -0
  133. package/build/src/config/uniswap.d.ts +42 -0
  134. package/build/src/config/uniswap.js +76 -0
  135. package/build/src/config/uniswap.js.map +1 -0
  136. package/build/src/index.d.ts +127 -0
  137. package/build/src/index.js +72 -0
  138. package/build/src/index.js.map +1 -0
  139. package/build/src/oasf/index.d.ts +2 -0
  140. package/build/src/oasf/index.js +3 -0
  141. package/build/src/oasf/index.js.map +1 -0
  142. package/build/src/oasf/record.d.ts +39 -0
  143. package/build/src/oasf/record.js +35 -0
  144. package/build/src/oasf/record.js.map +1 -0
  145. package/build/src/oasf/taxonomy.d.ts +19 -0
  146. package/build/src/oasf/taxonomy.js +46 -0
  147. package/build/src/oasf/taxonomy.js.map +1 -0
  148. package/build/src/services/aave.service.d.ts +59 -0
  149. package/build/src/services/aave.service.js +210 -0
  150. package/build/src/services/aave.service.js.map +1 -0
  151. package/build/src/services/account.service.d.ts +22 -0
  152. package/build/src/services/account.service.js +29 -0
  153. package/build/src/services/account.service.js.map +1 -0
  154. package/build/src/services/agentkarma.service.d.ts +89 -0
  155. package/build/src/services/agentkarma.service.js +102 -0
  156. package/build/src/services/agentkarma.service.js.map +1 -0
  157. package/build/src/services/blockchain.service.d.ts +126 -0
  158. package/build/src/services/blockchain.service.js +188 -0
  159. package/build/src/services/blockchain.service.js.map +1 -0
  160. package/build/src/services/contract.service.d.ts +78 -0
  161. package/build/src/services/contract.service.js +117 -0
  162. package/build/src/services/contract.service.js.map +1 -0
  163. package/build/src/services/ens.service.d.ts +44 -0
  164. package/build/src/services/ens.service.js +92 -0
  165. package/build/src/services/ens.service.js.map +1 -0
  166. package/build/src/services/gooddollar.service.d.ts +184 -0
  167. package/build/src/services/gooddollar.service.js +675 -0
  168. package/build/src/services/gooddollar.service.js.map +1 -0
  169. package/build/src/services/governance.service.d.ts +96 -0
  170. package/build/src/services/governance.service.js +255 -0
  171. package/build/src/services/governance.service.js.map +1 -0
  172. package/build/src/services/mento-fx.service.d.ts +81 -0
  173. package/build/src/services/mento-fx.service.js +318 -0
  174. package/build/src/services/mento-fx.service.js.map +1 -0
  175. package/build/src/services/nft.service.d.ts +58 -0
  176. package/build/src/services/nft.service.js +222 -0
  177. package/build/src/services/nft.service.js.map +1 -0
  178. package/build/src/services/self-session-store.d.ts +19 -0
  179. package/build/src/services/self-session-store.js +28 -0
  180. package/build/src/services/self-session-store.js.map +1 -0
  181. package/build/src/services/self.service.d.ts +241 -0
  182. package/build/src/services/self.service.js +699 -0
  183. package/build/src/services/self.service.js.map +1 -0
  184. package/build/src/services/staking.service.d.ts +140 -0
  185. package/build/src/services/staking.service.js +444 -0
  186. package/build/src/services/staking.service.js.map +1 -0
  187. package/build/src/services/token.service.d.ts +110 -0
  188. package/build/src/services/token.service.js +189 -0
  189. package/build/src/services/token.service.js.map +1 -0
  190. package/build/src/services/transaction.service.d.ts +69 -0
  191. package/build/src/services/transaction.service.js +197 -0
  192. package/build/src/services/transaction.service.js.map +1 -0
  193. package/build/src/services/uniswap-path-router.d.ts +40 -0
  194. package/build/src/services/uniswap-path-router.js +168 -0
  195. package/build/src/services/uniswap-path-router.js.map +1 -0
  196. package/build/src/services/uniswap-pool-discovery.d.ts +55 -0
  197. package/build/src/services/uniswap-pool-discovery.js +198 -0
  198. package/build/src/services/uniswap-pool-discovery.js.map +1 -0
  199. package/build/src/services/uniswap.service.d.ts +83 -0
  200. package/build/src/services/uniswap.service.js +352 -0
  201. package/build/src/services/uniswap.service.js.map +1 -0
  202. package/build/src/simulation/index.d.ts +5 -0
  203. package/build/src/simulation/index.js +2 -0
  204. package/build/src/simulation/index.js.map +1 -0
  205. package/build/src/simulation/simulate-prepared-step.d.ts +17 -0
  206. package/build/src/simulation/simulate-prepared-step.js +42 -0
  207. package/build/src/simulation/simulate-prepared-step.js.map +1 -0
  208. package/build/src/tools/catalog.d.ts +11 -0
  209. package/build/src/tools/catalog.js +43 -0
  210. package/build/src/tools/catalog.js.map +1 -0
  211. package/build/src/tools/domains/aave.d.ts +2 -0
  212. package/build/src/tools/domains/aave.js +115 -0
  213. package/build/src/tools/domains/aave.js.map +1 -0
  214. package/build/src/tools/domains/agentkarma.d.ts +2 -0
  215. package/build/src/tools/domains/agentkarma.js +92 -0
  216. package/build/src/tools/domains/agentkarma.js.map +1 -0
  217. package/build/src/tools/domains/blockchain.d.ts +2 -0
  218. package/build/src/tools/domains/blockchain.js +122 -0
  219. package/build/src/tools/domains/blockchain.js.map +1 -0
  220. package/build/src/tools/domains/browser.d.ts +2 -0
  221. package/build/src/tools/domains/browser.js +45 -0
  222. package/build/src/tools/domains/browser.js.map +1 -0
  223. package/build/src/tools/domains/contract.d.ts +2 -0
  224. package/build/src/tools/domains/contract.js +67 -0
  225. package/build/src/tools/domains/contract.js.map +1 -0
  226. package/build/src/tools/domains/ens.d.ts +2 -0
  227. package/build/src/tools/domains/ens.js +16 -0
  228. package/build/src/tools/domains/ens.js.map +1 -0
  229. package/build/src/tools/domains/gooddollar.d.ts +2 -0
  230. package/build/src/tools/domains/gooddollar.js +171 -0
  231. package/build/src/tools/domains/gooddollar.js.map +1 -0
  232. package/build/src/tools/domains/governance.d.ts +2 -0
  233. package/build/src/tools/domains/governance.js +41 -0
  234. package/build/src/tools/domains/governance.js.map +1 -0
  235. package/build/src/tools/domains/index.d.ts +1 -0
  236. package/build/src/tools/domains/index.js +33 -0
  237. package/build/src/tools/domains/index.js.map +1 -0
  238. package/build/src/tools/domains/mento-fx.d.ts +2 -0
  239. package/build/src/tools/domains/mento-fx.js +67 -0
  240. package/build/src/tools/domains/mento-fx.js.map +1 -0
  241. package/build/src/tools/domains/nft.d.ts +2 -0
  242. package/build/src/tools/domains/nft.js +38 -0
  243. package/build/src/tools/domains/nft.js.map +1 -0
  244. package/build/src/tools/domains/self.d.ts +2 -0
  245. package/build/src/tools/domains/self.js +187 -0
  246. package/build/src/tools/domains/self.js.map +1 -0
  247. package/build/src/tools/domains/staking.d.ts +2 -0
  248. package/build/src/tools/domains/staking.js +74 -0
  249. package/build/src/tools/domains/staking.js.map +1 -0
  250. package/build/src/tools/domains/token.d.ts +2 -0
  251. package/build/src/tools/domains/token.js +74 -0
  252. package/build/src/tools/domains/token.js.map +1 -0
  253. package/build/src/tools/domains/transaction.d.ts +2 -0
  254. package/build/src/tools/domains/transaction.js +120 -0
  255. package/build/src/tools/domains/transaction.js.map +1 -0
  256. package/build/src/tools/domains/uniswap.d.ts +2 -0
  257. package/build/src/tools/domains/uniswap.js +67 -0
  258. package/build/src/tools/domains/uniswap.js.map +1 -0
  259. package/build/src/tools/filter.d.ts +2 -0
  260. package/build/src/tools/filter.js +50 -0
  261. package/build/src/tools/filter.js.map +1 -0
  262. package/build/src/tools/index.d.ts +7 -0
  263. package/build/src/tools/index.js +7 -0
  264. package/build/src/tools/index.js.map +1 -0
  265. package/build/src/tools/schemas/common.d.ts +165 -0
  266. package/build/src/tools/schemas/common.js +207 -0
  267. package/build/src/tools/schemas/common.js.map +1 -0
  268. package/build/src/tools/schemas/wallet-params.d.ts +9 -0
  269. package/build/src/tools/schemas/wallet-params.js +52 -0
  270. package/build/src/tools/schemas/wallet-params.js.map +1 -0
  271. package/build/src/tools/swap-routing.d.ts +25 -0
  272. package/build/src/tools/swap-routing.js +174 -0
  273. package/build/src/tools/swap-routing.js.map +1 -0
  274. package/build/src/tools/types.d.ts +124 -0
  275. package/build/src/tools/types.js +2 -0
  276. package/build/src/tools/types.js.map +1 -0
  277. package/build/src/tools/utils/normalize-token.d.ts +2 -0
  278. package/build/src/tools/utils/normalize-token.js +12 -0
  279. package/build/src/tools/utils/normalize-token.js.map +1 -0
  280. package/build/src/tools/utils/wallet.d.ts +4 -0
  281. package/build/src/tools/utils/wallet.js +8 -0
  282. package/build/src/tools/utils/wallet.js.map +1 -0
  283. package/build/src/tools/website-sync.d.ts +28 -0
  284. package/build/src/tools/website-sync.js +198 -0
  285. package/build/src/tools/website-sync.js.map +1 -0
  286. package/build/src/types/prepared.d.ts +43 -0
  287. package/build/src/types/prepared.js +15 -0
  288. package/build/src/types/prepared.js.map +1 -0
  289. package/build/src/utils/celo-format.d.ts +6 -0
  290. package/build/src/utils/celo-format.js +17 -0
  291. package/build/src/utils/celo-format.js.map +1 -0
  292. package/build/src/utils/erc20-allowance-storage.d.ts +20 -0
  293. package/build/src/utils/erc20-allowance-storage.js +64 -0
  294. package/build/src/utils/erc20-allowance-storage.js.map +1 -0
  295. package/build/src/utils/format-date.d.ts +2 -0
  296. package/build/src/utils/format-date.js +13 -0
  297. package/build/src/utils/format-date.js.map +1 -0
  298. package/build/src/utils/format-duration.d.ts +2 -0
  299. package/build/src/utils/format-duration.js +17 -0
  300. package/build/src/utils/format-duration.js.map +1 -0
  301. package/build/src/utils/format-unix-datetime.d.ts +4 -0
  302. package/build/src/utils/format-unix-datetime.js +18 -0
  303. package/build/src/utils/format-unix-datetime.js.map +1 -0
  304. package/build/src/utils/gooddollar-ubi-period.d.ts +23 -0
  305. package/build/src/utils/gooddollar-ubi-period.js +23 -0
  306. package/build/src/utils/gooddollar-ubi-period.js.map +1 -0
  307. package/build/src/utils/normalize-address.d.ts +7 -0
  308. package/build/src/utils/normalize-address.js +16 -0
  309. package/build/src/utils/normalize-address.js.map +1 -0
  310. package/build/src/utils/self-format.d.ts +28 -0
  311. package/build/src/utils/self-format.js +79 -0
  312. package/build/src/utils/self-format.js.map +1 -0
  313. package/build/src/utils/self-signing.d.ts +4 -0
  314. package/build/src/utils/self-signing.js +38 -0
  315. package/build/src/utils/self-signing.js.map +1 -0
  316. package/build/src/utils/transaction-errors.d.ts +3 -0
  317. package/build/src/utils/transaction-errors.js +17 -0
  318. package/build/src/utils/transaction-errors.js.map +1 -0
  319. package/build/tests/catalog/domains/blockchain.d.ts +2 -0
  320. package/build/tests/catalog/domains/blockchain.js +127 -0
  321. package/build/tests/catalog/domains/blockchain.js.map +1 -0
  322. package/build/tests/catalog/domains/chain-ext.d.ts +5 -0
  323. package/build/tests/catalog/domains/chain-ext.js +207 -0
  324. package/build/tests/catalog/domains/chain-ext.js.map +1 -0
  325. package/build/tests/catalog/domains/defi.d.ts +6 -0
  326. package/build/tests/catalog/domains/defi.js +581 -0
  327. package/build/tests/catalog/domains/defi.js.map +1 -0
  328. package/build/tests/catalog/domains/self.d.ts +2 -0
  329. package/build/tests/catalog/domains/self.js +208 -0
  330. package/build/tests/catalog/domains/self.js.map +1 -0
  331. package/build/tests/catalog/domains/token.d.ts +2 -0
  332. package/build/tests/catalog/domains/token.js +70 -0
  333. package/build/tests/catalog/domains/token.js.map +1 -0
  334. package/build/tests/catalog/domains/transaction.d.ts +2 -0
  335. package/build/tests/catalog/domains/transaction.js +96 -0
  336. package/build/tests/catalog/domains/transaction.js.map +1 -0
  337. package/build/tests/catalog/index.d.ts +2 -0
  338. package/build/tests/catalog/index.js +2 -0
  339. package/build/tests/catalog/index.js.map +1 -0
  340. package/build/tests/catalog/operations.d.ts +12 -0
  341. package/build/tests/catalog/operations.js +29 -0
  342. package/build/tests/catalog/operations.js.map +1 -0
  343. package/build/tests/catalog/types.d.ts +24 -0
  344. package/build/tests/catalog/types.js +2 -0
  345. package/build/tests/catalog/types.js.map +1 -0
  346. package/build/tests/fixtures/mainnet.d.ts +54 -0
  347. package/build/tests/fixtures/mainnet.js +53 -0
  348. package/build/tests/fixtures/mainnet.js.map +1 -0
  349. package/build/tests/helpers/assert.d.ts +4 -0
  350. package/build/tests/helpers/assert.js +24 -0
  351. package/build/tests/helpers/assert.js.map +1 -0
  352. package/build/tests/helpers/env.d.ts +12 -0
  353. package/build/tests/helpers/env.js +29 -0
  354. package/build/tests/helpers/env.js.map +1 -0
  355. package/build/tests/helpers/gating.d.ts +3 -0
  356. package/build/tests/helpers/gating.js +23 -0
  357. package/build/tests/helpers/gating.js.map +1 -0
  358. package/build/tests/testing-entry.d.ts +6 -0
  359. package/build/tests/testing-entry.js +6 -0
  360. package/build/tests/testing-entry.js.map +1 -0
  361. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self.service.js","sourceRoot":"","sources":["../../../src/services/self.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,GAAG,EACH,qBAAqB,EACrB,WAAW,GAEZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AA4BzF,SAAS,mBAAmB,CAAC,OAAsB;IACjD,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAMC,EACD,QAAiC,EAAE,EACnC,OAAgB;IAEhB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC;QACzD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,YAAY;QAChC,WAAW;QACX,MAAM,EAAE,WAAW;QACnB,SAAS;QACT,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAI7B;IACC,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACzC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QACjC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,WAAW;IAEH;IACA;IAFnB,YACmB,aAAgC,EAChC,MAGhB;QAJgB,kBAAa,GAAb,aAAa,CAAmB;QAChC,WAAM,GAAN,MAAM,CAGtB;IACA,CAAC;IAEJ,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,KAAK,CACb,+GAA+G,CAChH,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,OAAe;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,aAAa,CAAC;aACtB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,CAAC,aAAa,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,CAAC,YAAY,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAE1D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB;gBAC1C,CAAC,CAAC,qBAAqB,MAAM,CAAC,iBAAiB,iDAAiD;gBAChG,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,IAAI;gBAC1D,wCAAwC,MAAM,CAAC,gBAAgB,IAAI,SAAS,GAAG;gBAC/E,IAAI,MAAM,CAAC,iBAAiB,oBAAoB,YAAY,GAAG;gBAC/D,kFAAkF;gBAClF,6FAA6F;gBAC7F,0EAA0E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,0CAA0C,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,MAAM;YACT,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,YAAY;SAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA6B;QAC7C,MAAM,EACJ,YAAY,EACZ,UAAU,GAAG,CAAC,EACd,WAAW,GAAG,KAAK,EACnB,mBAAmB,GAAG,IAAI,GAC3B,GAAG,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAErC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,YAAY;gBAC3B,MAAM,EAAE,mDAAmD;gBAC3D,OAAO,EAAE,SAAkB;aAC5B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,CACJ,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACf,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,kBAAkB;gBAChC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,mBAAmB;aAClC,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,qBAAqB;gBACnC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG;YACnB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;YACvC,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC3D,CAAC;QAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,IACE,mBAAmB;YACnB,CAAC,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,EAC5C,CAAC;YACD,QAAQ,CAAC,IAAI,CACX,2BAA2B,aAAa,4CAA4C,YAAY,IAAI,CACrG,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;YAC1D,QAAQ,CAAC,IAAI,CACX,yBAAyB,WAAW,CAAC,UAAU,6CAA6C,UAAU,KAAK,CAC5G,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,oBAAoB,GAAG,SAAS,CAAC;QACrC,IAAI,cAAc,EAAE,CAAC;YACnB,oBAAoB,GAAG,eAAe,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;YACvD,oBAAoB,GAAG,aAAa,CAAC;QACvC,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC1B,WAAW;gBACX,GAAG,YAAY;gBACf,qBAAqB,EAAE,oBAAoB;gBAC3C,OAAO,EAAE,SAAkB;aAC5B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;YACzB,WAAW;YACX,GAAG,YAAY;YACf,qBAAqB,EAAE,oBAAoB;YAC3C,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;YAC/B,cAAc,EAAE,YAAY;YAC5B,OAAO,EAAE,SAAkB;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,IAAI,CAAC,WAEQ,CACd,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACxB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAErD,OAAO;YACL,GAAG,SAAS;YACZ,kBAAkB;YAClB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;YACvC,UAAU,EAAE,CAAC,YAAY,IAAI,kBAAkB,GAAG,CAAC;YACnD,OAAO,EAAE,SAAkB;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA+B;QACjD,MAAM,EACJ,cAAc,EACd,cAAc,EACd,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,QAAQ,GACT,GAAG,MAAM,CAAC;QAEX,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,sBAAsB;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC;YAC5E,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,8BAA8B;aACvC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CACnC,cAAc,EACd,MAAM,EACN,WAAW,EACX,IAAI,CACL,CAAC;QACF,IAAI,aAA4B,CAAC;QACjC,IAAI,eAAoB,CAAC;QAEzB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC;YAChF,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,CAChC,UAAU,CAAC,cAAc,CAAC,EAC1B,UAAU,CAAC,OAAO,CAAC,EACnB,UAAU,CAAC,QAAQ,CAAC,CACrB,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;gBAC/D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;YAC/D,CAAC;YAED,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7C,aAAa,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,qBAAqB,CAAC;oBAC1C,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;oBACrC,SAAS,EAAE,cAAc;iBAC1B,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YACvD,CAAC;YAED,eAAe,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa;gBAC5B,MAAM,EAAE,6BAA6B;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,GAC3E,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,kBAAkB;gBAChC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,mBAAmB;aAClC,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,qBAAqB;gBACnC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;SACH,CAAC,CAAC;QAEL,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzB,MAAM,EAAE,iCAAiC;aAC1C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;YACjD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzB,MAAM,EAAE,0DAA0D;aACnE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAEzD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,aAAa,EAAE,aAAa;YAC5B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,WAAW;YACX,IAAI,EACF,8HAA8H;SACjI,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,UAAyB;QACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,OAAO;gBACL,UAAU,EAAE,KAAc;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,SAAkB;aAC5B,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,CACJ,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACf,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,kBAAkB;gBAChC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,mBAAmB;aAClC,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,eAAe;gBACpB,YAAY,EAAE,qBAAqB;gBACnC,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;YAClD,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,CAAC,YAAY,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAE1D,IAAI,oBAAoB,GAAG,SAAS,CAAC;QACrC,IAAI,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;YAChD,oBAAoB,GAAG,eAAe,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;YACvD,oBAAoB,GAAG,aAAa,CAAC;QACvC,CAAC;QAED,IAAI,aAAiC,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACd,aAAa;gBACX,iHAAiH,CAAC;QACtH,CAAC;aAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACnC,aAAa,GAAG,yBAAyB,MAAM,CAAC,iBAAiB,6EAA6E,CAAC;QACjJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAa;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxB,UAAU;YACV,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,oBAAoB;YACpB,mBAAmB,EAAE,kBAAkB;YACvC,GAAG,MAAM;YACT,UAAU,EAAE,SAAS;YACrB,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,SAAkB;YAC3B,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;gBACL,GAAG,IAAI;gBACP,OAAO,EACL,sIAAsI;aACzI,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAkC,EAAE;QACtD,MAAM,WAAW,GAAgC;YAC/C,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;YACxC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW;YACX,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE;YACrC,IAAI,EAAE,cAAc;YACpB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAC5B,OAAO,EACP;YACE,aAAa,EAAE,OAAO,CAAC,YAAY;YACnC,SAAS,EACP,mKAAmK;SACtK,EACD,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,gCAAgC,SAAS,kJAAkJ,CAC5L,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;QAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACnD,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO;oBACL,MAAM,EAAE,cAAuB;oBAC/B,OAAO,EAAE,kCAAkC;iBAC5C,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,aAAa,GAAG,MAAkC,CAAC;gBACzD,OAAO;oBACL,MAAM,EAAE,WAAoB;oBAC5B,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE;oBAC5D,OAAO,EACL,yEAAyE;iBAC5E,CAAC;YACJ,CAAC;YAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAmE,CAAC;YACtG,IAAI,aAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,gEAAgE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAC/K,CAAC;YACJ,CAAC;YAED,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,kBAAkB,GAAG,MAAiE,CAAC;YAE7F,OAAO;gBACL,MAAM,EAAE,UAAmB;gBAC3B,QAAQ,EAAE,kBAAkB,CAAC,OAAO;gBACpC,aAAa,EAAE,kBAAkB,CAAC,YAAY;gBAC9C,eAAe,EAAE,aAAa;gBAC9B,OAAO,EAAE,kBAAkB,CAAC,MAAM;gBAClC,OAAO,EACL,oGAAoG;aACvG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,IACE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAChC,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAChD,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,SAAkB;oBAC1B,OAAO,EAAE,YAAY;wBACnB,CAAC,CAAC,iIAAiI;wBACnI,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,gIAAgI;4BAClI,CAAC,CAAC,+HAA+H;iBACtI,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO;oBACL,MAAM,EAAE,SAAkB;oBAC1B,OAAO,EAAE,YAAY;wBACnB,CAAC,CAAC,2EAA2E;wBAC7E,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,yEAAyE;4BAC3E,CAAC,CAAC,oFAAoF;iBAC3F,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAA+B,EAAE;QAClD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE;YACrC,IAAI,EAAE,SAAS;YACf,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAC5B,OAAO,EACP;YACE,QAAQ,EAAE,OAAO;YACjB,GAAG,WAAW;YACd,SAAS,EACP,wIAAwI;SAC3I,EACD,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC;YAC1C,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE;YACrC,IAAI,EAAE,gBAAgB;YACtB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAC5B,OAAO,EACP;YACE,OAAO,EACL,yKAAyK;YAC3K,SAAS,EACP,8GAA8G;SACjH,EACD,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAIjB;QACC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,qBAAqB,CACnC,SAAS,EACT,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,IAAI,CACZ,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;YAC1C,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;SACtC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO;gBACvC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS;gBACnC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS;aACpC;YACD,YAAY,EACV,iMAAiM,iBAAiB,eAAe,WAAW,CAAC,kBAAkB,CAAC,IAAI;SACvQ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAKxB;QACC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;YAC1C,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;SACtC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;YACvC,MAAM;YACN,IAAI;YACJ,OAAO,EAAE;gBACP,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO;gBACvC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS;gBACnC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,YAAY,CACrD,OAAO,EACP,oBAAoB,CACrB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,aAAa;YACnB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,wEAAwE;IAC9D,cAAc,CAAC,IAAS;QAChC,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -0,0 +1,140 @@
1
+ import type { CeloClientFactory } from "../clients/celo-client.js";
2
+ /** Validator election staking reads via Celo core contracts. */
3
+ export declare class StakingService {
4
+ private readonly clientFactory;
5
+ constructor(clientFactory: CeloClientFactory);
6
+ private getClient;
7
+ /**
8
+ * Active and pending CELO vote balances per validator group for an account.
9
+ * @param address - Staker wallet address
10
+ * @returns Totals and per-group active/pending vote amounts
11
+ * @throws When `address` is not a valid hex address
12
+ */
13
+ getStakingBalances(address: `0x${string}`): Promise<{
14
+ network: "mainnet";
15
+ address: `0x${string}`;
16
+ active: string;
17
+ pending: string;
18
+ total: string;
19
+ activeFormatted: string;
20
+ pendingFormatted: string;
21
+ totalFormatted: string;
22
+ groups: Array<{
23
+ groupAddress: string;
24
+ active: string;
25
+ pending: string;
26
+ total: string;
27
+ activeFormatted: string;
28
+ pendingFormatted: string;
29
+ totalFormatted: string;
30
+ }>;
31
+ }>;
32
+ /**
33
+ * Pending stakes that can be activated in the current epoch.
34
+ * @param address - Staker wallet address
35
+ * @returns Groups with activatable pending votes and a summary message
36
+ * @throws When `address` is not a valid hex address
37
+ */
38
+ getActivatableStakes(address: `0x${string}`): Promise<{
39
+ network: "mainnet";
40
+ address: `0x${string}`;
41
+ activatableGroups: string[];
42
+ groupToIsActivatable: Record<string, boolean>;
43
+ summary: {
44
+ totalActivatableGroups: number;
45
+ totalPendingGroups: number;
46
+ message: string;
47
+ activatableGroupsFormatted?: undefined;
48
+ };
49
+ } | {
50
+ network: "mainnet";
51
+ address: `0x${string}`;
52
+ activatableGroups: string[];
53
+ groupToIsActivatable: Record<string, boolean>;
54
+ summary: {
55
+ totalActivatableGroups: number;
56
+ totalPendingGroups: number;
57
+ activatableGroupsFormatted: string[];
58
+ message: string;
59
+ };
60
+ }>;
61
+ /**
62
+ * Paginated list of validator groups registered on Celo.
63
+ * @param options.page - Page number (1-based)
64
+ * @param options.pageSize - Groups per page (1–50, default 10)
65
+ * @param options.offset - Alternative to `page`: zero-based offset
66
+ * @param options.limit - Max groups when using `offset`
67
+ * @returns Group addresses, vote totals, capacity, and pagination metadata
68
+ */
69
+ getValidatorGroups(options?: {
70
+ page?: number;
71
+ pageSize?: number;
72
+ offset?: number;
73
+ limit?: number;
74
+ }): Promise<{
75
+ network: "mainnet";
76
+ groups: {
77
+ address: `0x${string}`;
78
+ name: string;
79
+ votes: string;
80
+ votesFormatted: string;
81
+ numMembers: number;
82
+ capacity: string;
83
+ capacityFormatted: string;
84
+ addressFormatted: string;
85
+ }[];
86
+ totalVotes: string;
87
+ totalVotesFormatted: string;
88
+ pagination: {
89
+ total: number;
90
+ page: number;
91
+ pageSize: number;
92
+ totalPages: number;
93
+ offset: number;
94
+ limit: number;
95
+ hasMore: boolean;
96
+ };
97
+ }>;
98
+ /**
99
+ * Detailed validator group profile including member validators and scores.
100
+ * @param groupAddress - Validator group contract address
101
+ * @returns Group name, votes, capacity, eligibility, and member list
102
+ * @throws When `groupAddress` is not a valid hex address
103
+ */
104
+ getValidatorGroupDetails(groupAddress: `0x${string}`): Promise<{
105
+ network: "mainnet";
106
+ address: `0x${string}`;
107
+ name: string;
108
+ votes: string;
109
+ votesFormatted: string;
110
+ capacity: string;
111
+ capacityFormatted: string;
112
+ lastSlashed: number | null;
113
+ eligible: boolean;
114
+ numMembers: number;
115
+ numElected: number;
116
+ members: {
117
+ address: `0x${string}`;
118
+ addressFormatted: string;
119
+ name: string;
120
+ score: string;
121
+ scoreFormatted: string;
122
+ signer: string | null;
123
+ status: string;
124
+ }[];
125
+ }>;
126
+ /**
127
+ * Network-wide total active staking votes across all validator groups.
128
+ * @returns Total votes in wei and human-readable CELO formatting
129
+ */
130
+ getTotalStakingInfo(): Promise<{
131
+ network: "mainnet";
132
+ totalVotes: string;
133
+ totalVotesCelo: number;
134
+ totalVotesFormatted: string;
135
+ summary: {
136
+ networkParticipation: string;
137
+ message: string;
138
+ };
139
+ }>;
140
+ }
@@ -0,0 +1,444 @@
1
+ /**
2
+ * Celo validator election staking: votes, groups, and network totals.
3
+ */
4
+ import { isAddress } from "viem";
5
+ import { accountsAbi } from "../abis/accounts.js";
6
+ import { electionAbi } from "../abis/election.js";
7
+ import { lockedGoldAbi } from "../abis/locked-gold.js";
8
+ import { validatorsMinimalAbi } from "../abis/validators-minimal.js";
9
+ import { CELO_CORE_CONTRACTS } from "../config/celo-core-contracts.js";
10
+ import { formatAddress, formatCeloAmount, formatScorePercentage, } from "../utils/celo-format.js";
11
+ const MAX_ELECTABLE_VALIDATORS = 110;
12
+ function calculateGroupCapacity(groupMembers, totalLockedGold, totalValidators) {
13
+ if (totalValidators === 0)
14
+ return 0n;
15
+ const divisor = BigInt(Math.min(MAX_ELECTABLE_VALIDATORS, totalValidators));
16
+ return (totalLockedGold * BigInt(groupMembers + 1)) / divisor;
17
+ }
18
+ /** Validator election staking reads via Celo core contracts. */
19
+ export class StakingService {
20
+ clientFactory;
21
+ constructor(clientFactory) {
22
+ this.clientFactory = clientFactory;
23
+ }
24
+ getClient() {
25
+ return this.clientFactory.getClients().public;
26
+ }
27
+ /**
28
+ * Active and pending CELO vote balances per validator group for an account.
29
+ * @param address - Staker wallet address
30
+ * @returns Totals and per-group active/pending vote amounts
31
+ * @throws When `address` is not a valid hex address
32
+ */
33
+ async getStakingBalances(address) {
34
+ if (!isAddress(address)) {
35
+ throw new Error(`Invalid address: ${address}`);
36
+ }
37
+ const client = this.getClient();
38
+ const election = CELO_CORE_CONTRACTS.election;
39
+ const groupAddresses = (await client.readContract({
40
+ address: election,
41
+ abi: electionAbi,
42
+ functionName: "getGroupsVotedForByAccount",
43
+ args: [address],
44
+ }));
45
+ if (groupAddresses.length === 0) {
46
+ return {
47
+ network: "mainnet",
48
+ address,
49
+ active: "0",
50
+ pending: "0",
51
+ total: "0",
52
+ activeFormatted: formatCeloAmount(0n),
53
+ pendingFormatted: formatCeloAmount(0n),
54
+ totalFormatted: formatCeloAmount(0n),
55
+ groups: [],
56
+ };
57
+ }
58
+ const calls = groupAddresses.flatMap((group) => [
59
+ {
60
+ address: election,
61
+ abi: electionAbi,
62
+ functionName: "getPendingVotesForGroupByAccount",
63
+ args: [group, address],
64
+ },
65
+ {
66
+ address: election,
67
+ abi: electionAbi,
68
+ functionName: "getActiveVotesForGroupByAccount",
69
+ args: [group, address],
70
+ },
71
+ ]);
72
+ const results = await client.multicall({ contracts: calls, allowFailure: true });
73
+ let totalActive = 0n;
74
+ let totalPending = 0n;
75
+ const groups = groupAddresses.map((group, index) => {
76
+ const pendingResult = results[index * 2];
77
+ const activeResult = results[index * 2 + 1];
78
+ const pending = pendingResult.status === "success" ? pendingResult.result : 0n;
79
+ const active = activeResult.status === "success" ? activeResult.result : 0n;
80
+ totalActive += active;
81
+ totalPending += pending;
82
+ return {
83
+ groupAddress: group,
84
+ active: active.toString(),
85
+ pending: pending.toString(),
86
+ total: (active + pending).toString(),
87
+ activeFormatted: formatCeloAmount(active),
88
+ pendingFormatted: formatCeloAmount(pending),
89
+ totalFormatted: formatCeloAmount(active + pending),
90
+ };
91
+ });
92
+ const total = totalActive + totalPending;
93
+ return {
94
+ network: "mainnet",
95
+ address,
96
+ active: totalActive.toString(),
97
+ pending: totalPending.toString(),
98
+ total: total.toString(),
99
+ activeFormatted: formatCeloAmount(totalActive),
100
+ pendingFormatted: formatCeloAmount(totalPending),
101
+ totalFormatted: formatCeloAmount(total),
102
+ groups,
103
+ };
104
+ }
105
+ /**
106
+ * Pending stakes that can be activated in the current epoch.
107
+ * @param address - Staker wallet address
108
+ * @returns Groups with activatable pending votes and a summary message
109
+ * @throws When `address` is not a valid hex address
110
+ */
111
+ async getActivatableStakes(address) {
112
+ if (!isAddress(address)) {
113
+ throw new Error(`Invalid address: ${address}`);
114
+ }
115
+ const balances = await this.getStakingBalances(address);
116
+ const pendingGroups = balances.groups.filter((g) => g.pending !== "0");
117
+ if (pendingGroups.length === 0) {
118
+ return {
119
+ network: "mainnet",
120
+ address,
121
+ activatableGroups: [],
122
+ groupToIsActivatable: {},
123
+ summary: {
124
+ totalActivatableGroups: 0,
125
+ totalPendingGroups: 0,
126
+ message: "No pending stakes found",
127
+ },
128
+ };
129
+ }
130
+ const client = this.getClient();
131
+ const election = CELO_CORE_CONTRACTS.election;
132
+ const calls = pendingGroups.map((g) => ({
133
+ address: election,
134
+ abi: electionAbi,
135
+ functionName: "hasActivatablePendingVotes",
136
+ args: [address, g.groupAddress],
137
+ }));
138
+ const results = await client.multicall({ contracts: calls, allowFailure: true });
139
+ const groupToIsActivatable = {};
140
+ const activatableGroups = [];
141
+ pendingGroups.forEach((group, index) => {
142
+ const result = results[index];
143
+ const isActivatable = result.status === "success" ? result.result : false;
144
+ groupToIsActivatable[group.groupAddress] = isActivatable;
145
+ if (isActivatable)
146
+ activatableGroups.push(group.groupAddress);
147
+ });
148
+ return {
149
+ network: "mainnet",
150
+ address,
151
+ activatableGroups,
152
+ groupToIsActivatable,
153
+ summary: {
154
+ totalActivatableGroups: activatableGroups.length,
155
+ totalPendingGroups: pendingGroups.length,
156
+ activatableGroupsFormatted: activatableGroups.map(formatAddress),
157
+ message: `${activatableGroups.length} of ${pendingGroups.length} groups have stakes ready to activate`,
158
+ },
159
+ };
160
+ }
161
+ /**
162
+ * Paginated list of validator groups registered on Celo.
163
+ * @param options.page - Page number (1-based)
164
+ * @param options.pageSize - Groups per page (1–50, default 10)
165
+ * @param options.offset - Alternative to `page`: zero-based offset
166
+ * @param options.limit - Max groups when using `offset`
167
+ * @returns Group addresses, vote totals, capacity, and pagination metadata
168
+ */
169
+ async getValidatorGroups(options) {
170
+ const pageSize = Math.min(Math.max(options?.pageSize ?? 10, 1), 50);
171
+ let offset;
172
+ let limit;
173
+ if (options?.page !== undefined) {
174
+ const page = Math.max(options.page, 1);
175
+ offset = (page - 1) * pageSize;
176
+ limit = pageSize;
177
+ }
178
+ else if (options?.offset !== undefined) {
179
+ offset = Math.max(options.offset, 0);
180
+ limit = Math.min(options?.limit ?? pageSize, 100);
181
+ }
182
+ else {
183
+ offset = 0;
184
+ limit = Math.min(options?.limit ?? pageSize, 100);
185
+ }
186
+ const client = this.getClient();
187
+ const election = CELO_CORE_CONTRACTS.election;
188
+ const validators = CELO_CORE_CONTRACTS.validators;
189
+ const accounts = CELO_CORE_CONTRACTS.accounts;
190
+ const lockedGold = CELO_CORE_CONTRACTS.lockedGold;
191
+ let groupAddresses;
192
+ let groupVotes = null;
193
+ try {
194
+ const eligible = (await client.readContract({
195
+ address: election,
196
+ abi: electionAbi,
197
+ functionName: "getTotalVotesForEligibleValidatorGroups",
198
+ }));
199
+ groupAddresses = eligible[0];
200
+ groupVotes = eligible[1];
201
+ }
202
+ catch {
203
+ groupAddresses = (await client.readContract({
204
+ address: election,
205
+ abi: electionAbi,
206
+ functionName: "getEligibleValidatorGroups",
207
+ }));
208
+ }
209
+ const [totalVotes, totalLockedGold, allValidators] = await Promise.all([
210
+ client.readContract({
211
+ address: election,
212
+ abi: electionAbi,
213
+ functionName: "getTotalVotes",
214
+ }),
215
+ client
216
+ .readContract({
217
+ address: lockedGold,
218
+ abi: lockedGoldAbi,
219
+ functionName: "getTotalLockedGold",
220
+ })
221
+ .catch(() => 0n),
222
+ client
223
+ .readContract({
224
+ address: validators,
225
+ abi: validatorsMinimalAbi,
226
+ functionName: "getRegisteredValidators",
227
+ })
228
+ .catch(() => []),
229
+ ]);
230
+ const totalValidators = allValidators.length || MAX_ELECTABLE_VALIDATORS;
231
+ const slice = groupAddresses.slice(offset, offset + limit);
232
+ const groupCalls = slice.flatMap((group) => [
233
+ {
234
+ address: validators,
235
+ abi: validatorsMinimalAbi,
236
+ functionName: "getValidatorGroup",
237
+ args: [group],
238
+ },
239
+ {
240
+ address: accounts,
241
+ abi: accountsAbi,
242
+ functionName: "getName",
243
+ args: [group],
244
+ },
245
+ ]);
246
+ const groupResults = await client.multicall({
247
+ contracts: groupCalls,
248
+ allowFailure: true,
249
+ });
250
+ const groups = await Promise.all(slice.map(async (groupAddress, index) => {
251
+ const groupInfoResult = groupResults[index * 2];
252
+ const nameResult = groupResults[index * 2 + 1];
253
+ const members = groupInfoResult.status === "success"
254
+ ? groupInfoResult.result[0]
255
+ : [];
256
+ const name = nameResult.status === "success"
257
+ ? nameResult.result
258
+ : `${groupAddress.slice(0, 10)}...`;
259
+ let votes = groupVotes?.[offset + index] ?? 0n;
260
+ if (groupVotes === null) {
261
+ votes = (await client.readContract({
262
+ address: election,
263
+ abi: electionAbi,
264
+ functionName: "getActiveVotesForGroup",
265
+ args: [groupAddress],
266
+ }));
267
+ }
268
+ const numMembers = members.length;
269
+ const capacity = calculateGroupCapacity(numMembers, totalLockedGold || totalVotes, totalValidators);
270
+ return {
271
+ address: groupAddress,
272
+ name,
273
+ votes: votes.toString(),
274
+ votesFormatted: formatCeloAmount(votes),
275
+ numMembers,
276
+ capacity: capacity.toString(),
277
+ capacityFormatted: formatCeloAmount(capacity),
278
+ addressFormatted: formatAddress(groupAddress),
279
+ };
280
+ }));
281
+ const total = groupAddresses.length;
282
+ const currentPage = options?.page ?? Math.floor(offset / pageSize) + 1;
283
+ return {
284
+ network: "mainnet",
285
+ groups,
286
+ totalVotes: totalVotes.toString(),
287
+ totalVotesFormatted: formatCeloAmount(totalVotes),
288
+ pagination: {
289
+ total,
290
+ page: currentPage,
291
+ pageSize,
292
+ totalPages: Math.max(Math.ceil(total / pageSize), 1),
293
+ offset,
294
+ limit,
295
+ hasMore: offset + limit < total,
296
+ },
297
+ };
298
+ }
299
+ /**
300
+ * Detailed validator group profile including member validators and scores.
301
+ * @param groupAddress - Validator group contract address
302
+ * @returns Group name, votes, capacity, eligibility, and member list
303
+ * @throws When `groupAddress` is not a valid hex address
304
+ */
305
+ async getValidatorGroupDetails(groupAddress) {
306
+ if (!isAddress(groupAddress)) {
307
+ throw new Error(`Invalid group address: ${groupAddress}`);
308
+ }
309
+ const client = this.getClient();
310
+ const election = CELO_CORE_CONTRACTS.election;
311
+ const validators = CELO_CORE_CONTRACTS.validators;
312
+ const accounts = CELO_CORE_CONTRACTS.accounts;
313
+ const lockedGold = CELO_CORE_CONTRACTS.lockedGold;
314
+ const [groupInfo, name, votes, eligibleGroups, totalLockedGold, allValidators] = await Promise.all([
315
+ client.readContract({
316
+ address: validators,
317
+ abi: validatorsMinimalAbi,
318
+ functionName: "getValidatorGroup",
319
+ args: [groupAddress],
320
+ }),
321
+ client
322
+ .readContract({
323
+ address: accounts,
324
+ abi: accountsAbi,
325
+ functionName: "getName",
326
+ args: [groupAddress],
327
+ })
328
+ .catch(() => `${groupAddress.slice(0, 10)}...`),
329
+ client.readContract({
330
+ address: election,
331
+ abi: electionAbi,
332
+ functionName: "getActiveVotesForGroup",
333
+ args: [groupAddress],
334
+ }),
335
+ client.readContract({
336
+ address: election,
337
+ abi: electionAbi,
338
+ functionName: "getEligibleValidatorGroups",
339
+ }),
340
+ client
341
+ .readContract({
342
+ address: lockedGold,
343
+ abi: lockedGoldAbi,
344
+ functionName: "getTotalLockedGold",
345
+ })
346
+ .catch(() => 0n),
347
+ client
348
+ .readContract({
349
+ address: validators,
350
+ abi: validatorsMinimalAbi,
351
+ functionName: "getRegisteredValidators",
352
+ })
353
+ .catch(() => []),
354
+ ]);
355
+ const members = groupInfo[0];
356
+ const lastSlashed = groupInfo[2] > 0n ? Number(groupInfo[2]) * 1000 : null;
357
+ const totalValidators = allValidators.length || MAX_ELECTABLE_VALIDATORS;
358
+ const capacity = calculateGroupCapacity(members.length, totalLockedGold || votes, totalValidators);
359
+ const memberCalls = members.flatMap((member) => [
360
+ {
361
+ address: validators,
362
+ abi: validatorsMinimalAbi,
363
+ functionName: "getValidator",
364
+ args: [member],
365
+ },
366
+ {
367
+ address: accounts,
368
+ abi: accountsAbi,
369
+ functionName: "getName",
370
+ args: [member],
371
+ },
372
+ ]);
373
+ const memberResults = await client.multicall({
374
+ contracts: memberCalls,
375
+ allowFailure: true,
376
+ });
377
+ const memberDetails = members.map((member, index) => {
378
+ const validatorResult = memberResults[index * 2];
379
+ const nameResult = memberResults[index * 2 + 1];
380
+ if (validatorResult.status !== "success") {
381
+ return {
382
+ address: member,
383
+ addressFormatted: formatAddress(member),
384
+ name: `${member.slice(0, 10)}...`,
385
+ score: "0",
386
+ scoreFormatted: "0%",
387
+ signer: null,
388
+ status: votes > 0n ? "ELECTED" : "NOT_ELECTED",
389
+ };
390
+ }
391
+ const validatorInfo = validatorResult.result;
392
+ const memberName = nameResult.status === "success"
393
+ ? nameResult.result
394
+ : `${member.slice(0, 10)}...`;
395
+ return {
396
+ address: member,
397
+ addressFormatted: formatAddress(member),
398
+ name: memberName,
399
+ score: validatorInfo[3].toString(),
400
+ scoreFormatted: formatScorePercentage(validatorInfo[3]),
401
+ signer: validatorInfo[4],
402
+ status: votes > 0n ? "ELECTED" : "NOT_ELECTED",
403
+ };
404
+ });
405
+ const eligible = eligibleGroups.some((g) => g.toLowerCase() === groupAddress.toLowerCase());
406
+ return {
407
+ network: "mainnet",
408
+ address: groupAddress,
409
+ name,
410
+ votes: votes.toString(),
411
+ votesFormatted: formatCeloAmount(votes),
412
+ capacity: capacity.toString(),
413
+ capacityFormatted: formatCeloAmount(capacity),
414
+ lastSlashed,
415
+ eligible,
416
+ numMembers: members.length,
417
+ numElected: votes > 0n ? members.length : 0,
418
+ members: memberDetails,
419
+ };
420
+ }
421
+ /**
422
+ * Network-wide total active staking votes across all validator groups.
423
+ * @returns Total votes in wei and human-readable CELO formatting
424
+ */
425
+ async getTotalStakingInfo() {
426
+ const client = this.getClient();
427
+ const totalVotes = (await client.readContract({
428
+ address: CELO_CORE_CONTRACTS.election,
429
+ abi: electionAbi,
430
+ functionName: "getTotalVotes",
431
+ }));
432
+ return {
433
+ network: "mainnet",
434
+ totalVotes: totalVotes.toString(),
435
+ totalVotesCelo: Number(totalVotes / 10n ** 18n),
436
+ totalVotesFormatted: formatCeloAmount(totalVotes),
437
+ summary: {
438
+ networkParticipation: formatCeloAmount(totalVotes),
439
+ message: `Total network staking participation: ${formatCeloAmount(totalVotes)}`,
440
+ },
441
+ };
442
+ }
443
+ }
444
+ //# sourceMappingURL=staking.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.service.js","sourceRoot":"","sources":["../../../src/services/staking.service.ts"],"names":[],"mappings":"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"}