@andrewkimjoseph/celina-sdk 0.7.14 → 0.8.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.
- package/README.md +6 -39
- package/build/analytics/mcp-tool-events.js +0 -12
- package/build/analytics/mcp-tool-events.js.map +1 -1
- package/build/analytics/wallet-extract.js +0 -2
- package/build/analytics/wallet-extract.js.map +1 -1
- package/build/config/sdk-config.d.ts +0 -4
- package/build/config/sdk-config.js +0 -4
- package/build/config/sdk-config.js.map +1 -1
- package/build/index.d.ts +0 -10
- package/build/index.js +0 -7
- package/build/index.js.map +1 -1
- package/build/tools/domains/index.js +0 -2
- package/build/tools/domains/index.js.map +1 -1
- package/build/tools/filter.js +0 -13
- package/build/tools/filter.js.map +1 -1
- package/build/tools/index.d.ts +0 -1
- package/build/tools/index.js +0 -1
- package/build/tools/index.js.map +1 -1
- package/build/tools/schemas/common.d.ts +0 -10
- package/build/tools/schemas/common.js +0 -6
- package/build/tools/schemas/common.js.map +1 -1
- package/build/tools/types.d.ts +0 -26
- package/package.json +1 -2
- package/tests/catalog/operations.ts +2 -7
- package/build/clients/carbon-rest.d.ts +0 -17
- package/build/clients/carbon-rest.js +0 -59
- package/build/clients/carbon-rest.js.map +0 -1
- package/build/clients/carbon-sdk.d.ts +0 -31
- package/build/clients/carbon-sdk.js +0 -48
- package/build/clients/carbon-sdk.js.map +0 -1
- package/build/config/carbon.d.ts +0 -15
- package/build/config/carbon.js +0 -18
- package/build/config/carbon.js.map +0 -1
- package/build/services/carbon.service.d.ts +0 -73
- package/build/services/carbon.service.js +0 -204
- package/build/services/carbon.service.js.map +0 -1
- package/build/tools/domains/carbon.d.ts +0 -2
- package/build/tools/domains/carbon.js +0 -200
- package/build/tools/domains/carbon.js.map +0 -1
- package/build/tools/utils/carbon-prepare-handler.d.ts +0 -6
- package/build/tools/utils/carbon-prepare-handler.js +0 -17
- package/build/tools/utils/carbon-prepare-handler.js.map +0 -1
- package/build/types/carbon.d.ts +0 -31
- package/build/types/carbon.js +0 -2
- package/build/types/carbon.js.map +0 -1
- package/build/utils/carbon-execution.d.ts +0 -11
- package/build/utils/carbon-execution.js +0 -106
- package/build/utils/carbon-execution.js.map +0 -1
- package/build/utils/carbon-prepared-flow.d.ts +0 -11
- package/build/utils/carbon-prepared-flow.js +0 -28
- package/build/utils/carbon-prepared-flow.js.map +0 -1
- package/build/utils/carbon-rest-adapter.d.ts +0 -8
- package/build/utils/carbon-rest-adapter.js +0 -79
- package/build/utils/carbon-rest-adapter.js.map +0 -1
- package/build/utils/carbon-step-labels.d.ts +0 -12
- package/build/utils/carbon-step-labels.js +0 -180
- package/build/utils/carbon-step-labels.js.map +0 -1
- package/build/utils/carbon-token.d.ts +0 -10
- package/build/utils/carbon-token.js +0 -39
- package/build/utils/carbon-token.js.map +0 -1
- package/build/utils/finalize-carbon-prepare.d.ts +0 -10
- package/build/utils/finalize-carbon-prepare.js +0 -17
- package/build/utils/finalize-carbon-prepare.js.map +0 -1
- package/tests/catalog/domains/carbon.ts +0 -547
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { JsonRpcProvider } from "ethers";
|
|
2
|
-
import { ContractsApi } from "@bancor/carbon-sdk/contracts-api";
|
|
3
|
-
import { initSyncedCache } from "@bancor/carbon-sdk/chain-cache";
|
|
4
|
-
import { CELO_CARBON_CONTRACTS, CELO_CHAIN_ID, } from "../config/carbon.js";
|
|
5
|
-
import { populatedTransactionToPreparedFlow } from "../utils/carbon-prepared-flow.js";
|
|
6
|
-
const MAX_BLOCK_AGE = 2000;
|
|
7
|
-
export class CarbonSdkClient {
|
|
8
|
-
rpcUrl;
|
|
9
|
-
toolkit = null;
|
|
10
|
-
initPromise = null;
|
|
11
|
-
constructor(rpcUrl) {
|
|
12
|
-
this.rpcUrl = rpcUrl;
|
|
13
|
-
}
|
|
14
|
-
async getToolkit() {
|
|
15
|
-
if (this.toolkit)
|
|
16
|
-
return this.toolkit;
|
|
17
|
-
if (!this.initPromise) {
|
|
18
|
-
this.initPromise = this.initialize();
|
|
19
|
-
}
|
|
20
|
-
this.toolkit = await this.initPromise;
|
|
21
|
-
return this.toolkit;
|
|
22
|
-
}
|
|
23
|
-
async initialize() {
|
|
24
|
-
const strategyMod = (await import("@bancor/carbon-sdk/strategy-management"));
|
|
25
|
-
const { Toolkit } = strategyMod;
|
|
26
|
-
const provider = new JsonRpcProvider(this.rpcUrl, CELO_CHAIN_ID, {
|
|
27
|
-
staticNetwork: true,
|
|
28
|
-
});
|
|
29
|
-
const api = new ContractsApi(provider, CELO_CARBON_CONTRACTS);
|
|
30
|
-
const { cache, startDataSync } = initSyncedCache(api.reader, undefined, MAX_BLOCK_AGE);
|
|
31
|
-
const toolkit = new Toolkit(api, cache);
|
|
32
|
-
await startDataSync();
|
|
33
|
-
return toolkit;
|
|
34
|
-
}
|
|
35
|
-
async getTradeQuoteFallback(sourceToken, targetToken, amount, isTradeByTarget) {
|
|
36
|
-
const toolkit = await this.getToolkit();
|
|
37
|
-
const tradeData = await toolkit.getTradeData(sourceToken, targetToken, amount, isTradeByTarget);
|
|
38
|
-
return { tradeData };
|
|
39
|
-
}
|
|
40
|
-
async prepareTradeFallback(from, sourceToken, targetToken, amount, isTradeByTarget, minReturnOrMaxInput, deadlineMinutes = 5) {
|
|
41
|
-
const toolkit = await this.getToolkit();
|
|
42
|
-
const tradeData = await toolkit.getTradeData(sourceToken, targetToken, amount, isTradeByTarget);
|
|
43
|
-
const deadline = String(Math.floor(Date.now() / 1000) + deadlineMinutes * 60);
|
|
44
|
-
const tx = await toolkit.composeTradeBySourceTransaction(sourceToken, targetToken, tradeData.tradeActions, deadline, minReturnOrMaxInput);
|
|
45
|
-
return populatedTransactionToPreparedFlow(from, tx, `Carbon swap ${sourceToken} → ${targetToken}`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=carbon-sdk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carbon-sdk.js","sourceRoot":"","sources":["../../src/clients/carbon-sdk.ts"],"names":[],"mappings":"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"}
|
package/build/config/carbon.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** Carbon DeFi on Celo mainnet — contract addresses and API defaults. */
|
|
2
|
-
export declare const CARBON_CHAIN: "celo";
|
|
3
|
-
export declare const DEFAULT_CARBON_REST_BASE_URL = "https://mcp.carbondefi.xyz";
|
|
4
|
-
/** Matches @bancor/carbon-sdk `ContractsConfig` for Celo (carbon-contracts deployments). */
|
|
5
|
-
export declare const CELO_CARBON_CONTRACTS: {
|
|
6
|
-
readonly carbonControllerAddress: "0x6619871118D144c1c28eC3b23036FC1f0829ed3a";
|
|
7
|
-
readonly voucherAddress: "0x5E994Ac7d65d81f51a76e0bB5a236C6fDA8dBF9A";
|
|
8
|
-
/** Multicall3 on Celo mainnet. */
|
|
9
|
-
readonly multiCallAddress: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
10
|
-
readonly carbonBatcherAddress: "0xa977879684EecE2015AE879DC120c8a1C00718f7";
|
|
11
|
-
};
|
|
12
|
-
export declare const CELO_CHAIN_ID = 42220;
|
|
13
|
-
export declare const CARBON_APP_BASE_URL = "https://celo.carbondefi.xyz";
|
|
14
|
-
/** Post-execution activity explorer for a wallet on Carbon DeFi (Celo). */
|
|
15
|
-
export declare function carbonActivityDeepLink(walletAddress: string): string;
|
package/build/config/carbon.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/** Carbon DeFi on Celo mainnet — contract addresses and API defaults. */
|
|
2
|
-
export const CARBON_CHAIN = "celo";
|
|
3
|
-
export const DEFAULT_CARBON_REST_BASE_URL = "https://mcp.carbondefi.xyz";
|
|
4
|
-
/** Matches @bancor/carbon-sdk `ContractsConfig` for Celo (carbon-contracts deployments). */
|
|
5
|
-
export const CELO_CARBON_CONTRACTS = {
|
|
6
|
-
carbonControllerAddress: "0x6619871118D144c1c28eC3b23036FC1f0829ed3a",
|
|
7
|
-
voucherAddress: "0x5E994Ac7d65d81f51a76e0bB5a236C6fDA8dBF9A",
|
|
8
|
-
/** Multicall3 on Celo mainnet. */
|
|
9
|
-
multiCallAddress: "0xcA11bde05977b3631167028862bE2a173976CA11",
|
|
10
|
-
carbonBatcherAddress: "0xa977879684EecE2015AE879DC120c8a1C00718f7",
|
|
11
|
-
};
|
|
12
|
-
export const CELO_CHAIN_ID = 42220;
|
|
13
|
-
export const CARBON_APP_BASE_URL = "https://celo.carbondefi.xyz";
|
|
14
|
-
/** Post-execution activity explorer for a wallet on Carbon DeFi (Celo). */
|
|
15
|
-
export function carbonActivityDeepLink(walletAddress) {
|
|
16
|
-
return `${CARBON_APP_BASE_URL}/explore/activity?search=${walletAddress}`;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=carbon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carbon.js","sourceRoot":"","sources":["../../src/config/carbon.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B,CAAC;AAEzE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,uBAAuB,EAAE,4CAA4C;IACrE,cAAc,EAAE,4CAA4C;IAC5D,kCAAkC;IAClC,gBAAgB,EAAE,4CAA4C;IAC9D,oBAAoB,EAAE,4CAA4C;CAC1D,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,GAAG,mBAAmB,4BAA4B,aAAa,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Carbon DeFi on Celo — hybrid @bancor/carbon-sdk + Carbon REST (mcp.carbondefi.xyz).
|
|
3
|
-
* REST is primary for all 25 MCP tools; SDK is fallback for quotes/trades when REST fails.
|
|
4
|
-
*/
|
|
5
|
-
import type { SdkConfig } from "../config/sdk-config.js";
|
|
6
|
-
import type { CeloClientFactory } from "../clients/celo-client.js";
|
|
7
|
-
import type { CarbonPrepareResult, CarbonRestSuccess } from "../types/carbon.js";
|
|
8
|
-
import type { TokenService } from "./token.service.js";
|
|
9
|
-
import type { PreparedTx } from "../types/prepared.js";
|
|
10
|
-
export type CarbonWriteBody = Record<string, unknown> & {
|
|
11
|
-
wallet_address: `0x${string}`;
|
|
12
|
-
};
|
|
13
|
-
export declare class CarbonService {
|
|
14
|
-
private readonly tokenService;
|
|
15
|
-
private readonly clientFactory;
|
|
16
|
-
private readonly rest;
|
|
17
|
-
private readonly sdk;
|
|
18
|
-
constructor(config: SdkConfig, tokenService: TokenService, clientFactory: CeloClientFactory);
|
|
19
|
-
private restRead;
|
|
20
|
-
private restPrepare;
|
|
21
|
-
/** Build full on-chain steps (approvals + Carbon tx) for MCP local signing. */
|
|
22
|
-
buildExecutionSteps(from: `0x${string}`, prepared: CarbonPrepareResult, orderMeta: Record<string, unknown>): Promise<PreparedTx[]>;
|
|
23
|
-
private withSdkFallback;
|
|
24
|
-
getStrategies(walletAddress: `0x${string}`): Promise<CarbonRestSuccess & {
|
|
25
|
-
warnings: string[];
|
|
26
|
-
}>;
|
|
27
|
-
getStrategy(strategyId: string): Promise<CarbonRestSuccess & {
|
|
28
|
-
warnings: string[];
|
|
29
|
-
}>;
|
|
30
|
-
prepareLimitOrder(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
31
|
-
prepareRangeOrder(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
32
|
-
prepareRecurringStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
33
|
-
prepareConcentratedStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
34
|
-
prepareFullRangeStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
35
|
-
prepareRepriceStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
36
|
-
prepareEditStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
37
|
-
prepareDepositBudget(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
38
|
-
prepareWithdrawBudget(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
39
|
-
preparePauseStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
40
|
-
prepareResumeStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
41
|
-
prepareDeleteStrategy(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
42
|
-
getTradeQuote(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
43
|
-
warnings: string[];
|
|
44
|
-
}>;
|
|
45
|
-
prepareTrade(body: CarbonWriteBody): Promise<CarbonPrepareResult>;
|
|
46
|
-
explorePair(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
47
|
-
warnings: string[];
|
|
48
|
-
}>;
|
|
49
|
-
resolveToken(symbolOrName: string): Promise<CarbonRestSuccess & {
|
|
50
|
-
warnings: string[];
|
|
51
|
-
}>;
|
|
52
|
-
getActivity(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
53
|
-
warnings: string[];
|
|
54
|
-
}>;
|
|
55
|
-
findOpportunities(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
56
|
-
warnings: string[];
|
|
57
|
-
}>;
|
|
58
|
-
getProtocolStats(body?: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
59
|
-
warnings: string[];
|
|
60
|
-
}>;
|
|
61
|
-
getPriceHistory(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
62
|
-
warnings: string[];
|
|
63
|
-
}>;
|
|
64
|
-
simulateStrategy(body: Record<string, unknown>): Promise<CarbonRestSuccess & {
|
|
65
|
-
warnings: string[];
|
|
66
|
-
}>;
|
|
67
|
-
help(topic?: string): Promise<CarbonRestSuccess & {
|
|
68
|
-
warnings: string[];
|
|
69
|
-
}>;
|
|
70
|
-
learn(topic?: string): Promise<CarbonRestSuccess & {
|
|
71
|
-
warnings: string[];
|
|
72
|
-
}>;
|
|
73
|
-
}
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import { MENTO_CELO_ADDRESS } from "../config/chains.js";
|
|
2
|
-
import { CarbonRestClient } from "../clients/carbon-rest.js";
|
|
3
|
-
import { CarbonSdkClient } from "../clients/carbon-sdk.js";
|
|
4
|
-
import { extractWarnings, normalizeCarbonPrepareResult, } from "../utils/carbon-rest-adapter.js";
|
|
5
|
-
import { buildCarbonExecutionSteps } from "../utils/carbon-execution.js";
|
|
6
|
-
import { normalizeCarbonWriteBody, resolveCarbonTokenAddress, } from "../utils/carbon-token.js";
|
|
7
|
-
function walletAddress(value) {
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
export class CarbonService {
|
|
11
|
-
tokenService;
|
|
12
|
-
clientFactory;
|
|
13
|
-
rest;
|
|
14
|
-
sdk;
|
|
15
|
-
constructor(config, tokenService, clientFactory) {
|
|
16
|
-
this.tokenService = tokenService;
|
|
17
|
-
this.clientFactory = clientFactory;
|
|
18
|
-
this.rest = new CarbonRestClient(config.carbonRestBaseUrl);
|
|
19
|
-
this.sdk =
|
|
20
|
-
config.carbonSdkFallback !== false
|
|
21
|
-
? new CarbonSdkClient(config.rpcUrl)
|
|
22
|
-
: null;
|
|
23
|
-
}
|
|
24
|
-
async restRead(tool, body = {}) {
|
|
25
|
-
const result = await this.rest.postTool(tool, body);
|
|
26
|
-
return { ...result, warnings: extractWarnings(result) };
|
|
27
|
-
}
|
|
28
|
-
async restPrepare(tool, body, summary) {
|
|
29
|
-
const from = walletAddress(body.wallet_address);
|
|
30
|
-
const normalized = normalizeCarbonWriteBody(this.tokenService, body);
|
|
31
|
-
const result = await this.rest.postTool(tool, normalized);
|
|
32
|
-
return normalizeCarbonPrepareResult(from, result, summary);
|
|
33
|
-
}
|
|
34
|
-
/** Build full on-chain steps (approvals + Carbon tx) for MCP local signing. */
|
|
35
|
-
async buildExecutionSteps(from, prepared, orderMeta) {
|
|
36
|
-
return buildCarbonExecutionSteps(from, prepared, orderMeta, {
|
|
37
|
-
tokenService: this.tokenService,
|
|
38
|
-
clientFactory: this.clientFactory,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
async withSdkFallback(restFn, fallbackFn) {
|
|
42
|
-
try {
|
|
43
|
-
return await restFn();
|
|
44
|
-
}
|
|
45
|
-
catch (primary) {
|
|
46
|
-
if (!this.sdk)
|
|
47
|
-
throw primary;
|
|
48
|
-
return fallbackFn();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// --- Read (2) ---
|
|
52
|
-
async getStrategies(walletAddress) {
|
|
53
|
-
return this.restRead("get_strategies", { wallet_address: walletAddress });
|
|
54
|
-
}
|
|
55
|
-
async getStrategy(strategyId) {
|
|
56
|
-
return this.restRead("get_strategy", { strategy_id: strategyId });
|
|
57
|
-
}
|
|
58
|
-
// --- Create (5) ---
|
|
59
|
-
async prepareLimitOrder(body) {
|
|
60
|
-
return this.restPrepare("create_limit_order", body, "Carbon limit order");
|
|
61
|
-
}
|
|
62
|
-
async prepareRangeOrder(body) {
|
|
63
|
-
return this.restPrepare("create_range_order", body, "Carbon range order");
|
|
64
|
-
}
|
|
65
|
-
async prepareRecurringStrategy(body) {
|
|
66
|
-
return this.restPrepare("create_recurring_strategy", body, "Carbon recurring strategy");
|
|
67
|
-
}
|
|
68
|
-
async prepareConcentratedStrategy(body) {
|
|
69
|
-
return this.restPrepare("create_concentrated_strategy", body, "Carbon concentrated strategy");
|
|
70
|
-
}
|
|
71
|
-
async prepareFullRangeStrategy(body) {
|
|
72
|
-
return this.restPrepare("create_full_range_strategy", body, "Carbon full-range strategy");
|
|
73
|
-
}
|
|
74
|
-
// --- Manage (7) ---
|
|
75
|
-
async prepareRepriceStrategy(body) {
|
|
76
|
-
return this.restPrepare("reprice_strategy", body, "Carbon reprice strategy");
|
|
77
|
-
}
|
|
78
|
-
async prepareEditStrategy(body) {
|
|
79
|
-
return this.restPrepare("edit_strategy", body, "Carbon edit strategy");
|
|
80
|
-
}
|
|
81
|
-
async prepareDepositBudget(body) {
|
|
82
|
-
return this.restPrepare("deposit_budget", body, "Carbon deposit budget");
|
|
83
|
-
}
|
|
84
|
-
async prepareWithdrawBudget(body) {
|
|
85
|
-
return this.restPrepare("withdraw_budget", body, "Carbon withdraw budget");
|
|
86
|
-
}
|
|
87
|
-
async preparePauseStrategy(body) {
|
|
88
|
-
return this.restPrepare("pause_strategy", body, "Carbon pause strategy");
|
|
89
|
-
}
|
|
90
|
-
async prepareResumeStrategy(body) {
|
|
91
|
-
return this.restPrepare("resume_strategy", body, "Carbon resume strategy");
|
|
92
|
-
}
|
|
93
|
-
async prepareDeleteStrategy(body) {
|
|
94
|
-
return this.restPrepare("delete_strategy", body, "Carbon delete strategy");
|
|
95
|
-
}
|
|
96
|
-
// --- Trade (2) ---
|
|
97
|
-
async getTradeQuote(body) {
|
|
98
|
-
const amount = typeof body.amount === "string" ? Number(body.amount) : body.amount;
|
|
99
|
-
const normalized = normalizeCarbonWriteBody(this.tokenService, {
|
|
100
|
-
...body,
|
|
101
|
-
amount,
|
|
102
|
-
...(body.is_trade_by_target !== undefined
|
|
103
|
-
? { by_target: body.is_trade_by_target }
|
|
104
|
-
: {}),
|
|
105
|
-
});
|
|
106
|
-
return this.withSdkFallback(() => this.restRead("get_trade_quote", normalized), async () => {
|
|
107
|
-
if (!this.sdk)
|
|
108
|
-
throw new Error("Carbon SDK fallback unavailable");
|
|
109
|
-
const sourceToken = resolveCarbonTokenAddress(this.tokenService, String(normalized.source_token ?? normalized.token_in));
|
|
110
|
-
const targetToken = resolveCarbonTokenAddress(this.tokenService, String(normalized.target_token ?? normalized.token_out));
|
|
111
|
-
const amountStr = String(amount);
|
|
112
|
-
const isTradeByTarget = Boolean(body.is_trade_by_target ?? body.by_target);
|
|
113
|
-
const { tradeData } = await this.sdk.getTradeQuoteFallback(sourceToken, targetToken, amountStr, isTradeByTarget);
|
|
114
|
-
return {
|
|
115
|
-
status: "ok",
|
|
116
|
-
warnings: [],
|
|
117
|
-
source: "sdk_fallback",
|
|
118
|
-
...tradeData,
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
async prepareTrade(body) {
|
|
123
|
-
const normalized = normalizeCarbonWriteBody(this.tokenService, body);
|
|
124
|
-
try {
|
|
125
|
-
return await this.restPrepare("execute_trade", normalized, "Carbon taker swap");
|
|
126
|
-
}
|
|
127
|
-
catch (primary) {
|
|
128
|
-
if (!this.sdk)
|
|
129
|
-
throw primary;
|
|
130
|
-
const sourceToken = resolveCarbonTokenAddress(this.tokenService, String(normalized.source_token ?? normalized.token_in));
|
|
131
|
-
const targetToken = resolveCarbonTokenAddress(this.tokenService, String(normalized.target_token ?? normalized.token_out));
|
|
132
|
-
const amount = String(normalized.amount);
|
|
133
|
-
const minReturn = String(normalized.min_return ?? "0");
|
|
134
|
-
const preparedFlow = await this.sdk.prepareTradeFallback(walletAddress(normalized.wallet_address), sourceToken, targetToken, amount, false, minReturn);
|
|
135
|
-
return {
|
|
136
|
-
status: "ok",
|
|
137
|
-
warnings: [],
|
|
138
|
-
preparedFlow,
|
|
139
|
-
source: "sdk_fallback",
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
// --- Explore (8) ---
|
|
144
|
-
async explorePair(body) {
|
|
145
|
-
return this.restRead("explore_pair", body);
|
|
146
|
-
}
|
|
147
|
-
async resolveToken(symbolOrName) {
|
|
148
|
-
try {
|
|
149
|
-
return await this.restRead("resolve_token", {
|
|
150
|
-
token: symbolOrName,
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
catch {
|
|
154
|
-
const resolved = this.tokenService.resolveToken(symbolOrName);
|
|
155
|
-
const address = resolved.address === "native" ? MENTO_CELO_ADDRESS : resolved.address;
|
|
156
|
-
return {
|
|
157
|
-
status: "ok",
|
|
158
|
-
warnings: [],
|
|
159
|
-
symbol: resolved.symbol,
|
|
160
|
-
address,
|
|
161
|
-
decimals: resolved.decimals,
|
|
162
|
-
source: "celina_registry",
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
async getActivity(body) {
|
|
167
|
-
return this.restRead("get_activity", body);
|
|
168
|
-
}
|
|
169
|
-
async findOpportunities(body) {
|
|
170
|
-
return this.restRead("find_opportunities", body);
|
|
171
|
-
}
|
|
172
|
-
async getProtocolStats(body = {}) {
|
|
173
|
-
const { period_days, ...rest } = body;
|
|
174
|
-
return this.restRead("get_protocol_stats", {
|
|
175
|
-
...rest,
|
|
176
|
-
...(period_days !== undefined ? { days: period_days } : {}),
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
async getPriceHistory(body) {
|
|
180
|
-
const { period_days, days, ...rest } = body;
|
|
181
|
-
const lookback = days ?? period_days;
|
|
182
|
-
return this.restRead("get_price_history", {
|
|
183
|
-
...rest,
|
|
184
|
-
...(lookback !== undefined ? { days: lookback } : {}),
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
async simulateStrategy(body) {
|
|
188
|
-
const { days, ...rest } = body;
|
|
189
|
-
if (rest.start === undefined && rest.end === undefined && days !== undefined) {
|
|
190
|
-
const end = Math.floor(Date.now() / 1000);
|
|
191
|
-
const start = end - Number(days) * 86_400;
|
|
192
|
-
return this.restRead("simulate_strategy", { ...rest, start, end });
|
|
193
|
-
}
|
|
194
|
-
return this.restRead("simulate_strategy", body);
|
|
195
|
-
}
|
|
196
|
-
// --- Help (2) ---
|
|
197
|
-
async help(topic) {
|
|
198
|
-
return this.restRead("help", topic ? { topic } : {});
|
|
199
|
-
}
|
|
200
|
-
async learn(topic) {
|
|
201
|
-
return this.restRead("learn", topic ? { topic } : {});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=carbon.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carbon.service.js","sourceRoot":"","sources":["../../src/services/carbon.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { carbonWriteSchema, optionalWalletAddressSchema, } from "../schemas/common.js";
|
|
3
|
-
import { runCarbonPrepare } from "../utils/carbon-prepare-handler.js";
|
|
4
|
-
import { resolveWalletFromRuntime } from "../utils/wallet.js";
|
|
5
|
-
const readOnly = { readOnlyHint: true };
|
|
6
|
-
const tokenPairSchema = z.object({
|
|
7
|
-
base_token: z.string(),
|
|
8
|
-
quote_token: z.string(),
|
|
9
|
-
});
|
|
10
|
-
const CARBON_PREPARE_SUFFIX = " Returns unsigned steps (approvals + Carbon tx) and warnings. Prices are quote per base; buy budget in quote, sell budget in base.";
|
|
11
|
-
function carbonPrepare(name, title, description, prepareFn, options) {
|
|
12
|
-
return {
|
|
13
|
-
name,
|
|
14
|
-
description: description + CARBON_PREPARE_SUFFIX,
|
|
15
|
-
inputSchema: carbonWriteSchema,
|
|
16
|
-
families: ["prepare"],
|
|
17
|
-
mcp: { title, annotations: { openWorldHint: true } },
|
|
18
|
-
handler: (runtime, input) => runCarbonPrepare(runtime, name, (body) => prepareFn(runtime, body), input, options),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function carbonExecute(name, title, description, executeKey) {
|
|
22
|
-
return {
|
|
23
|
-
name,
|
|
24
|
-
description: description +
|
|
25
|
-
" Requires CELO_PRIVATE_KEY in MCP server env. Signs and broadcasts locally.",
|
|
26
|
-
inputSchema: z.object({}).passthrough(),
|
|
27
|
-
families: ["execute"],
|
|
28
|
-
surfaces: ["mcp"],
|
|
29
|
-
mcp: {
|
|
30
|
-
title,
|
|
31
|
-
annotations: { destructiveHint: true, openWorldHint: true },
|
|
32
|
-
},
|
|
33
|
-
handler: async (runtime, input) => {
|
|
34
|
-
const write = runtime.executors?.carbonWrite;
|
|
35
|
-
if (!write)
|
|
36
|
-
throw new Error("Carbon write executor not configured.");
|
|
37
|
-
const fn = write[executeKey];
|
|
38
|
-
return fn(input);
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export const carbonToolDefinitions = [
|
|
43
|
-
{
|
|
44
|
-
name: "get_carbon_strategies",
|
|
45
|
-
description: "Fetch active Carbon DeFi maker strategies for a wallet on Celo.",
|
|
46
|
-
inputSchema: z.object({
|
|
47
|
-
wallet_address: optionalWalletAddressSchema,
|
|
48
|
-
}),
|
|
49
|
-
families: ["read"],
|
|
50
|
-
mcp: { title: "Get Carbon Strategies", annotations: readOnly },
|
|
51
|
-
handler: async (runtime, input) => {
|
|
52
|
-
const wallet = resolveWalletFromRuntime(runtime, {
|
|
53
|
-
wallet_address: input.wallet_address,
|
|
54
|
-
});
|
|
55
|
-
return runtime.celina.carbon.getStrategies(wallet);
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "get_carbon_strategy",
|
|
60
|
-
description: "Look up a Carbon strategy by ID on Celo.",
|
|
61
|
-
inputSchema: z.object({
|
|
62
|
-
strategy_id: z.string(),
|
|
63
|
-
}),
|
|
64
|
-
families: ["read"],
|
|
65
|
-
mcp: { title: "Get Carbon Strategy", annotations: readOnly },
|
|
66
|
-
handler: async (runtime, input) => runtime.celina.carbon.getStrategy(input.strategy_id),
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: "get_carbon_trade_quote",
|
|
70
|
-
description: "Quote a taker swap against Carbon maker liquidity on Celo.",
|
|
71
|
-
inputSchema: z
|
|
72
|
-
.object({
|
|
73
|
-
source_token: z.string(),
|
|
74
|
-
target_token: z.string(),
|
|
75
|
-
amount: z.string(),
|
|
76
|
-
is_trade_by_target: z.boolean().optional(),
|
|
77
|
-
})
|
|
78
|
-
.passthrough(),
|
|
79
|
-
families: ["read"],
|
|
80
|
-
mcp: { title: "Get Carbon Trade Quote", annotations: readOnly },
|
|
81
|
-
handler: async (runtime, input) => runtime.celina.carbon.getTradeQuote(input),
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: "explore_carbon_pair",
|
|
85
|
-
description: "Market liquidity and top strategies for a token pair on Carbon.",
|
|
86
|
-
inputSchema: tokenPairSchema,
|
|
87
|
-
families: ["read"],
|
|
88
|
-
mcp: { title: "Explore Carbon Pair", annotations: readOnly },
|
|
89
|
-
handler: async (runtime, input) => runtime.celina.carbon.explorePair(input),
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "resolve_carbon_token",
|
|
93
|
-
description: "Resolve a token symbol or name to its Celo contract address.",
|
|
94
|
-
inputSchema: z.object({ token: z.string() }),
|
|
95
|
-
families: ["read"],
|
|
96
|
-
mcp: { title: "Resolve Carbon Token", annotations: readOnly },
|
|
97
|
-
handler: async (runtime, input) => runtime.celina.carbon.resolveToken(input.token),
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: "get_carbon_activity",
|
|
101
|
-
description: "Trade and event history for a wallet or strategy on Carbon.",
|
|
102
|
-
inputSchema: z
|
|
103
|
-
.object({
|
|
104
|
-
wallet_address: optionalWalletAddressSchema,
|
|
105
|
-
strategy_id: z.string().optional(),
|
|
106
|
-
})
|
|
107
|
-
.passthrough(),
|
|
108
|
-
families: ["read"],
|
|
109
|
-
mcp: { title: "Get Carbon Activity", annotations: readOnly },
|
|
110
|
-
handler: async (runtime, input) => {
|
|
111
|
-
const strategyId = input.strategy_id;
|
|
112
|
-
const explicitWallet = input.wallet_address;
|
|
113
|
-
if (strategyId) {
|
|
114
|
-
return runtime.celina.carbon.getActivity({
|
|
115
|
-
...input,
|
|
116
|
-
...(explicitWallet ? { wallet_address: explicitWallet } : {}),
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
const wallet_address = resolveWalletFromRuntime(runtime, {
|
|
120
|
-
wallet_address: explicitWallet,
|
|
121
|
-
});
|
|
122
|
-
return runtime.celina.carbon.getActivity({ ...input, wallet_address });
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
name: "find_carbon_opportunities",
|
|
127
|
-
description: "Find discount buys and premium sells vs market on a Carbon pair.",
|
|
128
|
-
inputSchema: tokenPairSchema.passthrough(),
|
|
129
|
-
families: ["read"],
|
|
130
|
-
mcp: { title: "Find Carbon Opportunities", annotations: readOnly },
|
|
131
|
-
handler: async (runtime, input) => runtime.celina.carbon.findOpportunities(input),
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
name: "get_carbon_protocol_stats",
|
|
135
|
-
description: "Carbon protocol-wide TVL, volume, and fees on Celo.",
|
|
136
|
-
inputSchema: z.object({}).passthrough(),
|
|
137
|
-
families: ["read"],
|
|
138
|
-
mcp: { title: "Get Carbon Protocol Stats", annotations: readOnly },
|
|
139
|
-
handler: async (runtime, input) => runtime.celina.carbon.getProtocolStats(input),
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
name: "get_carbon_price_history",
|
|
143
|
-
description: "Historical OHLC candles for a Carbon pair on Celo.",
|
|
144
|
-
inputSchema: z.object({}).passthrough(),
|
|
145
|
-
families: ["read"],
|
|
146
|
-
mcp: { title: "Get Carbon Price History", annotations: readOnly },
|
|
147
|
-
handler: async (runtime, input) => runtime.celina.carbon.getPriceHistory(input),
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
name: "simulate_carbon_strategy",
|
|
151
|
-
description: "Backtest a Carbon strategy against historical prices.",
|
|
152
|
-
inputSchema: z.object({}).passthrough(),
|
|
153
|
-
families: ["read"],
|
|
154
|
-
mcp: { title: "Simulate Carbon Strategy", annotations: readOnly },
|
|
155
|
-
handler: async (runtime, input) => runtime.celina.carbon.simulateStrategy(input),
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
name: "carbon_help",
|
|
159
|
-
description: "Per-tool guidance for Carbon DeFi operations on Celo.",
|
|
160
|
-
inputSchema: z.object({ topic: z.string().optional() }),
|
|
161
|
-
families: ["read"],
|
|
162
|
-
mcp: { title: "Carbon Help", annotations: readOnly },
|
|
163
|
-
handler: async (runtime, input) => runtime.celina.carbon.help(input.topic),
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
name: "carbon_learn",
|
|
167
|
-
description: "Carbon DeFi protocol education topics on Celo.",
|
|
168
|
-
inputSchema: z.object({ topic: z.string().optional() }),
|
|
169
|
-
families: ["read"],
|
|
170
|
-
mcp: { title: "Carbon Learn", annotations: readOnly },
|
|
171
|
-
handler: async (runtime, input) => runtime.celina.carbon.learn(input.topic),
|
|
172
|
-
},
|
|
173
|
-
carbonPrepare("prepare_carbon_limit_order", "Prepare Carbon Limit Order", "Create a one-time Carbon limit order on Celo.", (runtime, body) => runtime.celina.carbon.prepareLimitOrder(body), { marketPriceFallback: true }),
|
|
174
|
-
carbonPrepare("prepare_carbon_range_order", "Prepare Carbon Range Order", "Create a Carbon range order on Celo.", (runtime, body) => runtime.celina.carbon.prepareRangeOrder(body), { marketPriceFallback: true }),
|
|
175
|
-
carbonPrepare("prepare_carbon_recurring_strategy", "Prepare Carbon Recurring Strategy", "Create a recurring buy/sell Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareRecurringStrategy(body), { marketPriceFallback: true }),
|
|
176
|
-
carbonPrepare("prepare_carbon_concentrated_strategy", "Prepare Carbon Concentrated Strategy", "Create concentrated two-sided Carbon liquidity on Celo.", (runtime, body) => runtime.celina.carbon.prepareConcentratedStrategy(body), { concentrated: true, marketPriceFallback: true }),
|
|
177
|
-
carbonPrepare("prepare_carbon_full_range_strategy", "Prepare Carbon Full Range Strategy", "Create full-range Carbon liquidity on Celo.", (runtime, body) => runtime.celina.carbon.prepareFullRangeStrategy(body), { marketPriceFallback: true }),
|
|
178
|
-
carbonPrepare("prepare_carbon_reprice_strategy", "Prepare Carbon Reprice", "Update price ranges of an existing Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareRepriceStrategy(body)),
|
|
179
|
-
carbonPrepare("prepare_carbon_edit_strategy", "Prepare Carbon Edit Strategy", "Edit prices and budgets of a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareEditStrategy(body)),
|
|
180
|
-
carbonPrepare("prepare_carbon_deposit_budget", "Prepare Carbon Deposit", "Add funds to a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareDepositBudget(body)),
|
|
181
|
-
carbonPrepare("prepare_carbon_withdraw_budget", "Prepare Carbon Withdraw", "Withdraw funds from a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareWithdrawBudget(body)),
|
|
182
|
-
carbonPrepare("prepare_carbon_pause_strategy", "Prepare Carbon Pause", "Pause a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.preparePauseStrategy(body)),
|
|
183
|
-
carbonPrepare("prepare_carbon_resume_strategy", "Prepare Carbon Resume", "Resume a paused Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareResumeStrategy(body)),
|
|
184
|
-
carbonPrepare("prepare_carbon_delete_strategy", "Prepare Carbon Delete", "Permanently close a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareDeleteStrategy(body)),
|
|
185
|
-
carbonPrepare("prepare_carbon_trade", "Prepare Carbon Trade", "Build an unsigned taker swap against Carbon liquidity on Celo.", (runtime, body) => runtime.celina.carbon.prepareTrade(body)),
|
|
186
|
-
carbonExecute("execute_carbon_limit_order", "Execute Carbon Limit Order", "Create and broadcast a Carbon limit order on Celo.", "executeLimitOrder"),
|
|
187
|
-
carbonExecute("execute_carbon_range_order", "Execute Carbon Range Order", "Create and broadcast a Carbon range order on Celo.", "executeRangeOrder"),
|
|
188
|
-
carbonExecute("execute_carbon_recurring_strategy", "Execute Carbon Recurring Strategy", "Create and broadcast a recurring Carbon strategy on Celo.", "executeRecurringStrategy"),
|
|
189
|
-
carbonExecute("execute_carbon_concentrated_strategy", "Execute Carbon Concentrated Strategy", "Create and broadcast concentrated Carbon liquidity on Celo.", "executeConcentratedStrategy"),
|
|
190
|
-
carbonExecute("execute_carbon_full_range_strategy", "Execute Carbon Full Range Strategy", "Create and broadcast full-range Carbon liquidity on Celo.", "executeFullRangeStrategy"),
|
|
191
|
-
carbonExecute("execute_carbon_reprice_strategy", "Execute Carbon Reprice", "Update price ranges of a Carbon strategy on Celo.", "executeRepriceStrategy"),
|
|
192
|
-
carbonExecute("execute_carbon_edit_strategy", "Execute Carbon Edit Strategy", "Edit a Carbon strategy on Celo.", "executeEditStrategy"),
|
|
193
|
-
carbonExecute("execute_carbon_deposit_budget", "Execute Carbon Deposit", "Add funds to a Carbon strategy on Celo.", "executeDepositBudget"),
|
|
194
|
-
carbonExecute("execute_carbon_withdraw_budget", "Execute Carbon Withdraw", "Withdraw funds from a Carbon strategy on Celo.", "executeWithdrawBudget"),
|
|
195
|
-
carbonExecute("execute_carbon_pause_strategy", "Execute Carbon Pause", "Pause a Carbon strategy on Celo.", "executePauseStrategy"),
|
|
196
|
-
carbonExecute("execute_carbon_resume_strategy", "Execute Carbon Resume", "Resume a paused Carbon strategy on Celo.", "executeResumeStrategy"),
|
|
197
|
-
carbonExecute("execute_carbon_delete_strategy", "Execute Carbon Delete", "Permanently close a Carbon strategy on Celo.", "executeDeleteStrategy"),
|
|
198
|
-
carbonExecute("execute_carbon_trade", "Execute Carbon Trade", "Execute a taker swap against Carbon liquidity on Celo.", "executeTrade"),
|
|
199
|
-
];
|
|
200
|
-
//# sourceMappingURL=carbon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carbon.js","sourceRoot":"","sources":["../../../src/tools/domains/carbon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CarbonWriteBody } from "../../services/carbon.service.js";
|
|
2
|
-
import type { ToolRuntime } from "../types.js";
|
|
3
|
-
export declare function runCarbonPrepare(runtime: ToolRuntime, toolName: string, prepareFn: (body: CarbonWriteBody) => Promise<unknown>, input: Record<string, unknown>, options?: {
|
|
4
|
-
marketPriceFallback?: boolean;
|
|
5
|
-
concentrated?: boolean;
|
|
6
|
-
}): Promise<unknown>;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { finalizeCarbonPrepare } from "../../utils/finalize-carbon-prepare.js";
|
|
2
|
-
import { resolveWalletFromRuntime } from "./wallet.js";
|
|
3
|
-
export async function runCarbonPrepare(runtime, toolName, prepareFn, input, options) {
|
|
4
|
-
const sender = resolveWalletFromRuntime(runtime, {
|
|
5
|
-
wallet_address: input.wallet_address,
|
|
6
|
-
from: input.from,
|
|
7
|
-
});
|
|
8
|
-
const body = { ...input, wallet_address: sender };
|
|
9
|
-
if (runtime.hooks?.carbon?.prepare) {
|
|
10
|
-
return runtime.hooks.carbon.prepare(toolName, sender, prepareFn, body, options);
|
|
11
|
-
}
|
|
12
|
-
runtime.hooks?.carbon?.validateBody?.(toolName, body);
|
|
13
|
-
const prepared = await prepareFn(body);
|
|
14
|
-
const preparedFlow = await finalizeCarbonPrepare(runtime.celina.carbon, sender, prepared, body);
|
|
15
|
-
return { ...prepared, preparedFlow };
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=carbon-prepare-handler.js.map
|