@agg-build/ui 1.2.7 → 1.2.8
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/dist/{chunk-QMWKXDVZ.mjs → chunk-2YVW6J5N.mjs} +12 -6
- package/dist/{chunk-5FXMHTVR.mjs → chunk-BW4DQYWM.mjs} +1 -1
- package/dist/{chunk-34L7ZKJW.mjs → chunk-HQRT3B3L.mjs} +3 -2
- package/dist/{chunk-WPF47BQQ.mjs → chunk-IIEE4FVO.mjs} +9 -2
- package/dist/{chunk-TBKDLNOE.mjs → chunk-RPIYL7EA.mjs} +29 -8
- package/dist/{chunk-E45WOOMN.mjs → chunk-SMGKYWEP.mjs} +22 -8
- package/dist/{chunk-3RG2K7MV.mjs → chunk-U6YU5OE7.mjs} +666 -148
- package/dist/events.js +51 -15
- package/dist/events.mjs +3 -3
- package/dist/index.js +766 -192
- package/dist/index.mjs +27 -20
- package/dist/modals.js +8 -1
- package/dist/modals.mjs +3 -3
- package/dist/pages.js +730 -170
- package/dist/pages.mjs +6 -6
- package/dist/primitives.js +3 -2
- package/dist/primitives.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +665 -146
- package/dist/trading.mjs +4 -4
- package/dist/types/primitives/switch-button/switch-button.constants.d.mts +1 -1
- package/dist/types/primitives/switch-button/switch-button.constants.d.ts +1 -1
- package/dist/types/primitives/tooltip/index.d.mts +1 -1
- package/dist/types/primitives/tooltip/index.d.ts +1 -1
- package/dist/types/primitives/tooltip/tooltip.types.d.mts +2 -0
- package/dist/types/primitives/tooltip/tooltip.types.d.ts +2 -0
- package/dist/types/trading/place-order/index.place-order.execution-debug.d.mts +183 -0
- package/dist/types/trading/place-order/index.place-order.execution-debug.d.ts +183 -0
- package/dist/types/trading/place-order/index.place-order.execution-steps.d.mts +72 -0
- package/dist/types/trading/place-order/index.place-order.execution-steps.d.ts +72 -0
- package/package.json +1 -1
package/dist/pages.js
CHANGED
|
@@ -98,7 +98,7 @@ module.exports = __toCommonJS(pages_exports);
|
|
|
98
98
|
|
|
99
99
|
// src/pages/home/index.tsx
|
|
100
100
|
var import_hooks53 = require("@agg-build/hooks");
|
|
101
|
-
var
|
|
101
|
+
var import_sdk18 = require("@agg-build/sdk");
|
|
102
102
|
var import_react31 = require("react");
|
|
103
103
|
|
|
104
104
|
// src/events/item/index.tsx
|
|
@@ -3509,7 +3509,7 @@ var SWITCH_BUTTON_ANIMATION_DURATION_MS = 350;
|
|
|
3509
3509
|
var SWITCH_BUTTON_CONTAINER_CLASS_NAME = "group/agg-switch-button min-w-fit inline-flex min-w-0 rounded-agg-full bg-agg-secondary-hover font-agg-sans cursor-pointer hover:bg-agg-tertiary";
|
|
3510
3510
|
var SWITCH_BUTTON_TRACK_CLASS_NAME = "agg-switch-button-track relative grid min-w-0 flex-1 items-center";
|
|
3511
3511
|
var SWITCH_BUTTON_TRACK_HIGHLIGHT_CLASS_NAME = "pointer-events-none absolute inset-y-0 left-0 rounded-agg-full border border-agg-primary bg-agg-secondary";
|
|
3512
|
-
var SWITCH_BUTTON_OPTION_BASE_CLASS_NAME = "agg-switch-button-option whitespace-nowrap relative z-10 min-w-0 rounded-agg-full px-5 py-1.5 font-agg-sans text-agg-base leading-agg-6 text-agg-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-0 focus-visible:ring-offset-agg-secondary-hover cursor-pointer disabled:cursor-not-allowed disabled:text-agg-muted-foreground";
|
|
3512
|
+
var SWITCH_BUTTON_OPTION_BASE_CLASS_NAME = "agg-switch-button-option whitespace-nowrap relative z-10 min-w-0 rounded-agg-full px-5 py-1.5 font-agg-sans text-agg-sm leading-agg-5 md:text-agg-base md:leading-agg-6 text-agg-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-0 focus-visible:ring-offset-agg-secondary-hover cursor-pointer disabled:cursor-not-allowed disabled:text-agg-muted-foreground";
|
|
3513
3513
|
|
|
3514
3514
|
// src/primitives/switch-button/switch-button.utils.ts
|
|
3515
3515
|
var resolveActiveIndex = (options, value) => {
|
|
@@ -8254,6 +8254,7 @@ var Tooltip = ({
|
|
|
8254
8254
|
side = "top",
|
|
8255
8255
|
delayDuration = 150,
|
|
8256
8256
|
collisionPadding = 12,
|
|
8257
|
+
sideOffset = 0,
|
|
8257
8258
|
classNames,
|
|
8258
8259
|
"aria-label": ariaLabel
|
|
8259
8260
|
}) => {
|
|
@@ -8281,7 +8282,7 @@ var Tooltip = ({
|
|
|
8281
8282
|
TooltipPrimitive.Content,
|
|
8282
8283
|
{
|
|
8283
8284
|
side,
|
|
8284
|
-
sideOffset
|
|
8285
|
+
sideOffset,
|
|
8285
8286
|
collisionPadding,
|
|
8286
8287
|
className: cn(
|
|
8287
8288
|
"group/agg-tooltip",
|
|
@@ -9564,6 +9565,18 @@ var marketChartCandleToScaledCandlePoint = (candle, transformProbability) => {
|
|
|
9564
9565
|
v: candle.volume
|
|
9565
9566
|
};
|
|
9566
9567
|
};
|
|
9568
|
+
var venueCandlesToLinePoints = (venueData, transformProbability) => {
|
|
9569
|
+
const candles = venueData.liveCandle && !venueData.candles.some((candle) => {
|
|
9570
|
+
var _a;
|
|
9571
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time);
|
|
9572
|
+
}) ? [...venueData.candles, venueData.liveCandle] : venueData.liveCandle ? venueData.candles.map(
|
|
9573
|
+
(candle) => {
|
|
9574
|
+
var _a;
|
|
9575
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time) ? venueData.liveCandle : candle;
|
|
9576
|
+
}
|
|
9577
|
+
) : venueData.candles;
|
|
9578
|
+
return candles.map((candle) => marketChartCandleToLineChartPoint(candle, transformProbability));
|
|
9579
|
+
};
|
|
9567
9580
|
var resolveMarketChartVenueSeries = ({
|
|
9568
9581
|
chartData,
|
|
9569
9582
|
transformProbability
|
|
@@ -9571,9 +9584,7 @@ var resolveMarketChartVenueSeries = ({
|
|
|
9571
9584
|
if (!chartData) return [];
|
|
9572
9585
|
return Object.entries(chartData.venues).map(([venue, venueData]) => ({
|
|
9573
9586
|
venue,
|
|
9574
|
-
points: venueData
|
|
9575
|
-
(candle) => marketChartCandleToLineChartPoint(candle, transformProbability)
|
|
9576
|
-
)
|
|
9587
|
+
points: venueCandlesToLinePoints(venueData, transformProbability)
|
|
9577
9588
|
})).filter((item) => item.points.length > 0);
|
|
9578
9589
|
};
|
|
9579
9590
|
var resolveAggregatedCandleSource = (candles) => {
|
|
@@ -9626,13 +9637,24 @@ var resolveMarketChartDisplaySeries = ({
|
|
|
9626
9637
|
if (selectedVenue) {
|
|
9627
9638
|
return venueEntries.map(([venue, venueData]) => ({
|
|
9628
9639
|
venue,
|
|
9629
|
-
points: venueData
|
|
9630
|
-
(candle) => marketChartCandleToLineChartPoint(candle, transformProbability)
|
|
9631
|
-
)
|
|
9640
|
+
points: venueCandlesToLinePoints(venueData, transformProbability)
|
|
9632
9641
|
})).filter((item) => item.points.length > 0);
|
|
9633
9642
|
}
|
|
9634
9643
|
const aggregatedCandles = aggregateMarketChartCandles(
|
|
9635
|
-
venueEntries.flatMap(([, venueData]) =>
|
|
9644
|
+
venueEntries.flatMap(([, venueData]) => {
|
|
9645
|
+
const closed = venueData.candles;
|
|
9646
|
+
if (!venueData.liveCandle) return closed;
|
|
9647
|
+
const hasOverlap = closed.some((candle) => {
|
|
9648
|
+
var _a;
|
|
9649
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time);
|
|
9650
|
+
});
|
|
9651
|
+
return hasOverlap ? closed.map(
|
|
9652
|
+
(candle) => {
|
|
9653
|
+
var _a;
|
|
9654
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time) ? venueData.liveCandle : candle;
|
|
9655
|
+
}
|
|
9656
|
+
) : [...closed, venueData.liveCandle];
|
|
9657
|
+
})
|
|
9636
9658
|
);
|
|
9637
9659
|
if (aggregatedCandles.length === 0) return [];
|
|
9638
9660
|
return [
|
|
@@ -11442,7 +11464,9 @@ var EventListItemDetailsGraphSection = ({
|
|
|
11442
11464
|
}
|
|
11443
11465
|
),
|
|
11444
11466
|
classNames: {
|
|
11445
|
-
root: cn(
|
|
11467
|
+
root: cn(
|
|
11468
|
+
"shrink-0 border px-4 h-8 text-agg-sm leading-agg-5 md:h-9 md:text-agg-base md:leading-agg-6"
|
|
11469
|
+
)
|
|
11446
11470
|
},
|
|
11447
11471
|
isActive: isActiveVenue
|
|
11448
11472
|
}
|
|
@@ -12123,8 +12147,20 @@ var OrderbookRow = ({
|
|
|
12123
12147
|
}).map(([venue]) => venue);
|
|
12124
12148
|
const venues = entry.row.venues && entry.row.venues.length > 0 ? entry.row.venues : venuesFromBreakdown.length > 0 ? venuesFromBreakdown : [entry.row.venue];
|
|
12125
12149
|
const barPercent = Math.max(2, Number((entry.unifiedBarScale * 100).toFixed(2)));
|
|
12126
|
-
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: "agg-orderbook-row relative flex h-9 items-center gap-2.5 overflow-clip
|
|
12127
|
-
/* @__PURE__ */ (0, import_jsx_runtime128.
|
|
12150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: "agg-orderbook-row relative flex h-9 items-center gap-2.5 overflow-clip pl-5 pr-2.5 md:gap-10 md:pl-0 md:pr-5", children: [
|
|
12151
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
12152
|
+
"div",
|
|
12153
|
+
{
|
|
12154
|
+
"aria-hidden": "true",
|
|
12155
|
+
className: cn(
|
|
12156
|
+
"agg-orderbook-bar md:hidden absolute inset-y-0 left-0",
|
|
12157
|
+
barClassName,
|
|
12158
|
+
getMotionClassName(enableAnimations, "transition-[width] duration-200 ease-in-out")
|
|
12159
|
+
),
|
|
12160
|
+
style: { width: `${barPercent}%` }
|
|
12161
|
+
}
|
|
12162
|
+
),
|
|
12163
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: "hidden md:block md:relative min-w-0 flex-1 self-stretch", children: [
|
|
12128
12164
|
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
12129
12165
|
"div",
|
|
12130
12166
|
{
|
|
@@ -12227,8 +12263,8 @@ var Orderbook = ({
|
|
|
12227
12263
|
spreadEntry
|
|
12228
12264
|
]);
|
|
12229
12265
|
return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: cn("agg-orderbook-unified flex flex-col", className), children: [
|
|
12230
|
-
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: "flex h-9 items-center gap-2.5 overflow-clip border-b border-agg-separator pr-5 md:gap-10", children: [
|
|
12231
|
-
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "flex min-w-0 flex-1 items-center gap-2 pl-5", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.tradeOutcome }) }),
|
|
12266
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsxs)("div", { className: "flex h-9 items-center gap-2.5 overflow-clip border-b border-agg-separator pl-5 pr-5 md:pl-0 md:gap-10", children: [
|
|
12267
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "hidden md:flex min-w-0 flex-1 items-center gap-2 pl-5", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.tradeOutcome }) }),
|
|
12232
12268
|
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "w-20 shrink-0 text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground md:w-[120px]", children: labels.price }),
|
|
12233
12269
|
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "w-20 shrink-0 text-center text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground md:w-[120px]", children: labels.shares }),
|
|
12234
12270
|
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { className: "w-20 shrink-0 text-center text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground md:w-[120px]", children: labels.total })
|
|
@@ -13063,7 +13099,7 @@ var MarketDetailsContent = ({
|
|
|
13063
13099
|
"span",
|
|
13064
13100
|
{
|
|
13065
13101
|
className: cn(
|
|
13066
|
-
"min-w-35 inline-flex h-9 items-center justify-center gap-2 rounded-agg-full",
|
|
13102
|
+
"w-full md:w-auto md:min-w-35 inline-flex h-9 items-center justify-center gap-2 rounded-agg-full",
|
|
13067
13103
|
"border px-5 py-1.5 text-agg-sm font-agg-bold",
|
|
13068
13104
|
getMotionClassName(
|
|
13069
13105
|
enableAnimations,
|
|
@@ -13897,6 +13933,447 @@ var PLACE_ORDER_OUTCOME_BUTTON_CLASS_NAMES = {
|
|
|
13897
13933
|
inactive: "border-transparent bg-agg-secondary-hover font-agg-normal text-agg-foreground hover:bg-agg-tertiary"
|
|
13898
13934
|
};
|
|
13899
13935
|
|
|
13936
|
+
// src/trading/place-order/index.place-order.execution-steps.ts
|
|
13937
|
+
var import_sdk17 = require("@agg-build/sdk");
|
|
13938
|
+
var WAIT_STEP_TYPES = /* @__PURE__ */ new Set(["_wait", "wait"]);
|
|
13939
|
+
var CHECKING_BALANCE_STEP_TYPES = /* @__PURE__ */ new Set([
|
|
13940
|
+
"check-balance",
|
|
13941
|
+
"check-position",
|
|
13942
|
+
"position-reserve",
|
|
13943
|
+
"position-release"
|
|
13944
|
+
]);
|
|
13945
|
+
var VENUE_BUY_SELL_REGEX = /^(?:buy|sell)-([a-z]+)$/;
|
|
13946
|
+
var VENUE_FINALIZE_REGEX = /^([a-z]+)-finalize$/;
|
|
13947
|
+
var VENUE_NAME_MAP = {
|
|
13948
|
+
kalshi: import_sdk17.Venue.kalshi,
|
|
13949
|
+
polymarket: import_sdk17.Venue.polymarket,
|
|
13950
|
+
limitless: import_sdk17.Venue.limitless,
|
|
13951
|
+
opinion: import_sdk17.Venue.opinion,
|
|
13952
|
+
predict: import_sdk17.Venue.predict,
|
|
13953
|
+
probable: import_sdk17.Venue.probable,
|
|
13954
|
+
myriad: import_sdk17.Venue.myriad,
|
|
13955
|
+
hyperliquid: import_sdk17.Venue.hyperliquid
|
|
13956
|
+
};
|
|
13957
|
+
var parseVenueName = (raw) => VENUE_NAME_MAP[raw];
|
|
13958
|
+
var NON_VENUE_FINALIZE_PREFIXES = /* @__PURE__ */ new Set(["bridge"]);
|
|
13959
|
+
var classifyExecutionStepType = (stepType) => {
|
|
13960
|
+
if (!stepType) return null;
|
|
13961
|
+
if (WAIT_STEP_TYPES.has(stepType)) return null;
|
|
13962
|
+
if (CHECKING_BALANCE_STEP_TYPES.has(stepType)) {
|
|
13963
|
+
return { kind: "checking-balance" };
|
|
13964
|
+
}
|
|
13965
|
+
const buySellMatch = stepType.match(VENUE_BUY_SELL_REGEX);
|
|
13966
|
+
if (buySellMatch) {
|
|
13967
|
+
const venue = parseVenueName(buySellMatch[1]);
|
|
13968
|
+
if (venue) return { kind: "executing-venue", venue };
|
|
13969
|
+
}
|
|
13970
|
+
const finalizeMatch = stepType.match(VENUE_FINALIZE_REGEX);
|
|
13971
|
+
if (finalizeMatch && !NON_VENUE_FINALIZE_PREFIXES.has(finalizeMatch[1])) {
|
|
13972
|
+
const venue = parseVenueName(finalizeMatch[1]);
|
|
13973
|
+
if (venue) return { kind: "executing-venue", venue };
|
|
13974
|
+
}
|
|
13975
|
+
if (stepType === "submit-verify-order-status") {
|
|
13976
|
+
return null;
|
|
13977
|
+
}
|
|
13978
|
+
return { kind: "submitting" };
|
|
13979
|
+
};
|
|
13980
|
+
var buildPhaseTimeline = (dag) => {
|
|
13981
|
+
const timeline = [];
|
|
13982
|
+
const completed = new Set(dag.completedSequences);
|
|
13983
|
+
for (let seq = 1; seq <= dag.totalSteps; seq++) {
|
|
13984
|
+
const stepType = dag.stepTypes[seq];
|
|
13985
|
+
if (!stepType) continue;
|
|
13986
|
+
const classified = classifyExecutionStepType(stepType);
|
|
13987
|
+
if (!classified) continue;
|
|
13988
|
+
const isCompleted = completed.has(seq);
|
|
13989
|
+
const last = timeline[timeline.length - 1];
|
|
13990
|
+
if (last && last.kind === classified.kind && last.venue === classified.venue) {
|
|
13991
|
+
last.lastSeq = seq;
|
|
13992
|
+
last.allCompleted = last.allCompleted && isCompleted;
|
|
13993
|
+
continue;
|
|
13994
|
+
}
|
|
13995
|
+
timeline.push({
|
|
13996
|
+
kind: classified.kind,
|
|
13997
|
+
venue: classified.venue,
|
|
13998
|
+
firstSeq: seq,
|
|
13999
|
+
lastSeq: seq,
|
|
14000
|
+
allCompleted: isCompleted
|
|
14001
|
+
});
|
|
14002
|
+
}
|
|
14003
|
+
return timeline;
|
|
14004
|
+
};
|
|
14005
|
+
var phaseRowId = (phase) => phase.venue ? `${phase.kind}:${phase.venue}` : phase.kind;
|
|
14006
|
+
var phaseRowLabel = (phase, labels) => {
|
|
14007
|
+
switch (phase.kind) {
|
|
14008
|
+
case "finding-route":
|
|
14009
|
+
return labels.findingBestRoute;
|
|
14010
|
+
case "checking-balance":
|
|
14011
|
+
return labels.checkingBalance;
|
|
14012
|
+
case "submitting":
|
|
14013
|
+
return labels.submittingOrderProgress;
|
|
14014
|
+
case "wallet-confirm":
|
|
14015
|
+
return labels.confirmTransactionInWallet;
|
|
14016
|
+
case "executing-venue":
|
|
14017
|
+
return labels.executingOnVenue(getTradingVenueLabel(phase.venue));
|
|
14018
|
+
case "filled":
|
|
14019
|
+
return labels.executionConfirmed;
|
|
14020
|
+
case "failed":
|
|
14021
|
+
return labels.orderFailureTitle;
|
|
14022
|
+
}
|
|
14023
|
+
};
|
|
14024
|
+
var buildSubmissionDisplayRows = ({
|
|
14025
|
+
phase,
|
|
14026
|
+
dagProgress,
|
|
14027
|
+
executionVenue,
|
|
14028
|
+
isAwaitingWalletConfirmation,
|
|
14029
|
+
labels
|
|
14030
|
+
}) => {
|
|
14031
|
+
if (phase === "finding-route") {
|
|
14032
|
+
return [
|
|
14033
|
+
{
|
|
14034
|
+
id: "finding-route",
|
|
14035
|
+
label: labels.findingBestRoute,
|
|
14036
|
+
status: "pending"
|
|
14037
|
+
}
|
|
14038
|
+
];
|
|
14039
|
+
}
|
|
14040
|
+
const rows = [
|
|
14041
|
+
{
|
|
14042
|
+
id: "finding-route",
|
|
14043
|
+
label: labels.findingBestRoute,
|
|
14044
|
+
status: "complete"
|
|
14045
|
+
}
|
|
14046
|
+
];
|
|
14047
|
+
const pushPhase = (phaseEntry, status) => {
|
|
14048
|
+
const id = phaseRowId(phaseEntry);
|
|
14049
|
+
if (rows.some((row) => row.id === id)) return;
|
|
14050
|
+
rows.push({
|
|
14051
|
+
id,
|
|
14052
|
+
label: phaseRowLabel(phaseEntry, labels),
|
|
14053
|
+
status,
|
|
14054
|
+
venue: phaseEntry.venue
|
|
14055
|
+
});
|
|
14056
|
+
};
|
|
14057
|
+
if (dagProgress && dagProgress.totalSteps > 0) {
|
|
14058
|
+
const timeline = buildPhaseTimeline(dagProgress);
|
|
14059
|
+
let activeEmitted = false;
|
|
14060
|
+
for (const entry of timeline) {
|
|
14061
|
+
const id = phaseRowId(entry);
|
|
14062
|
+
const alreadyShown = rows.some((row) => row.id === id);
|
|
14063
|
+
if (entry.allCompleted) {
|
|
14064
|
+
if (alreadyShown) continue;
|
|
14065
|
+
pushPhase(entry, "complete");
|
|
14066
|
+
continue;
|
|
14067
|
+
}
|
|
14068
|
+
if (activeEmitted) break;
|
|
14069
|
+
if (alreadyShown) continue;
|
|
14070
|
+
if (isAwaitingWalletConfirmation && entry.kind === "submitting") {
|
|
14071
|
+
pushPhase({ kind: "wallet-confirm" }, "pending");
|
|
14072
|
+
} else {
|
|
14073
|
+
pushPhase(entry, "pending");
|
|
14074
|
+
}
|
|
14075
|
+
activeEmitted = true;
|
|
14076
|
+
}
|
|
14077
|
+
if (!activeEmitted) {
|
|
14078
|
+
const last = rows[rows.length - 1];
|
|
14079
|
+
if (last && last.id.startsWith("executing-venue")) {
|
|
14080
|
+
last.status = "pending";
|
|
14081
|
+
} else {
|
|
14082
|
+
const fallbackVenue = executionVenue;
|
|
14083
|
+
rows.push({
|
|
14084
|
+
id: fallbackVenue ? `executing-venue:${fallbackVenue}` : "executing-venue",
|
|
14085
|
+
label: phaseRowLabel({ kind: "executing-venue", venue: fallbackVenue }, labels),
|
|
14086
|
+
status: "pending",
|
|
14087
|
+
venue: fallbackVenue
|
|
14088
|
+
});
|
|
14089
|
+
}
|
|
14090
|
+
}
|
|
14091
|
+
return rows;
|
|
14092
|
+
}
|
|
14093
|
+
if (isAwaitingWalletConfirmation) {
|
|
14094
|
+
pushPhase({ kind: "wallet-confirm" }, "pending");
|
|
14095
|
+
return rows;
|
|
14096
|
+
}
|
|
14097
|
+
if (phase === "submitting") {
|
|
14098
|
+
pushPhase({ kind: "submitting" }, "pending");
|
|
14099
|
+
return rows;
|
|
14100
|
+
}
|
|
14101
|
+
pushPhase({ kind: "submitting" }, "complete");
|
|
14102
|
+
pushPhase({ kind: "executing-venue", venue: executionVenue }, "pending");
|
|
14103
|
+
return rows;
|
|
14104
|
+
};
|
|
14105
|
+
|
|
14106
|
+
// src/trading/place-order/index.place-order.execution-debug.ts
|
|
14107
|
+
var REDACTED = "[redacted]";
|
|
14108
|
+
var SENSITIVE_FIELD_PATTERNS = [
|
|
14109
|
+
"token",
|
|
14110
|
+
"authorization",
|
|
14111
|
+
"cookie",
|
|
14112
|
+
"secret",
|
|
14113
|
+
"signature",
|
|
14114
|
+
"privatekey",
|
|
14115
|
+
"private_key",
|
|
14116
|
+
"accesstoken",
|
|
14117
|
+
"access_token",
|
|
14118
|
+
"refreshtoken",
|
|
14119
|
+
"refresh_token",
|
|
14120
|
+
"jwt",
|
|
14121
|
+
"password",
|
|
14122
|
+
"apikey",
|
|
14123
|
+
"api_key",
|
|
14124
|
+
"email",
|
|
14125
|
+
"headers"
|
|
14126
|
+
];
|
|
14127
|
+
var isSensitiveFieldName = (name) => {
|
|
14128
|
+
const normalized = name.toLowerCase();
|
|
14129
|
+
return SENSITIVE_FIELD_PATTERNS.some((pattern) => normalized.includes(pattern));
|
|
14130
|
+
};
|
|
14131
|
+
var sanitizeExecutionDebugValue = (input) => {
|
|
14132
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
14133
|
+
const walk = (value) => {
|
|
14134
|
+
if (value === null || value === void 0) return value;
|
|
14135
|
+
if (typeof value !== "object") return value;
|
|
14136
|
+
if (ancestors.has(value)) return "[circular]";
|
|
14137
|
+
ancestors.add(value);
|
|
14138
|
+
try {
|
|
14139
|
+
if (Array.isArray(value)) {
|
|
14140
|
+
return value.map((entry) => walk(entry));
|
|
14141
|
+
}
|
|
14142
|
+
if (value instanceof Error) {
|
|
14143
|
+
return {
|
|
14144
|
+
name: value.name,
|
|
14145
|
+
message: value.message,
|
|
14146
|
+
stack: value.stack
|
|
14147
|
+
};
|
|
14148
|
+
}
|
|
14149
|
+
const out = {};
|
|
14150
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
14151
|
+
if (isSensitiveFieldName(key)) {
|
|
14152
|
+
out[key] = REDACTED;
|
|
14153
|
+
continue;
|
|
14154
|
+
}
|
|
14155
|
+
out[key] = walk(raw);
|
|
14156
|
+
}
|
|
14157
|
+
return out;
|
|
14158
|
+
} finally {
|
|
14159
|
+
ancestors.delete(value);
|
|
14160
|
+
}
|
|
14161
|
+
};
|
|
14162
|
+
return walk(input);
|
|
14163
|
+
};
|
|
14164
|
+
var cloneEnvironment = (env) => __spreadProps(__spreadValues({}, env), {
|
|
14165
|
+
packageVersions: env.packageVersions ? __spreadValues({}, env.packageVersions) : void 0
|
|
14166
|
+
});
|
|
14167
|
+
var buildEnvironment = (overrides) => {
|
|
14168
|
+
var _a;
|
|
14169
|
+
const url = typeof window !== "undefined" ? (_a = window.location) == null ? void 0 : _a.href : void 0;
|
|
14170
|
+
const userAgent = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : void 0;
|
|
14171
|
+
return __spreadValues({
|
|
14172
|
+
url,
|
|
14173
|
+
userAgent,
|
|
14174
|
+
capturedAt: Date.now()
|
|
14175
|
+
}, overrides);
|
|
14176
|
+
};
|
|
14177
|
+
var generateAttemptId = () => {
|
|
14178
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
14179
|
+
return crypto.randomUUID();
|
|
14180
|
+
}
|
|
14181
|
+
return `attempt-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
14182
|
+
};
|
|
14183
|
+
var createExecutionDebugStore = (initial) => {
|
|
14184
|
+
let attempts = [];
|
|
14185
|
+
let environment = buildEnvironment(initial);
|
|
14186
|
+
const findAttempt = (attemptId) => attempts.find((attempt) => attempt.attemptId === attemptId);
|
|
14187
|
+
const touch = (attempt) => {
|
|
14188
|
+
attempt.updatedAt = Date.now();
|
|
14189
|
+
};
|
|
14190
|
+
return {
|
|
14191
|
+
appendAttempt(input = {}) {
|
|
14192
|
+
var _a, _b;
|
|
14193
|
+
const now = Date.now();
|
|
14194
|
+
const attempt = {
|
|
14195
|
+
attemptId: (_a = input.attemptId) != null ? _a : generateAttemptId(),
|
|
14196
|
+
startedAt: now,
|
|
14197
|
+
updatedAt: now,
|
|
14198
|
+
status: (_b = input.status) != null ? _b : "quoting",
|
|
14199
|
+
quoteId: input.quoteId,
|
|
14200
|
+
orderId: input.orderId,
|
|
14201
|
+
orderIds: input.orderIds,
|
|
14202
|
+
quote: input.quote,
|
|
14203
|
+
selectedRoute: input.selectedRoute,
|
|
14204
|
+
bridge: input.bridge,
|
|
14205
|
+
venueExecution: input.venueExecution,
|
|
14206
|
+
rawEvents: [],
|
|
14207
|
+
normalizedSteps: [],
|
|
14208
|
+
errors: []
|
|
14209
|
+
};
|
|
14210
|
+
attempts = [...attempts, attempt];
|
|
14211
|
+
return attempt;
|
|
14212
|
+
},
|
|
14213
|
+
updateAttempt(attemptId, patch) {
|
|
14214
|
+
const attempt = findAttempt(attemptId);
|
|
14215
|
+
if (!attempt) return;
|
|
14216
|
+
if (patch.status !== void 0) attempt.status = patch.status;
|
|
14217
|
+
if (patch.quoteId !== void 0) attempt.quoteId = patch.quoteId;
|
|
14218
|
+
if (patch.orderId !== void 0) attempt.orderId = patch.orderId;
|
|
14219
|
+
if (patch.orderIds !== void 0) attempt.orderIds = patch.orderIds;
|
|
14220
|
+
if (patch.quote !== void 0) attempt.quote = patch.quote;
|
|
14221
|
+
if (patch.selectedRoute !== void 0) attempt.selectedRoute = patch.selectedRoute;
|
|
14222
|
+
if (patch.bridge !== void 0) attempt.bridge = patch.bridge;
|
|
14223
|
+
if (patch.venueExecution !== void 0) attempt.venueExecution = patch.venueExecution;
|
|
14224
|
+
if (patch.finalStatus !== void 0) attempt.finalStatus = patch.finalStatus;
|
|
14225
|
+
touch(attempt);
|
|
14226
|
+
},
|
|
14227
|
+
appendEvent(attemptId, event) {
|
|
14228
|
+
var _a;
|
|
14229
|
+
const attempt = findAttempt(attemptId);
|
|
14230
|
+
if (!attempt) return;
|
|
14231
|
+
attempt.rawEvents.push({
|
|
14232
|
+
kind: event.kind,
|
|
14233
|
+
label: event.label,
|
|
14234
|
+
data: event.data,
|
|
14235
|
+
timestamp: (_a = event.timestamp) != null ? _a : Date.now()
|
|
14236
|
+
});
|
|
14237
|
+
touch(attempt);
|
|
14238
|
+
},
|
|
14239
|
+
appendError(attemptId, error) {
|
|
14240
|
+
var _a;
|
|
14241
|
+
const attempt = findAttempt(attemptId);
|
|
14242
|
+
if (!attempt) return;
|
|
14243
|
+
attempt.errors.push({
|
|
14244
|
+
message: error.message,
|
|
14245
|
+
name: error.name,
|
|
14246
|
+
code: error.code,
|
|
14247
|
+
stack: error.stack,
|
|
14248
|
+
failedStep: error.failedStep,
|
|
14249
|
+
data: error.data,
|
|
14250
|
+
timestamp: (_a = error.timestamp) != null ? _a : Date.now()
|
|
14251
|
+
});
|
|
14252
|
+
touch(attempt);
|
|
14253
|
+
},
|
|
14254
|
+
setNormalizedSteps(attemptId, steps) {
|
|
14255
|
+
const attempt = findAttempt(attemptId);
|
|
14256
|
+
if (!attempt) return;
|
|
14257
|
+
attempt.normalizedSteps = steps;
|
|
14258
|
+
touch(attempt);
|
|
14259
|
+
},
|
|
14260
|
+
getSnapshot() {
|
|
14261
|
+
return {
|
|
14262
|
+
attempts: attempts.map((attempt) => __spreadProps(__spreadValues({}, attempt), {
|
|
14263
|
+
rawEvents: [...attempt.rawEvents],
|
|
14264
|
+
normalizedSteps: [...attempt.normalizedSteps],
|
|
14265
|
+
errors: [...attempt.errors]
|
|
14266
|
+
})),
|
|
14267
|
+
environment: cloneEnvironment(environment)
|
|
14268
|
+
};
|
|
14269
|
+
},
|
|
14270
|
+
getFailedAttempts() {
|
|
14271
|
+
return attempts.filter(
|
|
14272
|
+
(attempt) => attempt.status === "failed" || attempt.finalStatus === "failed" || attempt.errors.length > 0
|
|
14273
|
+
).map((attempt) => __spreadProps(__spreadValues({}, attempt), {
|
|
14274
|
+
rawEvents: [...attempt.rawEvents],
|
|
14275
|
+
normalizedSteps: [...attempt.normalizedSteps],
|
|
14276
|
+
errors: [...attempt.errors]
|
|
14277
|
+
}));
|
|
14278
|
+
},
|
|
14279
|
+
clear() {
|
|
14280
|
+
attempts = [];
|
|
14281
|
+
environment = buildEnvironment(initial);
|
|
14282
|
+
}
|
|
14283
|
+
};
|
|
14284
|
+
};
|
|
14285
|
+
var writeClipboardLegacy = (text) => {
|
|
14286
|
+
if (typeof document === "undefined") return false;
|
|
14287
|
+
const textarea = document.createElement("textarea");
|
|
14288
|
+
textarea.value = text;
|
|
14289
|
+
textarea.setAttribute("readonly", "");
|
|
14290
|
+
textarea.style.position = "fixed";
|
|
14291
|
+
textarea.style.top = "-1000px";
|
|
14292
|
+
textarea.style.opacity = "0";
|
|
14293
|
+
document.body.appendChild(textarea);
|
|
14294
|
+
try {
|
|
14295
|
+
textarea.select();
|
|
14296
|
+
return document.execCommand("copy");
|
|
14297
|
+
} catch (e) {
|
|
14298
|
+
return false;
|
|
14299
|
+
} finally {
|
|
14300
|
+
document.body.removeChild(textarea);
|
|
14301
|
+
}
|
|
14302
|
+
};
|
|
14303
|
+
var tryWriteClipboard = (text, consoleImpl) => __async(null, null, function* () {
|
|
14304
|
+
var _a;
|
|
14305
|
+
if (typeof navigator !== "undefined" && ((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
|
|
14306
|
+
try {
|
|
14307
|
+
yield navigator.clipboard.writeText(text);
|
|
14308
|
+
consoleImpl.info("[agg-execution-debug] Copied execution data to clipboard.");
|
|
14309
|
+
return;
|
|
14310
|
+
} catch (e) {
|
|
14311
|
+
}
|
|
14312
|
+
}
|
|
14313
|
+
if (writeClipboardLegacy(text)) {
|
|
14314
|
+
consoleImpl.info("[agg-execution-debug] Copied execution data to clipboard.");
|
|
14315
|
+
return;
|
|
14316
|
+
}
|
|
14317
|
+
consoleImpl.warn(
|
|
14318
|
+
"[agg-execution-debug] Clipboard copy was blocked by the browser. The JSON is logged below \u2014 right-click the entry and copy."
|
|
14319
|
+
);
|
|
14320
|
+
consoleImpl.log(text);
|
|
14321
|
+
});
|
|
14322
|
+
var installExecutionDebugWindow = ({
|
|
14323
|
+
store,
|
|
14324
|
+
consoleImpl
|
|
14325
|
+
}) => {
|
|
14326
|
+
if (typeof window === "undefined") return () => {
|
|
14327
|
+
};
|
|
14328
|
+
const targetConsole = consoleImpl != null ? consoleImpl : console;
|
|
14329
|
+
const previous = {
|
|
14330
|
+
executionData: window.executionData,
|
|
14331
|
+
getExecutionData: window.getExecutionData,
|
|
14332
|
+
getFailedExecutionData: window.getFailedExecutionData,
|
|
14333
|
+
clearExecutionData: window.clearExecutionData,
|
|
14334
|
+
storeRef: window.__aggExecutionDebugStore
|
|
14335
|
+
};
|
|
14336
|
+
const refresh = () => {
|
|
14337
|
+
window.executionData = sanitizeExecutionDebugValue(store.getSnapshot());
|
|
14338
|
+
};
|
|
14339
|
+
refresh();
|
|
14340
|
+
window.__aggExecutionDebugStore = store;
|
|
14341
|
+
window.getExecutionData = () => {
|
|
14342
|
+
const data = sanitizeExecutionDebugValue(store.getSnapshot());
|
|
14343
|
+
window.executionData = data;
|
|
14344
|
+
void tryWriteClipboard(JSON.stringify(data, null, 2), targetConsole);
|
|
14345
|
+
return data;
|
|
14346
|
+
};
|
|
14347
|
+
window.getFailedExecutionData = () => {
|
|
14348
|
+
const failed = sanitizeExecutionDebugValue({ attempts: store.getFailedAttempts() });
|
|
14349
|
+
void tryWriteClipboard(JSON.stringify(failed, null, 2), targetConsole);
|
|
14350
|
+
return failed;
|
|
14351
|
+
};
|
|
14352
|
+
window.clearExecutionData = () => {
|
|
14353
|
+
store.clear();
|
|
14354
|
+
refresh();
|
|
14355
|
+
};
|
|
14356
|
+
targetConsole.info(
|
|
14357
|
+
"AGG execution debug enabled. Run window.getFailedExecutionData() after a failed order to copy logs."
|
|
14358
|
+
);
|
|
14359
|
+
return () => {
|
|
14360
|
+
if (typeof window === "undefined") return;
|
|
14361
|
+
window.executionData = previous.executionData;
|
|
14362
|
+
window.getExecutionData = previous.getExecutionData;
|
|
14363
|
+
window.getFailedExecutionData = previous.getFailedExecutionData;
|
|
14364
|
+
window.clearExecutionData = previous.clearExecutionData;
|
|
14365
|
+
window.__aggExecutionDebugStore = previous.storeRef;
|
|
14366
|
+
};
|
|
14367
|
+
};
|
|
14368
|
+
var enableExecutionDebugInBrowser = (initial) => {
|
|
14369
|
+
if (typeof window === "undefined") return null;
|
|
14370
|
+
const existing = window.__aggExecutionDebugStore;
|
|
14371
|
+
if (existing) return existing;
|
|
14372
|
+
const store = createExecutionDebugStore(initial);
|
|
14373
|
+
installExecutionDebugWindow({ store });
|
|
14374
|
+
return store;
|
|
14375
|
+
};
|
|
14376
|
+
|
|
13900
14377
|
// src/trading/place-order/index.place-order.utils.ts
|
|
13901
14378
|
var routePriceLabelFormatter = new Intl.NumberFormat("en-US", {
|
|
13902
14379
|
minimumFractionDigits: 0,
|
|
@@ -15084,21 +15561,6 @@ PlaceOrderSuccessView.displayName = "PlaceOrderSuccessView";
|
|
|
15084
15561
|
|
|
15085
15562
|
// src/trading/place-order/index.tsx
|
|
15086
15563
|
var import_jsx_runtime135 = require("react/jsx-runtime");
|
|
15087
|
-
var DEFAULT_STEP_LABELS = {
|
|
15088
|
-
"check-balance": "Checking balance",
|
|
15089
|
-
"check-position": "Checking position",
|
|
15090
|
-
"lane-bridge": "Bridging funds",
|
|
15091
|
-
bridge: "Bridging funds",
|
|
15092
|
-
"bridge-to-user": "Transferring to wallet",
|
|
15093
|
-
"sweep-bridge": "Completing bridge",
|
|
15094
|
-
"submit-order": "Submitting order",
|
|
15095
|
-
"order-bridge-execute": "Executing order",
|
|
15096
|
-
"transfer-to-user": "Transferring to wallet"
|
|
15097
|
-
};
|
|
15098
|
-
var getDefaultStepLabel = (stepType) => {
|
|
15099
|
-
var _a;
|
|
15100
|
-
return (_a = DEFAULT_STEP_LABELS[stepType]) != null ? _a : stepType.replace(/-/g, " ").replace(/^\w/, (c) => c.toUpperCase());
|
|
15101
|
-
};
|
|
15102
15564
|
var resolveRefetchedQuoteData = (result) => {
|
|
15103
15565
|
if (!result || typeof result !== "object" || !("data" in result)) return null;
|
|
15104
15566
|
const data = result.data;
|
|
@@ -15598,7 +16060,6 @@ var renderRouteCard = ({
|
|
|
15598
16060
|
}
|
|
15599
16061
|
);
|
|
15600
16062
|
};
|
|
15601
|
-
var normalizeOrderIdLabelInput2 = (orderId) => orderId.replace(/^#+/, "");
|
|
15602
16063
|
var renderSubmissionSurface = ({
|
|
15603
16064
|
actionLabel,
|
|
15604
16065
|
className,
|
|
@@ -15610,81 +16071,12 @@ var renderSubmissionSurface = ({
|
|
|
15610
16071
|
progressState,
|
|
15611
16072
|
tradingLabels
|
|
15612
16073
|
}) => {
|
|
15613
|
-
const
|
|
15614
|
-
|
|
15615
|
-
|
|
15616
|
-
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
id: "finding-route",
|
|
15620
|
-
label: tradingLabels.findingBestRoute,
|
|
15621
|
-
status: "pending"
|
|
15622
|
-
}
|
|
15623
|
-
]
|
|
15624
|
-
];
|
|
15625
|
-
}
|
|
15626
|
-
const dag = progressState.dagProgress;
|
|
15627
|
-
if (dag && dag.totalSteps > 0) {
|
|
15628
|
-
const steps = [
|
|
15629
|
-
{
|
|
15630
|
-
id: "finding-route",
|
|
15631
|
-
label: tradingLabels.findingBestRoute,
|
|
15632
|
-
status: "complete"
|
|
15633
|
-
}
|
|
15634
|
-
];
|
|
15635
|
-
for (let i = 1; i <= dag.totalSteps; i++) {
|
|
15636
|
-
const isCompleted = dag.completedSequences.includes(i);
|
|
15637
|
-
const isCurrent = i === dag.currentSequence && !isCompleted;
|
|
15638
|
-
const stepType = (_a = dag.stepTypes[i]) != null ? _a : null;
|
|
15639
|
-
const stepLabel = stepType ? getDefaultStepLabel(stepType) : `Step ${i} of ${dag.totalSteps}`;
|
|
15640
|
-
const prev = steps[steps.length - 1];
|
|
15641
|
-
if (prev && prev.label === stepLabel) {
|
|
15642
|
-
if (prev.status === "complete" && !isCompleted) {
|
|
15643
|
-
prev.status = "pending";
|
|
15644
|
-
}
|
|
15645
|
-
continue;
|
|
15646
|
-
}
|
|
15647
|
-
steps.push({
|
|
15648
|
-
id: `dag-step-${i}`,
|
|
15649
|
-
label: stepLabel,
|
|
15650
|
-
status: isCompleted ? "complete" : isCurrent ? "pending" : "pending"
|
|
15651
|
-
});
|
|
15652
|
-
}
|
|
15653
|
-
return [steps];
|
|
15654
|
-
}
|
|
15655
|
-
const baseSteps = [
|
|
15656
|
-
{
|
|
15657
|
-
id: "finding-route",
|
|
15658
|
-
label: tradingLabels.findingBestRoute,
|
|
15659
|
-
status: "complete"
|
|
15660
|
-
},
|
|
15661
|
-
{
|
|
15662
|
-
id: "submitting-order",
|
|
15663
|
-
label: tradingLabels.submittingOrderProgress,
|
|
15664
|
-
status: "complete"
|
|
15665
|
-
}
|
|
15666
|
-
];
|
|
15667
|
-
const submittedOrderId = (_c = progressState.orderId) != null ? _c : (_b = progressState.orderIds) == null ? void 0 : _b[0];
|
|
15668
|
-
if (submittedOrderId) {
|
|
15669
|
-
baseSteps.push({
|
|
15670
|
-
id: "order-submitted",
|
|
15671
|
-
label: tradingLabels.orderSubmittedProgress(normalizeOrderIdLabelInput2(submittedOrderId)),
|
|
15672
|
-
status: "complete"
|
|
15673
|
-
});
|
|
15674
|
-
}
|
|
15675
|
-
return [
|
|
15676
|
-
baseSteps,
|
|
15677
|
-
[
|
|
15678
|
-
{
|
|
15679
|
-
id: "executing-order",
|
|
15680
|
-
label: tradingLabels.executingOnVenue(getTradingVenueLabel(progressState.executionVenue)),
|
|
15681
|
-
status: "pending",
|
|
15682
|
-
venue: progressState.executionVenue
|
|
15683
|
-
}
|
|
15684
|
-
]
|
|
15685
|
-
];
|
|
15686
|
-
};
|
|
15687
|
-
const stepGroups = resolveStepGroups();
|
|
16074
|
+
const displayRows = buildSubmissionDisplayRows({
|
|
16075
|
+
phase: progressState.phase,
|
|
16076
|
+
dagProgress: progressState.dagProgress,
|
|
16077
|
+
executionVenue: progressState.executionVenue,
|
|
16078
|
+
labels: tradingLabels
|
|
16079
|
+
});
|
|
15688
16080
|
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
15689
16081
|
Card,
|
|
15690
16082
|
{
|
|
@@ -15706,51 +16098,50 @@ var renderSubmissionSurface = ({
|
|
|
15706
16098
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(LoadingGlyph, { enableAnimations, className: "h-4 w-4 text-current" }),
|
|
15707
16099
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)("span", { children: actionLabel })
|
|
15708
16100
|
] }),
|
|
15709
|
-
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
15710
|
-
|
|
15711
|
-
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
15715
|
-
|
|
15716
|
-
|
|
15717
|
-
|
|
15718
|
-
|
|
15719
|
-
|
|
15720
|
-
|
|
15721
|
-
|
|
15722
|
-
|
|
15723
|
-
|
|
15724
|
-
|
|
15725
|
-
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
15729
|
-
|
|
15730
|
-
|
|
15731
|
-
|
|
15732
|
-
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
15736
|
-
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
15740
|
-
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
15745
|
-
|
|
15746
|
-
|
|
15747
|
-
|
|
15748
|
-
|
|
15749
|
-
|
|
15750
|
-
}
|
|
15751
|
-
|
|
15752
|
-
|
|
15753
|
-
}) })
|
|
16101
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16102
|
+
"div",
|
|
16103
|
+
{
|
|
16104
|
+
className: "agg-order-submission-steps agg-order-submission-group flex flex-col gap-2",
|
|
16105
|
+
"data-testid": "agg-order-submission-steps",
|
|
16106
|
+
children: displayRows.map((step) => {
|
|
16107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(
|
|
16108
|
+
"div",
|
|
16109
|
+
{
|
|
16110
|
+
className: "agg-order-submission-step flex items-center gap-2 text-agg-sm leading-agg-5 text-agg-foreground",
|
|
16111
|
+
"data-status": step.status,
|
|
16112
|
+
children: [
|
|
16113
|
+
step.status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16114
|
+
Icon,
|
|
16115
|
+
{
|
|
16116
|
+
name: "check-circle",
|
|
16117
|
+
size: "small",
|
|
16118
|
+
className: "h-3 w-3 shrink-0 text-agg-primary",
|
|
16119
|
+
"aria-hidden": "true"
|
|
16120
|
+
}
|
|
16121
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16122
|
+
LoadingGlyph,
|
|
16123
|
+
{
|
|
16124
|
+
enableAnimations,
|
|
16125
|
+
className: "h-3 w-3 shrink-0 text-agg-primary"
|
|
16126
|
+
}
|
|
16127
|
+
),
|
|
16128
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)("p", { className: "min-w-0 flex-1", children: step.label }),
|
|
16129
|
+
step.venue ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
16130
|
+
VenueLogo,
|
|
16131
|
+
{
|
|
16132
|
+
venue: step.venue,
|
|
16133
|
+
size: "small",
|
|
16134
|
+
ariaLabel: getTradingVenueLabel(step.venue),
|
|
16135
|
+
className: "h-4 w-4"
|
|
16136
|
+
}
|
|
16137
|
+
) : null
|
|
16138
|
+
]
|
|
16139
|
+
},
|
|
16140
|
+
step.id
|
|
16141
|
+
);
|
|
16142
|
+
})
|
|
16143
|
+
}
|
|
16144
|
+
)
|
|
15754
16145
|
] })
|
|
15755
16146
|
] })
|
|
15756
16147
|
}
|
|
@@ -15886,6 +16277,7 @@ var PlaceOrder = ({
|
|
|
15886
16277
|
}) => {
|
|
15887
16278
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D;
|
|
15888
16279
|
const {
|
|
16280
|
+
enableDebug: isExecutionDebugEnabled,
|
|
15889
16281
|
features: { enableAnimations, showFeesBreakdown },
|
|
15890
16282
|
general: { locale }
|
|
15891
16283
|
} = (0, import_hooks51.useSdkUiConfig)();
|
|
@@ -15982,6 +16374,27 @@ var PlaceOrder = ({
|
|
|
15982
16374
|
const [isSplitDetailOpen, setIsSplitDetailOpen] = (0, import_react27.useState)(false);
|
|
15983
16375
|
const [submissionFeedback, setSubmissionFeedback] = (0, import_react27.useState)(null);
|
|
15984
16376
|
const [submissionProgressState, setSubmissionProgressState] = (0, import_react27.useState)(null);
|
|
16377
|
+
const executionDebugStoreRef = (0, import_react27.useRef)(null);
|
|
16378
|
+
const executionDebugAttemptIdRef = (0, import_react27.useRef)(null);
|
|
16379
|
+
(0, import_react27.useEffect)(() => {
|
|
16380
|
+
if (!isExecutionDebugEnabled) {
|
|
16381
|
+
executionDebugStoreRef.current = null;
|
|
16382
|
+
return;
|
|
16383
|
+
}
|
|
16384
|
+
executionDebugStoreRef.current = enableExecutionDebugInBrowser();
|
|
16385
|
+
}, [isExecutionDebugEnabled]);
|
|
16386
|
+
(0, import_react27.useEffect)(() => {
|
|
16387
|
+
if (!isExecutionDebugEnabled) return;
|
|
16388
|
+
const store = executionDebugStoreRef.current;
|
|
16389
|
+
if (!store) return;
|
|
16390
|
+
store.clear();
|
|
16391
|
+
executionDebugAttemptIdRef.current = null;
|
|
16392
|
+
}, [
|
|
16393
|
+
isExecutionDebugEnabled,
|
|
16394
|
+
scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
16395
|
+
scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
16396
|
+
scopedSelectedOutcomeId
|
|
16397
|
+
]);
|
|
15985
16398
|
const debouncedAmount = (0, import_hooks51.useDebouncedValue)(internalAmount, 300);
|
|
15986
16399
|
const isSell = (0, import_react27.useMemo)(() => internalTab === "sell", [internalTab]);
|
|
15987
16400
|
const {
|
|
@@ -16241,8 +16654,39 @@ var PlaceOrder = ({
|
|
|
16241
16654
|
selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData
|
|
16242
16655
|
]);
|
|
16243
16656
|
(0, import_react27.useEffect)(() => {
|
|
16657
|
+
var _a2, _b2;
|
|
16244
16658
|
const dp = executionProgress.dagProgress;
|
|
16245
16659
|
if (!dp) return;
|
|
16660
|
+
const debugStore = executionDebugStoreRef.current;
|
|
16661
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
16662
|
+
if (debugStore && debugAttemptId) {
|
|
16663
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
16664
|
+
kind: "ws_update",
|
|
16665
|
+
label: "dag_progress",
|
|
16666
|
+
data: dp
|
|
16667
|
+
});
|
|
16668
|
+
const normalizedRows = buildSubmissionDisplayRows({
|
|
16669
|
+
phase: "executing",
|
|
16670
|
+
dagProgress: dp,
|
|
16671
|
+
labels: tradingLabels
|
|
16672
|
+
});
|
|
16673
|
+
debugStore.setNormalizedSteps(debugAttemptId, normalizedRows);
|
|
16674
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
16675
|
+
kind: "normalized_steps",
|
|
16676
|
+
data: normalizedRows
|
|
16677
|
+
});
|
|
16678
|
+
if (dp.status === "failed") {
|
|
16679
|
+
debugStore.appendError(debugAttemptId, {
|
|
16680
|
+
message: (_a2 = dp.errorReason) != null ? _a2 : "DAG execution failed",
|
|
16681
|
+
failedStep: (_b2 = dp.currentStepType) != null ? _b2 : void 0,
|
|
16682
|
+
data: { currentSequence: dp.currentSequence, totalSteps: dp.totalSteps }
|
|
16683
|
+
});
|
|
16684
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
16685
|
+
status: "failed",
|
|
16686
|
+
finalStatus: "failed"
|
|
16687
|
+
});
|
|
16688
|
+
}
|
|
16689
|
+
}
|
|
16246
16690
|
setSubmissionProgressState((prev) => {
|
|
16247
16691
|
if (!prev) return prev;
|
|
16248
16692
|
if (dp.status === "failed") {
|
|
@@ -16258,7 +16702,7 @@ var PlaceOrder = ({
|
|
|
16258
16702
|
}
|
|
16259
16703
|
return __spreadProps(__spreadValues({}, prev), { dagProgress: dp });
|
|
16260
16704
|
});
|
|
16261
|
-
}, [executionProgress.dagProgress, tradingLabels
|
|
16705
|
+
}, [executionProgress.dagProgress, tradingLabels]);
|
|
16262
16706
|
(0, import_react27.useEffect)(() => {
|
|
16263
16707
|
const orderIds = submissionProgressState == null ? void 0 : submissionProgressState.orderIds;
|
|
16264
16708
|
if (!(orderIds == null ? void 0 : orderIds.length)) return;
|
|
@@ -16266,6 +16710,17 @@ var PlaceOrder = ({
|
|
|
16266
16710
|
orderIds,
|
|
16267
16711
|
executionProgress.terminalOrderEvents
|
|
16268
16712
|
);
|
|
16713
|
+
const debugStore = executionDebugStoreRef.current;
|
|
16714
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
16715
|
+
if (debugStore && debugAttemptId && executionProgress.terminalOrderEvents.length > 0) {
|
|
16716
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
16717
|
+
kind: "terminal_event",
|
|
16718
|
+
data: {
|
|
16719
|
+
aggregateStatus,
|
|
16720
|
+
events: executionProgress.terminalOrderEvents
|
|
16721
|
+
}
|
|
16722
|
+
});
|
|
16723
|
+
}
|
|
16269
16724
|
if (aggregateStatus === "pending") return;
|
|
16270
16725
|
setSubmissionProgressState((prev) => {
|
|
16271
16726
|
var _a2, _b2, _c2;
|
|
@@ -16308,14 +16763,45 @@ var PlaceOrder = ({
|
|
|
16308
16763
|
tradingLabels.orderFailed
|
|
16309
16764
|
]);
|
|
16310
16765
|
(0, import_react27.useEffect)(() => {
|
|
16766
|
+
var _a2, _b2;
|
|
16311
16767
|
if (!submissionProgressState) return;
|
|
16312
16768
|
onExecutionStateChange == null ? void 0 : onExecutionStateChange(submissionProgressState);
|
|
16769
|
+
const debugStore = executionDebugStoreRef.current;
|
|
16770
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
16771
|
+
if (debugStore && debugAttemptId) {
|
|
16772
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
16773
|
+
kind: "state_change",
|
|
16774
|
+
label: submissionProgressState.phase,
|
|
16775
|
+
data: {
|
|
16776
|
+
phase: submissionProgressState.phase,
|
|
16777
|
+
executionVenue: submissionProgressState.executionVenue,
|
|
16778
|
+
orderIds: submissionProgressState.orderIds,
|
|
16779
|
+
errorMessage: submissionProgressState.errorMessage
|
|
16780
|
+
}
|
|
16781
|
+
});
|
|
16782
|
+
}
|
|
16313
16783
|
if (submissionProgressState.phase === "success" && submissionProgressState.summary) {
|
|
16314
16784
|
(0, import_hooks51.invalidateBalanceQueries)(queryClient);
|
|
16315
16785
|
(0, import_hooks51.invalidatePositionQueries)(queryClient);
|
|
16786
|
+
if (debugStore && debugAttemptId) {
|
|
16787
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
16788
|
+
status: "succeeded",
|
|
16789
|
+
finalStatus: "succeeded"
|
|
16790
|
+
});
|
|
16791
|
+
}
|
|
16316
16792
|
onSuccess == null ? void 0 : onSuccess(submissionProgressState.summary);
|
|
16317
16793
|
}
|
|
16318
16794
|
if (submissionProgressState.phase === "failed" && submissionProgressState.errorMessage) {
|
|
16795
|
+
if (debugStore && debugAttemptId) {
|
|
16796
|
+
debugStore.appendError(debugAttemptId, {
|
|
16797
|
+
message: submissionProgressState.errorMessage,
|
|
16798
|
+
failedStep: (_b2 = (_a2 = submissionProgressState.dagProgress) == null ? void 0 : _a2.currentStepType) != null ? _b2 : void 0
|
|
16799
|
+
});
|
|
16800
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
16801
|
+
status: "failed",
|
|
16802
|
+
finalStatus: "failed"
|
|
16803
|
+
});
|
|
16804
|
+
}
|
|
16319
16805
|
onError == null ? void 0 : onError(new Error(submissionProgressState.errorMessage));
|
|
16320
16806
|
}
|
|
16321
16807
|
}, [submissionProgressState, onExecutionStateChange, onSuccess, onError, queryClient]);
|
|
@@ -16489,23 +16975,91 @@ var PlaceOrder = ({
|
|
|
16489
16975
|
};
|
|
16490
16976
|
const handleExecuteQuote = (0, import_react27.useCallback)(
|
|
16491
16977
|
(quoteData) => __async(null, null, function* () {
|
|
16978
|
+
var _a2, _b2, _c2;
|
|
16492
16979
|
const quoteId = quoteData == null ? void 0 : quoteData.quoteId;
|
|
16493
16980
|
if (!quoteId) {
|
|
16494
16981
|
throw new Error(tradingLabels.quoteUnavailable);
|
|
16495
16982
|
}
|
|
16983
|
+
const debugStore = executionDebugStoreRef.current;
|
|
16984
|
+
const venues = (_b2 = (_a2 = quoteData == null ? void 0 : quoteData.fills) == null ? void 0 : _a2.map((fill) => fill.venue).filter(Boolean)) != null ? _b2 : [];
|
|
16985
|
+
const debugAttempt = debugStore == null ? void 0 : debugStore.appendAttempt({
|
|
16986
|
+
status: "executing",
|
|
16987
|
+
quoteId,
|
|
16988
|
+
quote: {
|
|
16989
|
+
request: {
|
|
16990
|
+
venueMarketOutcomeId: scopedSelectedOutcomeId,
|
|
16991
|
+
amount: internalAmount,
|
|
16992
|
+
slippage: internalSlippage,
|
|
16993
|
+
tradeSide: isSell ? "sell" : "buy"
|
|
16994
|
+
},
|
|
16995
|
+
response: smartRoute.data,
|
|
16996
|
+
selectedRoute: quoteData,
|
|
16997
|
+
side: isSell ? "sell" : "buy",
|
|
16998
|
+
marketId: scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
16999
|
+
eventId: scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
17000
|
+
outcomeId: scopedSelectedOutcomeId != null ? scopedSelectedOutcomeId : void 0,
|
|
17001
|
+
venues,
|
|
17002
|
+
capturedAt: Date.now()
|
|
17003
|
+
},
|
|
17004
|
+
selectedRoute: quoteData
|
|
17005
|
+
});
|
|
17006
|
+
executionDebugAttemptIdRef.current = (_c2 = debugAttempt == null ? void 0 : debugAttempt.attemptId) != null ? _c2 : null;
|
|
16496
17007
|
if (onPrimaryAction) {
|
|
17008
|
+
debugStore == null ? void 0 : debugStore.appendEvent(debugAttempt.attemptId, {
|
|
17009
|
+
kind: "execute_request",
|
|
17010
|
+
label: "delegated_to_partner",
|
|
17011
|
+
data: { quoteId }
|
|
17012
|
+
});
|
|
16497
17013
|
onPrimaryAction({ quoteId });
|
|
16498
17014
|
return;
|
|
16499
17015
|
}
|
|
16500
|
-
|
|
16501
|
-
|
|
16502
|
-
|
|
16503
|
-
|
|
16504
|
-
|
|
16505
|
-
|
|
16506
|
-
|
|
17016
|
+
try {
|
|
17017
|
+
const response = yield executeManaged.mutateAsync({ quoteId });
|
|
17018
|
+
if (debugAttempt) {
|
|
17019
|
+
debugStore == null ? void 0 : debugStore.appendEvent(debugAttempt.attemptId, {
|
|
17020
|
+
kind: "execute_response",
|
|
17021
|
+
data: { orderIds: response.orderIds }
|
|
17022
|
+
});
|
|
17023
|
+
debugStore == null ? void 0 : debugStore.updateAttempt(debugAttempt.attemptId, {
|
|
17024
|
+
orderId: response.orderIds[0],
|
|
17025
|
+
orderIds: response.orderIds
|
|
17026
|
+
});
|
|
17027
|
+
}
|
|
17028
|
+
setSubmissionProgressState({
|
|
17029
|
+
executionVenue: resolveExecutionVenueFromQuote(quoteData),
|
|
17030
|
+
orderId: response.orderIds[0],
|
|
17031
|
+
orderIds: response.orderIds,
|
|
17032
|
+
phase: "submitting"
|
|
17033
|
+
});
|
|
17034
|
+
} catch (error) {
|
|
17035
|
+
if (debugAttempt) {
|
|
17036
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
17037
|
+
debugStore == null ? void 0 : debugStore.appendError(debugAttempt.attemptId, {
|
|
17038
|
+
message: err.message,
|
|
17039
|
+
name: err.name,
|
|
17040
|
+
stack: err.stack,
|
|
17041
|
+
failedStep: "execute_request"
|
|
17042
|
+
});
|
|
17043
|
+
debugStore == null ? void 0 : debugStore.updateAttempt(debugAttempt.attemptId, {
|
|
17044
|
+
status: "failed",
|
|
17045
|
+
finalStatus: "failed"
|
|
17046
|
+
});
|
|
17047
|
+
}
|
|
17048
|
+
throw error;
|
|
17049
|
+
}
|
|
16507
17050
|
}),
|
|
16508
|
-
[
|
|
17051
|
+
[
|
|
17052
|
+
executeManaged,
|
|
17053
|
+
internalAmount,
|
|
17054
|
+
internalSlippage,
|
|
17055
|
+
isSell,
|
|
17056
|
+
onPrimaryAction,
|
|
17057
|
+
scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
17058
|
+
scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
17059
|
+
scopedSelectedOutcomeId,
|
|
17060
|
+
smartRoute.data,
|
|
17061
|
+
tradingLabels.quoteUnavailable
|
|
17062
|
+
]
|
|
16509
17063
|
);
|
|
16510
17064
|
const handleSkipToSuccess = (0, import_react27.useCallback)(() => {
|
|
16511
17065
|
const primaryFilledEvent = executionProgress.terminalOrderEvents.find(
|
|
@@ -17720,7 +18274,7 @@ var HomeSearchResults = ({
|
|
|
17720
18274
|
const eventListTabs = useEventListTabs();
|
|
17721
18275
|
const { headerRef, titleRef, shouldUseSelectOverflow } = useEventListTabsHeaderOverflow(eventListTabs);
|
|
17722
18276
|
const visibleVenues = (0, import_react31.useMemo)(
|
|
17723
|
-
() => disabledVenues.length === 0 ? void 0 :
|
|
18277
|
+
() => disabledVenues.length === 0 ? void 0 : import_sdk18.VENUES.filter(
|
|
17724
18278
|
(v) => !disabledVenues.includes(v)
|
|
17725
18279
|
),
|
|
17726
18280
|
[disabledVenues]
|
|
@@ -18154,7 +18708,7 @@ HomePage.displayName = "HomePage";
|
|
|
18154
18708
|
|
|
18155
18709
|
// src/pages/user-profile/index.tsx
|
|
18156
18710
|
var import_hooks57 = require("@agg-build/hooks");
|
|
18157
|
-
var
|
|
18711
|
+
var import_sdk19 = require("@agg-build/sdk");
|
|
18158
18712
|
var import_react33 = require("react");
|
|
18159
18713
|
|
|
18160
18714
|
// src/pages/user-profile/chain-display.ts
|
|
@@ -18894,7 +19448,7 @@ var toneTextClassName = (tone) => {
|
|
|
18894
19448
|
if (tone === "negative") return "text-agg-error";
|
|
18895
19449
|
return "text-agg-muted-foreground";
|
|
18896
19450
|
};
|
|
18897
|
-
var OutcomePill = ({ label: label2 }) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("span", { className: "agg-position-outcome inline-flex items-center justify-center rounded-full bg-agg-secondary-hover px-4 py-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("span", { className: "whitespace-nowrap font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground", children: label2 }) });
|
|
19451
|
+
var OutcomePill = ({ label: label2 }) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("span", { className: "agg-position-outcome max-w-[120px] inline-flex items-center justify-center rounded-full bg-agg-secondary-hover px-4 py-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("span", { className: "whitespace-nowrap font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground truncate", children: label2 }) });
|
|
18898
19452
|
var VenueShares = ({
|
|
18899
19453
|
model,
|
|
18900
19454
|
className,
|
|
@@ -19077,7 +19631,7 @@ var PositionRow = ({
|
|
|
19077
19631
|
{
|
|
19078
19632
|
model,
|
|
19079
19633
|
keyPrefix: "desktop",
|
|
19080
|
-
className: "agg-position-venues flex
|
|
19634
|
+
className: "agg-position-venues flex flex-1 flex-wrap content-center items-center gap-x-3 gap-y-2"
|
|
19081
19635
|
}
|
|
19082
19636
|
)
|
|
19083
19637
|
] })
|
|
@@ -19830,6 +20384,7 @@ var UserInfoCard = ({
|
|
|
19830
20384
|
content: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("p", { className: "text-center", children: labels.auth.depositGeoBlocked }),
|
|
19831
20385
|
size: "small",
|
|
19832
20386
|
side: "bottom",
|
|
20387
|
+
sideOffset: 4,
|
|
19833
20388
|
children
|
|
19834
20389
|
}
|
|
19835
20390
|
),
|
|
@@ -20151,10 +20706,10 @@ var toTokenAmountLabel = ({
|
|
|
20151
20706
|
return `${prefix}${formatTokenAmountTwoDecimals(amountRaw, tokenSymbol, chainId)} ${tokenSymbol}`;
|
|
20152
20707
|
};
|
|
20153
20708
|
var POSITION_ROW_VENUE_ORDER = [
|
|
20154
|
-
|
|
20155
|
-
|
|
20156
|
-
|
|
20157
|
-
|
|
20709
|
+
import_sdk19.Venue.polymarket,
|
|
20710
|
+
import_sdk19.Venue.kalshi,
|
|
20711
|
+
import_sdk19.Venue.opinion,
|
|
20712
|
+
import_sdk19.Venue.limitless
|
|
20158
20713
|
];
|
|
20159
20714
|
function venueBreakdownSortKey(venue) {
|
|
20160
20715
|
const idx = POSITION_ROW_VENUE_ORDER.indexOf(venue);
|
|
@@ -20310,6 +20865,8 @@ var UserProfilePage = ({
|
|
|
20310
20865
|
try {
|
|
20311
20866
|
yield redeemMutation.mutateAsync({ venueMarketOutcomeIds });
|
|
20312
20867
|
yield queryClient.invalidateQueries({ queryKey: ["current-user"] });
|
|
20868
|
+
} catch (err) {
|
|
20869
|
+
console.error("[UserProfilePage] redeem failed", err);
|
|
20313
20870
|
} finally {
|
|
20314
20871
|
setInternalClaimingIds((prev) => {
|
|
20315
20872
|
const _a2 = prev, { [claimKey]: _removed } = _a2, rest = __objRest(_a2, [__restKey(claimKey)]);
|
|
@@ -20692,7 +21249,10 @@ var UserProfilePage = ({
|
|
|
20692
21249
|
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
|
|
20693
21250
|
"div",
|
|
20694
21251
|
{
|
|
20695
|
-
className: cn(
|
|
21252
|
+
className: cn(
|
|
21253
|
+
"agg-profile-side-panels flex flex-col-reverse md:flex-col gap-4",
|
|
21254
|
+
classNames == null ? void 0 : classNames.rightColumn
|
|
21255
|
+
),
|
|
20696
21256
|
children: [
|
|
20697
21257
|
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(PositionsValueCard, { valueLabel: positionsValueLabel }),
|
|
20698
21258
|
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|