@andrewkimjoseph/celina-sdk 0.7.13 → 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.
Files changed (67) hide show
  1. package/README.md +6 -39
  2. package/build/analytics/mcp-tool-events.js +0 -12
  3. package/build/analytics/mcp-tool-events.js.map +1 -1
  4. package/build/analytics/wallet-extract.js +0 -2
  5. package/build/analytics/wallet-extract.js.map +1 -1
  6. package/build/config/sdk-config.d.ts +0 -4
  7. package/build/config/sdk-config.js +0 -4
  8. package/build/config/sdk-config.js.map +1 -1
  9. package/build/index.d.ts +0 -10
  10. package/build/index.js +0 -7
  11. package/build/index.js.map +1 -1
  12. package/build/tools/domains/index.js +0 -2
  13. package/build/tools/domains/index.js.map +1 -1
  14. package/build/tools/filter.js +0 -8
  15. package/build/tools/filter.js.map +1 -1
  16. package/build/tools/index.d.ts +0 -1
  17. package/build/tools/index.js +0 -1
  18. package/build/tools/index.js.map +1 -1
  19. package/build/tools/schemas/common.d.ts +0 -10
  20. package/build/tools/schemas/common.js +0 -6
  21. package/build/tools/schemas/common.js.map +1 -1
  22. package/build/tools/schemas/wallet-params.d.ts +2 -0
  23. package/build/tools/schemas/wallet-params.js +27 -1
  24. package/build/tools/schemas/wallet-params.js.map +1 -1
  25. package/build/tools/types.d.ts +0 -26
  26. package/package.json +1 -2
  27. package/tests/catalog/operations.ts +2 -7
  28. package/build/clients/carbon-rest.d.ts +0 -17
  29. package/build/clients/carbon-rest.js +0 -59
  30. package/build/clients/carbon-rest.js.map +0 -1
  31. package/build/clients/carbon-sdk.d.ts +0 -31
  32. package/build/clients/carbon-sdk.js +0 -48
  33. package/build/clients/carbon-sdk.js.map +0 -1
  34. package/build/config/carbon.d.ts +0 -15
  35. package/build/config/carbon.js +0 -18
  36. package/build/config/carbon.js.map +0 -1
  37. package/build/services/carbon.service.d.ts +0 -73
  38. package/build/services/carbon.service.js +0 -204
  39. package/build/services/carbon.service.js.map +0 -1
  40. package/build/tools/domains/carbon.d.ts +0 -2
  41. package/build/tools/domains/carbon.js +0 -187
  42. package/build/tools/domains/carbon.js.map +0 -1
  43. package/build/tools/utils/carbon-prepare-handler.d.ts +0 -6
  44. package/build/tools/utils/carbon-prepare-handler.js +0 -17
  45. package/build/tools/utils/carbon-prepare-handler.js.map +0 -1
  46. package/build/types/carbon.d.ts +0 -31
  47. package/build/types/carbon.js +0 -2
  48. package/build/types/carbon.js.map +0 -1
  49. package/build/utils/carbon-execution.d.ts +0 -11
  50. package/build/utils/carbon-execution.js +0 -106
  51. package/build/utils/carbon-execution.js.map +0 -1
  52. package/build/utils/carbon-prepared-flow.d.ts +0 -11
  53. package/build/utils/carbon-prepared-flow.js +0 -28
  54. package/build/utils/carbon-prepared-flow.js.map +0 -1
  55. package/build/utils/carbon-rest-adapter.d.ts +0 -8
  56. package/build/utils/carbon-rest-adapter.js +0 -79
  57. package/build/utils/carbon-rest-adapter.js.map +0 -1
  58. package/build/utils/carbon-step-labels.d.ts +0 -12
  59. package/build/utils/carbon-step-labels.js +0 -180
  60. package/build/utils/carbon-step-labels.js.map +0 -1
  61. package/build/utils/carbon-token.d.ts +0 -10
  62. package/build/utils/carbon-token.js +0 -39
  63. package/build/utils/carbon-token.js.map +0 -1
  64. package/build/utils/finalize-carbon-prepare.d.ts +0 -10
  65. package/build/utils/finalize-carbon-prepare.js +0 -17
  66. package/build/utils/finalize-carbon-prepare.js.map +0 -1
  67. package/tests/catalog/domains/carbon.ts +0 -547
@@ -1,187 +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.object({}).passthrough(),
103
- families: ["read"],
104
- mcp: { title: "Get Carbon Activity", annotations: readOnly },
105
- handler: async (runtime, input) => {
106
- const wallet_address = resolveWalletFromRuntime(runtime, {
107
- wallet_address: input.wallet_address,
108
- });
109
- return runtime.celina.carbon.getActivity({ ...input, wallet_address });
110
- },
111
- },
112
- {
113
- name: "find_carbon_opportunities",
114
- description: "Find discount buys and premium sells vs market on a Carbon pair.",
115
- inputSchema: tokenPairSchema.passthrough(),
116
- families: ["read"],
117
- mcp: { title: "Find Carbon Opportunities", annotations: readOnly },
118
- handler: async (runtime, input) => runtime.celina.carbon.findOpportunities(input),
119
- },
120
- {
121
- name: "get_carbon_protocol_stats",
122
- description: "Carbon protocol-wide TVL, volume, and fees on Celo.",
123
- inputSchema: z.object({}).passthrough(),
124
- families: ["read"],
125
- mcp: { title: "Get Carbon Protocol Stats", annotations: readOnly },
126
- handler: async (runtime, input) => runtime.celina.carbon.getProtocolStats(input),
127
- },
128
- {
129
- name: "get_carbon_price_history",
130
- description: "Historical OHLC candles for a Carbon pair on Celo.",
131
- inputSchema: z.object({}).passthrough(),
132
- families: ["read"],
133
- mcp: { title: "Get Carbon Price History", annotations: readOnly },
134
- handler: async (runtime, input) => runtime.celina.carbon.getPriceHistory(input),
135
- },
136
- {
137
- name: "simulate_carbon_strategy",
138
- description: "Backtest a Carbon strategy against historical prices.",
139
- inputSchema: z.object({}).passthrough(),
140
- families: ["read"],
141
- mcp: { title: "Simulate Carbon Strategy", annotations: readOnly },
142
- handler: async (runtime, input) => runtime.celina.carbon.simulateStrategy(input),
143
- },
144
- {
145
- name: "carbon_help",
146
- description: "Per-tool guidance for Carbon DeFi operations on Celo.",
147
- inputSchema: z.object({ topic: z.string().optional() }),
148
- families: ["read"],
149
- mcp: { title: "Carbon Help", annotations: readOnly },
150
- handler: async (runtime, input) => runtime.celina.carbon.help(input.topic),
151
- },
152
- {
153
- name: "carbon_learn",
154
- description: "Carbon DeFi protocol education topics on Celo.",
155
- inputSchema: z.object({ topic: z.string().optional() }),
156
- families: ["read"],
157
- mcp: { title: "Carbon Learn", annotations: readOnly },
158
- handler: async (runtime, input) => runtime.celina.carbon.learn(input.topic),
159
- },
160
- 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 }),
161
- 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 }),
162
- 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 }),
163
- 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 }),
164
- 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 }),
165
- 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)),
166
- 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)),
167
- carbonPrepare("prepare_carbon_deposit_budget", "Prepare Carbon Deposit", "Add funds to a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareDepositBudget(body)),
168
- carbonPrepare("prepare_carbon_withdraw_budget", "Prepare Carbon Withdraw", "Withdraw funds from a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareWithdrawBudget(body)),
169
- carbonPrepare("prepare_carbon_pause_strategy", "Prepare Carbon Pause", "Pause a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.preparePauseStrategy(body)),
170
- carbonPrepare("prepare_carbon_resume_strategy", "Prepare Carbon Resume", "Resume a paused Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareResumeStrategy(body)),
171
- carbonPrepare("prepare_carbon_delete_strategy", "Prepare Carbon Delete", "Permanently close a Carbon strategy on Celo.", (runtime, body) => runtime.celina.carbon.prepareDeleteStrategy(body)),
172
- carbonPrepare("prepare_carbon_trade", "Prepare Carbon Trade", "Build an unsigned taker swap against Carbon liquidity on Celo.", (runtime, body) => runtime.celina.carbon.prepareTrade(body)),
173
- carbonExecute("execute_carbon_limit_order", "Execute Carbon Limit Order", "Create and broadcast a Carbon limit order on Celo.", "executeLimitOrder"),
174
- carbonExecute("execute_carbon_range_order", "Execute Carbon Range Order", "Create and broadcast a Carbon range order on Celo.", "executeRangeOrder"),
175
- carbonExecute("execute_carbon_recurring_strategy", "Execute Carbon Recurring Strategy", "Create and broadcast a recurring Carbon strategy on Celo.", "executeRecurringStrategy"),
176
- carbonExecute("execute_carbon_concentrated_strategy", "Execute Carbon Concentrated Strategy", "Create and broadcast concentrated Carbon liquidity on Celo.", "executeConcentratedStrategy"),
177
- carbonExecute("execute_carbon_full_range_strategy", "Execute Carbon Full Range Strategy", "Create and broadcast full-range Carbon liquidity on Celo.", "executeFullRangeStrategy"),
178
- carbonExecute("execute_carbon_reprice_strategy", "Execute Carbon Reprice", "Update price ranges of a Carbon strategy on Celo.", "executeRepriceStrategy"),
179
- carbonExecute("execute_carbon_edit_strategy", "Execute Carbon Edit Strategy", "Edit a Carbon strategy on Celo.", "executeEditStrategy"),
180
- carbonExecute("execute_carbon_deposit_budget", "Execute Carbon Deposit", "Add funds to a Carbon strategy on Celo.", "executeDepositBudget"),
181
- carbonExecute("execute_carbon_withdraw_budget", "Execute Carbon Withdraw", "Withdraw funds from a Carbon strategy on Celo.", "executeWithdrawBudget"),
182
- carbonExecute("execute_carbon_pause_strategy", "Execute Carbon Pause", "Pause a Carbon strategy on Celo.", "executePauseStrategy"),
183
- carbonExecute("execute_carbon_resume_strategy", "Execute Carbon Resume", "Resume a paused Carbon strategy on Celo.", "executeResumeStrategy"),
184
- carbonExecute("execute_carbon_delete_strategy", "Execute Carbon Delete", "Permanently close a Carbon strategy on Celo.", "executeDeleteStrategy"),
185
- carbonExecute("execute_carbon_trade", "Execute Carbon Trade", "Execute a taker swap against Carbon liquidity on Celo.", "executeTrade"),
186
- ];
187
- //# 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-prepare-handler.js","sourceRoot":"","sources":["../../../src/tools/utils/carbon-prepare-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAoB,EACpB,QAAgB,EAChB,SAAsD,EACtD,KAA8B,EAC9B,OAAmE;IAEnE,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;QAC/C,cAAc,EAAE,KAAK,CAAC,cAAoC;QAC1D,IAAI,EAAE,KAAK,CAAC,IAA0B;KACvC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,MAAM,EAAqB,CAAC;IAErE,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EACrB,MAAM,EACN,QAAuD,EACvD,IAAI,CACL,CAAC;IACF,OAAO,EAAE,GAAI,QAAmB,EAAE,YAAY,EAAE,CAAC;AACnD,CAAC"}
@@ -1,31 +0,0 @@
1
- import type { SerializedPreparedFlow } from "./prepared.js";
2
- /** Carbon REST success envelope (tool-specific fields merged). */
3
- export type CarbonRestSuccess = {
4
- status: "ok";
5
- warnings?: string[];
6
- [key: string]: unknown;
7
- };
8
- export type CarbonRestError = {
9
- error: string;
10
- status?: string;
11
- message?: string;
12
- };
13
- export type CarbonUnsignedTx = {
14
- to?: string;
15
- data?: string;
16
- value?: string | number;
17
- chainId?: number;
18
- gasLimit?: string | number;
19
- maxFeePerGas?: string | number;
20
- maxPriorityFeePerGas?: string | number;
21
- nonce?: number;
22
- };
23
- /** Write-tool response after REST → Celina adapter. */
24
- export interface CarbonPrepareResult {
25
- status: "ok";
26
- warnings: string[];
27
- preparedFlow?: SerializedPreparedFlow;
28
- strategyPreview?: unknown;
29
- /** Remaining Carbon API fields (market price, simulation, etc.). */
30
- [key: string]: unknown;
31
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=carbon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon.js","sourceRoot":"","sources":["../../src/types/carbon.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import type { CeloClientFactory } from "../clients/celo-client.js";
2
- import type { CarbonPrepareResult } from "../types/carbon.js";
3
- import type { PreparedTx } from "../types/prepared.js";
4
- import type { TokenService } from "../services/token.service.js";
5
- /**
6
- * Merge ERC-20 approval steps (when needed) with Carbon REST prepared steps for local signing.
7
- */
8
- export declare function buildCarbonExecutionSteps(from: `0x${string}`, prepared: CarbonPrepareResult, orderMeta: Record<string, unknown>, deps: {
9
- tokenService: TokenService;
10
- clientFactory: CeloClientFactory;
11
- }): Promise<PreparedTx[]>;
@@ -1,106 +0,0 @@
1
- import { encodeFunctionData, erc20Abi } from "viem";
2
- import { CELO_CARBON_CONTRACTS } from "../config/carbon.js";
3
- import { appendCelinaCalldataTag } from "../config/celina-tag.js";
4
- import { resolveCarbonTokenAddress } from "./carbon-token.js";
5
- import { applyCarbonStepLabels } from "./carbon-step-labels.js";
6
- const CARBON_CONTROLLER = CELO_CARBON_CONTRACTS.carbonControllerAddress;
7
- function collectApprovalSpecs(meta) {
8
- const specs = [];
9
- const direction = meta.direction;
10
- if (direction === "buy" && meta.quote_token != null && meta.budget != null) {
11
- specs.push({
12
- token: String(meta.quote_token),
13
- amount: meta.budget,
14
- });
15
- }
16
- else if (direction === "sell" &&
17
- meta.base_token != null &&
18
- meta.budget != null) {
19
- specs.push({
20
- token: String(meta.base_token),
21
- amount: meta.budget,
22
- });
23
- }
24
- if (meta.buy_budget != null && meta.quote_token != null) {
25
- specs.push({
26
- token: String(meta.quote_token),
27
- amount: meta.buy_budget,
28
- });
29
- }
30
- if (meta.sell_budget != null && meta.base_token != null) {
31
- specs.push({
32
- token: String(meta.base_token),
33
- amount: meta.sell_budget,
34
- });
35
- }
36
- const sourceToken = meta.source_token ?? meta.token_in;
37
- if (sourceToken != null && meta.amount != null) {
38
- specs.push({
39
- token: String(sourceToken),
40
- amount: meta.amount,
41
- });
42
- }
43
- if (meta.token != null && meta.budget != null) {
44
- specs.push({
45
- token: String(meta.token),
46
- amount: meta.budget,
47
- });
48
- }
49
- return specs;
50
- }
51
- async function needsApproval(clientFactory, owner, tokenAddress, amountWei) {
52
- const { public: client } = clientFactory.getClients();
53
- const allowance = await client.readContract({
54
- address: tokenAddress,
55
- abi: erc20Abi,
56
- functionName: "allowance",
57
- args: [owner, CARBON_CONTROLLER],
58
- });
59
- return allowance < amountWei;
60
- }
61
- async function buildApprovalSteps(from, tokenService, clientFactory, specs) {
62
- const steps = [];
63
- const seen = new Set();
64
- for (const spec of specs) {
65
- const tokenAddress = resolveCarbonTokenAddress(tokenService, spec.token);
66
- const key = `${tokenAddress}:${spec.amount}`;
67
- if (seen.has(key))
68
- continue;
69
- seen.add(key);
70
- const resolved = tokenService.resolveToken(spec.token);
71
- const amountWei = tokenService.parseAmount(String(spec.amount), resolved.decimals);
72
- if (!(await needsApproval(clientFactory, from, tokenAddress, amountWei))) {
73
- continue;
74
- }
75
- const approveData = appendCelinaCalldataTag(encodeFunctionData({
76
- abi: erc20Abi,
77
- functionName: "approve",
78
- args: [CARBON_CONTROLLER, amountWei],
79
- }));
80
- steps.push({
81
- kind: "erc20",
82
- to: tokenAddress,
83
- data: approveData,
84
- value: "0",
85
- description: `Approve ${spec.amount} ${resolved.symbol} for Carbon DeFi`,
86
- });
87
- }
88
- return steps;
89
- }
90
- /**
91
- * Merge ERC-20 approval steps (when needed) with Carbon REST prepared steps for local signing.
92
- */
93
- export async function buildCarbonExecutionSteps(from, prepared, orderMeta, deps) {
94
- const carbonSteps = prepared.preparedFlow?.steps;
95
- if (!carbonSteps?.length) {
96
- throw new Error("Carbon prepare response did not include unsigned transaction steps.");
97
- }
98
- const approvalSteps = await buildApprovalSteps(from, deps.tokenService, deps.clientFactory, collectApprovalSpecs(orderMeta));
99
- return applyCarbonStepLabels([...approvalSteps, ...carbonSteps], {
100
- summary: prepared.preparedFlow?.summary ?? "Carbon transaction",
101
- orderMeta,
102
- strategyPreview: prepared.strategyPreview,
103
- tokenService: deps.tokenService,
104
- });
105
- }
106
- //# sourceMappingURL=carbon-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-execution.js","sourceRoot":"","sources":["../../src/utils/carbon-execution.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { type SerializedPreparedFlow } from "../types/prepared.js";
2
- type EthersLikeTx = {
3
- to?: string | null;
4
- data?: string | null;
5
- value?: bigint | string | number | null;
6
- };
7
- /**
8
- * Map @bancor/carbon-sdk `PopulatedTransaction` to Celina prepared flow (SDK fallback path).
9
- */
10
- export declare function populatedTransactionToPreparedFlow(from: `0x${string}`, tx: EthersLikeTx, summary: string): SerializedPreparedFlow;
11
- export {};
@@ -1,28 +0,0 @@
1
- import { appendCelinaCalldataTag } from "../config/celina-tag.js";
2
- import { serializePreparedFlow, } from "../types/prepared.js";
3
- /**
4
- * Map @bancor/carbon-sdk `PopulatedTransaction` to Celina prepared flow (SDK fallback path).
5
- */
6
- export function populatedTransactionToPreparedFlow(from, tx, summary) {
7
- const to = (tx.to ?? "");
8
- const data = tx.data
9
- ? appendCelinaCalldataTag(tx.data)
10
- : undefined;
11
- const value = tx.value !== undefined && tx.value !== null
12
- ? String(tx.value)
13
- : undefined;
14
- const step = {
15
- kind: value && value !== "0" ? "native" : "contract",
16
- to,
17
- data,
18
- value,
19
- description: summary,
20
- };
21
- return serializePreparedFlow({
22
- from,
23
- steps: [step],
24
- summary,
25
- network: "mainnet",
26
- });
27
- }
28
- //# sourceMappingURL=carbon-prepared-flow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-prepared-flow.js","sourceRoot":"","sources":["../../src/utils/carbon-prepared-flow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAQ9B;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAChD,IAAmB,EACnB,EAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAkB,CAAC;IAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI;QAClB,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAqB,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GACT,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI;QACzC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,IAAI,GAAe;QACvB,IAAI,EAAE,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;QACpD,EAAE;QACF,IAAI;QACJ,KAAK;QACL,WAAW,EAAE,OAAO;KACrB,CAAC;IAEF,OAAO,qBAAqB,CAAC;QAC3B,IAAI;QACJ,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,OAAO;QACP,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { CarbonPrepareResult, CarbonRestSuccess } from "../types/carbon.js";
2
- import { type SerializedPreparedFlow } from "../types/prepared.js";
3
- /**
4
- * Map Carbon REST write response to Celina `SerializedPreparedFlow` when unsigned txs are present.
5
- */
6
- export declare function carbonRestToPreparedFlow(from: `0x${string}`, payload: CarbonRestSuccess, summary: string): SerializedPreparedFlow | undefined;
7
- export declare function normalizeCarbonPrepareResult(from: `0x${string}`, payload: CarbonRestSuccess, summary: string): CarbonPrepareResult;
8
- export declare function extractWarnings(payload: Record<string, unknown>): string[];
@@ -1,79 +0,0 @@
1
- import { appendCelinaCalldataTag } from "../config/celina-tag.js";
2
- import { serializePreparedFlow } from "../types/prepared.js";
3
- function asHex(value) {
4
- if (!value)
5
- return undefined;
6
- const v = value.startsWith("0x") ? value : `0x${value}`;
7
- return v;
8
- }
9
- function collectUnsignedTxs(payload) {
10
- const txs = [];
11
- const candidates = [
12
- payload.transaction,
13
- payload.unsigned_transaction,
14
- payload.unsignedTransaction,
15
- ];
16
- for (const single of candidates) {
17
- if (single && typeof single === "object") {
18
- txs.push(single);
19
- }
20
- }
21
- const many = payload.transactions;
22
- if (Array.isArray(many)) {
23
- for (const item of many) {
24
- if (item && typeof item === "object")
25
- txs.push(item);
26
- }
27
- }
28
- return txs;
29
- }
30
- function txToPreparedStep(tx, index) {
31
- const to = asHex(tx.to);
32
- if (!to)
33
- return null;
34
- const data = asHex(tx.data) ?? "0x";
35
- const value = tx.value !== undefined && tx.value !== null
36
- ? String(tx.value)
37
- : undefined;
38
- return {
39
- kind: value && value !== "0" ? "native" : "contract",
40
- to,
41
- data: data === "0x" ? undefined : appendCelinaCalldataTag(data),
42
- value,
43
- description: `Carbon transaction step ${index + 1}`,
44
- };
45
- }
46
- /**
47
- * Map Carbon REST write response to Celina `SerializedPreparedFlow` when unsigned txs are present.
48
- */
49
- export function carbonRestToPreparedFlow(from, payload, summary) {
50
- const txs = collectUnsignedTxs(payload);
51
- const steps = txs
52
- .map((tx, i) => txToPreparedStep(tx, i))
53
- .filter((s) => s !== null);
54
- if (steps.length === 0)
55
- return undefined;
56
- return serializePreparedFlow({ from, steps, summary, network: "mainnet" });
57
- }
58
- export function normalizeCarbonPrepareResult(from, payload, summary) {
59
- const warnings = Array.isArray(payload.warnings)
60
- ? payload.warnings.map(String)
61
- : [];
62
- const preparedFlow = carbonRestToPreparedFlow(from, payload, summary);
63
- const { status: _s, warnings: _w, transaction: _t, transactions: _ts, unsigned_transaction: _ut, unsignedTransaction: _ut2, ...rest } = payload;
64
- return {
65
- status: "ok",
66
- warnings,
67
- ...(preparedFlow ? { preparedFlow } : {}),
68
- ...(payload.strategy_preview !== undefined
69
- ? { strategyPreview: payload.strategy_preview }
70
- : {}),
71
- ...rest,
72
- };
73
- }
74
- export function extractWarnings(payload) {
75
- if (!Array.isArray(payload.warnings))
76
- return [];
77
- return payload.warnings.map(String);
78
- }
79
- //# sourceMappingURL=carbon-rest-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-rest-adapter.js","sourceRoot":"","sources":["../../src/utils/carbon-rest-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { PreparedTx } from "../types/prepared.js";
2
- import type { TokenService } from "../services/token.service.js";
3
- export type CarbonStepLabelContext = {
4
- summary: string;
5
- orderMeta: Record<string, unknown>;
6
- strategyPreview?: unknown;
7
- tokenService: TokenService;
8
- };
9
- /** Human-readable label for a Carbon controller transaction step. */
10
- export declare function describeCarbonControllerStep(ctx: CarbonStepLabelContext, index: number, total: number): string;
11
- /** Replace generic Carbon REST step descriptions with human-readable labels. */
12
- export declare function applyCarbonStepLabels(steps: PreparedTx[], ctx: CarbonStepLabelContext): PreparedTx[];