@andrewkimjoseph/celina-sdk 0.9.7 → 0.9.9

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 (365) hide show
  1. package/build/analytics/mcp-tool-events.js +2 -0
  2. package/build/analytics/mcp-tool-events.js.map +1 -1
  3. package/build/index.d.ts +1 -1
  4. package/build/services/gooddollar.service.d.ts +16 -2
  5. package/build/services/gooddollar.service.js +54 -31
  6. package/build/services/gooddollar.service.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 +101 -0
  15. package/build/src/a2a/skills.js.map +1 -0
  16. package/build/src/abis/aave-pool.d.ts +37 -0
  17. package/build/src/abis/aave-pool.js +26 -0
  18. package/build/src/abis/aave-pool.js.map +1 -0
  19. package/build/src/abis/accounts.d.ts +13 -0
  20. package/build/src/abis/accounts.js +10 -0
  21. package/build/src/abis/accounts.js.map +1 -0
  22. package/build/src/abis/election.d.ts +124 -0
  23. package/build/src/abis/election.js +88 -0
  24. package/build/src/abis/election.js.map +1 -0
  25. package/build/src/abis/gooddollar-broker.d.ts +77 -0
  26. package/build/src/abis/gooddollar-broker.js +44 -0
  27. package/build/src/abis/gooddollar-broker.js.map +1 -0
  28. package/build/src/abis/gooddollar-identity.d.ts +85 -0
  29. package/build/src/abis/gooddollar-identity.js +52 -0
  30. package/build/src/abis/gooddollar-identity.js.map +1 -0
  31. package/build/src/abis/governance.d.ts +86 -0
  32. package/build/src/abis/governance.js +68 -0
  33. package/build/src/abis/governance.js.map +1 -0
  34. package/build/src/abis/locked-gold.d.ts +10 -0
  35. package/build/src/abis/locked-gold.js +10 -0
  36. package/build/src/abis/locked-gold.js.map +1 -0
  37. package/build/src/abis/nft.d.ts +107 -0
  38. package/build/src/abis/nft.js +75 -0
  39. package/build/src/abis/nft.js.map +1 -0
  40. package/build/src/abis/permit2.d.ts +43 -0
  41. package/build/src/abis/permit2.js +30 -0
  42. package/build/src/abis/permit2.js.map +1 -0
  43. package/build/src/abis/self-registry.d.ts +194 -0
  44. package/build/src/abis/self-registry.js +120 -0
  45. package/build/src/abis/self-registry.js.map +1 -0
  46. package/build/src/abis/ubi-scheme.d.ts +91 -0
  47. package/build/src/abis/ubi-scheme.js +66 -0
  48. package/build/src/abis/ubi-scheme.js.map +1 -0
  49. package/build/src/abis/uniswap-state-view.d.ts +34 -0
  50. package/build/src/abis/uniswap-state-view.js +22 -0
  51. package/build/src/abis/uniswap-state-view.js.map +1 -0
  52. package/build/src/abis/uniswap-v4-quoter.d.ts +86 -0
  53. package/build/src/abis/uniswap-v4-quoter.js +64 -0
  54. package/build/src/abis/uniswap-v4-quoter.js.map +1 -0
  55. package/build/src/abis/universal-router.d.ts +16 -0
  56. package/build/src/abis/universal-router.js +14 -0
  57. package/build/src/abis/universal-router.js.map +1 -0
  58. package/build/src/abis/validators-minimal.d.ts +65 -0
  59. package/build/src/abis/validators-minimal.js +39 -0
  60. package/build/src/abis/validators-minimal.js.map +1 -0
  61. package/build/src/analytics/amplitude.d.ts +11 -0
  62. package/build/src/analytics/amplitude.js +76 -0
  63. package/build/src/analytics/amplitude.js.map +1 -0
  64. package/build/src/analytics/config.d.ts +7 -0
  65. package/build/src/analytics/config.js +28 -0
  66. package/build/src/analytics/config.js.map +1 -0
  67. package/build/src/analytics/consumer-package.d.ts +9 -0
  68. package/build/src/analytics/consumer-package.js +143 -0
  69. package/build/src/analytics/consumer-package.js.map +1 -0
  70. package/build/src/analytics/mcp-tool-events.d.ts +5 -0
  71. package/build/src/analytics/mcp-tool-events.js +53 -0
  72. package/build/src/analytics/mcp-tool-events.js.map +1 -0
  73. package/build/src/analytics/wallet-context.d.ts +11 -0
  74. package/build/src/analytics/wallet-context.js +81 -0
  75. package/build/src/analytics/wallet-context.js.map +1 -0
  76. package/build/src/analytics/wallet-extract.d.ts +9 -0
  77. package/build/src/analytics/wallet-extract.js +21 -0
  78. package/build/src/analytics/wallet-extract.js.map +1 -0
  79. package/build/src/analytics/wrap-service.d.ts +5 -0
  80. package/build/src/analytics/wrap-service.js +38 -0
  81. package/build/src/analytics/wrap-service.js.map +1 -0
  82. package/build/src/clients/celo-client.d.ts +17 -0
  83. package/build/src/clients/celo-client.js +28 -0
  84. package/build/src/clients/celo-client.js.map +1 -0
  85. package/build/src/clients/ens-client.d.ts +17 -0
  86. package/build/src/clients/ens-client.js +30 -0
  87. package/build/src/clients/ens-client.js.map +1 -0
  88. package/build/src/clients/mento-sdk.d.ts +2 -0
  89. package/build/src/clients/mento-sdk.js +9 -0
  90. package/build/src/clients/mento-sdk.js.map +1 -0
  91. package/build/src/clients/self-api.d.ts +82 -0
  92. package/build/src/clients/self-api.js +242 -0
  93. package/build/src/clients/self-api.js.map +1 -0
  94. package/build/src/clients/uniswap-sdk.d.ts +4 -0
  95. package/build/src/clients/uniswap-sdk.js +13 -0
  96. package/build/src/clients/uniswap-sdk.js.map +1 -0
  97. package/build/src/config/aave.d.ts +17 -0
  98. package/build/src/config/aave.js +77 -0
  99. package/build/src/config/aave.js.map +1 -0
  100. package/build/src/config/celina-tag.d.ts +4 -0
  101. package/build/src/config/celina-tag.js +13 -0
  102. package/build/src/config/celina-tag.js.map +1 -0
  103. package/build/src/config/celo-core-contracts.d.ts +8 -0
  104. package/build/src/config/celo-core-contracts.js +9 -0
  105. package/build/src/config/celo-core-contracts.js.map +1 -0
  106. package/build/src/config/chains.d.ts +937 -0
  107. package/build/src/config/chains.js +319 -0
  108. package/build/src/config/chains.js.map +1 -0
  109. package/build/src/config/gooddollar.d.ts +16 -0
  110. package/build/src/config/gooddollar.js +24 -0
  111. package/build/src/config/gooddollar.js.map +1 -0
  112. package/build/src/config/sdk-config.d.ts +33 -0
  113. package/build/src/config/sdk-config.js +31 -0
  114. package/build/src/config/sdk-config.js.map +1 -0
  115. package/build/src/config/self.d.ts +22 -0
  116. package/build/src/config/self.js +27 -0
  117. package/build/src/config/self.js.map +1 -0
  118. package/build/src/config/uniswap.d.ts +42 -0
  119. package/build/src/config/uniswap.js +76 -0
  120. package/build/src/config/uniswap.js.map +1 -0
  121. package/build/src/index.d.ts +90 -0
  122. package/build/src/index.js +65 -0
  123. package/build/src/index.js.map +1 -0
  124. package/build/src/oasf/index.d.ts +2 -0
  125. package/build/src/oasf/index.js +3 -0
  126. package/build/src/oasf/index.js.map +1 -0
  127. package/build/src/oasf/record.d.ts +39 -0
  128. package/build/src/oasf/record.js +35 -0
  129. package/build/src/oasf/record.js.map +1 -0
  130. package/build/src/oasf/taxonomy.d.ts +19 -0
  131. package/build/src/oasf/taxonomy.js +46 -0
  132. package/build/src/oasf/taxonomy.js.map +1 -0
  133. package/build/src/services/aave.service.d.ts +58 -0
  134. package/build/src/services/aave.service.js +210 -0
  135. package/build/src/services/aave.service.js.map +1 -0
  136. package/build/src/services/account.service.d.ts +22 -0
  137. package/build/src/services/account.service.js +29 -0
  138. package/build/src/services/account.service.js.map +1 -0
  139. package/build/src/services/blockchain.service.d.ts +107 -0
  140. package/build/src/services/blockchain.service.js +151 -0
  141. package/build/src/services/blockchain.service.js.map +1 -0
  142. package/build/src/services/contract.service.d.ts +78 -0
  143. package/build/src/services/contract.service.js +117 -0
  144. package/build/src/services/contract.service.js.map +1 -0
  145. package/build/src/services/ens.service.d.ts +44 -0
  146. package/build/src/services/ens.service.js +92 -0
  147. package/build/src/services/ens.service.js.map +1 -0
  148. package/build/src/services/gooddollar.service.d.ts +183 -0
  149. package/build/src/services/gooddollar.service.js +675 -0
  150. package/build/src/services/gooddollar.service.js.map +1 -0
  151. package/build/src/services/governance.service.d.ts +96 -0
  152. package/build/src/services/governance.service.js +255 -0
  153. package/build/src/services/governance.service.js.map +1 -0
  154. package/build/src/services/mento-fx.service.d.ts +80 -0
  155. package/build/src/services/mento-fx.service.js +319 -0
  156. package/build/src/services/mento-fx.service.js.map +1 -0
  157. package/build/src/services/nft.service.d.ts +58 -0
  158. package/build/src/services/nft.service.js +222 -0
  159. package/build/src/services/nft.service.js.map +1 -0
  160. package/build/src/services/self-session-store.d.ts +19 -0
  161. package/build/src/services/self-session-store.js +28 -0
  162. package/build/src/services/self-session-store.js.map +1 -0
  163. package/build/src/services/self.service.d.ts +241 -0
  164. package/build/src/services/self.service.js +699 -0
  165. package/build/src/services/self.service.js.map +1 -0
  166. package/build/src/services/staking.service.d.ts +140 -0
  167. package/build/src/services/staking.service.js +444 -0
  168. package/build/src/services/staking.service.js.map +1 -0
  169. package/build/src/services/token.service.d.ts +110 -0
  170. package/build/src/services/token.service.js +189 -0
  171. package/build/src/services/token.service.js.map +1 -0
  172. package/build/src/services/transaction.service.d.ts +68 -0
  173. package/build/src/services/transaction.service.js +198 -0
  174. package/build/src/services/transaction.service.js.map +1 -0
  175. package/build/src/services/uniswap-path-router.d.ts +40 -0
  176. package/build/src/services/uniswap-path-router.js +168 -0
  177. package/build/src/services/uniswap-path-router.js.map +1 -0
  178. package/build/src/services/uniswap-pool-discovery.d.ts +55 -0
  179. package/build/src/services/uniswap-pool-discovery.js +198 -0
  180. package/build/src/services/uniswap-pool-discovery.js.map +1 -0
  181. package/build/src/services/uniswap.service.d.ts +82 -0
  182. package/build/src/services/uniswap.service.js +352 -0
  183. package/build/src/services/uniswap.service.js.map +1 -0
  184. package/build/src/simulation/index.d.ts +5 -0
  185. package/build/src/simulation/index.js +2 -0
  186. package/build/src/simulation/index.js.map +1 -0
  187. package/build/src/simulation/simulate-prepared-step.d.ts +17 -0
  188. package/build/src/simulation/simulate-prepared-step.js +42 -0
  189. package/build/src/simulation/simulate-prepared-step.js.map +1 -0
  190. package/build/src/tools/catalog.d.ts +11 -0
  191. package/build/src/tools/catalog.js +43 -0
  192. package/build/src/tools/catalog.js.map +1 -0
  193. package/build/src/tools/domains/aave.d.ts +2 -0
  194. package/build/src/tools/domains/aave.js +115 -0
  195. package/build/src/tools/domains/aave.js.map +1 -0
  196. package/build/src/tools/domains/blockchain.d.ts +2 -0
  197. package/build/src/tools/domains/blockchain.js +86 -0
  198. package/build/src/tools/domains/blockchain.js.map +1 -0
  199. package/build/src/tools/domains/browser.d.ts +2 -0
  200. package/build/src/tools/domains/browser.js +45 -0
  201. package/build/src/tools/domains/browser.js.map +1 -0
  202. package/build/src/tools/domains/contract.d.ts +2 -0
  203. package/build/src/tools/domains/contract.js +67 -0
  204. package/build/src/tools/domains/contract.js.map +1 -0
  205. package/build/src/tools/domains/ens.d.ts +2 -0
  206. package/build/src/tools/domains/ens.js +16 -0
  207. package/build/src/tools/domains/ens.js.map +1 -0
  208. package/build/src/tools/domains/gooddollar.d.ts +2 -0
  209. package/build/src/tools/domains/gooddollar.js +171 -0
  210. package/build/src/tools/domains/gooddollar.js.map +1 -0
  211. package/build/src/tools/domains/governance.d.ts +2 -0
  212. package/build/src/tools/domains/governance.js +41 -0
  213. package/build/src/tools/domains/governance.js.map +1 -0
  214. package/build/src/tools/domains/index.d.ts +1 -0
  215. package/build/src/tools/domains/index.js +31 -0
  216. package/build/src/tools/domains/index.js.map +1 -0
  217. package/build/src/tools/domains/mento-fx.d.ts +2 -0
  218. package/build/src/tools/domains/mento-fx.js +67 -0
  219. package/build/src/tools/domains/mento-fx.js.map +1 -0
  220. package/build/src/tools/domains/nft.d.ts +2 -0
  221. package/build/src/tools/domains/nft.js +38 -0
  222. package/build/src/tools/domains/nft.js.map +1 -0
  223. package/build/src/tools/domains/self.d.ts +2 -0
  224. package/build/src/tools/domains/self.js +187 -0
  225. package/build/src/tools/domains/self.js.map +1 -0
  226. package/build/src/tools/domains/staking.d.ts +2 -0
  227. package/build/src/tools/domains/staking.js +74 -0
  228. package/build/src/tools/domains/staking.js.map +1 -0
  229. package/build/src/tools/domains/token.d.ts +2 -0
  230. package/build/src/tools/domains/token.js +74 -0
  231. package/build/src/tools/domains/token.js.map +1 -0
  232. package/build/src/tools/domains/transaction.d.ts +2 -0
  233. package/build/src/tools/domains/transaction.js +120 -0
  234. package/build/src/tools/domains/transaction.js.map +1 -0
  235. package/build/src/tools/domains/uniswap.d.ts +2 -0
  236. package/build/src/tools/domains/uniswap.js +67 -0
  237. package/build/src/tools/domains/uniswap.js.map +1 -0
  238. package/build/src/tools/filter.d.ts +2 -0
  239. package/build/src/tools/filter.js +50 -0
  240. package/build/src/tools/filter.js.map +1 -0
  241. package/build/src/tools/index.d.ts +7 -0
  242. package/build/src/tools/index.js +7 -0
  243. package/build/src/tools/index.js.map +1 -0
  244. package/build/src/tools/schemas/common.d.ts +165 -0
  245. package/build/src/tools/schemas/common.js +207 -0
  246. package/build/src/tools/schemas/common.js.map +1 -0
  247. package/build/src/tools/schemas/wallet-params.d.ts +9 -0
  248. package/build/src/tools/schemas/wallet-params.js +52 -0
  249. package/build/src/tools/schemas/wallet-params.js.map +1 -0
  250. package/build/src/tools/swap-routing.d.ts +25 -0
  251. package/build/src/tools/swap-routing.js +174 -0
  252. package/build/src/tools/swap-routing.js.map +1 -0
  253. package/build/src/tools/types.d.ts +124 -0
  254. package/build/src/tools/types.js +2 -0
  255. package/build/src/tools/types.js.map +1 -0
  256. package/build/src/tools/utils/normalize-token.d.ts +2 -0
  257. package/build/src/tools/utils/normalize-token.js +12 -0
  258. package/build/src/tools/utils/normalize-token.js.map +1 -0
  259. package/build/src/tools/utils/wallet.d.ts +4 -0
  260. package/build/src/tools/utils/wallet.js +8 -0
  261. package/build/src/tools/utils/wallet.js.map +1 -0
  262. package/build/src/tools/website-sync.d.ts +28 -0
  263. package/build/src/tools/website-sync.js +165 -0
  264. package/build/src/tools/website-sync.js.map +1 -0
  265. package/build/src/types/prepared.d.ts +28 -0
  266. package/build/src/types/prepared.js +12 -0
  267. package/build/src/types/prepared.js.map +1 -0
  268. package/build/src/utils/celo-format.d.ts +6 -0
  269. package/build/src/utils/celo-format.js +17 -0
  270. package/build/src/utils/celo-format.js.map +1 -0
  271. package/build/src/utils/erc20-allowance-storage.d.ts +20 -0
  272. package/build/src/utils/erc20-allowance-storage.js +64 -0
  273. package/build/src/utils/erc20-allowance-storage.js.map +1 -0
  274. package/build/src/utils/format-date.d.ts +2 -0
  275. package/build/src/utils/format-date.js +13 -0
  276. package/build/src/utils/format-date.js.map +1 -0
  277. package/build/src/utils/format-duration.d.ts +2 -0
  278. package/build/src/utils/format-duration.js +17 -0
  279. package/build/src/utils/format-duration.js.map +1 -0
  280. package/build/src/utils/format-unix-datetime.d.ts +4 -0
  281. package/build/src/utils/format-unix-datetime.js +18 -0
  282. package/build/src/utils/format-unix-datetime.js.map +1 -0
  283. package/build/src/utils/gooddollar-ubi-period.d.ts +23 -0
  284. package/build/src/utils/gooddollar-ubi-period.js +23 -0
  285. package/build/src/utils/gooddollar-ubi-period.js.map +1 -0
  286. package/build/src/utils/normalize-address.d.ts +7 -0
  287. package/build/src/utils/normalize-address.js +16 -0
  288. package/build/src/utils/normalize-address.js.map +1 -0
  289. package/build/src/utils/self-format.d.ts +28 -0
  290. package/build/src/utils/self-format.js +79 -0
  291. package/build/src/utils/self-format.js.map +1 -0
  292. package/build/src/utils/self-signing.d.ts +4 -0
  293. package/build/src/utils/self-signing.js +38 -0
  294. package/build/src/utils/self-signing.js.map +1 -0
  295. package/build/src/utils/transaction-errors.d.ts +3 -0
  296. package/build/src/utils/transaction-errors.js +17 -0
  297. package/build/src/utils/transaction-errors.js.map +1 -0
  298. package/build/tests/catalog/domains/blockchain.d.ts +2 -0
  299. package/build/tests/catalog/domains/blockchain.js +127 -0
  300. package/build/tests/catalog/domains/blockchain.js.map +1 -0
  301. package/build/tests/catalog/domains/chain-ext.d.ts +5 -0
  302. package/build/tests/catalog/domains/chain-ext.js +207 -0
  303. package/build/tests/catalog/domains/chain-ext.js.map +1 -0
  304. package/build/tests/catalog/domains/defi.d.ts +6 -0
  305. package/build/tests/catalog/domains/defi.js +581 -0
  306. package/build/tests/catalog/domains/defi.js.map +1 -0
  307. package/build/tests/catalog/domains/self.d.ts +2 -0
  308. package/build/tests/catalog/domains/self.js +208 -0
  309. package/build/tests/catalog/domains/self.js.map +1 -0
  310. package/build/tests/catalog/domains/token.d.ts +2 -0
  311. package/build/tests/catalog/domains/token.js +70 -0
  312. package/build/tests/catalog/domains/token.js.map +1 -0
  313. package/build/tests/catalog/domains/transaction.d.ts +2 -0
  314. package/build/tests/catalog/domains/transaction.js +96 -0
  315. package/build/tests/catalog/domains/transaction.js.map +1 -0
  316. package/build/tests/catalog/index.d.ts +2 -0
  317. package/build/tests/catalog/index.js +2 -0
  318. package/build/tests/catalog/index.js.map +1 -0
  319. package/build/tests/catalog/operations.d.ts +12 -0
  320. package/build/tests/catalog/operations.js +29 -0
  321. package/build/tests/catalog/operations.js.map +1 -0
  322. package/build/tests/catalog/types.d.ts +24 -0
  323. package/build/tests/catalog/types.js +2 -0
  324. package/build/tests/catalog/types.js.map +1 -0
  325. package/build/tests/fixtures/mainnet.d.ts +54 -0
  326. package/build/tests/fixtures/mainnet.js +53 -0
  327. package/build/tests/fixtures/mainnet.js.map +1 -0
  328. package/build/tests/helpers/assert.d.ts +4 -0
  329. package/build/tests/helpers/assert.js +24 -0
  330. package/build/tests/helpers/assert.js.map +1 -0
  331. package/build/tests/helpers/env.d.ts +11 -0
  332. package/build/tests/helpers/env.js +28 -0
  333. package/build/tests/helpers/env.js.map +1 -0
  334. package/build/tests/helpers/gating.d.ts +3 -0
  335. package/build/tests/helpers/gating.js +23 -0
  336. package/build/tests/helpers/gating.js.map +1 -0
  337. package/build/tests/testing-entry.d.ts +6 -0
  338. package/build/tests/testing-entry.js +6 -0
  339. package/build/tests/testing-entry.js.map +1 -0
  340. package/build/tools/domains/browser.js +4 -1
  341. package/build/tools/domains/browser.js.map +1 -1
  342. package/build/tools/domains/gooddollar.js +11 -7
  343. package/build/tools/domains/gooddollar.js.map +1 -1
  344. package/build/tools/schemas/common.d.ts +7 -0
  345. package/build/tools/schemas/common.js +9 -1
  346. package/build/tools/schemas/common.js.map +1 -1
  347. package/build/tools/swap-routing.d.ts +1 -0
  348. package/build/tools/swap-routing.js +2 -1
  349. package/build/tools/swap-routing.js.map +1 -1
  350. package/package.json +5 -9
  351. package/tests/README.md +0 -78
  352. package/tests/catalog/domains/blockchain.ts +0 -133
  353. package/tests/catalog/domains/chain-ext.ts +0 -219
  354. package/tests/catalog/domains/defi.ts +0 -532
  355. package/tests/catalog/domains/self.ts +0 -220
  356. package/tests/catalog/domains/token.ts +0 -74
  357. package/tests/catalog/domains/transaction.ts +0 -111
  358. package/tests/catalog/index.ts +0 -7
  359. package/tests/catalog/operations.ts +0 -53
  360. package/tests/catalog/types.ts +0 -27
  361. package/tests/fixtures/mainnet.ts +0 -93
  362. package/tests/helpers/assert.ts +0 -30
  363. package/tests/helpers/env.ts +0 -38
  364. package/tests/helpers/gating.ts +0 -36
  365. package/tests/testing-entry.ts +0 -27
@@ -1,220 +0,0 @@
1
- import type { OperationSpec } from "../types.js";
2
- import { assertHasKeys } from "../../helpers/assert.js";
3
-
4
- const SELF_DEMO_VERIFY_URL =
5
- "https://app.ai.self.xyz/api/demo/verify?network=celo-mainnet";
6
-
7
- export const selfOperations: OperationSpec[] = [
8
- {
9
- id: "self.verifySelfAgent",
10
- domain: "self",
11
- layer: "read",
12
- sdk: {
13
- invoke: (client, fx) =>
14
- client.self.verifyAgent({ agentAddress: fx.selfAgentAddress }),
15
- },
16
- mcp: {
17
- tool: "verify_self_agent",
18
- arguments: (fx) => ({
19
- agent_address: fx.selfAgentAddress,
20
- }),
21
- },
22
- assert: (result) => {
23
- assertHasKeys(result, ["verified"]);
24
- },
25
- },
26
- {
27
- id: "self.lookupSelfAgent",
28
- domain: "self",
29
- layer: "read",
30
- sdk: {
31
- invoke: (client, fx) => client.self.lookupAgent(fx.selfAgentId),
32
- },
33
- mcp: {
34
- tool: "lookup_self_agent",
35
- arguments: (fx) => ({
36
- agent_id: fx.selfAgentId,
37
- }),
38
- },
39
- assert: (result) => {
40
- assertHasKeys(result, ["agentId"]);
41
- },
42
- },
43
- {
44
- id: "self.verifySelfRequest",
45
- domain: "self",
46
- layer: "read",
47
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
48
- sdk: {
49
- invoke: (client, fx) => {
50
- const args = fx.selfVerifyRequestArgs ?? {};
51
- return client.self.verifyRequest({
52
- agentSignature: args.agent_signature as `0x${string}`,
53
- agentTimestamp: String(args.agent_timestamp),
54
- method: String(args.method),
55
- path: String(args.request_path ?? args.path),
56
- body: typeof args.body === "string" ? args.body : undefined,
57
- keytype: typeof args.keytype === "string" ? args.keytype : undefined,
58
- agentKey: args.agent_key as `0x${string}` | undefined,
59
- });
60
- },
61
- },
62
- mcp: {
63
- tool: "verify_self_request",
64
- arguments: (fx) => fx.selfVerifyRequestArgs ?? {},
65
- },
66
- skip: () =>
67
- process.env.CELINA_TEST_SELF_VERIFY === "1"
68
- ? undefined
69
- : "Set CELINA_TEST_SELF_VERIFY=1 (MCP suite enriches signed fixture in beforeAll)",
70
- assert: (result) => {
71
- assertHasKeys(result, ["valid"]);
72
- },
73
- },
74
- {
75
- id: "self.registerSelfAgent",
76
- domain: "self",
77
- layer: "write",
78
- requiresDestructive: true,
79
- sdk: {
80
- invoke: (client) =>
81
- client.self.registerAgent({
82
- mode: "wallet-free",
83
- agentName: "celina-test",
84
- }),
85
- },
86
- mcp: {
87
- tool: "register_self_agent",
88
- arguments: () => ({
89
- mode: "wallet-free",
90
- agent_name: "celina-test",
91
- }),
92
- },
93
- assert: (result) => {
94
- assertHasKeys(result, ["session_id"]);
95
- },
96
- },
97
- {
98
- id: "self.checkSelfRegistration",
99
- domain: "self",
100
- layer: "read",
101
- sdk: {
102
- invoke: (client) =>
103
- client.self.checkRegistration(
104
- process.env.CELINA_TEST_SELF_SESSION ?? "missing-session",
105
- ),
106
- },
107
- mcp: {
108
- tool: "check_self_registration",
109
- arguments: () => ({
110
- session_id: process.env.CELINA_TEST_SELF_SESSION ?? "missing-session",
111
- }),
112
- },
113
- skip: () =>
114
- process.env.CELINA_TEST_SELF_SESSION
115
- ? undefined
116
- : "Set CELINA_TEST_SELF_SESSION to poll a pending Self session",
117
- assert: (result) => {
118
- assertHasKeys(result, ["status"]);
119
- },
120
- },
121
- {
122
- id: "self.getSelfIdentity",
123
- domain: "self",
124
- layer: "read",
125
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
126
- sdk: {
127
- invoke: (client) => client.self.getIdentity(),
128
- },
129
- mcp: {
130
- tool: "get_self_identity",
131
- arguments: () => ({}),
132
- },
133
- assert: (result) => {
134
- const obj = result as Record<string, unknown>;
135
- assertHasKeys(obj, obj.registered === false ? ["registered"] : ["address"]);
136
- },
137
- },
138
- {
139
- id: "self.refreshSelfProof",
140
- domain: "self",
141
- layer: "write",
142
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
143
- requiresDestructive: true,
144
- sdk: {
145
- invoke: (client) => client.self.refreshProof(),
146
- },
147
- mcp: {
148
- tool: "refresh_self_proof",
149
- arguments: () => ({}),
150
- },
151
- assert: (result) => {
152
- assertHasKeys(result, ["session_id"]);
153
- },
154
- },
155
- {
156
- id: "self.deregisterSelfAgent",
157
- domain: "self",
158
- layer: "write",
159
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
160
- requiresDestructive: true,
161
- sdk: {
162
- invoke: (client) => client.self.deregisterAgent(),
163
- },
164
- mcp: {
165
- tool: "deregister_self_agent",
166
- arguments: () => ({}),
167
- },
168
- assert: (result) => {
169
- assertHasKeys(result, ["session_id"]);
170
- },
171
- },
172
- {
173
- id: "self.signSelfRequest",
174
- domain: "self",
175
- layer: "read",
176
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
177
- sdk: {
178
- invoke: (client) =>
179
- client.self.signRequest({
180
- method: "GET",
181
- url: SELF_DEMO_VERIFY_URL,
182
- }),
183
- },
184
- mcp: {
185
- tool: "sign_self_request",
186
- arguments: () => ({
187
- method: "GET",
188
- url: SELF_DEMO_VERIFY_URL,
189
- }),
190
- },
191
- assert: (result) => {
192
- assertHasKeys(result, ["headers"]);
193
- },
194
- },
195
- {
196
- id: "self.authenticatedSelfFetch",
197
- domain: "self",
198
- layer: "read",
199
- requiresEnv: ["SELF_AGENT_PRIVATE_KEY"],
200
- sdk: {
201
- invoke: (client) =>
202
- client.self.authenticatedFetch({
203
- method: "POST",
204
- url: SELF_DEMO_VERIFY_URL,
205
- body: JSON.stringify({ ping: true }),
206
- }),
207
- },
208
- mcp: {
209
- tool: "authenticated_self_fetch",
210
- arguments: () => ({
211
- method: "POST",
212
- url: SELF_DEMO_VERIFY_URL,
213
- body: JSON.stringify({ ping: true }),
214
- }),
215
- },
216
- assert: (result) => {
217
- assertHasKeys(result, ["status"]);
218
- },
219
- },
220
- ];
@@ -1,74 +0,0 @@
1
- import { expect } from "vitest";
2
- import type { OperationSpec } from "../types.js";
3
- import { assertHasKeys } from "../../helpers/assert.js";
4
-
5
- export const tokenOperations: OperationSpec[] = [
6
- {
7
- id: "token.getBalances",
8
- domain: "token",
9
- layer: "read",
10
- sdk: {
11
- invoke: (client, fx) =>
12
- client.token.getBalances(fx.wallet, ["CELO", "USDm"]),
13
- },
14
- mcp: {
15
- tool: "get_celo_balances",
16
- arguments: (fx) => ({
17
- address: fx.wallet,
18
- tokens: ["CELO", "USDm"],
19
- }),
20
- },
21
- assert: (result) => {
22
- assertHasKeys(result, ["address", "balances"]);
23
- },
24
- },
25
- {
26
- id: "token.getStablecoinBalances",
27
- domain: "token",
28
- layer: "read",
29
- sdk: {
30
- invoke: (client, fx) => client.token.getStablecoinBalances(fx.wallet),
31
- },
32
- mcp: {
33
- tool: "get_stablecoin_balances",
34
- arguments: (fx) => ({ address: fx.wallet }),
35
- },
36
- assert: (result) => {
37
- assertHasKeys(result, ["address", "stablecoins"]);
38
- },
39
- },
40
- {
41
- id: "token.getTokenInfo",
42
- domain: "token",
43
- layer: "read",
44
- sdk: {
45
- invoke: (client) => client.token.getTokenInfo("USDm"),
46
- },
47
- mcp: {
48
- tool: "get_token_info",
49
- arguments: () => ({ token: "USDm" }),
50
- },
51
- assert: (result) => {
52
- assertHasKeys(result, ["symbol", "decimals"]);
53
- },
54
- },
55
- {
56
- id: "token.getTokenBalance",
57
- domain: "token",
58
- layer: "read",
59
- sdk: {
60
- invoke: (client, fx) =>
61
- client.token.getTokenBalance("USDm", fx.wallet),
62
- },
63
- mcp: {
64
- tool: "get_token_balance",
65
- arguments: (fx) => ({
66
- token: "USDm",
67
- address: fx.wallet,
68
- }),
69
- },
70
- assert: (result) => {
71
- assertHasKeys(result, ["formatted", "symbol"]);
72
- },
73
- },
74
- ];
@@ -1,111 +0,0 @@
1
- import { parseEther } from "viem";
2
- import type { OperationSpec } from "../types.js";
3
- import { assertHasKeys } from "../../helpers/assert.js";
4
-
5
- function fromAddress(fx: Parameters<OperationSpec["assert"]>[1]): `0x${string}` {
6
- return fx.signerAddress ?? fx.wallet;
7
- }
8
-
9
- export const transactionOperations: OperationSpec[] = [
10
- {
11
- id: "transaction.getGasFeeData",
12
- domain: "transaction",
13
- layer: "read",
14
- sdk: {
15
- invoke: (client) => client.transaction.getGasFeeData(),
16
- },
17
- mcp: {
18
- tool: "get_gas_fee_data",
19
- arguments: () => ({}),
20
- },
21
- assert: (result) => {
22
- assertHasKeys(result, ["network"]);
23
- },
24
- },
25
- {
26
- id: "transaction.estimateTransaction",
27
- domain: "transaction",
28
- layer: "read",
29
- requiresEnv: ["CELO_PRIVATE_KEY"],
30
- sdk: {
31
- invoke: (client, fx) =>
32
- client.transaction.estimateTransaction({
33
- from: fromAddress(fx),
34
- to: fx.wallet,
35
- value: parseEther("0.001").toString(),
36
- }),
37
- },
38
- mcp: {
39
- tool: "estimate_transaction",
40
- arguments: (fx) => ({
41
- from: fromAddress(fx),
42
- to: fx.wallet,
43
- value: parseEther("0.001").toString(),
44
- }),
45
- },
46
- assert: (result) => {
47
- assertHasKeys(result, ["gasLimit"]);
48
- },
49
- },
50
- {
51
- id: "transaction.estimateSend",
52
- domain: "transaction",
53
- layer: "read",
54
- requiresEnv: ["CELO_PRIVATE_KEY"],
55
- sdk: {
56
- invoke: (client, fx) =>
57
- client.transaction.estimateSend(
58
- fromAddress(fx),
59
- fx.wallet,
60
- "CELO",
61
- "0.001",
62
- ),
63
- },
64
- mcp: {
65
- tool: "estimate_send",
66
- arguments: () => ({
67
- to: "0x471EcE3750Da237f93B8E339c536989b8978a438",
68
- token: "CELO",
69
- amount: "0.001",
70
- }),
71
- },
72
- assert: (result) => {
73
- assertHasKeys(result, ["gas"]);
74
- },
75
- },
76
- {
77
- id: "transaction.prepareSend",
78
- domain: "transaction",
79
- layer: "prepare",
80
- sdk: {
81
- invoke: (client, fx) =>
82
- client.transaction.prepareSend(
83
- fromAddress(fx),
84
- fx.wallet,
85
- "CELO",
86
- "0.001",
87
- ),
88
- },
89
- assert: (result) => {
90
- assertHasKeys(result, ["from", "steps", "summary"]);
91
- },
92
- },
93
- {
94
- id: "transaction.sendToken",
95
- domain: "transaction",
96
- layer: "write",
97
- requiresEnv: ["CELO_PRIVATE_KEY"],
98
- requiresWrites: true,
99
- mcp: {
100
- tool: "send_token",
101
- arguments: () => ({
102
- to: "0x471EcE3750Da237f93B8E339c536989b8978a438",
103
- token: "CELO",
104
- amount: "0.000001",
105
- }),
106
- },
107
- assert: (result) => {
108
- assertHasKeys(result, ["hash"]);
109
- },
110
- },
111
- ];
@@ -1,7 +0,0 @@
1
- export type { OperationSpec, OperationLayer, EnvRequirement } from "./types.js";
2
- export {
3
- OPERATIONS,
4
- MCP_OPERATIONS,
5
- SDK_OPERATIONS,
6
- MCP_TOOL_NAMES,
7
- } from "./operations.js";
@@ -1,53 +0,0 @@
1
- import { blockchainOperations } from "./domains/blockchain.js";
2
- import { tokenOperations } from "./domains/token.js";
3
- import { transactionOperations } from "./domains/transaction.js";
4
- import {
5
- aaveOperations,
6
- ensOperations,
7
- gooddollarOperations,
8
- mentoFxOperations,
9
- uniswapOperations,
10
- } from "./domains/defi.js";
11
- import {
12
- contractOperations,
13
- governanceOperations,
14
- nftOperations,
15
- stakingOperations,
16
- } from "./domains/chain-ext.js";
17
- import { selfOperations } from "./domains/self.js";
18
- import { getMcpToolNames } from "../../src/tools/catalog.js";
19
- import type { OperationSpec } from "./types.js";
20
-
21
- export const OPERATIONS: OperationSpec[] = [
22
- ...blockchainOperations,
23
- ...tokenOperations,
24
- ...transactionOperations,
25
- ...mentoFxOperations,
26
- ...uniswapOperations,
27
- ...aaveOperations,
28
- ...ensOperations,
29
- ...gooddollarOperations,
30
- ...governanceOperations,
31
- ...stakingOperations,
32
- ...nftOperations,
33
- ...contractOperations,
34
- ...selfOperations,
35
- ];
36
-
37
- export const MCP_OPERATIONS = OPERATIONS.filter(
38
- (spec): spec is OperationSpec & { mcp: NonNullable<OperationSpec["mcp"]> } =>
39
- Boolean(spec.mcp),
40
- );
41
-
42
- export const SDK_OPERATIONS = OPERATIONS.filter(
43
- (spec): spec is OperationSpec & { sdk: NonNullable<OperationSpec["sdk"]> } =>
44
- Boolean(spec.sdk),
45
- );
46
-
47
- /** MCP tool names from the SDK tools catalog. */
48
- export const MCP_TOOL_NAMES = getMcpToolNames();
49
-
50
- /** @deprecated Use MCP_TOOL_NAMES — kept for tests that import the operations-derived list. */
51
- export const MCP_TOOL_NAMES_FROM_OPERATIONS = MCP_OPERATIONS.map(
52
- (spec) => spec.mcp.tool,
53
- );
@@ -1,27 +0,0 @@
1
- import type { CelinaClient } from "@andrewkimjoseph/celina-sdk";
2
- import type { MainnetFixtures } from "../fixtures/mainnet.js";
3
-
4
- export type OperationLayer = "read" | "write" | "prepare";
5
-
6
- export type EnvRequirement = "CELO_PRIVATE_KEY" | "SELF_AGENT_PRIVATE_KEY";
7
-
8
- export interface OperationSpec {
9
- /** Stable id, e.g. `token.getTokenBalance`. */
10
- id: string;
11
- domain: string;
12
- layer: OperationLayer;
13
- requiresEnv?: EnvRequirement[];
14
- /** On-chain writes (`send_token`, `execute_mento_fx`, Aave supply/withdraw). */
15
- requiresWrites?: boolean;
16
- /** Self register / deregister / refresh flows. */
17
- requiresDestructive?: boolean;
18
- sdk?: {
19
- invoke: (client: CelinaClient, fx: MainnetFixtures) => Promise<unknown>;
20
- };
21
- mcp?: {
22
- tool: string;
23
- arguments: (fx: MainnetFixtures) => Record<string, unknown>;
24
- };
25
- assert: (result: unknown, fx: MainnetFixtures) => void;
26
- skip?: () => string | undefined;
27
- }
@@ -1,93 +0,0 @@
1
- import type { CelinaClient } from "@andrewkimjoseph/celina-sdk";
2
- import { getSignerAddress } from "../helpers/env.js";
3
-
4
- export interface MainnetFixtures {
5
- wallet: `0x${string}`;
6
- usdm: `0x${string}`;
7
- saidContract: `0x${string}`;
8
- saidOwner: `0x${string}`;
9
- saidTokenId: string;
10
- validatorGroup: `0x${string}`;
11
- proposalId: number;
12
- ensName: string;
13
- selfAgentId: number;
14
- /** Known registered Self agent for read-only verification. */
15
- selfAgentAddress: `0x${string}`;
16
- erc20SymbolAbi: readonly [
17
- {
18
- readonly type: "function";
19
- readonly name: "symbol";
20
- readonly stateMutability: "view";
21
- readonly inputs: readonly [];
22
- readonly outputs: readonly [{ readonly type: "string" }];
23
- },
24
- ];
25
- knownTxHash: `0x${string}`;
26
- latestBlockNumber: bigint;
27
- signerAddress?: `0x${string}`;
28
- /** Populated by MCP enrichment when SELF_AGENT_PRIVATE_KEY is set. */
29
- selfVerifyRequestArgs?: Record<string, unknown>;
30
- }
31
-
32
- export const MAINNET_STATIC = {
33
- wallet: "0x471EcE3750Da237f93B8E339c536989b8978a438" as const,
34
- usdm: "0x765DE816845861e75A25fCA122bb6898B8B1282a" as const,
35
- saidContract: "0xaC3DF9ABf80d0F5c020C06B04Cced27763355944" as const,
36
- saidOwner: "0x62fD20ca524C13Ce836Def1c0FF8e5119476868D" as const,
37
- saidTokenId: "1",
38
- validatorGroup: "0x0861a61Bf679A30680510EcC238ee43B82C5e843" as const,
39
- proposalId: 293,
40
- ensName: "celina.eth",
41
- selfAgentId: 1,
42
- selfAgentAddress: "0xC1C860804EFdA544fe79194d1a37e60b846CEdeb" as const,
43
- erc20SymbolAbi: [
44
- {
45
- type: "function",
46
- name: "symbol",
47
- stateMutability: "view",
48
- inputs: [],
49
- outputs: [{ type: "string" }],
50
- },
51
- ] as const,
52
- };
53
-
54
- let cachedFixtures: MainnetFixtures | null = null;
55
-
56
- /** Load stable mainnet fixtures, resolving a recent tx hash once per process. */
57
- export async function getMainnetFixtures(
58
- client: CelinaClient,
59
- ): Promise<MainnetFixtures> {
60
- if (cachedFixtures) {
61
- return cachedFixtures;
62
- }
63
-
64
- const status = await client.blockchain.getNetworkStatus();
65
- const latestBlockNumber = BigInt(status.blockNumber);
66
- const block = await client.blockchain.getBlock(Number(latestBlockNumber), {
67
- includeTransactions: true,
68
- });
69
-
70
- const txs = block.transactions as Array<{ hash?: `0x${string}` } | string>;
71
- const firstTx = txs[0];
72
- const knownTxHash =
73
- typeof firstTx === "string"
74
- ? (firstTx as `0x${string}`)
75
- : (firstTx?.hash as `0x${string}`);
76
-
77
- if (!knownTxHash) {
78
- throw new Error("Could not resolve a mainnet transaction hash from latest block");
79
- }
80
-
81
- cachedFixtures = {
82
- ...MAINNET_STATIC,
83
- knownTxHash,
84
- latestBlockNumber,
85
- signerAddress: getSignerAddress(),
86
- };
87
-
88
- return cachedFixtures;
89
- }
90
-
91
- export function resetMainnetFixturesCache(): void {
92
- cachedFixtures = null;
93
- }
@@ -1,30 +0,0 @@
1
- import { expect } from "vitest";
2
-
3
- export function assertDefined(result: unknown): asserts result is NonNullable<unknown> {
4
- expect(result).toBeDefined();
5
- expect(result).not.toBeNull();
6
- }
7
-
8
- export function assertObject(result: unknown): Record<string, unknown> {
9
- assertDefined(result);
10
- expect(typeof result).toBe("object");
11
- expect(Array.isArray(result)).toBe(false);
12
- return result as Record<string, unknown>;
13
- }
14
-
15
- export function assertArray(result: unknown): unknown[] {
16
- assertDefined(result);
17
- expect(Array.isArray(result)).toBe(true);
18
- return result as unknown[];
19
- }
20
-
21
- export function assertHasKeys(
22
- result: unknown,
23
- keys: string[],
24
- ): Record<string, unknown> {
25
- const obj = assertObject(result);
26
- for (const key of keys) {
27
- expect(obj).toHaveProperty(key);
28
- }
29
- return obj;
30
- }
@@ -1,38 +0,0 @@
1
- import { privateKeyToAccount } from "viem/accounts";
2
-
3
- export interface TestConfig {
4
- rpcUrl: string;
5
- ethRpcUrl?: string;
6
- }
7
-
8
- export function hasCeloWallet(): boolean {
9
- return Boolean(process.env.CELO_PRIVATE_KEY);
10
- }
11
-
12
- export function hasSelfAgentKey(): boolean {
13
- return Boolean(process.env.SELF_AGENT_PRIVATE_KEY);
14
- }
15
-
16
- export function allowsTestWrites(): boolean {
17
- return process.env.CELINA_TEST_WRITES === "1";
18
- }
19
-
20
- export function allowsDestructiveTests(): boolean {
21
- return process.env.CELINA_TEST_DESTRUCTIVE === "1";
22
- }
23
-
24
- export function getSignerAddress(): `0x${string}` | undefined {
25
- const key = process.env.CELO_PRIVATE_KEY;
26
- if (!key) {
27
- return undefined;
28
- }
29
- return privateKeyToAccount(key as `0x${string}`).address;
30
- }
31
-
32
- /** RPC URLs aligned with celina-mcp `loadConfig()`. */
33
- export function loadTestConfig(): TestConfig {
34
- return {
35
- rpcUrl: process.env.CELO_RPC_URL_MAINNET ?? "https://forno.celo.org",
36
- ethRpcUrl: process.env.ETH_RPC_URL_MAINNET,
37
- };
38
- }
@@ -1,36 +0,0 @@
1
- import type { OperationSpec } from "../catalog/types.js";
2
- import {
3
- allowsDestructiveTests,
4
- allowsTestWrites,
5
- hasCeloWallet,
6
- hasSelfAgentKey,
7
- } from "./env.js";
8
-
9
- const ENV_CHECKS: Record<
10
- NonNullable<OperationSpec["requiresEnv"]>[number],
11
- () => boolean
12
- > = {
13
- CELO_PRIVATE_KEY: hasCeloWallet,
14
- SELF_AGENT_PRIVATE_KEY: hasSelfAgentKey,
15
- };
16
-
17
- /** Returns a skip reason when the operation should not run, otherwise undefined. */
18
- export function getOperationSkipReason(spec: OperationSpec): string | undefined {
19
- if (spec.requiresDestructive && !allowsDestructiveTests()) {
20
- return "Set CELINA_TEST_DESTRUCTIVE=1 to run destructive Self lifecycle tests";
21
- }
22
-
23
- if (spec.requiresWrites && !allowsTestWrites()) {
24
- return "Set CELINA_TEST_WRITES=1 to run on-chain write tests";
25
- }
26
-
27
- if (spec.requiresEnv) {
28
- for (const requirement of spec.requiresEnv) {
29
- if (!ENV_CHECKS[requirement]()) {
30
- return `Missing ${requirement}`;
31
- }
32
- }
33
- }
34
-
35
- return spec.skip?.() ?? undefined;
36
- }