@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
@@ -0,0 +1,319 @@
1
+ /**
2
+ * Single token registry for Celo mainnet.
3
+ * Symbols resolve case-insensitively; Mento legacy tickers (cUSD, cKES, PUSO, …) map to XXXm.
4
+ */
5
+ import { celo } from "viem/chains";
6
+ export const CHAIN = celo;
7
+ export const DEFAULT_RPC_URL = "https://forno.celo.org";
8
+ /** Mento collateral address for native CELO (used by @mento-protocol/mento-sdk). */
9
+ export const MENTO_CELO_ADDRESS = "0x471EcE3750Da237f93B8E339c536989b8978a438";
10
+ export const KNOWN_TOKENS = [
11
+ {
12
+ symbol: "CELO",
13
+ address: "native",
14
+ aliases: ["WCELO", "cGLD"],
15
+ decimals: 18,
16
+ },
17
+ {
18
+ symbol: "USDm",
19
+ aliases: ["cUSD"],
20
+ address: "0x765de816845861e75a25fca122bb6898b8b1282a",
21
+ issuer: "Mento",
22
+ useCase: "US Dollar-pegged stablecoin (Mento Dollar)",
23
+ decimals: 18,
24
+ },
25
+ {
26
+ symbol: "EURm",
27
+ aliases: ["cEUR"],
28
+ address: "0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73",
29
+ issuer: "Mento",
30
+ useCase: "Euro-pegged stablecoin (Mento Euro)",
31
+ decimals: 18,
32
+ },
33
+ {
34
+ symbol: "BRLm",
35
+ aliases: ["cREAL", "CREAL"],
36
+ address: "0xe8537a3d056da446677b9e9d6c5db704eaab4787",
37
+ issuer: "Mento",
38
+ useCase: "Brazilian Real-pegged stablecoin",
39
+ decimals: 18,
40
+ },
41
+ {
42
+ symbol: "XOFm",
43
+ aliases: ["eXOF"],
44
+ address: "0x73F93dcc49cB8A239e2032663e9475dd5ef29A08",
45
+ issuer: "Mento",
46
+ useCase: "CFA Franc-pegged stablecoin",
47
+ decimals: 18,
48
+ },
49
+ {
50
+ symbol: "KESm",
51
+ aliases: ["cKES"],
52
+ address: "0x456a3D042C0DbD3db53D5489e98dFb038553B0d0",
53
+ issuer: "Mento",
54
+ useCase: "Kenyan Shilling-pegged stablecoin",
55
+ decimals: 18,
56
+ },
57
+ {
58
+ symbol: "PHPm",
59
+ aliases: ["PUSO"],
60
+ address: "0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B",
61
+ issuer: "Mento",
62
+ useCase: "Philippine Peso-pegged stablecoin",
63
+ decimals: 18,
64
+ },
65
+ {
66
+ symbol: "COPm",
67
+ aliases: ["cCOP"],
68
+ address: "0x8a567e2ae79ca692bd748ab832081c45de4041ea",
69
+ issuer: "Mento",
70
+ useCase: "Colombian Peso-pegged stablecoin",
71
+ decimals: 18,
72
+ },
73
+ {
74
+ symbol: "GBPm",
75
+ aliases: ["cGBP"],
76
+ address: "0xCCF663b1fF11028f0b19058d0f7B674004a40746",
77
+ issuer: "Mento",
78
+ useCase: "British Pound-pegged stablecoin",
79
+ decimals: 18,
80
+ },
81
+ {
82
+ symbol: "CADm",
83
+ aliases: ["cCAD"],
84
+ address: "0xff4Ab19391af240c311c54200a492233052B6325",
85
+ issuer: "Mento",
86
+ useCase: "Canadian Dollar-pegged stablecoin",
87
+ decimals: 18,
88
+ },
89
+ {
90
+ symbol: "AUDm",
91
+ aliases: ["cAUD"],
92
+ address: "0x7175504C455076F15c04A2F90a8e352281F492F9",
93
+ issuer: "Mento",
94
+ useCase: "Australian Dollar-pegged stablecoin",
95
+ decimals: 18,
96
+ },
97
+ {
98
+ symbol: "ZARm",
99
+ aliases: ["cZAR"],
100
+ address: "0x4c35853A3B4e647fD266f4de678dCc8fEC410BF6",
101
+ issuer: "Mento",
102
+ useCase: "South African Rand-pegged stablecoin",
103
+ decimals: 18,
104
+ },
105
+ {
106
+ symbol: "GHSm",
107
+ aliases: ["cGHS"],
108
+ address: "0xfAeA5F3404bbA20D3cc2f8C4B0A888F55a3c7313",
109
+ issuer: "Mento",
110
+ useCase: "Ghanaian Cedi-pegged stablecoin",
111
+ decimals: 18,
112
+ },
113
+ {
114
+ symbol: "NGNm",
115
+ aliases: ["cNGN", "CNGN"],
116
+ address: "0xE2702Bd97ee33c88c8f6f92DA3B733608aa76F71",
117
+ issuer: "Mento",
118
+ useCase: "Nigerian Naira-pegged stablecoin",
119
+ decimals: 18,
120
+ },
121
+ {
122
+ symbol: "JPYm",
123
+ aliases: ["cJPY"],
124
+ address: "0xc45eCF20f3CD864B32D9794d6f76814aE8892e20",
125
+ issuer: "Mento",
126
+ useCase: "Japanese Yen-pegged stablecoin",
127
+ decimals: 18,
128
+ },
129
+ {
130
+ symbol: "CHFm",
131
+ aliases: ["cCHF"],
132
+ address: "0xb55a79F398E759E43C95b979163f30eC87Ee131D",
133
+ issuer: "Mento",
134
+ useCase: "Swiss Franc-pegged stablecoin",
135
+ decimals: 18,
136
+ },
137
+ {
138
+ symbol: "USDT",
139
+ address: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
140
+ issuer: "Tether",
141
+ useCase: "Popular stablecoin on multiple blockchains",
142
+ decimals: 6,
143
+ },
144
+ {
145
+ symbol: "USDC",
146
+ address: "0xceba9300f2b948710d2653dd7b07f33a8b32118c",
147
+ issuer: "Circle",
148
+ useCase: "Widely used stablecoin with high liquidity",
149
+ decimals: 6,
150
+ },
151
+ {
152
+ symbol: "WETH",
153
+ address: "0xD221812de1BD094f35587EE8E174B07B6167D9Af",
154
+ issuer: "Wrapped Ether",
155
+ useCase: "Bridged ETH on Celo",
156
+ decimals: 18,
157
+ },
158
+ {
159
+ symbol: "vEUR",
160
+ address: "0x9346f43c1588b6df1d52bdd6bf846064f92d9cba",
161
+ issuer: "VNX",
162
+ useCase: "Euro-pegged stablecoin",
163
+ decimals: 18,
164
+ },
165
+ {
166
+ symbol: "vGBP",
167
+ address: "0x7ae4265ecfc1f31bc0e112dfcfe3d78e01f4bb7f",
168
+ issuer: "VNX",
169
+ useCase: "British Pound-pegged stablecoin",
170
+ decimals: 18,
171
+ },
172
+ {
173
+ symbol: "vCHF",
174
+ address: "0xc5ebea9984c485ec5d58ca5a2d376620d93af871",
175
+ issuer: "VNX",
176
+ useCase: "Swiss Franc-pegged stablecoin",
177
+ decimals: 18,
178
+ },
179
+ {
180
+ symbol: "USDM",
181
+ address: "0x59D9356E565Ab3A36dD77763Fc0d87fEaf85508C",
182
+ issuer: "Mountain Protocol",
183
+ useCase: "Yield-bearing stablecoin",
184
+ decimals: 18,
185
+ },
186
+ {
187
+ symbol: "USDA",
188
+ address: "0x0000206329b97DB379d5E1Bf586BbDB969C63274",
189
+ issuer: "Angle",
190
+ useCase: "Yield-bearing USD stablecoin",
191
+ decimals: 18,
192
+ },
193
+ {
194
+ symbol: "EURA",
195
+ address: "0xC16B81Af351BA9e64C1a069E3Ab18c244A1E3049",
196
+ issuer: "Angle",
197
+ useCase: "Yield-bearing Euro stablecoin",
198
+ decimals: 18,
199
+ },
200
+ {
201
+ symbol: "USDGLO",
202
+ address: "0x4f604735c1cf31399c6e711d5962b2b3e0225ad3",
203
+ issuer: "Glo Foundation",
204
+ useCase: "Impact-driven stablecoin supporting global causes",
205
+ decimals: 18,
206
+ },
207
+ {
208
+ symbol: "BRLA",
209
+ address: "0xfecb3f7c54e2caae9dc6ac9060a822d47e053760",
210
+ issuer: "BRLA Digital",
211
+ useCase: "Brazil-based stablecoin",
212
+ decimals: 18,
213
+ },
214
+ {
215
+ symbol: "COPM",
216
+ address: "0xC92E8Fc2947E32F2B574CCA9F2F12097A71d5606",
217
+ issuer: "Minteo",
218
+ useCase: "Fiat-backed Colombian Peso stablecoin",
219
+ decimals: 18,
220
+ },
221
+ {
222
+ symbol: "GoodDollar",
223
+ aliases: ["G$", "GD"],
224
+ address: "0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A",
225
+ issuer: "GoodDollar",
226
+ useCase: "UBI-focused token for financial inclusion",
227
+ decimals: 18,
228
+ },
229
+ ];
230
+ /** In KNOWN_TOKENS but not fiat-pegged stablecoins — use get_token_balance / domain tools. */
231
+ const STABLECOIN_SCAN_EXCLUDED = new Set(["GoodDollar", "WETH"]);
232
+ export const STABLECOINS = KNOWN_TOKENS.filter((token) => token.address !== "native" &&
233
+ token.issuer !== undefined &&
234
+ token.useCase !== undefined &&
235
+ !STABLECOIN_SCAN_EXCLUDED.has(token.symbol));
236
+ export const KNOWN_TOKEN_SYMBOLS = KNOWN_TOKENS.flatMap((token) => [
237
+ token.symbol,
238
+ ...(token.aliases ?? []),
239
+ ]).sort();
240
+ function tokenMatchesInput(token, normalized, upper) {
241
+ if (token.symbol === normalized || token.symbol.toUpperCase() === upper) {
242
+ return true;
243
+ }
244
+ return (token.aliases?.some((alias) => alias === normalized || alias.toUpperCase() === upper) ?? false);
245
+ }
246
+ function alphanumericKey(value) {
247
+ return value.trim().toUpperCase().replace(/[^A-Z0-9]/g, "");
248
+ }
249
+ function findKnownTokenExact(token) {
250
+ const normalized = token.trim();
251
+ const upper = normalized.toUpperCase();
252
+ const lower = normalized.toLowerCase();
253
+ if (lower === MENTO_CELO_ADDRESS.toLowerCase()) {
254
+ return KNOWN_TOKENS.find((entry) => entry.symbol === "CELO");
255
+ }
256
+ return KNOWN_TOKENS.find((entry) => tokenMatchesInput(entry, normalized, upper) ||
257
+ (upper === "NATIVE" && entry.address === "native") ||
258
+ (entry.address !== "native" && entry.address.toLowerCase() === lower));
259
+ }
260
+ /** Fuzzy registry lookup for mistyped symbols (e.g. GD for G$/GoodDollar). */
261
+ export function suggestKnownTokens(token) {
262
+ const normalized = token.trim();
263
+ const upper = normalized.toUpperCase();
264
+ const key = alphanumericKey(normalized);
265
+ if (!key) {
266
+ return [];
267
+ }
268
+ const matches = new Map();
269
+ for (const entry of KNOWN_TOKENS) {
270
+ if (tokenMatchesInput(entry, normalized, upper)) {
271
+ matches.set(entry.symbol, entry);
272
+ continue;
273
+ }
274
+ const symbolKey = alphanumericKey(entry.symbol);
275
+ if (symbolKey === key ||
276
+ (key.length >= 2 &&
277
+ (symbolKey.startsWith(key) || key.startsWith(symbolKey)))) {
278
+ matches.set(entry.symbol, entry);
279
+ }
280
+ for (const alias of entry.aliases ?? []) {
281
+ const aliasKey = alphanumericKey(alias);
282
+ if (aliasKey === key ||
283
+ (key.length >= 2 &&
284
+ (aliasKey.startsWith(key) || key.startsWith(aliasKey)))) {
285
+ matches.set(entry.symbol, entry);
286
+ }
287
+ }
288
+ }
289
+ return [...matches.values()];
290
+ }
291
+ export function findKnownToken(token) {
292
+ const exact = findKnownTokenExact(token);
293
+ if (exact) {
294
+ return exact;
295
+ }
296
+ const suggestions = suggestKnownTokens(token);
297
+ return suggestions.length === 1 ? suggestions[0] : undefined;
298
+ }
299
+ export function toMentoTokenAddress(address) {
300
+ if (address === "native") {
301
+ return MENTO_CELO_ADDRESS;
302
+ }
303
+ return address;
304
+ }
305
+ export function resolveStablecoins(symbols) {
306
+ if (!symbols?.length) {
307
+ return STABLECOINS;
308
+ }
309
+ const wanted = symbols.map((symbol) => symbol.trim());
310
+ const matched = STABLECOINS.filter((coin) => wanted.some((input) => {
311
+ const upper = input.toUpperCase();
312
+ return tokenMatchesInput(coin, input, upper);
313
+ }));
314
+ if (matched.length === 0) {
315
+ throw new Error(`No matching stablecoins. Available: ${STABLECOINS.map((coin) => coin.symbol).join(", ")}`);
316
+ }
317
+ return matched;
318
+ }
319
+ //# sourceMappingURL=chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/config/chains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** GoodDollar IdentityV4 contract on Celo mainnet. */
2
+ export declare const GOODDOLLAR_IDENTITY_ADDRESS: "0xC361A6E67822a0EDc17D899227dd9FC50BD62F42";
3
+ /** GoodDollar UBISchemeV2 contract on Celo mainnet. */
4
+ export declare const GOODDOLLAR_UBI_SCHEME_ADDRESS: "0x43d72Ff17701B2DA814620735C39C620Ce0ea4A1";
5
+ /** GoodDollar G$ token on Celo mainnet (SuperGoodDollar). */
6
+ export declare const GOODDOLLAR_TOKEN_ADDRESS: "0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A";
7
+ /** MentoBroker proxy — user-facing entry for G$ reserve swaps on Celo. */
8
+ export declare const GOODDOLLAR_MENTO_BROKER: "0x88de45906D4F5a57315c133620cfa484cB297541";
9
+ /** GoodDollar MentoExchangeProvider on Celo mainnet. */
10
+ export declare const GOODDOLLAR_MENTO_EXCHANGE_PROVIDER: "0x2fFBB49055d487DdBBb0C052Cd7c2a02A7971e41";
11
+ /** Exchange pool id for G$ ↔ USDm (CUSD in GoodProtocol deployment). */
12
+ export declare const GOODDOLLAR_CUSD_EXCHANGE_ID: "0xba77f5c7bb3317643c6d81d1ef3f9913561741d92095f88efa402faf2cbe9124";
13
+ /** Reserve collateral token (USDm / cUSD) for the G$ pool on Celo. */
14
+ export declare const GOODDOLLAR_RESERVE_COLLATERAL: "0x765DE816845861e75A25fCA122bb6898B8B1282a";
15
+ /** Whether both tokens form a supported GoodDollar reserve pair (G$ ↔ USDm). */
16
+ export declare function isGoodDollarUsdReservePair(tokenIn: string, tokenOut: string): boolean;
@@ -0,0 +1,24 @@
1
+ /** GoodDollar IdentityV4 contract on Celo mainnet. */
2
+ export const GOODDOLLAR_IDENTITY_ADDRESS = "0xC361A6E67822a0EDc17D899227dd9FC50BD62F42";
3
+ /** GoodDollar UBISchemeV2 contract on Celo mainnet. */
4
+ export const GOODDOLLAR_UBI_SCHEME_ADDRESS = "0x43d72Ff17701B2DA814620735C39C620Ce0ea4A1";
5
+ /** GoodDollar G$ token on Celo mainnet (SuperGoodDollar). */
6
+ export const GOODDOLLAR_TOKEN_ADDRESS = "0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A";
7
+ /** MentoBroker proxy — user-facing entry for G$ reserve swaps on Celo. */
8
+ export const GOODDOLLAR_MENTO_BROKER = "0x88de45906D4F5a57315c133620cfa484cB297541";
9
+ /** GoodDollar MentoExchangeProvider on Celo mainnet. */
10
+ export const GOODDOLLAR_MENTO_EXCHANGE_PROVIDER = "0x2fFBB49055d487DdBBb0C052Cd7c2a02A7971e41";
11
+ /** Exchange pool id for G$ ↔ USDm (CUSD in GoodProtocol deployment). */
12
+ export const GOODDOLLAR_CUSD_EXCHANGE_ID = "0xba77f5c7bb3317643c6d81d1ef3f9913561741d92095f88efa402faf2cbe9124";
13
+ /** Reserve collateral token (USDm / cUSD) for the G$ pool on Celo. */
14
+ export const GOODDOLLAR_RESERVE_COLLATERAL = "0x765DE816845861e75A25fCA122bb6898B8B1282a";
15
+ const GOODDOLLAR_SYMBOLS = new Set(["gooddollar", "g$"]);
16
+ const RESERVE_COLLATERAL_SYMBOLS = new Set(["usdm", "cusd"]);
17
+ /** Whether both tokens form a supported GoodDollar reserve pair (G$ ↔ USDm). */
18
+ export function isGoodDollarUsdReservePair(tokenIn, tokenOut) {
19
+ const a = tokenIn.trim().toLowerCase();
20
+ const b = tokenOut.trim().toLowerCase();
21
+ return ((GOODDOLLAR_SYMBOLS.has(a) && RESERVE_COLLATERAL_SYMBOLS.has(b)) ||
22
+ (GOODDOLLAR_SYMBOLS.has(b) && RESERVE_COLLATERAL_SYMBOLS.has(a)));
23
+ }
24
+ //# sourceMappingURL=gooddollar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gooddollar.js","sourceRoot":"","sources":["../../../src/config/gooddollar.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAAqD,CAAC;AAExD,uDAAuD;AACvD,MAAM,CAAC,MAAM,6BAA6B,GACxC,4CAAqD,CAAC;AAExD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GACnC,4CAAqD,CAAC;AAExD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAClC,4CAAqD,CAAC;AAExD,wDAAwD;AACxD,MAAM,CAAC,MAAM,kCAAkC,GAC7C,4CAAqD,CAAC;AAExD,wEAAwE;AACxE,MAAM,CAAC,MAAM,2BAA2B,GACtC,oEAA6E,CAAC;AAEhF,sEAAsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GACxC,4CAAqD,CAAC;AAExD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACzD,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE7D,gFAAgF;AAChF,MAAM,UAAU,0BAA0B,CAAC,OAAe,EAAE,QAAgB;IAC1E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,CACL,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /** RPC configuration for `createCelinaClient()`. */
2
+ export interface SdkConfig {
3
+ /** Celo mainnet JSON-RPC URL (default Forno). */
4
+ rpcUrl: string;
5
+ /** Ethereum mainnet RPC for ENS resolution (optional). */
6
+ ethRpcUrl?: string;
7
+ /** Self Agent ID signing key (Node only; also reads `SELF_AGENT_PRIVATE_KEY`). */
8
+ selfAgentPrivateKey?: `0x${string}`;
9
+ /** Self Agent ID REST API base (default https://app.ai.self.xyz). */
10
+ selfApiBase?: string;
11
+ /** Amplitude read telemetry (default on; opt out with `false` or `CELINA_ANALYTICS_DISABLED=1`). */
12
+ analyticsEnabled?: boolean;
13
+ /** Override bundled Amplitude project API key. */
14
+ amplitudeApiKey?: string;
15
+ /**
16
+ * Amplitude `device_id`. When omitted, auto-detected from the consuming package
17
+ * `package.json` name (sanitized, e.g. `celeste_ai`, `andrewkimjoseph_celina_mcp`),
18
+ * then `CELINA_ANALYTICS_DEVICE_ID`, then `celina-sdk`.
19
+ */
20
+ analyticsDeviceId?: string;
21
+ /**
22
+ * Default wallet for read telemetry `user_id` when args omit an address
23
+ * (e.g. MCP session signer with `CELO_PRIVATE_KEY`).
24
+ */
25
+ analyticsWalletAddress?: string;
26
+ }
27
+ /** Default Celo RPC when `rpcUrl` is omitted. */
28
+ export declare const DEFAULT_RPC_URL = "https://forno.celo.org";
29
+ /**
30
+ * Merge partial options with SDK defaults.
31
+ * @param opts - Optional RPC overrides from `createCelinaClient(opts)`
32
+ */
33
+ export declare function resolveSdkConfig(opts?: Partial<SdkConfig>): SdkConfig;
@@ -0,0 +1,31 @@
1
+ import { detectConsumerPackageName } from "../analytics/consumer-package.js";
2
+ /** Default Celo RPC when `rpcUrl` is omitted. */
3
+ export const DEFAULT_RPC_URL = "https://forno.celo.org";
4
+ /**
5
+ * Merge partial options with SDK defaults.
6
+ * @param opts - Optional RPC overrides from `createCelinaClient(opts)`
7
+ */
8
+ export function resolveSdkConfig(opts) {
9
+ const selfAgentPrivateKey = opts?.selfAgentPrivateKey ??
10
+ (typeof process !== "undefined"
11
+ ? process.env.SELF_AGENT_PRIVATE_KEY
12
+ : undefined);
13
+ return {
14
+ rpcUrl: opts?.rpcUrl ?? DEFAULT_RPC_URL,
15
+ ethRpcUrl: opts?.ethRpcUrl,
16
+ selfAgentPrivateKey,
17
+ selfApiBase: opts?.selfApiBase ??
18
+ (typeof process !== "undefined"
19
+ ? process.env.SELF_AGENT_API_BASE
20
+ : undefined),
21
+ analyticsEnabled: opts?.analyticsEnabled,
22
+ amplitudeApiKey: opts?.amplitudeApiKey,
23
+ analyticsDeviceId: opts?.analyticsDeviceId ??
24
+ (typeof process !== "undefined"
25
+ ? process.env.CELINA_ANALYTICS_DEVICE_ID
26
+ : undefined) ??
27
+ detectConsumerPackageName(),
28
+ analyticsWalletAddress: opts?.analyticsWalletAddress,
29
+ };
30
+ }
31
+ //# sourceMappingURL=sdk-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../../src/config/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AA6B7E,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,OAAO,OAAO,KAAK,WAAW;YAC7B,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,sBAAoD;YACnE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,mBAAmB;QACnB,WAAW,EACT,IAAI,EAAE,WAAW;YACjB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,iBAAiB,EACf,IAAI,EAAE,iBAAiB;YACvB,CAAC,OAAO,OAAO,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B;gBACxC,CAAC,CAAC,SAAS,CAAC;YACd,yBAAyB,EAAE;QAC7B,sBAAsB,EAAE,IAAI,EAAE,sBAAsB;KACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare const SELF_REGISTRY_ADDRESS: "0xaC3DF9ABf80d0F5c020C06B04Cced27763355944";
2
+ export declare const SELF_API_BASE = "https://app.ai.self.xyz";
3
+ /** Network value for Self lifecycle REST APIs (register, refresh, deregister). */
4
+ export declare const SELF_API_NETWORK = "mainnet";
5
+ /** Query param for Self demo/gated HTTP endpoints on Celo mainnet. */
6
+ export declare const SELF_DEMO_NETWORK = "celo-mainnet";
7
+ export declare const SELF_CHAIN_ID = 42220;
8
+ export declare function selfDemoUrl(path: string, network?: string): string;
9
+ export declare const SELF_SESSION_TTL_MS: number;
10
+ export declare const SELF_MAX_SESSIONS = 50;
11
+ export declare const SELF_DEFAULT_MAX_AGE_MS: number;
12
+ export declare const SELF_FETCH_MAX_BYTES: number;
13
+ /** Warning threshold for upcoming proof expiry (matches Self SDK isProofExpiringSoon). */
14
+ export declare const SELF_PROOF_EXPIRING_SOON_DAYS = 30;
15
+ export declare const SELF_HEADERS: {
16
+ readonly ADDRESS: "x-self-agent-address";
17
+ readonly SIGNATURE: "x-self-agent-signature";
18
+ readonly TIMESTAMP: "x-self-agent-timestamp";
19
+ readonly KEYTYPE: "x-self-agent-keytype";
20
+ readonly KEY: "x-self-agent-key";
21
+ };
22
+ export type SelfRegistrationMode = "linked" | "wallet-free" | "smartwallet" | "self-custody" | "ed25519" | "ed25519-linked";
@@ -0,0 +1,27 @@
1
+ export const SELF_REGISTRY_ADDRESS = "0xaC3DF9ABf80d0F5c020C06B04Cced27763355944";
2
+ export const SELF_API_BASE = "https://app.ai.self.xyz";
3
+ /** Network value for Self lifecycle REST APIs (register, refresh, deregister). */
4
+ export const SELF_API_NETWORK = "mainnet";
5
+ /** Query param for Self demo/gated HTTP endpoints on Celo mainnet. */
6
+ export const SELF_DEMO_NETWORK = "celo-mainnet";
7
+ export const SELF_CHAIN_ID = 42220;
8
+ export function selfDemoUrl(path, network = SELF_DEMO_NETWORK) {
9
+ const base = SELF_API_BASE.replace(/\/+$/, "");
10
+ const normalizedPath = path.startsWith("/") ? path : `/${path}`;
11
+ const separator = normalizedPath.includes("?") ? "&" : "?";
12
+ return `${base}${normalizedPath}${separator}network=${network}`;
13
+ }
14
+ export const SELF_SESSION_TTL_MS = 10 * 60 * 1000;
15
+ export const SELF_MAX_SESSIONS = 50;
16
+ export const SELF_DEFAULT_MAX_AGE_MS = 5 * 60 * 1000;
17
+ export const SELF_FETCH_MAX_BYTES = 10 * 1024;
18
+ /** Warning threshold for upcoming proof expiry (matches Self SDK isProofExpiringSoon). */
19
+ export const SELF_PROOF_EXPIRING_SOON_DAYS = 30;
20
+ export const SELF_HEADERS = {
21
+ ADDRESS: "x-self-agent-address",
22
+ SIGNATURE: "x-self-agent-signature",
23
+ TIMESTAMP: "x-self-agent-timestamp",
24
+ KEYTYPE: "x-self-agent-keytype",
25
+ KEY: "x-self-agent-key",
26
+ };
27
+ //# sourceMappingURL=self.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/config/self.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAAqD,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEvD,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAO,GAAG,iBAAiB;IACnE,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3D,OAAO,GAAG,IAAI,GAAG,cAAc,GAAG,SAAS,WAAW,OAAO,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,sBAAsB;IAC/B,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,wBAAwB;IACnC,OAAO,EAAE,sBAAsB;IAC/B,GAAG,EAAE,kBAAkB;CACf,CAAC"}
@@ -0,0 +1,42 @@
1
+ /** Uniswap v4 on Celo mainnet — https://docs.celo.org/tooling/contracts/uniswap-contracts */
2
+ export declare const UNISWAP_V4: {
3
+ readonly poolManager: "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC";
4
+ readonly v4Quoter: "0x28566da1093609182dff2cb2a91cfd72e61d66cd";
5
+ readonly stateView: "0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb";
6
+ readonly universalRouter: "0xcb695bc5d3aa22cad1e6df07801b061a05a0233a";
7
+ readonly permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3";
8
+ readonly zeroHooks: "0x0000000000000000000000000000000000000000";
9
+ readonly nativeCurrency: "0x0000000000000000000000000000000000000000";
10
+ };
11
+ export declare const UNISWAP_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/111767/uniswap-v-4-celo/version/latest";
12
+ /** Pool index cache TTL in milliseconds (default 5 minutes). */
13
+ export declare const UNISWAP_POOL_CACHE_TTL_MS: number;
14
+ /** Common v4 fee tiers and default tick spacings (probed on-chain when building index). */
15
+ export declare const UNISWAP_FEE_TIERS: readonly [100, 500, 3000, 10000, 30000];
16
+ /** Default tick spacing per fee tier when probing pools on-chain. */
17
+ export declare const UNISWAP_DEFAULT_TICK_SPACING: Record<number, number>;
18
+ /** Hub tokens for on-chain pool index fallback (Uniswap routing graph). */
19
+ export declare const UNISWAP_HUB_CURRENCIES: readonly `0x${string}`[];
20
+ /** Uniswap v4 pool key (sorted currencies, fee tier, tick spacing, hooks). */
21
+ export type UniswapPoolKey = {
22
+ currency0: `0x${string}`;
23
+ currency1: `0x${string}`;
24
+ fee: number;
25
+ tickSpacing: number;
26
+ hooks: `0x${string}`;
27
+ };
28
+ /** Sort two currency addresses for canonical pool key ordering. */
29
+ export declare function sortUniswapCurrencies(a: `0x${string}`, b: `0x${string}`): [`0x${string}`, `0x${string}`];
30
+ /** Normalize a pool key so `currency0` sorts before `currency1`. */
31
+ export declare function normalizeUniswapPoolKey(poolKey: UniswapPoolKey): UniswapPoolKey;
32
+ /** Map registry token to Uniswap v4 currency address (native CELO → address(0)). */
33
+ export declare function toUniswapCurrency(address: `0x${string}` | "native"): `0x${string}`;
34
+ /**
35
+ * Map registry token to the currency used for pool discovery / quoting.
36
+ * Celo v4 liquidity is on WCELO pairs, not native address(0).
37
+ */
38
+ export declare function toUniswapRoutingCurrency(address: `0x${string}` | "native"): `0x${string}`;
39
+ /** ERC-20 used as swap input when registry token is native CELO. */
40
+ export declare function uniswapInputTokenAddress(address: `0x${string}` | "native"): `0x${string}` | "native";
41
+ /** Whether a v4 currency address is native CELO (`address(0)`). */
42
+ export declare function isNativeUniswapCurrency(currency: `0x${string}`): boolean;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Uniswap v4 contract addresses and routing helpers for Celo mainnet.
3
+ * @see https://docs.celo.org/tooling/contracts/uniswap-contracts
4
+ */
5
+ import { MENTO_CELO_ADDRESS } from "./chains.js";
6
+ /** Uniswap v4 on Celo mainnet — https://docs.celo.org/tooling/contracts/uniswap-contracts */
7
+ export const UNISWAP_V4 = {
8
+ poolManager: "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC",
9
+ v4Quoter: "0x28566da1093609182dff2cb2a91cfd72e61d66cd",
10
+ stateView: "0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb",
11
+ universalRouter: "0xcb695bc5d3aa22cad1e6df07801b061a05a0233a",
12
+ permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
13
+ zeroHooks: "0x0000000000000000000000000000000000000000",
14
+ nativeCurrency: "0x0000000000000000000000000000000000000000",
15
+ };
16
+ export const UNISWAP_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/111767/uniswap-v-4-celo/version/latest";
17
+ /** Pool index cache TTL in milliseconds (default 5 minutes). */
18
+ export const UNISWAP_POOL_CACHE_TTL_MS = 5 * 60 * 1000;
19
+ /** Common v4 fee tiers and default tick spacings (probed on-chain when building index). */
20
+ export const UNISWAP_FEE_TIERS = [100, 500, 3000, 10000, 30000];
21
+ /** Default tick spacing per fee tier when probing pools on-chain. */
22
+ export const UNISWAP_DEFAULT_TICK_SPACING = {
23
+ 100: 1,
24
+ 500: 10,
25
+ 3000: 60,
26
+ 10000: 200,
27
+ 30000: 600,
28
+ };
29
+ /** Hub tokens for on-chain pool index fallback (Uniswap routing graph). */
30
+ export const UNISWAP_HUB_CURRENCIES = [
31
+ UNISWAP_V4.nativeCurrency,
32
+ MENTO_CELO_ADDRESS,
33
+ "0xceba9300f2b948710d2653dd7b07f33a8b32118c", // USDC
34
+ "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e", // USDT
35
+ "0xD221812de1BD094f35587EE8E174B07B6167D9Af", // WETH
36
+ "0x765de816845861e75a25fca122bb6898b8b1282a", // USDm
37
+ "0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A", // GoodDollar (G$)
38
+ ];
39
+ /** Sort two currency addresses for canonical pool key ordering. */
40
+ export function sortUniswapCurrencies(a, b) {
41
+ return a.toLowerCase() < b.toLowerCase() ? [a, b] : [b, a];
42
+ }
43
+ /** Normalize a pool key so `currency0` sorts before `currency1`. */
44
+ export function normalizeUniswapPoolKey(poolKey) {
45
+ const [currency0, currency1] = sortUniswapCurrencies(poolKey.currency0, poolKey.currency1);
46
+ return { ...poolKey, currency0, currency1 };
47
+ }
48
+ /** Map registry token to Uniswap v4 currency address (native CELO → address(0)). */
49
+ export function toUniswapCurrency(address) {
50
+ if (address === "native") {
51
+ return UNISWAP_V4.nativeCurrency;
52
+ }
53
+ return address;
54
+ }
55
+ /**
56
+ * Map registry token to the currency used for pool discovery / quoting.
57
+ * Celo v4 liquidity is on WCELO pairs, not native address(0).
58
+ */
59
+ export function toUniswapRoutingCurrency(address) {
60
+ if (address === "native") {
61
+ return MENTO_CELO_ADDRESS;
62
+ }
63
+ return address;
64
+ }
65
+ /** ERC-20 used as swap input when registry token is native CELO. */
66
+ export function uniswapInputTokenAddress(address) {
67
+ if (address === "native") {
68
+ return MENTO_CELO_ADDRESS;
69
+ }
70
+ return address;
71
+ }
72
+ /** Whether a v4 currency address is native CELO (`address(0)`). */
73
+ export function isNativeUniswapCurrency(currency) {
74
+ return currency.toLowerCase() === UNISWAP_V4.nativeCurrency;
75
+ }
76
+ //# sourceMappingURL=uniswap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../src/config/uniswap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,4CAAqD;IAClE,QAAQ,EAAE,4CAAqD;IAC/D,SAAS,EAAE,4CAAqD;IAChE,eAAe,EAAE,4CAAqD;IACtE,OAAO,EAAE,4CAAqD;IAC9D,SAAS,EAAE,4CAAqD;IAChE,cAAc,EAAE,4CAAqD;CAC7D,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8EAA8E,CAAC;AAEjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEzE,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,UAAU,CAAC,cAAc;IACzB,kBAAkB;IAClB,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,kBAAkB;CACjE,CAAC;AAWF,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CACnC,CAAgB,EAChB,CAAgB;IAEhB,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC7D,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAClD,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB,CAAC;IACF,OAAO,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAC/B,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,cAAc,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,wBAAwB,CACtC,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,uBAAuB,CAAC,QAAuB;IAC7D,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,cAAc,CAAC;AAC9D,CAAC"}