@andrewkimjoseph/celina 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +33 -18
  2. package/build/clients/celo-client.d.ts +0 -1
  3. package/build/clients/celo-client.js +0 -19
  4. package/build/clients/celo-client.js.map +1 -1
  5. package/build/config/aave.d.ts +8 -2
  6. package/build/config/aave.js +51 -2
  7. package/build/config/aave.js.map +1 -1
  8. package/build/config/chains.js +7 -0
  9. package/build/config/chains.js.map +1 -1
  10. package/build/server/instructions.js +3 -3
  11. package/build/services/aave.service.d.ts +6 -6
  12. package/build/services/aave.service.js +40 -40
  13. package/build/services/aave.service.js.map +1 -1
  14. package/build/services/mento-fx.service.d.ts +1 -2
  15. package/build/services/mento-fx.service.js +5 -10
  16. package/build/services/mento-fx.service.js.map +1 -1
  17. package/build/services/self.service.d.ts +5 -8
  18. package/build/services/self.service.js +10 -14
  19. package/build/services/self.service.js.map +1 -1
  20. package/build/services/transaction.service.d.ts +3 -3
  21. package/build/services/transaction.service.js +7 -12
  22. package/build/services/transaction.service.js.map +1 -1
  23. package/build/tools/aave.tools.js +18 -19
  24. package/build/tools/aave.tools.js.map +1 -1
  25. package/build/tools/index.js +0 -2
  26. package/build/tools/index.js.map +1 -1
  27. package/build/tools/mento-fx.tools.js +4 -11
  28. package/build/tools/mento-fx.tools.js.map +1 -1
  29. package/build/tools/self.tools.js +11 -25
  30. package/build/tools/self.tools.js.map +1 -1
  31. package/build/tools/transaction.tools.js +6 -12
  32. package/build/tools/transaction.tools.js.map +1 -1
  33. package/package.json +2 -7
  34. package/build/crypto/wallet-key-crypto.d.ts +0 -11
  35. package/build/crypto/wallet-key-crypto.js +0 -57
  36. package/build/crypto/wallet-key-crypto.js.map +0 -1
  37. package/build/http.d.ts +0 -2
  38. package/build/http.js +0 -15
  39. package/build/http.js.map +0 -1
  40. package/build/server/create-http-app.d.ts +0 -1
  41. package/build/server/create-http-app.js +0 -147
  42. package/build/server/create-http-app.js.map +0 -1
  43. package/build/tools/wallet.tools.d.ts +0 -2
  44. package/build/tools/wallet.tools.js +0 -23
  45. package/build/tools/wallet.tools.js.map +0 -1
package/README.md CHANGED
@@ -102,29 +102,45 @@ For development from a cloned repo, point at your local `build/index.js`:
102
102
  }
103
103
  ```
104
104
 
105
- ## Local LLM integration
105
+ ## Run Celina with your own model
106
106
 
107
- Celina is an **MCP tool server**. A local LLM stack needs an **MCP client** that can connect to Celina and pass tool definitions to a model that supports **function / tool calling**.
107
+ Celina is a plain MCP server. Pair it with any MCP-aware local stack Ollama, LM Studio, llama.cpp through a client that supports tool calling.
108
108
 
109
- Read-only tools (balances, blocks, GoodDollar status, etc.) work out of the box. For write tools (`send_token`, `estimate_send`, `execute_mento_fx`, Aave supply/withdraw), set `CELO_PRIVATE_KEY` in the MCP server `env` block.
109
+ Read-only tools (balances, blocks, GoodDollar status, etc.) work out of the box. For write tools, set `CELO_PRIVATE_KEY` in the MCP server `env` block.
110
110
 
111
111
  ### LM Studio (0.3.17+)
112
112
 
113
- LM Studio can host MCP servers directly via `mcp.json`. After `npm i @andrewkimjoseph/celina`:
113
+ Native MCP hosting via `mcp.json`.
114
114
 
115
- 1. Open LM Studio → **Program** → **Install** → **Edit mcp.json**
116
- 2. Add Celina under `mcpServers` (same JSON as [Local stdio (recommended)](#local-stdio-recommended))
117
- 3. In **Server Settings**, enable **Allow calling servers from mcp.json**
118
- 4. Chat with a tool-capable model (e.g. Qwen 2.5, Llama 3.1+)
115
+ 1. **Program** → **Install** → **Edit mcp.json**
116
+ 2. Add Celina under `mcpServers`
117
+ 3. Enable **Allow calling servers from mcp.json**
118
+ 4. Chat with a tool-capable model (Qwen 2.5, Llama 3.1+)
119
119
 
120
- Omit both env vars for read-only chain queries.
120
+ ```json
121
+ {
122
+ "mcpServers": {
123
+ "celina": {
124
+ "type": "stdio",
125
+ "command": "npx",
126
+ "args": ["-y", "@andrewkimjoseph/celina"],
127
+ "env": {
128
+ "CELO_PRIVATE_KEY": "0x...",
129
+ "SELF_AGENT_PRIVATE_KEY": "0x..."
130
+ }
131
+ }
132
+ }
133
+ }
134
+ ```
135
+
136
+ Omit `CELO_PRIVATE_KEY` for read-only.
121
137
 
122
- ### Continue (VS Code)
138
+ ### Continue · VS Code
123
139
 
124
- [Continue](https://docs.continue.dev/customize/deep-dives/mcp) works with local models (Ollama, LM Studio, etc.) in **agent mode**.
140
+ Agent mode in your editor. Drop a YAML file into your workspace and Continue picks it up in agent mode.
125
141
 
126
- 1. Run `npm i @andrewkimjoseph/celina`
127
- 2. Create `.continue/mcpServers/celina.yaml` in your workspace
142
+ 1. Create `.continue/mcpServers/celina.yaml`
143
+ 2. Paste the snippet below
128
144
  3. Switch Continue to agent mode and prompt
129
145
 
130
146
  ```yaml
@@ -159,7 +175,7 @@ npm run inspect
159
175
 
160
176
  ## Write tools
161
177
 
162
- Set `CELO_PRIVATE_KEY` in your MCP server `env` block for on-chain writes (`send_token`, `estimate_send`, `execute_mento_fx`, `supply_aave_usdt`, `withdraw_aave_usdt`). Use `SELF_AGENT_PRIVATE_KEY` for Self agent signing tools. Keys stay on your machine and are not sent to Celina's authors.
178
+ Set `CELO_PRIVATE_KEY` in your MCP server `env` block for on-chain writes (`send_token`, `estimate_send`, `execute_mento_fx`, `supply_aave`, `withdraw_aave`). Use `SELF_AGENT_PRIVATE_KEY` for Self agent signing tools. Keys stay on your machine and are not sent to Celina's authors.
163
179
 
164
180
  ## Environment variables
165
181
 
@@ -200,14 +216,13 @@ Token symbols are resolved case-insensitively. Legacy aliases `cUSD` and `cEUR`
200
216
  | `get_celo_balances` | read | CELO + ERC-20 balances (default: CELO + USDm) |
201
217
  | `get_stablecoin_balances` | read | All registry stablecoins including GoodDollar |
202
218
  | `get_token_info` | read | Token metadata |
203
- | `get_wallet_encryption_public_key` | read | RSA public key (HTTP/self-hosted mode only) |
204
219
  | `estimate_send` | read* | Gas estimate (*needs `CELO_PRIVATE_KEY`) |
205
220
  | `send_token` | write | Send CELO or ERC-20 |
206
221
  | `get_mento_fx_quote` | read | Mento FX expected output (no wallet) |
207
222
  | `estimate_mento_fx` | read* | Mento FX gas estimate (*needs `CELO_PRIVATE_KEY`) |
208
223
  | `execute_mento_fx` | write | Execute Mento FX conversion |
209
- | `supply_aave_usdt` | write | Supply USDT to Aave V3 on Celo |
210
- | `withdraw_aave_usdt` | write | Withdraw USDT from Aave V3 on Celo |
224
+ | `supply_aave` | write | Supply tokens to Aave V3 on Celo (USDT, WETH, USDm, USDC, CELO, EURm) |
225
+ | `withdraw_aave` | write | Withdraw tokens from Aave V3 on Celo |
211
226
  | `get_gooddollar_whitelisting_info` | read | GoodDollar IdentityV4 whitelist status |
212
227
  | `verify_self_agent` | read | Verify Self Agent ID on-chain by address |
213
228
  | `lookup_self_agent` | read | Look up Self agent by numeric ID (ai.self.xyz) |
@@ -261,7 +276,7 @@ No changes to `src/index.ts` or server bootstrap required.
261
276
  ## Roadmap
262
277
 
263
278
  - [x] Mento FX routing (`get_mento_fx_quote`, `estimate_mento_fx`, `execute_mento_fx`)
264
- - [x] Aave lending tools (`supply_aave_usdt`, `withdraw_aave_usdt`)
279
+ - [x] Aave lending tools (`supply_aave`, `withdraw_aave`) — USDT, WETH, USDm, USDC, CELO, EURm
265
280
  - [x] Self proof verification (`verify_self_agent`, `verify_self_request`, `ai.self.xyz`)
266
281
  - [x] Self Agent ID check (`lookup_self_agent`, registration & lifecycle tools)
267
282
 
@@ -10,5 +10,4 @@ export declare class CeloClientFactory {
10
10
  private clients;
11
11
  constructor(config: AppConfig);
12
12
  getClients(): CeloClients;
13
- getClientsForAccount(privateKey: `0x${string}`): CeloClients;
14
13
  }
@@ -35,24 +35,5 @@ export class CeloClientFactory {
35
35
  };
36
36
  return this.clients;
37
37
  }
38
- getClientsForAccount(privateKey) {
39
- const rpcUrl = this.config.rpcUrl ?? DEFAULT_RPC_URL;
40
- const transport = http(rpcUrl);
41
- const publicClient = createPublicClient({
42
- chain: CHAIN,
43
- transport,
44
- });
45
- const account = privateKeyToAccount(privateKey);
46
- const wallet = createWalletClient({
47
- account,
48
- chain: CHAIN,
49
- transport,
50
- });
51
- return {
52
- public: publicClient,
53
- wallet,
54
- accountAddress: account.address,
55
- };
56
- }
57
38
  }
58
39
  //# sourceMappingURL=celo-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"celo-client.js","sourceRoot":"","sources":["../../src/clients/celo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ7D,MAAM,OAAO,iBAAiB;IAGC;IAFrB,OAAO,GAAuB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAiB,CAAC;QAEnB,IAAI,MAAgC,CAAC;QACrC,IAAI,cAAyC,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,MAAM,GAAG,kBAAkB,CAAC;gBAC1B,OAAO;gBACP,KAAK,EAAE,KAAK;gBACZ,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,YAAY;YACpB,MAAM;YACN,cAAc;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,oBAAoB,CAAC,UAAyB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAiB,CAAC;QACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAChC,OAAO;YACP,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM;YACN,cAAc,EAAE,OAAO,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"celo-client.js","sourceRoot":"","sources":["../../src/clients/celo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ7D,MAAM,OAAO,iBAAiB;IAGC;IAFrB,OAAO,GAAuB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAiB,CAAC;QAEnB,IAAI,MAAgC,CAAC;QACrC,IAAI,cAAyC,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,MAAM,GAAG,kBAAkB,CAAC;gBAC1B,OAAO;gBACP,KAAK,EAAE,KAAK;gBACZ,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,YAAY;YACpB,MAAM;YACN,cAAc;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -1,5 +1,11 @@
1
1
  /** Aave V3 on Celo mainnet — from bgd-labs/aave-address-book AaveV3Celo */
2
2
  export declare const AAVE_POOL: "0x3E59A31363E2ad014dcbc521c4a0d5757d9f3402";
3
- export declare const AAVE_USDT: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e";
4
- export declare const AAVE_USDT_A_TOKEN: "0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df";
5
3
  export declare const AAVE_CHAIN_ID = 42220;
4
+ export type AaveAsset = {
5
+ symbol: string;
6
+ underlying: `0x${string}`;
7
+ aToken: `0x${string}`;
8
+ };
9
+ export declare const AAVE_ASSETS: Record<string, AaveAsset>;
10
+ export declare const AAVE_SUPPORTED_SYMBOLS: readonly ["USDT", "WETH", "USDm", "USDC", "CELO", "EURm"];
11
+ export declare function resolveAaveAsset(token: string): AaveAsset;
@@ -1,6 +1,55 @@
1
+ import { findKnownToken } from "./chains.js";
1
2
  /** Aave V3 on Celo mainnet — from bgd-labs/aave-address-book AaveV3Celo */
2
3
  export const AAVE_POOL = "0x3E59A31363E2ad014dcbc521c4a0d5757d9f3402";
3
- export const AAVE_USDT = "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e";
4
- export const AAVE_USDT_A_TOKEN = "0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df";
5
4
  export const AAVE_CHAIN_ID = 42220;
5
+ export const AAVE_ASSETS = {
6
+ USDT: {
7
+ symbol: "USDT",
8
+ underlying: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
9
+ aToken: "0xDeE98402A302e4D707fB9bf2bac66fAEEc31e8Df",
10
+ },
11
+ WETH: {
12
+ symbol: "WETH",
13
+ underlying: "0xD221812de1BD094f35587EE8E174B07B6167D9Af",
14
+ aToken: "0xf385280F36e009C157697D25E0B802EfaBfd789c",
15
+ },
16
+ USDm: {
17
+ symbol: "USDm",
18
+ underlying: "0x765DE816845861e75A25fCA122bb6898B8B1282a",
19
+ aToken: "0xBba98352628B0B0c4b40583F593fFCb630935a45",
20
+ },
21
+ USDC: {
22
+ symbol: "USDC",
23
+ underlying: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
24
+ aToken: "0xFF8309b9e99bfd2D4021bc71a362aBD93dBd4785",
25
+ },
26
+ CELO: {
27
+ symbol: "CELO",
28
+ underlying: "0x471EcE3750Da237f93B8E339c536989b8978a438",
29
+ aToken: "0xC3e77dC389537Db1EEc7C33B95Cf3beECA71A209",
30
+ },
31
+ EURm: {
32
+ symbol: "EURm",
33
+ underlying: "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73",
34
+ aToken: "0x34c02571094e08E935B8cf8dC10F1Ad6795f1f81",
35
+ },
36
+ };
37
+ export const AAVE_SUPPORTED_SYMBOLS = [
38
+ "USDT",
39
+ "WETH",
40
+ "USDm",
41
+ "USDC",
42
+ "CELO",
43
+ "EURm",
44
+ ];
45
+ export function resolveAaveAsset(token) {
46
+ const normalized = token.trim();
47
+ const known = findKnownToken(normalized);
48
+ const symbol = known?.symbol ?? normalized.toUpperCase();
49
+ const asset = AAVE_ASSETS[symbol];
50
+ if (!asset) {
51
+ throw new Error(`Token "${token}" is not supported on Aave V3 Celo. Supported: ${AAVE_SUPPORTED_SYMBOLS.join(", ")}.`);
52
+ }
53
+ return asset;
54
+ }
6
55
  //# sourceMappingURL=aave.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aave.js","sourceRoot":"","sources":["../../src/config/aave.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,4CAAqD,CAAC;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAG,4CAAqD,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,4CAAqD,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"aave.js","sourceRoot":"","sources":["../../src/config/aave.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,4CAAqD,CAAC;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAQnC,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;IAEzD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,kDAAkD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtG,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -130,6 +130,13 @@ export const KNOWN_TOKENS = [
130
130
  useCase: "Widely used stablecoin with high liquidity",
131
131
  decimals: 6,
132
132
  },
133
+ {
134
+ symbol: "WETH",
135
+ address: "0xD221812de1BD094f35587EE8E174B07B6167D9Af",
136
+ issuer: "Wrapped Ether",
137
+ useCase: "Bridged ETH on Celo",
138
+ decimals: 18,
139
+ },
133
140
  {
134
141
  symbol: "vEUR",
135
142
  address: "0x9346f43c1588b6df1d52bdd6bf846064f92d9cba",
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,12 @@ Guidelines:
11
11
  - Use get_stablecoin_balances to scan all stablecoins at once; use get_celo_balances with a tokens list for specific symbols.
12
12
  - Use get_gooddollar_whitelisting_info to check GoodDollar IdentityV4 whitelist status, whitelisting date, and reverification progress for a wallet.
13
13
  - Mento FX tools (get_mento_fx_quote, estimate_mento_fx, execute_mento_fx) convert between Mento oracle-priced tokens (USDm, EURm, CELO, etc.). They are unavailable when the Mento FX market is closed.
14
- - Aave tools (supply_aave_usdt, withdraw_aave_usdt) supply and withdraw USDT on Aave V3 Celo. Use get_celo_balances with tokens ["USDT"] before supplying; use withdrawMax on withdraw to redeem the full supplied balance.
14
+ - Aave tools (supply_aave, withdraw_aave) supply and withdraw tokens on Aave V3 Celo. Supported: USDT, WETH, USDm, USDC, CELO, EURm. Use get_celo_balances with the target token before supplying; CELO requires wrapped CELO (ERC-20), not native CELO; use withdrawMax on withdraw to redeem the full supplied balance.
15
15
  - Self Agent ID tools (ai.self.xyz on Celo mainnet):
16
16
  - Read: verify_self_agent, lookup_self_agent, verify_self_request, get_self_identity
17
17
  - Register: register_self_agent → human scans QR → check_self_registration (returns private_key_hex on success)
18
18
  - Lifecycle: refresh_self_proof (only after on-chain proof expiry), deregister_self_agent (poll with check_self_registration)
19
- - Auth: sign_self_request, authenticated_self_fetch (require SELF_AGENT_PRIVATE_KEY or encryptedSelfAgentPrivateKey). For Self demo/gated APIs use ?network=celo-mainnet (not mainnet), e.g. POST https://app.ai.self.xyz/api/demo/verify?network=celo-mainnet
20
- - Self agent keys are separate from CELO_PRIVATE_KEY. Registration sessions are in-memory (~10 min TTL); HTTP multi-instance hosting may require sticky sessions.
19
+ - Auth: sign_self_request, authenticated_self_fetch (require SELF_AGENT_PRIVATE_KEY). For Self demo/gated APIs use ?network=celo-mainnet (not mainnet), e.g. POST https://app.ai.self.xyz/api/demo/verify?network=celo-mainnet
20
+ - Self agent keys are separate from CELO_PRIVATE_KEY. Registration sessions are in-memory (~10 min TTL).
21
21
  `.trim();
22
22
  //# sourceMappingURL=instructions.js.map
@@ -3,12 +3,12 @@ export declare class AaveService {
3
3
  private readonly clientFactory;
4
4
  private readonly tokenService;
5
5
  constructor(clientFactory: CeloClientFactory);
6
- private resolveClients;
6
+ private requireClients;
7
7
  private requireWallet;
8
- private assertUsdtBalance;
9
- private assertSuppliedBalance;
10
- private ensureUsdtAllowance;
11
- supplyUsdt(amount: string, encryptedPrivateKey?: string): Promise<{
8
+ private assertUnderlyingBalance;
9
+ private assertATokenBalance;
10
+ private ensureAllowance;
11
+ supply(token: string, amount: string): Promise<{
12
12
  from: `0x${string}`;
13
13
  amount: string;
14
14
  token: string;
@@ -17,7 +17,7 @@ export declare class AaveService {
17
17
  approvalHash: `0x${string}` | undefined;
18
18
  operation: string;
19
19
  }>;
20
- withdrawUsdt(amount: string | undefined, encryptedPrivateKey?: string, withdrawMax?: boolean): Promise<{
20
+ withdraw(token: string, amount: string | undefined, withdrawMax?: boolean): Promise<{
21
21
  from: `0x${string}`;
22
22
  amount: string;
23
23
  token: string;
@@ -1,8 +1,7 @@
1
1
  import { erc20Abi } from "viem";
2
2
  import { aavePoolAbi } from "../abis/aave-pool.js";
3
- import { AAVE_POOL, AAVE_USDT, AAVE_USDT_A_TOKEN } from "../config/aave.js";
3
+ import { AAVE_POOL, resolveAaveAsset, } from "../config/aave.js";
4
4
  import { CELINA_DATA_SUFFIX } from "../config/celina-tag.js";
5
- import { decryptPrivateKey } from "../crypto/wallet-key-crypto.js";
6
5
  import { TokenService } from "./token.service.js";
7
6
  export class AaveService {
8
7
  clientFactory;
@@ -11,21 +10,17 @@ export class AaveService {
11
10
  this.clientFactory = clientFactory;
12
11
  this.tokenService = new TokenService(clientFactory);
13
12
  }
14
- resolveClients(encryptedPrivateKey) {
15
- if (encryptedPrivateKey) {
16
- const privateKey = decryptPrivateKey(encryptedPrivateKey);
17
- return this.clientFactory.getClientsForAccount(privateKey);
18
- }
13
+ requireClients() {
19
14
  const clients = this.clientFactory.getClients();
20
15
  if (!clients.wallet || !clients.accountAddress) {
21
- throw new Error("No wallet configured. Provide encryptedPrivateKey (encrypt with get_wallet_encryption_public_key) or set CELO_PRIVATE_KEY for local mode.");
16
+ throw new Error("No wallet configured. Set CELO_PRIVATE_KEY in the MCP server env.");
22
17
  }
23
18
  return clients;
24
19
  }
25
20
  requireWallet(clients) {
26
21
  const { public: publicClient, wallet, accountAddress: from } = clients;
27
22
  if (!wallet || !from) {
28
- throw new Error("Wallet client unavailable. Provide encryptedPrivateKey or set CELO_PRIVATE_KEY.");
23
+ throw new Error("Wallet client unavailable. Set CELO_PRIVATE_KEY in the MCP server env.");
29
24
  }
30
25
  const account = wallet.account;
31
26
  if (!account) {
@@ -37,35 +32,38 @@ export class AaveService {
37
32
  }
38
33
  return { publicClient, wallet, from, account, chain };
39
34
  }
40
- async assertUsdtBalance(publicClient, owner, amount) {
41
- const usdt = this.tokenService.resolveToken("USDT");
42
- const required = this.tokenService.parseAmount(amount, usdt.decimals);
35
+ async assertUnderlyingBalance(asset, publicClient, owner, amount) {
36
+ const token = this.tokenService.resolveToken(asset.symbol);
37
+ const required = this.tokenService.parseAmount(amount, token.decimals);
43
38
  const balance = await publicClient.readContract({
44
- address: AAVE_USDT,
39
+ address: asset.underlying,
45
40
  abi: erc20Abi,
46
41
  functionName: "balanceOf",
47
42
  args: [owner],
48
43
  });
49
44
  if (balance < required) {
50
- throw new Error(`Insufficient USDT balance. Required ${amount} USDT, available ${balance.toString()} raw units.`);
45
+ const celoHint = asset.symbol === "CELO"
46
+ ? " Aave requires wrapped CELO (ERC-20), not native CELO."
47
+ : "";
48
+ throw new Error(`Insufficient ${asset.symbol} balance. Required ${amount} ${asset.symbol}, available ${balance.toString()} raw units.${celoHint}`);
51
49
  }
52
50
  }
53
- async assertSuppliedBalance(publicClient, owner, amount) {
54
- const usdt = this.tokenService.resolveToken("USDT");
55
- const required = this.tokenService.parseAmount(amount, usdt.decimals);
51
+ async assertATokenBalance(asset, publicClient, owner, amount) {
52
+ const token = this.tokenService.resolveToken(asset.symbol);
53
+ const required = this.tokenService.parseAmount(amount, token.decimals);
56
54
  const balance = await publicClient.readContract({
57
- address: AAVE_USDT_A_TOKEN,
55
+ address: asset.aToken,
58
56
  abi: erc20Abi,
59
57
  functionName: "balanceOf",
60
58
  args: [owner],
61
59
  });
62
60
  if (balance < required) {
63
- throw new Error(`Insufficient Aave USDT supply balance. Required ${amount} USDT, available ${balance.toString()} raw aToken units.`);
61
+ throw new Error(`Insufficient Aave ${asset.symbol} supply balance. Required ${amount} ${asset.symbol}, available ${balance.toString()} raw aToken units.`);
64
62
  }
65
63
  }
66
- async ensureUsdtAllowance(publicClient, wallet, from, account, chain, amountWei) {
64
+ async ensureAllowance(underlying, tokenSymbol, publicClient, wallet, from, account, chain, amountWei) {
67
65
  const allowance = await publicClient.readContract({
68
- address: AAVE_USDT,
66
+ address: underlying,
69
67
  abi: erc20Abi,
70
68
  functionName: "allowance",
71
69
  args: [from, AAVE_POOL],
@@ -76,7 +74,7 @@ export class AaveService {
76
74
  const approvalHash = await wallet.writeContract({
77
75
  chain,
78
76
  account,
79
- address: AAVE_USDT,
77
+ address: underlying,
80
78
  abi: erc20Abi,
81
79
  functionName: "approve",
82
80
  args: [AAVE_POOL, amountWei],
@@ -84,24 +82,25 @@ export class AaveService {
84
82
  });
85
83
  const receipt = await publicClient.waitForTransactionReceipt({ hash: approvalHash });
86
84
  if (receipt.status === "reverted") {
87
- throw new Error(`USDT approval reverted: ${approvalHash}`);
85
+ throw new Error(`${tokenSymbol} approval reverted: ${approvalHash}`);
88
86
  }
89
87
  return approvalHash;
90
88
  }
91
- async supplyUsdt(amount, encryptedPrivateKey) {
92
- const clients = this.resolveClients(encryptedPrivateKey);
89
+ async supply(token, amount) {
90
+ const asset = resolveAaveAsset(token);
91
+ const clients = this.requireClients();
93
92
  const { publicClient, wallet, from, account, chain } = this.requireWallet(clients);
94
- await this.assertUsdtBalance(publicClient, from, amount);
95
- const usdt = this.tokenService.resolveToken("USDT");
96
- const amountWei = this.tokenService.parseAmount(amount, usdt.decimals);
97
- const approvalHash = await this.ensureUsdtAllowance(publicClient, wallet, from, account, chain, amountWei);
93
+ await this.assertUnderlyingBalance(asset, publicClient, from, amount);
94
+ const resolved = this.tokenService.resolveToken(asset.symbol);
95
+ const amountWei = this.tokenService.parseAmount(amount, resolved.decimals);
96
+ const approvalHash = await this.ensureAllowance(asset.underlying, asset.symbol, publicClient, wallet, from, account, chain, amountWei);
98
97
  const hash = await wallet.writeContract({
99
98
  chain,
100
99
  account,
101
100
  address: AAVE_POOL,
102
101
  abi: aavePoolAbi,
103
102
  functionName: "supply",
104
- args: [AAVE_USDT, amountWei, from, 0],
103
+ args: [asset.underlying, amountWei, from, 0],
105
104
  dataSuffix: CELINA_DATA_SUFFIX,
106
105
  });
107
106
  const receipt = await publicClient.waitForTransactionReceipt({ hash });
@@ -111,33 +110,34 @@ export class AaveService {
111
110
  return {
112
111
  from,
113
112
  amount,
114
- token: "USDT",
113
+ token: asset.symbol,
115
114
  market: AAVE_POOL,
116
115
  hash,
117
116
  approvalHash,
118
117
  operation: "SUPPLY",
119
118
  };
120
119
  }
121
- async withdrawUsdt(amount, encryptedPrivateKey, withdrawMax) {
122
- const clients = this.resolveClients(encryptedPrivateKey);
120
+ async withdraw(token, amount, withdrawMax) {
121
+ const asset = resolveAaveAsset(token);
122
+ const clients = this.requireClients();
123
123
  const { publicClient, wallet, from, account, chain } = this.requireWallet(clients);
124
124
  if (!withdrawMax && !amount) {
125
125
  throw new Error("Provide amount or set withdrawMax to true.");
126
126
  }
127
127
  if (!withdrawMax && amount) {
128
- await this.assertSuppliedBalance(publicClient, from, amount);
128
+ await this.assertATokenBalance(asset, publicClient, from, amount);
129
129
  }
130
- const usdt = this.tokenService.resolveToken("USDT");
130
+ const resolved = this.tokenService.resolveToken(asset.symbol);
131
131
  const amountWei = withdrawMax
132
132
  ? await publicClient.readContract({
133
- address: AAVE_USDT_A_TOKEN,
133
+ address: asset.aToken,
134
134
  abi: erc20Abi,
135
135
  functionName: "balanceOf",
136
136
  args: [from],
137
137
  })
138
- : this.tokenService.parseAmount(amount, usdt.decimals);
138
+ : this.tokenService.parseAmount(amount, resolved.decimals);
139
139
  if (amountWei === 0n) {
140
- throw new Error("No supplied USDT balance to withdraw.");
140
+ throw new Error(`No supplied ${asset.symbol} balance to withdraw.`);
141
141
  }
142
142
  const hash = await wallet.writeContract({
143
143
  chain,
@@ -145,7 +145,7 @@ export class AaveService {
145
145
  address: AAVE_POOL,
146
146
  abi: aavePoolAbi,
147
147
  functionName: "withdraw",
148
- args: [AAVE_USDT, amountWei, from],
148
+ args: [asset.underlying, amountWei, from],
149
149
  dataSuffix: CELINA_DATA_SUFFIX,
150
150
  });
151
151
  const receipt = await publicClient.waitForTransactionReceipt({ hash });
@@ -155,7 +155,7 @@ export class AaveService {
155
155
  return {
156
156
  from,
157
157
  amount: withdrawMax ? "max" : amount,
158
- token: "USDT",
158
+ token: asset.symbol,
159
159
  market: AAVE_POOL,
160
160
  hash,
161
161
  operation: "WITHDRAW",
@@ -1 +1 @@
1
- {"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,WAAW;IAGO;IAFZ,YAAY,CAAe;IAE5C,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IAEO,cAAc,CAAC,mBAA4B;QACjD,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,2IAA2I,CAC5I,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,OAAoB;QACxC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAEvE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,YAAmC,EACnC,KAAoB,EACpB,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,uCAAuC,MAAM,oBAAoB,OAAO,CAAC,QAAQ,EAAE,aAAa,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,YAAmC,EACnC,KAAoB,EACpB,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,oBAAoB,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CACpH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,YAAmC,EACnC,MAA0C,EAC1C,IAAmB,EACnB,OAAmE,EACnE,KAAkD,EAClD,SAAiB;QAEjB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,KAAK;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YAC5B,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,mBAA4B;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnF,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACjD,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,KAAK,EACL,SAAS,CACV,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YACtC,KAAK;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,IAAI;YACJ,MAAM;YACN,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,SAAS;YACjB,IAAI;YACJ,YAAY;YACZ,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAA0B,EAC1B,mBAA4B,EAC5B,WAAqB;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnF,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,WAAW;YAC3B,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;gBAC9B,OAAO,EAAE,iBAAiB;gBAC1B,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC;aACb,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1D,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YACtC,KAAK;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;YAClC,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAO;YACrC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,SAAS;YACjB,IAAI;YACJ,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;SAClC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,12 @@ export interface MentoFxParams {
3
3
  slippageTolerance?: number;
4
4
  deadlineMinutes?: number;
5
5
  recipient?: `0x${string}`;
6
- encryptedPrivateKey?: string;
7
6
  }
8
7
  export declare class MentoFxService {
9
8
  private readonly clientFactory;
10
9
  private readonly tokenService;
11
10
  constructor(clientFactory: CeloClientFactory);
12
- private resolveClients;
11
+ private requireClients;
13
12
  private getMentoClient;
14
13
  private resolveMentoPair;
15
14
  private fxOptions;
@@ -2,7 +2,6 @@ import { concat, decodeFunctionData, erc20Abi, formatUnits } from "viem";
2
2
  import { ChainId, deadlineFromMinutes, Mento, RouteNotFoundError, FXMarketClosedError, } from "../clients/mento-sdk.js";
3
3
  import { CELINA_DATA_SUFFIX } from "../config/celina-tag.js";
4
4
  import { toMentoTokenAddress } from "../config/chains.js";
5
- import { decryptPrivateKey } from "../crypto/wallet-key-crypto.js";
6
5
  import { ALLOWANCE_MAPPING_SLOTS, erc20AllowanceStateOverride, isLikelyTransferFailed, } from "../utils/erc20-allowance-storage.js";
7
6
  import { TokenService } from "./token.service.js";
8
7
  const DEFAULT_SLIPPAGE = 0.5;
@@ -36,14 +35,10 @@ export class MentoFxService {
36
35
  this.clientFactory = clientFactory;
37
36
  this.tokenService = new TokenService(clientFactory);
38
37
  }
39
- resolveClients(encryptedPrivateKey) {
40
- if (encryptedPrivateKey) {
41
- const privateKey = decryptPrivateKey(encryptedPrivateKey);
42
- return this.clientFactory.getClientsForAccount(privateKey);
43
- }
38
+ requireClients() {
44
39
  const clients = this.clientFactory.getClients();
45
40
  if (!clients.wallet || !clients.accountAddress) {
46
- throw new Error("No wallet configured. Provide encryptedPrivateKey (encrypt with get_wallet_encryption_public_key) or set CELO_PRIVATE_KEY for local mode.");
41
+ throw new Error("No wallet configured. Set CELO_PRIVATE_KEY in the MCP server env.");
47
42
  }
48
43
  return clients;
49
44
  }
@@ -190,7 +185,7 @@ export class MentoFxService {
190
185
  }
191
186
  }
192
187
  async estimateFx(tokenIn, tokenOut, amount, params) {
193
- const { public: client, accountAddress: from } = this.resolveClients(params?.encryptedPrivateKey);
188
+ const { public: client, accountAddress: from } = this.requireClients();
194
189
  if (!from) {
195
190
  throw new Error("Wallet address unavailable.");
196
191
  }
@@ -226,9 +221,9 @@ export class MentoFxService {
226
221
  }
227
222
  }
228
223
  async executeFx(tokenIn, tokenOut, amount, params) {
229
- const { public: client, wallet, accountAddress: from } = this.resolveClients(params?.encryptedPrivateKey);
224
+ const { public: client, wallet, accountAddress: from } = this.requireClients();
230
225
  if (!wallet || !from) {
231
- throw new Error("Wallet client unavailable. Provide encryptedPrivateKey or set CELO_PRIVATE_KEY.");
226
+ throw new Error("Wallet client unavailable. Set CELO_PRIVATE_KEY in the MCP server env.");
232
227
  }
233
228
  const { resolvedIn, resolvedOut, mentoIn, mentoOut } = this.resolveMentoPair(tokenIn, tokenOut);
234
229
  const recipient = params?.recipient ?? from;