@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.
Files changed (64) 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 -13
  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/types.d.ts +0 -26
  23. package/package.json +1 -2
  24. package/tests/catalog/operations.ts +2 -7
  25. package/build/clients/carbon-rest.d.ts +0 -17
  26. package/build/clients/carbon-rest.js +0 -59
  27. package/build/clients/carbon-rest.js.map +0 -1
  28. package/build/clients/carbon-sdk.d.ts +0 -31
  29. package/build/clients/carbon-sdk.js +0 -48
  30. package/build/clients/carbon-sdk.js.map +0 -1
  31. package/build/config/carbon.d.ts +0 -15
  32. package/build/config/carbon.js +0 -18
  33. package/build/config/carbon.js.map +0 -1
  34. package/build/services/carbon.service.d.ts +0 -73
  35. package/build/services/carbon.service.js +0 -204
  36. package/build/services/carbon.service.js.map +0 -1
  37. package/build/tools/domains/carbon.d.ts +0 -2
  38. package/build/tools/domains/carbon.js +0 -200
  39. package/build/tools/domains/carbon.js.map +0 -1
  40. package/build/tools/utils/carbon-prepare-handler.d.ts +0 -6
  41. package/build/tools/utils/carbon-prepare-handler.js +0 -17
  42. package/build/tools/utils/carbon-prepare-handler.js.map +0 -1
  43. package/build/types/carbon.d.ts +0 -31
  44. package/build/types/carbon.js +0 -2
  45. package/build/types/carbon.js.map +0 -1
  46. package/build/utils/carbon-execution.d.ts +0 -11
  47. package/build/utils/carbon-execution.js +0 -106
  48. package/build/utils/carbon-execution.js.map +0 -1
  49. package/build/utils/carbon-prepared-flow.d.ts +0 -11
  50. package/build/utils/carbon-prepared-flow.js +0 -28
  51. package/build/utils/carbon-prepared-flow.js.map +0 -1
  52. package/build/utils/carbon-rest-adapter.d.ts +0 -8
  53. package/build/utils/carbon-rest-adapter.js +0 -79
  54. package/build/utils/carbon-rest-adapter.js.map +0 -1
  55. package/build/utils/carbon-step-labels.d.ts +0 -12
  56. package/build/utils/carbon-step-labels.js +0 -180
  57. package/build/utils/carbon-step-labels.js.map +0 -1
  58. package/build/utils/carbon-token.d.ts +0 -10
  59. package/build/utils/carbon-token.js +0 -39
  60. package/build/utils/carbon-token.js.map +0 -1
  61. package/build/utils/finalize-carbon-prepare.d.ts +0 -10
  62. package/build/utils/finalize-carbon-prepare.js +0 -17
  63. package/build/utils/finalize-carbon-prepare.js.map +0 -1
  64. package/tests/catalog/domains/carbon.ts +0 -547
@@ -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[];
@@ -1,180 +0,0 @@
1
- const GENERIC_CARBON_STEP = /^Carbon transaction step \d+$/;
2
- function readRecord(value) {
3
- return value && typeof value === "object"
4
- ? value
5
- : {};
6
- }
7
- function readPositive(value) {
8
- if (value === undefined || value === null || value === "") {
9
- return null;
10
- }
11
- const n = typeof value === "number" ? value : Number(String(value).replace(/,/g, ""));
12
- return Number.isFinite(n) && n > 0 ? n : null;
13
- }
14
- function resolveSymbol(tokenService, token) {
15
- if (token === undefined || token === null || token === "") {
16
- return "?";
17
- }
18
- try {
19
- return tokenService.resolveToken(String(token)).symbol;
20
- }
21
- catch {
22
- return String(token).trim();
23
- }
24
- }
25
- function formatAmount(value) {
26
- if (value >= 1) {
27
- return value.toLocaleString(undefined, { maximumFractionDigits: 4 });
28
- }
29
- return value.toLocaleString(undefined, { maximumFractionDigits: 6 });
30
- }
31
- function pairLabel(ctx) {
32
- const meta = ctx.orderMeta;
33
- const base = resolveSymbol(ctx.tokenService, meta.base_token ?? meta.base);
34
- const quote = resolveSymbol(ctx.tokenService, meta.quote_token ?? meta.quote);
35
- return `${base} / ${quote}`;
36
- }
37
- function directionFrom(ctx) {
38
- const meta = ctx.orderMeta;
39
- const preview = readRecord(ctx.strategyPreview);
40
- const raw = String(preview.direction ?? meta.direction ?? "buy").toLowerCase();
41
- return raw === "sell" ? "sell" : "buy";
42
- }
43
- function budgetLabel(ctx) {
44
- const meta = ctx.orderMeta;
45
- const preview = readRecord(ctx.strategyPreview);
46
- const direction = directionFrom(ctx);
47
- const amount = readPositive(preview.budget) ??
48
- readPositive(meta.budget) ??
49
- (direction === "sell"
50
- ? readPositive(meta.sell_budget)
51
- : readPositive(meta.buy_budget));
52
- if (amount === null) {
53
- return null;
54
- }
55
- const token = direction === "sell"
56
- ? resolveSymbol(ctx.tokenService, meta.base_token ?? meta.base)
57
- : resolveSymbol(ctx.tokenService, meta.quote_token ?? meta.quote);
58
- return `${formatAmount(amount)} ${token}`;
59
- }
60
- function actionFromSummary(summary) {
61
- const normalized = summary.trim().toLowerCase();
62
- if (normalized.includes("limit order"))
63
- return "limit";
64
- if (normalized.includes("range order"))
65
- return "range";
66
- if (normalized.includes("recurring strategy"))
67
- return "recurring";
68
- if (normalized.includes("concentrated strategy"))
69
- return "concentrated";
70
- if (normalized.includes("full-range strategy"))
71
- return "full-range";
72
- if (normalized.includes("reprice strategy"))
73
- return "reprice";
74
- if (normalized.includes("edit strategy"))
75
- return "edit";
76
- if (normalized.includes("deposit budget"))
77
- return "deposit";
78
- if (normalized.includes("withdraw budget"))
79
- return "withdraw";
80
- if (normalized.includes("pause strategy"))
81
- return "pause";
82
- if (normalized.includes("resume strategy"))
83
- return "resume";
84
- if (normalized.includes("delete strategy"))
85
- return "delete";
86
- if (normalized.includes("taker swap"))
87
- return "swap";
88
- return null;
89
- }
90
- function actionFromPreview(preview) {
91
- const type = String(preview.type ?? "").toLowerCase();
92
- if (type.includes("limit"))
93
- return "limit";
94
- if (type.includes("range"))
95
- return "range";
96
- if (type.includes("recurring"))
97
- return "recurring";
98
- if (type.includes("concentrated"))
99
- return "concentrated";
100
- if (type.includes("full"))
101
- return "full-range";
102
- return null;
103
- }
104
- function createActionLabel(ctx) {
105
- const preview = readRecord(ctx.strategyPreview);
106
- const action = actionFromPreview(preview) ?? actionFromSummary(ctx.summary) ?? "strategy";
107
- const direction = directionFrom(ctx);
108
- const pair = pairLabel(ctx);
109
- const budget = budgetLabel(ctx);
110
- if (action === "swap") {
111
- return "Swap via Carbon DeFi";
112
- }
113
- if (action === "reprice")
114
- return "Reprice Carbon strategy";
115
- if (action === "edit")
116
- return "Edit Carbon strategy";
117
- if (action === "deposit")
118
- return "Deposit to Carbon strategy";
119
- if (action === "withdraw")
120
- return "Withdraw from Carbon strategy";
121
- if (action === "pause")
122
- return "Pause Carbon strategy";
123
- if (action === "resume")
124
- return "Resume Carbon strategy";
125
- if (action === "delete")
126
- return "Close Carbon strategy";
127
- if (action === "recurring") {
128
- return budget
129
- ? `Create recurring strategy — ${budget} on ${pair}`
130
- : `Create recurring strategy — ${pair}`;
131
- }
132
- if (action === "concentrated" || action === "full-range") {
133
- const kind = action === "concentrated" ? "concentrated" : "full-range";
134
- return budget
135
- ? `Create ${kind} strategy — ${budget} on ${pair}`
136
- : `Create ${kind} strategy — ${pair}`;
137
- }
138
- const side = action === "range" ? "range" : "limit";
139
- const sideLabel = `${side} ${direction}`;
140
- return budget
141
- ? `Create ${sideLabel} — ${budget} on ${pair}`
142
- : `Create ${sideLabel} on ${pair}`;
143
- }
144
- /** Human-readable label for a Carbon controller transaction step. */
145
- export function describeCarbonControllerStep(ctx, index, total) {
146
- const base = createActionLabel(ctx);
147
- if (total <= 1) {
148
- return base;
149
- }
150
- return `${base} (step ${index + 1} of ${total})`;
151
- }
152
- function isApprovalStep(step) {
153
- return (step.kind === "erc20" ||
154
- step.description.startsWith("Approve "));
155
- }
156
- function isGenericCarbonStep(step) {
157
- return GENERIC_CARBON_STEP.test(step.description);
158
- }
159
- /** Replace generic Carbon REST step descriptions with human-readable labels. */
160
- export function applyCarbonStepLabels(steps, ctx) {
161
- const controllerIndexes = steps
162
- .map((step, index) => ({ step, index }))
163
- .filter(({ step }) => !isApprovalStep(step) && isGenericCarbonStep(step));
164
- if (controllerIndexes.length === 0) {
165
- return steps;
166
- }
167
- const total = controllerIndexes.length;
168
- const labels = new Map();
169
- controllerIndexes.forEach(({ index }, controllerIndex) => {
170
- labels.set(index, describeCarbonControllerStep(ctx, controllerIndex, total));
171
- });
172
- return steps.map((step, index) => {
173
- const label = labels.get(index);
174
- if (!label) {
175
- return step;
176
- }
177
- return { ...step, description: label };
178
- });
179
- }
180
- //# sourceMappingURL=carbon-step-labels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-step-labels.js","sourceRoot":"","sources":["../../src/utils/carbon-step-labels.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { TokenService } from "../services/token.service.js";
2
- /** Token fields normalized before Carbon REST write calls. */
3
- export declare const CARBON_WRITE_TOKEN_FIELDS: readonly ["base_token", "quote_token", "source_token", "target_token", "token_in", "token_out", "token"];
4
- /**
5
- * Resolve a Carbon token symbol or address to a concrete `0x` ERC-20 address.
6
- * CELO registry entries map to WCELO/MENTO collateral (Carbon does not accept `"native"`).
7
- */
8
- export declare function resolveCarbonTokenAddress(tokenService: TokenService, tokenOrAddress: string): `0x${string}`;
9
- /** Normalize token symbol fields in a Carbon write body before REST POST. */
10
- export declare function normalizeCarbonWriteBody(tokenService: TokenService, body: Record<string, unknown>): Record<string, unknown>;
@@ -1,39 +0,0 @@
1
- import { MENTO_CELO_ADDRESS } from "../config/chains.js";
2
- const ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/i;
3
- /** Token fields normalized before Carbon REST write calls. */
4
- export const CARBON_WRITE_TOKEN_FIELDS = [
5
- "base_token",
6
- "quote_token",
7
- "source_token",
8
- "target_token",
9
- "token_in",
10
- "token_out",
11
- "token",
12
- ];
13
- /**
14
- * Resolve a Carbon token symbol or address to a concrete `0x` ERC-20 address.
15
- * CELO registry entries map to WCELO/MENTO collateral (Carbon does not accept `"native"`).
16
- */
17
- export function resolveCarbonTokenAddress(tokenService, tokenOrAddress) {
18
- const trimmed = tokenOrAddress.trim();
19
- if (ADDRESS_RE.test(trimmed)) {
20
- return trimmed;
21
- }
22
- const resolved = tokenService.resolveToken(trimmed);
23
- if (resolved.address === "native") {
24
- return MENTO_CELO_ADDRESS;
25
- }
26
- return resolved.address;
27
- }
28
- /** Normalize token symbol fields in a Carbon write body before REST POST. */
29
- export function normalizeCarbonWriteBody(tokenService, body) {
30
- const out = { ...body };
31
- for (const key of CARBON_WRITE_TOKEN_FIELDS) {
32
- const value = out[key];
33
- if (typeof value === "string" && value.trim()) {
34
- out[key] = resolveCarbonTokenAddress(tokenService, value);
35
- }
36
- }
37
- return out;
38
- }
39
- //# sourceMappingURL=carbon-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carbon-token.js","sourceRoot":"","sources":["../../src/utils/carbon-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,YAAY;IACZ,aAAa;IACb,cAAc;IACd,cAAc;IACd,UAAU;IACV,WAAW;IACX,OAAO;CACC,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA0B,EAC1B,cAAsB;IAEtB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAwB,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CACtC,YAA0B,EAC1B,IAA6B;IAE7B,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { CarbonService } from "../services/carbon.service.js";
2
- import type { CarbonPrepareResult } from "../types/carbon.js";
3
- import type { SerializedPreparedFlow } from "../types/prepared.js";
4
- export type FinalizedCarbonPrepareFlow = SerializedPreparedFlow & {
5
- deep_link?: string;
6
- warnings?: string[];
7
- strategyPreview?: unknown;
8
- };
9
- /** Merge Carbon REST prepare + ERC-20 approve steps for external wallet signing. */
10
- export declare function finalizeCarbonPrepare(carbon: Pick<CarbonService, "buildExecutionSteps">, from: `0x${string}`, prepared: CarbonPrepareResult, orderMeta: Record<string, unknown>): Promise<FinalizedCarbonPrepareFlow>;
@@ -1,17 +0,0 @@
1
- /** Merge Carbon REST prepare + ERC-20 approve steps for external wallet signing. */
2
- export async function finalizeCarbonPrepare(carbon, from, prepared, orderMeta) {
3
- const steps = await carbon.buildExecutionSteps(from, prepared, orderMeta);
4
- if (!prepared.preparedFlow) {
5
- throw new Error("Carbon prepare returned no transaction steps.");
6
- }
7
- return {
8
- ...prepared.preparedFlow,
9
- steps,
10
- ...(prepared.deep_link ? { deep_link: String(prepared.deep_link) } : {}),
11
- ...(prepared.warnings?.length ? { warnings: prepared.warnings } : {}),
12
- ...(prepared.strategyPreview !== undefined
13
- ? { strategyPreview: prepared.strategyPreview }
14
- : {}),
15
- };
16
- }
17
- //# sourceMappingURL=finalize-carbon-prepare.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finalize-carbon-prepare.js","sourceRoot":"","sources":["../../src/utils/finalize-carbon-prepare.ts"],"names":[],"mappings":"AAUA,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAkD,EAClD,IAAmB,EACnB,QAA6B,EAC7B,SAAkC;IAElC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,GAAG,QAAQ,CAAC,YAAY;QACxB,KAAK;QACL,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}