@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":"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,126 @@
1
+ /**
2
+ * Chain reads: network status, blocks, and transaction lookups on Celo mainnet.
3
+ */
4
+ import type { CeloClientFactory } from "../clients/celo-client.js";
5
+ import { type AttributionCheckResult, type AttributionVerificationResult } from "../config/celina-tag.js";
6
+ /** Celo mainnet block and transaction queries. */
7
+ export declare class BlockchainService {
8
+ private readonly clientFactory;
9
+ constructor(clientFactory: CeloClientFactory);
10
+ /**
11
+ * Celo mainnet chain id, latest block number, and current gas price.
12
+ * @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
13
+ */
14
+ getNetworkStatus(): Promise<{
15
+ network: string;
16
+ chainId: number;
17
+ blockNumber: string;
18
+ gasPriceWei: string;
19
+ }>;
20
+ /**
21
+ * Fetch a block by number, hash, or tag.
22
+ * @param blockId - Block number, hash, `latest`, or `pending`
23
+ * @param options.includeTransactions - When true, include full transaction objects
24
+ * @returns Block header fields and optional transaction list
25
+ * @throws When the block is not found
26
+ */
27
+ getBlock(blockId: number | string | "latest" | "pending", options?: {
28
+ includeTransactions?: boolean;
29
+ }): Promise<{
30
+ number: string | undefined;
31
+ hash: `0x${string}` | null;
32
+ timestamp: string;
33
+ parentHash: `0x${string}`;
34
+ gasUsed: string;
35
+ gasLimit: string;
36
+ gasUtilization: number;
37
+ miner: `0x${string}`;
38
+ transactionCount: number;
39
+ transactions: (`0x${string}` | {
40
+ hash: `0x${string}`;
41
+ from: `0x${string}`;
42
+ to: `0x${string}` | null;
43
+ value: string;
44
+ valueCelo: number;
45
+ nonce: number;
46
+ gas: string;
47
+ gasPrice: string | undefined;
48
+ gasPriceGwei: number | undefined;
49
+ input: `0x${string}`;
50
+ blockNumber: string | undefined;
51
+ transactionIndex: number | null | undefined;
52
+ type: string | undefined;
53
+ })[] | undefined;
54
+ }>;
55
+ /**
56
+ * List recent blocks ending at the chain tip (newest last in the array).
57
+ * @param count - Number of blocks to return (1–100, default 5)
58
+ * @param offset - Skip this many blocks from the tip before collecting
59
+ * @returns Summary fields per block (no full transaction payloads)
60
+ */
61
+ getLatestBlocks(count?: number, offset?: number): Promise<{
62
+ number: string;
63
+ hash: `0x${string}`;
64
+ timestamp: string;
65
+ transactionCount: number;
66
+ gasUsed: string;
67
+ gasLimit: string;
68
+ gasUtilization: number;
69
+ }[]>;
70
+ /**
71
+ * Fetch a transaction and its receipt by hash.
72
+ * @param hash - Transaction hash
73
+ * @returns Transaction fields, gas efficiency, and receipt status when mined
74
+ * @throws When the transaction is not found
75
+ */
76
+ getTransaction(hash: `0x${string}`): Promise<{
77
+ hash: `0x${string}`;
78
+ from: `0x${string}`;
79
+ to: `0x${string}` | null;
80
+ value: string;
81
+ valueCelo: number;
82
+ nonce: number;
83
+ gas: string;
84
+ gasPrice: string | undefined;
85
+ gasPriceGwei: number | undefined;
86
+ input: `0x${string}`;
87
+ blockNumber: string | undefined;
88
+ transactionIndex: number | null | undefined;
89
+ type: string | undefined;
90
+ } | {
91
+ status?: string | undefined;
92
+ gasUsed: string;
93
+ gasEfficiency: number;
94
+ hash: `0x${string}`;
95
+ from: `0x${string}`;
96
+ to: `0x${string}` | null;
97
+ value: string;
98
+ valueCelo: number;
99
+ nonce: number;
100
+ gas: string;
101
+ gasPrice: string | undefined;
102
+ gasPriceGwei: number | undefined;
103
+ input: `0x${string}`;
104
+ blockNumber: string | undefined;
105
+ transactionIndex: number | null | undefined;
106
+ type: string | undefined;
107
+ }>;
108
+ /**
109
+ * Decode legacy and ERC-8021 attribution tags from a mined transaction's calldata.
110
+ * @param hash - Transaction hash
111
+ * @param tag - Optional tag to check (e.g. `celo_862c21dd97a7`)
112
+ */
113
+ verifyAttributionInTransaction(hash: `0x${string}`, tag?: string): Promise<AttributionVerificationResult & {
114
+ hash: `0x${string}`;
115
+ input: `0x${string}`;
116
+ }>;
117
+ /**
118
+ * Decode attribution from a mined transaction with a unified custom `tags` list.
119
+ * @param hash - Transaction hash
120
+ * @param tag - Optional tag to check (e.g. `celo_862c21dd97a7`)
121
+ */
122
+ checkAttributionInTransaction(hash: `0x${string}`, tag?: string): Promise<AttributionCheckResult & {
123
+ hash: `0x${string}`;
124
+ input: `0x${string}`;
125
+ }>;
126
+ }
@@ -0,0 +1,188 @@
1
+ import { checkAttributionInCalldata, verifyAttributionInCalldata, } from "../config/celina-tag.js";
2
+ function serializeTransactionSummary(tx, extras) {
3
+ const base = {
4
+ hash: tx.hash,
5
+ from: tx.from,
6
+ to: tx.to,
7
+ value: tx.value.toString(),
8
+ valueCelo: Number(tx.value) / 1e18,
9
+ nonce: tx.nonce,
10
+ gas: tx.gas.toString(),
11
+ gasPrice: tx.gasPrice?.toString(),
12
+ gasPriceGwei: tx.gasPrice ? Number(tx.gasPrice) / 1e9 : undefined,
13
+ input: tx.input,
14
+ blockNumber: tx.blockNumber?.toString(),
15
+ transactionIndex: tx.transactionIndex,
16
+ type: tx.type,
17
+ };
18
+ if (!extras) {
19
+ return base;
20
+ }
21
+ const gasEfficiency = tx.gas > 0n
22
+ ? Number((extras.gasUsed * 10000n) / tx.gas) / 100
23
+ : 0;
24
+ return {
25
+ ...base,
26
+ gasUsed: extras.gasUsed.toString(),
27
+ gasEfficiency,
28
+ ...(extras.status !== undefined ? { status: extras.status } : {}),
29
+ };
30
+ }
31
+ /** Celo mainnet block and transaction queries. */
32
+ export class BlockchainService {
33
+ clientFactory;
34
+ constructor(clientFactory) {
35
+ this.clientFactory = clientFactory;
36
+ }
37
+ /**
38
+ * Celo mainnet chain id, latest block number, and current gas price.
39
+ * @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
40
+ */
41
+ async getNetworkStatus() {
42
+ const { public: client } = this.clientFactory.getClients();
43
+ const [chainId, blockNumber, gasPrice] = await Promise.all([
44
+ client.getChainId(),
45
+ client.getBlockNumber(),
46
+ client.getGasPrice(),
47
+ ]);
48
+ return {
49
+ network: "mainnet",
50
+ chainId,
51
+ blockNumber: blockNumber.toString(),
52
+ gasPriceWei: gasPrice.toString(),
53
+ };
54
+ }
55
+ /**
56
+ * Fetch a block by number, hash, or tag.
57
+ * @param blockId - Block number, hash, `latest`, or `pending`
58
+ * @param options.includeTransactions - When true, include full transaction objects
59
+ * @returns Block header fields and optional transaction list
60
+ * @throws When the block is not found
61
+ */
62
+ async getBlock(blockId, options) {
63
+ const { public: client } = this.clientFactory.getClients();
64
+ const includeTransactions = options?.includeTransactions ?? false;
65
+ const blockParams = typeof blockId === "number"
66
+ ? {
67
+ blockNumber: BigInt(blockId),
68
+ includeTransactions,
69
+ }
70
+ : blockId === "latest" || blockId === "pending"
71
+ ? {
72
+ blockTag: blockId,
73
+ includeTransactions,
74
+ }
75
+ : {
76
+ blockHash: blockId,
77
+ includeTransactions,
78
+ };
79
+ const block = await client.getBlock(blockParams);
80
+ if (!block) {
81
+ throw new Error(`Block not found: ${blockId}`);
82
+ }
83
+ const gasUtilization = block.gasLimit > 0n
84
+ ? Number((block.gasUsed * 10000n) / block.gasLimit) / 100
85
+ : 0;
86
+ return {
87
+ number: block.number?.toString(),
88
+ hash: block.hash,
89
+ timestamp: block.timestamp.toString(),
90
+ parentHash: block.parentHash,
91
+ gasUsed: block.gasUsed.toString(),
92
+ gasLimit: block.gasLimit.toString(),
93
+ gasUtilization,
94
+ miner: block.miner,
95
+ transactionCount: block.transactions.length,
96
+ transactions: includeTransactions
97
+ ? block.transactions.map((tx) => typeof tx === "string"
98
+ ? tx
99
+ : serializeTransactionSummary(tx))
100
+ : undefined,
101
+ };
102
+ }
103
+ /**
104
+ * List recent blocks ending at the chain tip (newest last in the array).
105
+ * @param count - Number of blocks to return (1–100, default 5)
106
+ * @param offset - Skip this many blocks from the tip before collecting
107
+ * @returns Summary fields per block (no full transaction payloads)
108
+ */
109
+ async getLatestBlocks(count = 5, offset = 0) {
110
+ const { public: client } = this.clientFactory.getClients();
111
+ const latest = await client.getBlockNumber();
112
+ const safeCount = Math.min(Math.max(count, 1), 100);
113
+ const safeOffset = Math.max(offset, 0);
114
+ const start = latest - BigInt(safeOffset + safeCount - 1);
115
+ const blocks = await Promise.all(Array.from({ length: safeCount }, (_, index) => client.getBlock({ blockNumber: start + BigInt(index) })));
116
+ return blocks.filter(Boolean).map((block) => {
117
+ const gasUtilization = block.gasLimit > 0n
118
+ ? Number((block.gasUsed * 10000n) / block.gasLimit) / 100
119
+ : 0;
120
+ return {
121
+ number: block.number?.toString(),
122
+ hash: block.hash,
123
+ timestamp: block.timestamp.toString(),
124
+ transactionCount: block.transactions.length,
125
+ gasUsed: block.gasUsed.toString(),
126
+ gasLimit: block.gasLimit.toString(),
127
+ gasUtilization,
128
+ };
129
+ });
130
+ }
131
+ /**
132
+ * Fetch a transaction and its receipt by hash.
133
+ * @param hash - Transaction hash
134
+ * @returns Transaction fields, gas efficiency, and receipt status when mined
135
+ * @throws When the transaction is not found
136
+ */
137
+ async getTransaction(hash) {
138
+ const { public: client } = this.clientFactory.getClients();
139
+ const [tx, receipt] = await Promise.all([
140
+ client.getTransaction({ hash }),
141
+ client.getTransactionReceipt({ hash }),
142
+ ]);
143
+ if (!tx) {
144
+ throw new Error(`Transaction not found: ${hash}`);
145
+ }
146
+ return serializeTransactionSummary(tx, {
147
+ gasUsed: receipt?.gasUsed ?? 0n,
148
+ status: receipt?.status,
149
+ });
150
+ }
151
+ /**
152
+ * Decode legacy and ERC-8021 attribution tags from a mined transaction's calldata.
153
+ * @param hash - Transaction hash
154
+ * @param tag - Optional tag to check (e.g. `celo_862c21dd97a7`)
155
+ */
156
+ async verifyAttributionInTransaction(hash, tag) {
157
+ const { public: client } = this.clientFactory.getClients();
158
+ const tx = await client.getTransaction({ hash });
159
+ if (!tx) {
160
+ throw new Error(`Transaction not found: ${hash}`);
161
+ }
162
+ const input = tx.input;
163
+ return {
164
+ hash,
165
+ input,
166
+ ...verifyAttributionInCalldata(input, tag),
167
+ };
168
+ }
169
+ /**
170
+ * Decode attribution from a mined transaction with a unified custom `tags` list.
171
+ * @param hash - Transaction hash
172
+ * @param tag - Optional tag to check (e.g. `celo_862c21dd97a7`)
173
+ */
174
+ async checkAttributionInTransaction(hash, tag) {
175
+ const { public: client } = this.clientFactory.getClients();
176
+ const tx = await client.getTransaction({ hash });
177
+ if (!tx) {
178
+ throw new Error(`Transaction not found: ${hash}`);
179
+ }
180
+ const input = tx.input;
181
+ return {
182
+ hash,
183
+ input,
184
+ ...checkAttributionInCalldata(input, tag),
185
+ };
186
+ }
187
+ }
188
+ //# 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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"}