@andrewkimjoseph/celina-sdk 0.9.8 → 0.10.0

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 (371) hide show
  1. package/build/a2a/skills.js +5 -0
  2. package/build/a2a/skills.js.map +1 -1
  3. package/build/index.d.ts +35 -1
  4. package/build/index.js +6 -0
  5. package/build/index.js.map +1 -1
  6. package/build/services/agentkarma.service.d.ts +89 -0
  7. package/build/services/agentkarma.service.js +102 -0
  8. package/build/services/agentkarma.service.js.map +1 -0
  9. package/build/src/a2a/agent-card.d.ts +37 -0
  10. package/build/src/a2a/agent-card.js +46 -0
  11. package/build/src/a2a/agent-card.js.map +1 -0
  12. package/build/src/a2a/index.d.ts +2 -0
  13. package/build/src/a2a/index.js +3 -0
  14. package/build/src/a2a/index.js.map +1 -0
  15. package/build/src/a2a/skills.d.ts +18 -0
  16. package/build/src/a2a/skills.js +106 -0
  17. package/build/src/a2a/skills.js.map +1 -0
  18. package/build/src/abis/aave-pool.d.ts +37 -0
  19. package/build/src/abis/aave-pool.js +26 -0
  20. package/build/src/abis/aave-pool.js.map +1 -0
  21. package/build/src/abis/accounts.d.ts +13 -0
  22. package/build/src/abis/accounts.js +10 -0
  23. package/build/src/abis/accounts.js.map +1 -0
  24. package/build/src/abis/election.d.ts +124 -0
  25. package/build/src/abis/election.js +88 -0
  26. package/build/src/abis/election.js.map +1 -0
  27. package/build/src/abis/gooddollar-broker.d.ts +77 -0
  28. package/build/src/abis/gooddollar-broker.js +44 -0
  29. package/build/src/abis/gooddollar-broker.js.map +1 -0
  30. package/build/src/abis/gooddollar-identity.d.ts +85 -0
  31. package/build/src/abis/gooddollar-identity.js +52 -0
  32. package/build/src/abis/gooddollar-identity.js.map +1 -0
  33. package/build/src/abis/governance.d.ts +86 -0
  34. package/build/src/abis/governance.js +68 -0
  35. package/build/src/abis/governance.js.map +1 -0
  36. package/build/src/abis/locked-gold.d.ts +10 -0
  37. package/build/src/abis/locked-gold.js +10 -0
  38. package/build/src/abis/locked-gold.js.map +1 -0
  39. package/build/src/abis/nft.d.ts +107 -0
  40. package/build/src/abis/nft.js +75 -0
  41. package/build/src/abis/nft.js.map +1 -0
  42. package/build/src/abis/permit2.d.ts +43 -0
  43. package/build/src/abis/permit2.js +30 -0
  44. package/build/src/abis/permit2.js.map +1 -0
  45. package/build/src/abis/self-registry.d.ts +194 -0
  46. package/build/src/abis/self-registry.js +120 -0
  47. package/build/src/abis/self-registry.js.map +1 -0
  48. package/build/src/abis/ubi-scheme.d.ts +91 -0
  49. package/build/src/abis/ubi-scheme.js +66 -0
  50. package/build/src/abis/ubi-scheme.js.map +1 -0
  51. package/build/src/abis/uniswap-state-view.d.ts +34 -0
  52. package/build/src/abis/uniswap-state-view.js +22 -0
  53. package/build/src/abis/uniswap-state-view.js.map +1 -0
  54. package/build/src/abis/uniswap-v4-quoter.d.ts +86 -0
  55. package/build/src/abis/uniswap-v4-quoter.js +64 -0
  56. package/build/src/abis/uniswap-v4-quoter.js.map +1 -0
  57. package/build/src/abis/universal-router.d.ts +16 -0
  58. package/build/src/abis/universal-router.js +14 -0
  59. package/build/src/abis/universal-router.js.map +1 -0
  60. package/build/src/abis/validators-minimal.d.ts +65 -0
  61. package/build/src/abis/validators-minimal.js +39 -0
  62. package/build/src/abis/validators-minimal.js.map +1 -0
  63. package/build/src/analytics/amplitude.d.ts +11 -0
  64. package/build/src/analytics/amplitude.js +76 -0
  65. package/build/src/analytics/amplitude.js.map +1 -0
  66. package/build/src/analytics/config.d.ts +7 -0
  67. package/build/src/analytics/config.js +28 -0
  68. package/build/src/analytics/config.js.map +1 -0
  69. package/build/src/analytics/consumer-package.d.ts +9 -0
  70. package/build/src/analytics/consumer-package.js +143 -0
  71. package/build/src/analytics/consumer-package.js.map +1 -0
  72. package/build/src/analytics/mcp-tool-events.d.ts +5 -0
  73. package/build/src/analytics/mcp-tool-events.js +53 -0
  74. package/build/src/analytics/mcp-tool-events.js.map +1 -0
  75. package/build/src/analytics/wallet-context.d.ts +11 -0
  76. package/build/src/analytics/wallet-context.js +81 -0
  77. package/build/src/analytics/wallet-context.js.map +1 -0
  78. package/build/src/analytics/wallet-extract.d.ts +9 -0
  79. package/build/src/analytics/wallet-extract.js +21 -0
  80. package/build/src/analytics/wallet-extract.js.map +1 -0
  81. package/build/src/analytics/wrap-service.d.ts +5 -0
  82. package/build/src/analytics/wrap-service.js +38 -0
  83. package/build/src/analytics/wrap-service.js.map +1 -0
  84. package/build/src/clients/celo-client.d.ts +17 -0
  85. package/build/src/clients/celo-client.js +28 -0
  86. package/build/src/clients/celo-client.js.map +1 -0
  87. package/build/src/clients/ens-client.d.ts +17 -0
  88. package/build/src/clients/ens-client.js +30 -0
  89. package/build/src/clients/ens-client.js.map +1 -0
  90. package/build/src/clients/mento-sdk.d.ts +2 -0
  91. package/build/src/clients/mento-sdk.js +9 -0
  92. package/build/src/clients/mento-sdk.js.map +1 -0
  93. package/build/src/clients/self-api.d.ts +82 -0
  94. package/build/src/clients/self-api.js +242 -0
  95. package/build/src/clients/self-api.js.map +1 -0
  96. package/build/src/clients/uniswap-sdk.d.ts +4 -0
  97. package/build/src/clients/uniswap-sdk.js +13 -0
  98. package/build/src/clients/uniswap-sdk.js.map +1 -0
  99. package/build/src/config/aave.d.ts +17 -0
  100. package/build/src/config/aave.js +77 -0
  101. package/build/src/config/aave.js.map +1 -0
  102. package/build/src/config/celina-tag.d.ts +4 -0
  103. package/build/src/config/celina-tag.js +13 -0
  104. package/build/src/config/celina-tag.js.map +1 -0
  105. package/build/src/config/celo-core-contracts.d.ts +8 -0
  106. package/build/src/config/celo-core-contracts.js +9 -0
  107. package/build/src/config/celo-core-contracts.js.map +1 -0
  108. package/build/src/config/chains.d.ts +937 -0
  109. package/build/src/config/chains.js +319 -0
  110. package/build/src/config/chains.js.map +1 -0
  111. package/build/src/config/gooddollar.d.ts +16 -0
  112. package/build/src/config/gooddollar.js +24 -0
  113. package/build/src/config/gooddollar.js.map +1 -0
  114. package/build/src/config/sdk-config.d.ts +33 -0
  115. package/build/src/config/sdk-config.js +31 -0
  116. package/build/src/config/sdk-config.js.map +1 -0
  117. package/build/src/config/self.d.ts +22 -0
  118. package/build/src/config/self.js +27 -0
  119. package/build/src/config/self.js.map +1 -0
  120. package/build/src/config/uniswap.d.ts +42 -0
  121. package/build/src/config/uniswap.js +76 -0
  122. package/build/src/config/uniswap.js.map +1 -0
  123. package/build/src/index.d.ts +124 -0
  124. package/build/src/index.js +71 -0
  125. package/build/src/index.js.map +1 -0
  126. package/build/src/oasf/index.d.ts +2 -0
  127. package/build/src/oasf/index.js +3 -0
  128. package/build/src/oasf/index.js.map +1 -0
  129. package/build/src/oasf/record.d.ts +39 -0
  130. package/build/src/oasf/record.js +35 -0
  131. package/build/src/oasf/record.js.map +1 -0
  132. package/build/src/oasf/taxonomy.d.ts +19 -0
  133. package/build/src/oasf/taxonomy.js +46 -0
  134. package/build/src/oasf/taxonomy.js.map +1 -0
  135. package/build/src/services/aave.service.d.ts +58 -0
  136. package/build/src/services/aave.service.js +210 -0
  137. package/build/src/services/aave.service.js.map +1 -0
  138. package/build/src/services/account.service.d.ts +22 -0
  139. package/build/src/services/account.service.js +29 -0
  140. package/build/src/services/account.service.js.map +1 -0
  141. package/build/src/services/agentkarma.service.d.ts +89 -0
  142. package/build/src/services/agentkarma.service.js +102 -0
  143. package/build/src/services/agentkarma.service.js.map +1 -0
  144. package/build/src/services/blockchain.service.d.ts +107 -0
  145. package/build/src/services/blockchain.service.js +151 -0
  146. package/build/src/services/blockchain.service.js.map +1 -0
  147. package/build/src/services/contract.service.d.ts +78 -0
  148. package/build/src/services/contract.service.js +117 -0
  149. package/build/src/services/contract.service.js.map +1 -0
  150. package/build/src/services/ens.service.d.ts +44 -0
  151. package/build/src/services/ens.service.js +92 -0
  152. package/build/src/services/ens.service.js.map +1 -0
  153. package/build/src/services/gooddollar.service.d.ts +183 -0
  154. package/build/src/services/gooddollar.service.js +675 -0
  155. package/build/src/services/gooddollar.service.js.map +1 -0
  156. package/build/src/services/governance.service.d.ts +96 -0
  157. package/build/src/services/governance.service.js +255 -0
  158. package/build/src/services/governance.service.js.map +1 -0
  159. package/build/src/services/mento-fx.service.d.ts +80 -0
  160. package/build/src/services/mento-fx.service.js +319 -0
  161. package/build/src/services/mento-fx.service.js.map +1 -0
  162. package/build/src/services/nft.service.d.ts +58 -0
  163. package/build/src/services/nft.service.js +222 -0
  164. package/build/src/services/nft.service.js.map +1 -0
  165. package/build/src/services/self-session-store.d.ts +19 -0
  166. package/build/src/services/self-session-store.js +28 -0
  167. package/build/src/services/self-session-store.js.map +1 -0
  168. package/build/src/services/self.service.d.ts +241 -0
  169. package/build/src/services/self.service.js +699 -0
  170. package/build/src/services/self.service.js.map +1 -0
  171. package/build/src/services/staking.service.d.ts +140 -0
  172. package/build/src/services/staking.service.js +444 -0
  173. package/build/src/services/staking.service.js.map +1 -0
  174. package/build/src/services/token.service.d.ts +110 -0
  175. package/build/src/services/token.service.js +189 -0
  176. package/build/src/services/token.service.js.map +1 -0
  177. package/build/src/services/transaction.service.d.ts +68 -0
  178. package/build/src/services/transaction.service.js +198 -0
  179. package/build/src/services/transaction.service.js.map +1 -0
  180. package/build/src/services/uniswap-path-router.d.ts +40 -0
  181. package/build/src/services/uniswap-path-router.js +168 -0
  182. package/build/src/services/uniswap-path-router.js.map +1 -0
  183. package/build/src/services/uniswap-pool-discovery.d.ts +55 -0
  184. package/build/src/services/uniswap-pool-discovery.js +198 -0
  185. package/build/src/services/uniswap-pool-discovery.js.map +1 -0
  186. package/build/src/services/uniswap.service.d.ts +82 -0
  187. package/build/src/services/uniswap.service.js +352 -0
  188. package/build/src/services/uniswap.service.js.map +1 -0
  189. package/build/src/simulation/index.d.ts +5 -0
  190. package/build/src/simulation/index.js +2 -0
  191. package/build/src/simulation/index.js.map +1 -0
  192. package/build/src/simulation/simulate-prepared-step.d.ts +17 -0
  193. package/build/src/simulation/simulate-prepared-step.js +42 -0
  194. package/build/src/simulation/simulate-prepared-step.js.map +1 -0
  195. package/build/src/tools/catalog.d.ts +11 -0
  196. package/build/src/tools/catalog.js +43 -0
  197. package/build/src/tools/catalog.js.map +1 -0
  198. package/build/src/tools/domains/aave.d.ts +2 -0
  199. package/build/src/tools/domains/aave.js +115 -0
  200. package/build/src/tools/domains/aave.js.map +1 -0
  201. package/build/src/tools/domains/agentkarma.d.ts +2 -0
  202. package/build/src/tools/domains/agentkarma.js +92 -0
  203. package/build/src/tools/domains/agentkarma.js.map +1 -0
  204. package/build/src/tools/domains/blockchain.d.ts +2 -0
  205. package/build/src/tools/domains/blockchain.js +86 -0
  206. package/build/src/tools/domains/blockchain.js.map +1 -0
  207. package/build/src/tools/domains/browser.d.ts +2 -0
  208. package/build/src/tools/domains/browser.js +45 -0
  209. package/build/src/tools/domains/browser.js.map +1 -0
  210. package/build/src/tools/domains/contract.d.ts +2 -0
  211. package/build/src/tools/domains/contract.js +67 -0
  212. package/build/src/tools/domains/contract.js.map +1 -0
  213. package/build/src/tools/domains/ens.d.ts +2 -0
  214. package/build/src/tools/domains/ens.js +16 -0
  215. package/build/src/tools/domains/ens.js.map +1 -0
  216. package/build/src/tools/domains/gooddollar.d.ts +2 -0
  217. package/build/src/tools/domains/gooddollar.js +171 -0
  218. package/build/src/tools/domains/gooddollar.js.map +1 -0
  219. package/build/src/tools/domains/governance.d.ts +2 -0
  220. package/build/src/tools/domains/governance.js +41 -0
  221. package/build/src/tools/domains/governance.js.map +1 -0
  222. package/build/src/tools/domains/index.d.ts +1 -0
  223. package/build/src/tools/domains/index.js +33 -0
  224. package/build/src/tools/domains/index.js.map +1 -0
  225. package/build/src/tools/domains/mento-fx.d.ts +2 -0
  226. package/build/src/tools/domains/mento-fx.js +67 -0
  227. package/build/src/tools/domains/mento-fx.js.map +1 -0
  228. package/build/src/tools/domains/nft.d.ts +2 -0
  229. package/build/src/tools/domains/nft.js +38 -0
  230. package/build/src/tools/domains/nft.js.map +1 -0
  231. package/build/src/tools/domains/self.d.ts +2 -0
  232. package/build/src/tools/domains/self.js +187 -0
  233. package/build/src/tools/domains/self.js.map +1 -0
  234. package/build/src/tools/domains/staking.d.ts +2 -0
  235. package/build/src/tools/domains/staking.js +74 -0
  236. package/build/src/tools/domains/staking.js.map +1 -0
  237. package/build/src/tools/domains/token.d.ts +2 -0
  238. package/build/src/tools/domains/token.js +74 -0
  239. package/build/src/tools/domains/token.js.map +1 -0
  240. package/build/src/tools/domains/transaction.d.ts +2 -0
  241. package/build/src/tools/domains/transaction.js +120 -0
  242. package/build/src/tools/domains/transaction.js.map +1 -0
  243. package/build/src/tools/domains/uniswap.d.ts +2 -0
  244. package/build/src/tools/domains/uniswap.js +67 -0
  245. package/build/src/tools/domains/uniswap.js.map +1 -0
  246. package/build/src/tools/filter.d.ts +2 -0
  247. package/build/src/tools/filter.js +50 -0
  248. package/build/src/tools/filter.js.map +1 -0
  249. package/build/src/tools/index.d.ts +7 -0
  250. package/build/src/tools/index.js +7 -0
  251. package/build/src/tools/index.js.map +1 -0
  252. package/build/src/tools/schemas/common.d.ts +165 -0
  253. package/build/src/tools/schemas/common.js +207 -0
  254. package/build/src/tools/schemas/common.js.map +1 -0
  255. package/build/src/tools/schemas/wallet-params.d.ts +9 -0
  256. package/build/src/tools/schemas/wallet-params.js +52 -0
  257. package/build/src/tools/schemas/wallet-params.js.map +1 -0
  258. package/build/src/tools/swap-routing.d.ts +25 -0
  259. package/build/src/tools/swap-routing.js +174 -0
  260. package/build/src/tools/swap-routing.js.map +1 -0
  261. package/build/src/tools/types.d.ts +124 -0
  262. package/build/src/tools/types.js +2 -0
  263. package/build/src/tools/types.js.map +1 -0
  264. package/build/src/tools/utils/normalize-token.d.ts +2 -0
  265. package/build/src/tools/utils/normalize-token.js +12 -0
  266. package/build/src/tools/utils/normalize-token.js.map +1 -0
  267. package/build/src/tools/utils/wallet.d.ts +4 -0
  268. package/build/src/tools/utils/wallet.js +8 -0
  269. package/build/src/tools/utils/wallet.js.map +1 -0
  270. package/build/src/tools/website-sync.d.ts +28 -0
  271. package/build/src/tools/website-sync.js +168 -0
  272. package/build/src/tools/website-sync.js.map +1 -0
  273. package/build/src/types/prepared.d.ts +28 -0
  274. package/build/src/types/prepared.js +12 -0
  275. package/build/src/types/prepared.js.map +1 -0
  276. package/build/src/utils/celo-format.d.ts +6 -0
  277. package/build/src/utils/celo-format.js +17 -0
  278. package/build/src/utils/celo-format.js.map +1 -0
  279. package/build/src/utils/erc20-allowance-storage.d.ts +20 -0
  280. package/build/src/utils/erc20-allowance-storage.js +64 -0
  281. package/build/src/utils/erc20-allowance-storage.js.map +1 -0
  282. package/build/src/utils/format-date.d.ts +2 -0
  283. package/build/src/utils/format-date.js +13 -0
  284. package/build/src/utils/format-date.js.map +1 -0
  285. package/build/src/utils/format-duration.d.ts +2 -0
  286. package/build/src/utils/format-duration.js +17 -0
  287. package/build/src/utils/format-duration.js.map +1 -0
  288. package/build/src/utils/format-unix-datetime.d.ts +4 -0
  289. package/build/src/utils/format-unix-datetime.js +18 -0
  290. package/build/src/utils/format-unix-datetime.js.map +1 -0
  291. package/build/src/utils/gooddollar-ubi-period.d.ts +23 -0
  292. package/build/src/utils/gooddollar-ubi-period.js +23 -0
  293. package/build/src/utils/gooddollar-ubi-period.js.map +1 -0
  294. package/build/src/utils/normalize-address.d.ts +7 -0
  295. package/build/src/utils/normalize-address.js +16 -0
  296. package/build/src/utils/normalize-address.js.map +1 -0
  297. package/build/src/utils/self-format.d.ts +28 -0
  298. package/build/src/utils/self-format.js +79 -0
  299. package/build/src/utils/self-format.js.map +1 -0
  300. package/build/src/utils/self-signing.d.ts +4 -0
  301. package/build/src/utils/self-signing.js +38 -0
  302. package/build/src/utils/self-signing.js.map +1 -0
  303. package/build/src/utils/transaction-errors.d.ts +3 -0
  304. package/build/src/utils/transaction-errors.js +17 -0
  305. package/build/src/utils/transaction-errors.js.map +1 -0
  306. package/build/tests/catalog/domains/blockchain.d.ts +2 -0
  307. package/build/tests/catalog/domains/blockchain.js +127 -0
  308. package/build/tests/catalog/domains/blockchain.js.map +1 -0
  309. package/build/tests/catalog/domains/chain-ext.d.ts +5 -0
  310. package/build/tests/catalog/domains/chain-ext.js +207 -0
  311. package/build/tests/catalog/domains/chain-ext.js.map +1 -0
  312. package/build/tests/catalog/domains/defi.d.ts +6 -0
  313. package/build/tests/catalog/domains/defi.js +581 -0
  314. package/build/tests/catalog/domains/defi.js.map +1 -0
  315. package/build/tests/catalog/domains/self.d.ts +2 -0
  316. package/build/tests/catalog/domains/self.js +208 -0
  317. package/build/tests/catalog/domains/self.js.map +1 -0
  318. package/build/tests/catalog/domains/token.d.ts +2 -0
  319. package/build/tests/catalog/domains/token.js +70 -0
  320. package/build/tests/catalog/domains/token.js.map +1 -0
  321. package/build/tests/catalog/domains/transaction.d.ts +2 -0
  322. package/build/tests/catalog/domains/transaction.js +96 -0
  323. package/build/tests/catalog/domains/transaction.js.map +1 -0
  324. package/build/tests/catalog/index.d.ts +2 -0
  325. package/build/tests/catalog/index.js +2 -0
  326. package/build/tests/catalog/index.js.map +1 -0
  327. package/build/tests/catalog/operations.d.ts +12 -0
  328. package/build/tests/catalog/operations.js +29 -0
  329. package/build/tests/catalog/operations.js.map +1 -0
  330. package/build/tests/catalog/types.d.ts +24 -0
  331. package/build/tests/catalog/types.js +2 -0
  332. package/build/tests/catalog/types.js.map +1 -0
  333. package/build/tests/fixtures/mainnet.d.ts +54 -0
  334. package/build/tests/fixtures/mainnet.js +53 -0
  335. package/build/tests/fixtures/mainnet.js.map +1 -0
  336. package/build/tests/helpers/assert.d.ts +4 -0
  337. package/build/tests/helpers/assert.js +24 -0
  338. package/build/tests/helpers/assert.js.map +1 -0
  339. package/build/tests/helpers/env.d.ts +11 -0
  340. package/build/tests/helpers/env.js +28 -0
  341. package/build/tests/helpers/env.js.map +1 -0
  342. package/build/tests/helpers/gating.d.ts +3 -0
  343. package/build/tests/helpers/gating.js +23 -0
  344. package/build/tests/helpers/gating.js.map +1 -0
  345. package/build/tests/testing-entry.d.ts +6 -0
  346. package/build/tests/testing-entry.js +6 -0
  347. package/build/tests/testing-entry.js.map +1 -0
  348. package/build/tools/domains/agentkarma.d.ts +2 -0
  349. package/build/tools/domains/agentkarma.js +92 -0
  350. package/build/tools/domains/agentkarma.js.map +1 -0
  351. package/build/tools/domains/index.js +2 -0
  352. package/build/tools/domains/index.js.map +1 -1
  353. package/build/tools/website-sync.d.ts +1 -1
  354. package/build/tools/website-sync.js +3 -0
  355. package/build/tools/website-sync.js.map +1 -1
  356. package/package.json +9 -12
  357. package/tests/README.md +0 -78
  358. package/tests/catalog/domains/blockchain.ts +0 -133
  359. package/tests/catalog/domains/chain-ext.ts +0 -219
  360. package/tests/catalog/domains/defi.ts +0 -647
  361. package/tests/catalog/domains/self.ts +0 -220
  362. package/tests/catalog/domains/token.ts +0 -74
  363. package/tests/catalog/domains/transaction.ts +0 -111
  364. package/tests/catalog/index.ts +0 -7
  365. package/tests/catalog/operations.ts +0 -53
  366. package/tests/catalog/types.ts +0 -27
  367. package/tests/fixtures/mainnet.ts +0 -93
  368. package/tests/helpers/assert.ts +0 -30
  369. package/tests/helpers/env.ts +0 -38
  370. package/tests/helpers/gating.ts +0 -36
  371. package/tests/testing-entry.ts +0 -27
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../../src/services/aave.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Account reads: native CELO balance, transaction nonce, and contract detection.
3
+ */
4
+ import type { CeloClientFactory } from "../clients/celo-client.js";
5
+ /** CELO mainnet account snapshot for a wallet or contract address. */
6
+ export declare class AccountService {
7
+ private readonly clientFactory;
8
+ constructor(clientFactory: CeloClientFactory);
9
+ /**
10
+ * Fetch CELO balance, nonce, and whether the address has contract bytecode.
11
+ * @param address - Wallet or contract address on Celo mainnet
12
+ * @returns Balance in wei and CELO, current nonce, and `isContract` flag
13
+ */
14
+ getAccount(address: `0x${string}`): Promise<{
15
+ address: `0x${string}`;
16
+ network: string;
17
+ balanceWei: string;
18
+ balanceCelo: number;
19
+ nonce: number;
20
+ isContract: boolean;
21
+ }>;
22
+ }
@@ -0,0 +1,29 @@
1
+ /** CELO mainnet account snapshot for a wallet or contract address. */
2
+ export class AccountService {
3
+ clientFactory;
4
+ constructor(clientFactory) {
5
+ this.clientFactory = clientFactory;
6
+ }
7
+ /**
8
+ * Fetch CELO balance, nonce, and whether the address has contract bytecode.
9
+ * @param address - Wallet or contract address on Celo mainnet
10
+ * @returns Balance in wei and CELO, current nonce, and `isContract` flag
11
+ */
12
+ async getAccount(address) {
13
+ const { public: client } = this.clientFactory.getClients();
14
+ const [balance, nonce, bytecode] = await Promise.all([
15
+ client.getBalance({ address }),
16
+ client.getTransactionCount({ address }),
17
+ client.getCode({ address }),
18
+ ]);
19
+ return {
20
+ address,
21
+ network: "mainnet",
22
+ balanceWei: balance.toString(),
23
+ balanceCelo: Number(balance) / 1e18,
24
+ nonce,
25
+ isContract: bytecode !== undefined && bytecode !== "0x",
26
+ };
27
+ }
28
+ }
29
+ //# sourceMappingURL=account.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.service.js","sourceRoot":"","sources":["../../../src/services/account.service.ts"],"names":[],"mappings":"AAKA,sEAAsE;AACtE,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;IAAG,CAAC;IAEjE;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI;YACnC,KAAK;YACL,UAAU,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * AgentKarma reputation adapter (read-only).
3
+ *
4
+ * AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
5
+ * on-chain agents. This service is a thin, optional ecosystem adapter over
6
+ * `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
7
+ * data, and evaluates a local trust policy. It is pinned to Celo — the chain
8
+ * Celina operates on.
9
+ *
10
+ * Boundaries (mirrors the AgentKarma SDK's own contract):
11
+ * - read-only: never signs, never executes a transaction, never holds custody.
12
+ * - non-routing: never proxies an agent call; it only reads reputation.
13
+ * - no private keys / no env requirement.
14
+ *
15
+ * It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
16
+ * is an external reputation service, not a Celo on-chain read Celina tracks.
17
+ */
18
+ import { type CeloAgentSnapshot, type ClientConfig, type KarmaFaceData, type KarmaSnapshot, type TrustDecision, type TrustPolicy } from "@agentkarma/sdk";
19
+ import { type AgentKarmaToolDescriptor } from "@agentkarma/sdk/tools";
20
+ /** Config for the AgentKarma adapter. Defaults to https://agentkarma.io. */
21
+ export type AgentKarmaServiceConfig = ClientConfig;
22
+ /** Which karma face(s) to read. A wallet always carries both. */
23
+ export type AgentKarmaFace = "provider" | "consumer" | "both";
24
+ /** Options for a karma read. */
25
+ export interface GetKarmaOptions {
26
+ /** Face to read. Defaults to `"both"`. */
27
+ face?: AgentKarmaFace;
28
+ }
29
+ /** Result of a local counterparty trust evaluation. */
30
+ export interface CounterpartyDecision {
31
+ /** Always `"celo"` — this adapter is Celo-pinned. */
32
+ chain: "celo";
33
+ /** The wallet that was evaluated. */
34
+ wallet: string;
35
+ /** Explainable allow/deny from the local policy (no network, pure function). */
36
+ decision: TrustDecision;
37
+ /** The karma snapshot the decision was computed from. */
38
+ snapshot: KarmaSnapshot;
39
+ }
40
+ /**
41
+ * Read-only AgentKarma reputation insight for Celo agents.
42
+ *
43
+ * Exposed from `createCelinaClient()` as `client.agentKarma`.
44
+ */
45
+ export declare class AgentKarmaService {
46
+ private readonly client;
47
+ /** This adapter only ever talks to AgentKarma on the Celo chain. */
48
+ readonly chain: "celo";
49
+ constructor(config?: AgentKarmaServiceConfig);
50
+ /** AgentKarma API base URL the adapter reads from. */
51
+ get baseUrl(): string;
52
+ /** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
53
+ get catalog(): readonly AgentKarmaToolDescriptor[];
54
+ /**
55
+ * Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
56
+ * Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
57
+ * re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
58
+ * handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
59
+ * @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
60
+ * @param input - Tool arguments; `chain` is overridden to `'celo'`.
61
+ */
62
+ runCatalogTool(name: string, input?: Record<string, unknown>): Promise<unknown>;
63
+ /**
64
+ * Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
65
+ * Routed through the shared catalog's `get_karma` tool.
66
+ * @param wallet - Celo `0x` agent/wallet address to look up.
67
+ * @param options - Optional face selector (defaults to `"both"`).
68
+ */
69
+ getKarma(wallet: string, options?: GetKarmaOptions): Promise<KarmaSnapshot>;
70
+ /**
71
+ * Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
72
+ * and its AgentKarma reputation by numeric agent ID. Routed through the
73
+ * shared catalog's `get_celo_agent` tool.
74
+ * @param agentId - Positive integer ERC-8004 agent ID on Celo.
75
+ */
76
+ getCeloAgent(agentId: number): Promise<CeloAgentSnapshot>;
77
+ /**
78
+ * Fetch Celo karma and run a local, explainable trust policy against it.
79
+ * Pure evaluation — no routing, no signing, no side effects.
80
+ *
81
+ * Always fetches BOTH faces so whichever face `policy.face` scores on
82
+ * (`provider` by default) is guaranteed present — there is intentionally no
83
+ * separate fetch-face knob to drift out of sync with the scored face.
84
+ * @param wallet - Celo `0x` counterparty address.
85
+ * @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
86
+ */
87
+ evaluateCounterparty(wallet: string, policy?: TrustPolicy): Promise<CounterpartyDecision>;
88
+ }
89
+ export type { CeloAgentSnapshot, KarmaFaceData, KarmaSnapshot, TrustDecision, TrustPolicy, };
@@ -0,0 +1,102 @@
1
+ /**
2
+ * AgentKarma reputation adapter (read-only).
3
+ *
4
+ * AgentKarma (https://agentkarma.io) is the reputation layer for autonomous
5
+ * on-chain agents. This service is a thin, optional ecosystem adapter over
6
+ * `@agentkarma/sdk`: it reads Provider/Consumer karma and ERC-8004 Celo agent
7
+ * data, and evaluates a local trust policy. It is pinned to Celo — the chain
8
+ * Celina operates on.
9
+ *
10
+ * Boundaries (mirrors the AgentKarma SDK's own contract):
11
+ * - read-only: never signs, never executes a transaction, never holds custody.
12
+ * - non-routing: never proxies an agent call; it only reads reputation.
13
+ * - no private keys / no env requirement.
14
+ *
15
+ * It is intentionally NOT wrapped in Celina's Amplitude analytics proxy: this
16
+ * is an external reputation service, not a Celo on-chain read Celina tracks.
17
+ */
18
+ import { createAgentKarmaClient, evaluateTrust, } from "@agentkarma/sdk";
19
+ import { agentKarmaTools, runAgentKarmaTool, } from "@agentkarma/sdk/tools";
20
+ const CELINA_USER_AGENT = "@andrewkimjoseph/celina-sdk (+@agentkarma/sdk adapter)";
21
+ /** Celo (EVM) address shape. AgentKarma keys Celo agents by 0x address. */
22
+ const CELO_ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/;
23
+ function assertCeloAddress(wallet) {
24
+ if (typeof wallet !== "string" || !CELO_ADDRESS_RE.test(wallet)) {
25
+ throw new Error(`AgentKarma: wallet must be a Celo 0x address (40 hex chars), got "${wallet}"`);
26
+ }
27
+ }
28
+ /**
29
+ * Read-only AgentKarma reputation insight for Celo agents.
30
+ *
31
+ * Exposed from `createCelinaClient()` as `client.agentKarma`.
32
+ */
33
+ export class AgentKarmaService {
34
+ client;
35
+ /** This adapter only ever talks to AgentKarma on the Celo chain. */
36
+ chain = "celo";
37
+ constructor(config = {}) {
38
+ this.client = createAgentKarmaClient({
39
+ ...config,
40
+ userAgent: config.userAgent ?? CELINA_USER_AGENT,
41
+ });
42
+ }
43
+ /** AgentKarma API base URL the adapter reads from. */
44
+ get baseUrl() {
45
+ return this.client.baseUrl;
46
+ }
47
+ /** The canonical `@agentkarma/sdk/tools` descriptors this adapter draws from. */
48
+ get catalog() {
49
+ return agentKarmaTools;
50
+ }
51
+ /**
52
+ * Execute a tool from the canonical `@agentkarma/sdk/tools` catalog,
53
+ * Celo-pinned. This is how Celina consumes the SHARED tool catalog instead of
54
+ * re-implementing each AgentKarma call: the names, schemas, arg-coercion, and
55
+ * handler logic all live in `@agentkarma/sdk`. `chain` is forced to `'celo'`.
56
+ * @param name - A catalog tool name (e.g. `get_karma`, `get_celo_agent`).
57
+ * @param input - Tool arguments; `chain` is overridden to `'celo'`.
58
+ */
59
+ runCatalogTool(name, input = {}) {
60
+ return runAgentKarmaTool(this.client, name, { ...input, chain: "celo" });
61
+ }
62
+ /**
63
+ * Provider + Consumer karma for a Celo agent wallet. Always queries Celo.
64
+ * Routed through the shared catalog's `get_karma` tool.
65
+ * @param wallet - Celo `0x` agent/wallet address to look up.
66
+ * @param options - Optional face selector (defaults to `"both"`).
67
+ */
68
+ async getKarma(wallet, options = {}) {
69
+ assertCeloAddress(wallet);
70
+ return this.runCatalogTool("get_karma", {
71
+ wallet,
72
+ face: options.face ?? "both",
73
+ });
74
+ }
75
+ /**
76
+ * Resolve a Celo ERC-8004 agent (IdentityRegistry + ReputationRegistry)
77
+ * and its AgentKarma reputation by numeric agent ID. Routed through the
78
+ * shared catalog's `get_celo_agent` tool.
79
+ * @param agentId - Positive integer ERC-8004 agent ID on Celo.
80
+ */
81
+ async getCeloAgent(agentId) {
82
+ return this.runCatalogTool("get_celo_agent", {
83
+ agent_id: agentId,
84
+ });
85
+ }
86
+ /**
87
+ * Fetch Celo karma and run a local, explainable trust policy against it.
88
+ * Pure evaluation — no routing, no signing, no side effects.
89
+ *
90
+ * Always fetches BOTH faces so whichever face `policy.face` scores on
91
+ * (`provider` by default) is guaranteed present — there is intentionally no
92
+ * separate fetch-face knob to drift out of sync with the scored face.
93
+ * @param wallet - Celo `0x` counterparty address.
94
+ * @param policy - Local trust policy (face, minScore, requireReceiptBacked, …).
95
+ */
96
+ async evaluateCounterparty(wallet, policy = {}) {
97
+ const snapshot = await this.getKarma(wallet, { face: "both" });
98
+ const decision = evaluateTrust(snapshot, policy);
99
+ return { chain: "celo", wallet, decision, snapshot };
100
+ }
101
+ }
102
+ //# sourceMappingURL=agentkarma.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentkarma.service.js","sourceRoot":"","sources":["../../../src/services/agentkarma.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,sBAAsB,EACtB,aAAa,GAQd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AA0B/B,MAAM,iBAAiB,GAAG,wDAAwD,CAAC;AAEnF,2EAA2E;AAC3E,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,qEAAqE,MAAM,GAAG,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACX,MAAM,CAAmB;IAE1C,oEAAoE;IAC3D,KAAK,GAAG,MAAe,CAAC;IAEjC,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC;YACnC,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,iBAAiB;SACjD,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,IAAI,OAAO;QACT,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CACZ,IAAY,EACZ,QAAiC,EAAE;QAEnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,UAA2B,EAAE;QAE7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACtC,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC7B,CAA2B,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;YAC3C,QAAQ,EAAE,OAAO;SAClB,CAA+B,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAc,EACd,SAAsB,EAAE;QAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Chain reads: network status, blocks, and transaction lookups on Celo mainnet.
3
+ */
4
+ import type { CeloClientFactory } from "../clients/celo-client.js";
5
+ /** Celo mainnet block and transaction queries. */
6
+ export declare class BlockchainService {
7
+ private readonly clientFactory;
8
+ constructor(clientFactory: CeloClientFactory);
9
+ /**
10
+ * Celo mainnet chain id, latest block number, and current gas price.
11
+ * @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
12
+ */
13
+ getNetworkStatus(): Promise<{
14
+ network: string;
15
+ chainId: number;
16
+ blockNumber: string;
17
+ gasPriceWei: string;
18
+ }>;
19
+ /**
20
+ * Fetch a block by number, hash, or tag.
21
+ * @param blockId - Block number, hash, `latest`, or `pending`
22
+ * @param options.includeTransactions - When true, include full transaction objects
23
+ * @returns Block header fields and optional transaction list
24
+ * @throws When the block is not found
25
+ */
26
+ getBlock(blockId: number | string | "latest" | "pending", options?: {
27
+ includeTransactions?: boolean;
28
+ }): Promise<{
29
+ number: string | undefined;
30
+ hash: `0x${string}` | null;
31
+ timestamp: string;
32
+ parentHash: `0x${string}`;
33
+ gasUsed: string;
34
+ gasLimit: string;
35
+ gasUtilization: number;
36
+ miner: `0x${string}`;
37
+ transactionCount: number;
38
+ transactions: (`0x${string}` | {
39
+ hash: `0x${string}`;
40
+ from: `0x${string}`;
41
+ to: `0x${string}` | null;
42
+ value: string;
43
+ valueCelo: number;
44
+ nonce: number;
45
+ gas: string;
46
+ gasPrice: string | undefined;
47
+ gasPriceGwei: number | undefined;
48
+ input: `0x${string}`;
49
+ blockNumber: string | undefined;
50
+ transactionIndex: number | null | undefined;
51
+ type: string | undefined;
52
+ })[] | undefined;
53
+ }>;
54
+ /**
55
+ * List recent blocks ending at the chain tip (newest last in the array).
56
+ * @param count - Number of blocks to return (1–100, default 5)
57
+ * @param offset - Skip this many blocks from the tip before collecting
58
+ * @returns Summary fields per block (no full transaction payloads)
59
+ */
60
+ getLatestBlocks(count?: number, offset?: number): Promise<{
61
+ number: string;
62
+ hash: `0x${string}`;
63
+ timestamp: string;
64
+ transactionCount: number;
65
+ gasUsed: string;
66
+ gasLimit: string;
67
+ gasUtilization: number;
68
+ }[]>;
69
+ /**
70
+ * Fetch a transaction and its receipt by hash.
71
+ * @param hash - Transaction hash
72
+ * @returns Transaction fields, gas efficiency, and receipt status when mined
73
+ * @throws When the transaction is not found
74
+ */
75
+ getTransaction(hash: `0x${string}`): Promise<{
76
+ hash: `0x${string}`;
77
+ from: `0x${string}`;
78
+ to: `0x${string}` | null;
79
+ value: string;
80
+ valueCelo: number;
81
+ nonce: number;
82
+ gas: string;
83
+ gasPrice: string | undefined;
84
+ gasPriceGwei: number | undefined;
85
+ input: `0x${string}`;
86
+ blockNumber: string | undefined;
87
+ transactionIndex: number | null | undefined;
88
+ type: string | undefined;
89
+ } | {
90
+ status?: string | undefined;
91
+ gasUsed: string;
92
+ gasEfficiency: number;
93
+ hash: `0x${string}`;
94
+ from: `0x${string}`;
95
+ to: `0x${string}` | null;
96
+ value: string;
97
+ valueCelo: number;
98
+ nonce: number;
99
+ gas: string;
100
+ gasPrice: string | undefined;
101
+ gasPriceGwei: number | undefined;
102
+ input: `0x${string}`;
103
+ blockNumber: string | undefined;
104
+ transactionIndex: number | null | undefined;
105
+ type: string | undefined;
106
+ }>;
107
+ }
@@ -0,0 +1,151 @@
1
+ function serializeTransactionSummary(tx, extras) {
2
+ const base = {
3
+ hash: tx.hash,
4
+ from: tx.from,
5
+ to: tx.to,
6
+ value: tx.value.toString(),
7
+ valueCelo: Number(tx.value) / 1e18,
8
+ nonce: tx.nonce,
9
+ gas: tx.gas.toString(),
10
+ gasPrice: tx.gasPrice?.toString(),
11
+ gasPriceGwei: tx.gasPrice ? Number(tx.gasPrice) / 1e9 : undefined,
12
+ input: tx.input,
13
+ blockNumber: tx.blockNumber?.toString(),
14
+ transactionIndex: tx.transactionIndex,
15
+ type: tx.type,
16
+ };
17
+ if (!extras) {
18
+ return base;
19
+ }
20
+ const gasEfficiency = tx.gas > 0n
21
+ ? Number((extras.gasUsed * 10000n) / tx.gas) / 100
22
+ : 0;
23
+ return {
24
+ ...base,
25
+ gasUsed: extras.gasUsed.toString(),
26
+ gasEfficiency,
27
+ ...(extras.status !== undefined ? { status: extras.status } : {}),
28
+ };
29
+ }
30
+ /** Celo mainnet block and transaction queries. */
31
+ export class BlockchainService {
32
+ clientFactory;
33
+ constructor(clientFactory) {
34
+ this.clientFactory = clientFactory;
35
+ }
36
+ /**
37
+ * Celo mainnet chain id, latest block number, and current gas price.
38
+ * @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
39
+ */
40
+ async getNetworkStatus() {
41
+ const { public: client } = this.clientFactory.getClients();
42
+ const [chainId, blockNumber, gasPrice] = await Promise.all([
43
+ client.getChainId(),
44
+ client.getBlockNumber(),
45
+ client.getGasPrice(),
46
+ ]);
47
+ return {
48
+ network: "mainnet",
49
+ chainId,
50
+ blockNumber: blockNumber.toString(),
51
+ gasPriceWei: gasPrice.toString(),
52
+ };
53
+ }
54
+ /**
55
+ * Fetch a block by number, hash, or tag.
56
+ * @param blockId - Block number, hash, `latest`, or `pending`
57
+ * @param options.includeTransactions - When true, include full transaction objects
58
+ * @returns Block header fields and optional transaction list
59
+ * @throws When the block is not found
60
+ */
61
+ async getBlock(blockId, options) {
62
+ const { public: client } = this.clientFactory.getClients();
63
+ const includeTransactions = options?.includeTransactions ?? false;
64
+ const blockParams = typeof blockId === "number"
65
+ ? {
66
+ blockNumber: BigInt(blockId),
67
+ includeTransactions,
68
+ }
69
+ : blockId === "latest" || blockId === "pending"
70
+ ? {
71
+ blockTag: blockId,
72
+ includeTransactions,
73
+ }
74
+ : {
75
+ blockHash: blockId,
76
+ includeTransactions,
77
+ };
78
+ const block = await client.getBlock(blockParams);
79
+ if (!block) {
80
+ throw new Error(`Block not found: ${blockId}`);
81
+ }
82
+ const gasUtilization = block.gasLimit > 0n
83
+ ? Number((block.gasUsed * 10000n) / block.gasLimit) / 100
84
+ : 0;
85
+ return {
86
+ number: block.number?.toString(),
87
+ hash: block.hash,
88
+ timestamp: block.timestamp.toString(),
89
+ parentHash: block.parentHash,
90
+ gasUsed: block.gasUsed.toString(),
91
+ gasLimit: block.gasLimit.toString(),
92
+ gasUtilization,
93
+ miner: block.miner,
94
+ transactionCount: block.transactions.length,
95
+ transactions: includeTransactions
96
+ ? block.transactions.map((tx) => typeof tx === "string"
97
+ ? tx
98
+ : serializeTransactionSummary(tx))
99
+ : undefined,
100
+ };
101
+ }
102
+ /**
103
+ * List recent blocks ending at the chain tip (newest last in the array).
104
+ * @param count - Number of blocks to return (1–100, default 5)
105
+ * @param offset - Skip this many blocks from the tip before collecting
106
+ * @returns Summary fields per block (no full transaction payloads)
107
+ */
108
+ async getLatestBlocks(count = 5, offset = 0) {
109
+ const { public: client } = this.clientFactory.getClients();
110
+ const latest = await client.getBlockNumber();
111
+ const safeCount = Math.min(Math.max(count, 1), 100);
112
+ const safeOffset = Math.max(offset, 0);
113
+ const start = latest - BigInt(safeOffset + safeCount - 1);
114
+ const blocks = await Promise.all(Array.from({ length: safeCount }, (_, index) => client.getBlock({ blockNumber: start + BigInt(index) })));
115
+ return blocks.filter(Boolean).map((block) => {
116
+ const gasUtilization = block.gasLimit > 0n
117
+ ? Number((block.gasUsed * 10000n) / block.gasLimit) / 100
118
+ : 0;
119
+ return {
120
+ number: block.number?.toString(),
121
+ hash: block.hash,
122
+ timestamp: block.timestamp.toString(),
123
+ transactionCount: block.transactions.length,
124
+ gasUsed: block.gasUsed.toString(),
125
+ gasLimit: block.gasLimit.toString(),
126
+ gasUtilization,
127
+ };
128
+ });
129
+ }
130
+ /**
131
+ * Fetch a transaction and its receipt by hash.
132
+ * @param hash - Transaction hash
133
+ * @returns Transaction fields, gas efficiency, and receipt status when mined
134
+ * @throws When the transaction is not found
135
+ */
136
+ async getTransaction(hash) {
137
+ const { public: client } = this.clientFactory.getClients();
138
+ const [tx, receipt] = await Promise.all([
139
+ client.getTransaction({ hash }),
140
+ client.getTransactionReceipt({ hash }),
141
+ ]);
142
+ if (!tx) {
143
+ throw new Error(`Transaction not found: ${hash}`);
144
+ }
145
+ return serializeTransactionSummary(tx, {
146
+ gasUsed: receipt?.gasUsed ?? 0n,
147
+ status: receipt?.status,
148
+ });
149
+ }
150
+ }
151
+ //# sourceMappingURL=blockchain.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.service.js","sourceRoot":"","sources":["../../../src/services/blockchain.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Generic contract reads and gas estimates — caller supplies the ABI.
3
+ */
4
+ import { type Abi } from "viem";
5
+ import type { CeloClientFactory } from "../clients/celo-client.js";
6
+ /** Parameters for a read-only or gas-estimated contract call on Celo mainnet. */
7
+ export interface ContractCallParams {
8
+ /** Target contract address. */
9
+ contractAddress: `0x${string}`;
10
+ /** ABI function name to invoke. */
11
+ functionName: string;
12
+ /** Contract ABI JSON (must include `functionName`). */
13
+ abi: Abi;
14
+ /** Positional arguments for the function (default `[]`). */
15
+ functionArgs?: unknown[];
16
+ /** Optional `msg.sender` for state-dependent view calls. */
17
+ fromAddress?: `0x${string}`;
18
+ /** Wei value as decimal string for payable calls (default `"0"`). */
19
+ value?: string;
20
+ }
21
+ /** Read-only and gas-estimation helpers for arbitrary contracts. */
22
+ export declare class ContractService {
23
+ private readonly clientFactory;
24
+ constructor(clientFactory: CeloClientFactory);
25
+ /**
26
+ * Simulate a read-only contract call (`eth_call`).
27
+ * @param params - Contract address, ABI, function name, and optional args
28
+ * @returns Decoded result on success; `{ success: false, error }` on revert
29
+ */
30
+ callFunction(params: ContractCallParams): Promise<{
31
+ network: "mainnet";
32
+ contractAddress: `0x${string}`;
33
+ functionName: string;
34
+ result: unknown;
35
+ success: boolean;
36
+ error?: undefined;
37
+ } | {
38
+ network: "mainnet";
39
+ contractAddress: `0x${string}`;
40
+ functionName: string;
41
+ result: null;
42
+ success: boolean;
43
+ error: string;
44
+ }>;
45
+ /**
46
+ * Estimate gas for a contract call from `fromAddress`.
47
+ * @param params - Same as `callFunction` plus required `fromAddress`
48
+ * @returns Gas estimate, current gas price, and total cost in wei
49
+ */
50
+ estimateGas(params: ContractCallParams & {
51
+ fromAddress: `0x${string}`;
52
+ }): Promise<{
53
+ network: "mainnet";
54
+ contractAddress: `0x${string}`;
55
+ functionName: string;
56
+ gasEstimate: string;
57
+ gasPrice: string;
58
+ totalCost: string;
59
+ success: boolean;
60
+ error?: undefined;
61
+ } | {
62
+ network: "mainnet";
63
+ contractAddress: `0x${string}`;
64
+ functionName: string;
65
+ gasEstimate: string;
66
+ gasPrice: string;
67
+ totalCost: string;
68
+ success: boolean;
69
+ error: string;
70
+ }>;
71
+ }
72
+ /**
73
+ * Decode raw calldata result bytes using a single ABI function entry.
74
+ * @param abi - Contract ABI containing `functionName`
75
+ * @param functionName - Function whose return types define decoding
76
+ * @param data - Hex return data from `eth_call`
77
+ */
78
+ export declare function decodeContractResult(abi: Abi, functionName: string, data: `0x${string}`): readonly unknown[];