@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/index.js
CHANGED
|
@@ -3688,7 +3688,7 @@ var SWITCH_BUTTON_ANIMATION_DURATION_MS = 350;
|
|
|
3688
3688
|
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";
|
|
3689
3689
|
var SWITCH_BUTTON_TRACK_CLASS_NAME = "agg-switch-button-track relative grid min-w-0 flex-1 items-center";
|
|
3690
3690
|
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";
|
|
3691
|
-
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";
|
|
3691
|
+
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";
|
|
3692
3692
|
|
|
3693
3693
|
// src/primitives/switch-button/switch-button.utils.ts
|
|
3694
3694
|
var resolveActiveIndex = (options, value) => {
|
|
@@ -9193,6 +9193,7 @@ var Tooltip = ({
|
|
|
9193
9193
|
side = "top",
|
|
9194
9194
|
delayDuration = 150,
|
|
9195
9195
|
collisionPadding = 12,
|
|
9196
|
+
sideOffset = 0,
|
|
9196
9197
|
classNames,
|
|
9197
9198
|
"aria-label": ariaLabel
|
|
9198
9199
|
}) => {
|
|
@@ -9220,7 +9221,7 @@ var Tooltip = ({
|
|
|
9220
9221
|
TooltipPrimitive.Content,
|
|
9221
9222
|
{
|
|
9222
9223
|
side,
|
|
9223
|
-
sideOffset
|
|
9224
|
+
sideOffset,
|
|
9224
9225
|
collisionPadding,
|
|
9225
9226
|
className: cn(
|
|
9226
9227
|
"group/agg-tooltip",
|
|
@@ -9737,7 +9738,14 @@ var AuthConnectButtonView = ({
|
|
|
9737
9738
|
ConditionalWrapper,
|
|
9738
9739
|
{
|
|
9739
9740
|
condition: isDepositBlocked,
|
|
9740
|
-
wrapper: (children) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
9741
|
+
wrapper: (children) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
9742
|
+
Tooltip,
|
|
9743
|
+
{
|
|
9744
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("p", { className: "text-center", children: labels.auth.depositGeoBlocked }),
|
|
9745
|
+
sideOffset: 4,
|
|
9746
|
+
children
|
|
9747
|
+
}
|
|
9748
|
+
),
|
|
9741
9749
|
children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
9742
9750
|
Button,
|
|
9743
9751
|
__spreadProps(__spreadValues({
|
|
@@ -9953,23 +9961,23 @@ var AuthConnectButtonView = ({
|
|
|
9953
9961
|
}
|
|
9954
9962
|
),
|
|
9955
9963
|
isDepositBlocked ? /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
9956
|
-
|
|
9964
|
+
DropdownMenu.Item,
|
|
9957
9965
|
{
|
|
9958
|
-
|
|
9959
|
-
|
|
9960
|
-
|
|
9966
|
+
className: cn(dropdownMenuItemClassName, "opacity-50 cursor-not-allowed!"),
|
|
9967
|
+
onSelect: (e) => e.preventDefault(),
|
|
9968
|
+
"aria-disabled": "true",
|
|
9969
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
9970
|
+
Tooltip,
|
|
9961
9971
|
{
|
|
9962
|
-
className:
|
|
9963
|
-
|
|
9964
|
-
|
|
9965
|
-
),
|
|
9966
|
-
disabled: true,
|
|
9967
|
-
children: [
|
|
9972
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("p", { className: "text-center", children: labels.auth.depositGeoBlocked }),
|
|
9973
|
+
side: "bottom",
|
|
9974
|
+
sideOffset: 4,
|
|
9975
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("span", { className: "inline-flex items-center gap-3", children: [
|
|
9968
9976
|
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Icon, { name: "download", size: "small", className: "text-agg-foreground" }),
|
|
9969
9977
|
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { children: labels.auth.deposit })
|
|
9970
|
-
]
|
|
9978
|
+
] })
|
|
9971
9979
|
}
|
|
9972
|
-
)
|
|
9980
|
+
)
|
|
9973
9981
|
}
|
|
9974
9982
|
) : /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
|
|
9975
9983
|
DropdownMenu.Item,
|
|
@@ -10914,6 +10922,18 @@ var marketChartCandleToScaledCandlePoint = (candle, transformProbability) => {
|
|
|
10914
10922
|
v: candle.volume
|
|
10915
10923
|
};
|
|
10916
10924
|
};
|
|
10925
|
+
var venueCandlesToLinePoints = (venueData, transformProbability) => {
|
|
10926
|
+
const candles = venueData.liveCandle && !venueData.candles.some((candle) => {
|
|
10927
|
+
var _a;
|
|
10928
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time);
|
|
10929
|
+
}) ? [...venueData.candles, venueData.liveCandle] : venueData.liveCandle ? venueData.candles.map(
|
|
10930
|
+
(candle) => {
|
|
10931
|
+
var _a;
|
|
10932
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time) ? venueData.liveCandle : candle;
|
|
10933
|
+
}
|
|
10934
|
+
) : venueData.candles;
|
|
10935
|
+
return candles.map((candle) => marketChartCandleToLineChartPoint(candle, transformProbability));
|
|
10936
|
+
};
|
|
10917
10937
|
var resolveMarketChartVenueSeries = ({
|
|
10918
10938
|
chartData,
|
|
10919
10939
|
transformProbability
|
|
@@ -10921,9 +10941,7 @@ var resolveMarketChartVenueSeries = ({
|
|
|
10921
10941
|
if (!chartData) return [];
|
|
10922
10942
|
return Object.entries(chartData.venues).map(([venue, venueData]) => ({
|
|
10923
10943
|
venue,
|
|
10924
|
-
points: venueData
|
|
10925
|
-
(candle) => marketChartCandleToLineChartPoint(candle, transformProbability)
|
|
10926
|
-
)
|
|
10944
|
+
points: venueCandlesToLinePoints(venueData, transformProbability)
|
|
10927
10945
|
})).filter((item) => item.points.length > 0);
|
|
10928
10946
|
};
|
|
10929
10947
|
var resolveAggregatedCandleSource = (candles) => {
|
|
@@ -10976,13 +10994,24 @@ var resolveMarketChartDisplaySeries = ({
|
|
|
10976
10994
|
if (selectedVenue) {
|
|
10977
10995
|
return venueEntries.map(([venue, venueData]) => ({
|
|
10978
10996
|
venue,
|
|
10979
|
-
points: venueData
|
|
10980
|
-
(candle) => marketChartCandleToLineChartPoint(candle, transformProbability)
|
|
10981
|
-
)
|
|
10997
|
+
points: venueCandlesToLinePoints(venueData, transformProbability)
|
|
10982
10998
|
})).filter((item) => item.points.length > 0);
|
|
10983
10999
|
}
|
|
10984
11000
|
const aggregatedCandles = aggregateMarketChartCandles(
|
|
10985
|
-
venueEntries.flatMap(([, venueData]) =>
|
|
11001
|
+
venueEntries.flatMap(([, venueData]) => {
|
|
11002
|
+
const closed = venueData.candles;
|
|
11003
|
+
if (!venueData.liveCandle) return closed;
|
|
11004
|
+
const hasOverlap = closed.some((candle) => {
|
|
11005
|
+
var _a;
|
|
11006
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time);
|
|
11007
|
+
});
|
|
11008
|
+
return hasOverlap ? closed.map(
|
|
11009
|
+
(candle) => {
|
|
11010
|
+
var _a;
|
|
11011
|
+
return candle.time === ((_a = venueData.liveCandle) == null ? void 0 : _a.time) ? venueData.liveCandle : candle;
|
|
11012
|
+
}
|
|
11013
|
+
) : [...closed, venueData.liveCandle];
|
|
11014
|
+
})
|
|
10986
11015
|
);
|
|
10987
11016
|
if (aggregatedCandles.length === 0) return [];
|
|
10988
11017
|
return [
|
|
@@ -12861,7 +12890,9 @@ var EventListItemDetailsGraphSection = ({
|
|
|
12861
12890
|
}
|
|
12862
12891
|
),
|
|
12863
12892
|
classNames: {
|
|
12864
|
-
root: cn(
|
|
12893
|
+
root: cn(
|
|
12894
|
+
"shrink-0 border px-4 h-8 text-agg-sm leading-agg-5 md:h-9 md:text-agg-base md:leading-agg-6"
|
|
12895
|
+
)
|
|
12865
12896
|
},
|
|
12866
12897
|
isActive: isActiveVenue
|
|
12867
12898
|
}
|
|
@@ -13542,8 +13573,20 @@ var OrderbookRow = ({
|
|
|
13542
13573
|
}).map(([venue]) => venue);
|
|
13543
13574
|
const venues = entry.row.venues && entry.row.venues.length > 0 ? entry.row.venues : venuesFromBreakdown.length > 0 ? venuesFromBreakdown : [entry.row.venue];
|
|
13544
13575
|
const barPercent = Math.max(2, Number((entry.unifiedBarScale * 100).toFixed(2)));
|
|
13545
|
-
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "agg-orderbook-row relative flex h-9 items-center gap-2.5 overflow-clip
|
|
13546
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.
|
|
13576
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.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: [
|
|
13577
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
13578
|
+
"div",
|
|
13579
|
+
{
|
|
13580
|
+
"aria-hidden": "true",
|
|
13581
|
+
className: cn(
|
|
13582
|
+
"agg-orderbook-bar md:hidden absolute inset-y-0 left-0",
|
|
13583
|
+
barClassName,
|
|
13584
|
+
getMotionClassName(enableAnimations, "transition-[width] duration-200 ease-in-out")
|
|
13585
|
+
),
|
|
13586
|
+
style: { width: `${barPercent}%` }
|
|
13587
|
+
}
|
|
13588
|
+
),
|
|
13589
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "hidden md:block md:relative min-w-0 flex-1 self-stretch", children: [
|
|
13547
13590
|
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
13548
13591
|
"div",
|
|
13549
13592
|
{
|
|
@@ -13646,8 +13689,8 @@ var Orderbook = ({
|
|
|
13646
13689
|
spreadEntry
|
|
13647
13690
|
]);
|
|
13648
13691
|
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: cn("agg-orderbook-unified flex flex-col", className), children: [
|
|
13649
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex h-9 items-center gap-2.5 overflow-clip border-b border-agg-separator pr-5 md:gap-10", children: [
|
|
13650
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "flex min-w-0 flex-1 items-center gap-2 pl-5", children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.tradeOutcome }) }),
|
|
13692
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.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: [
|
|
13693
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "hidden md:flex min-w-0 flex-1 items-center gap-2 pl-5", children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.tradeOutcome }) }),
|
|
13651
13694
|
/* @__PURE__ */ (0, import_jsx_runtime133.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 }),
|
|
13652
13695
|
/* @__PURE__ */ (0, import_jsx_runtime133.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 }),
|
|
13653
13696
|
/* @__PURE__ */ (0, import_jsx_runtime133.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 })
|
|
@@ -14482,7 +14525,7 @@ var MarketDetailsContent = ({
|
|
|
14482
14525
|
"span",
|
|
14483
14526
|
{
|
|
14484
14527
|
className: cn(
|
|
14485
|
-
"min-w-35 inline-flex h-9 items-center justify-center gap-2 rounded-agg-full",
|
|
14528
|
+
"w-full md:w-auto md:min-w-35 inline-flex h-9 items-center justify-center gap-2 rounded-agg-full",
|
|
14486
14529
|
"border px-5 py-1.5 text-agg-sm font-agg-bold",
|
|
14487
14530
|
getMotionClassName(
|
|
14488
14531
|
enableAnimations,
|
|
@@ -15446,7 +15489,7 @@ EventList.displayName = "EventList";
|
|
|
15446
15489
|
|
|
15447
15490
|
// src/pages/home/index.tsx
|
|
15448
15491
|
var import_hooks55 = require("@agg-build/hooks");
|
|
15449
|
-
var
|
|
15492
|
+
var import_sdk18 = require("@agg-build/sdk");
|
|
15450
15493
|
var import_react35 = require("react");
|
|
15451
15494
|
|
|
15452
15495
|
// src/pages/event-market/index.tsx
|
|
@@ -15664,6 +15707,447 @@ var PLACE_ORDER_OUTCOME_BUTTON_CLASS_NAMES = {
|
|
|
15664
15707
|
inactive: "border-transparent bg-agg-secondary-hover font-agg-normal text-agg-foreground hover:bg-agg-tertiary"
|
|
15665
15708
|
};
|
|
15666
15709
|
|
|
15710
|
+
// src/trading/place-order/index.place-order.execution-steps.ts
|
|
15711
|
+
var import_sdk17 = require("@agg-build/sdk");
|
|
15712
|
+
var WAIT_STEP_TYPES = /* @__PURE__ */ new Set(["_wait", "wait"]);
|
|
15713
|
+
var CHECKING_BALANCE_STEP_TYPES = /* @__PURE__ */ new Set([
|
|
15714
|
+
"check-balance",
|
|
15715
|
+
"check-position",
|
|
15716
|
+
"position-reserve",
|
|
15717
|
+
"position-release"
|
|
15718
|
+
]);
|
|
15719
|
+
var VENUE_BUY_SELL_REGEX = /^(?:buy|sell)-([a-z]+)$/;
|
|
15720
|
+
var VENUE_FINALIZE_REGEX = /^([a-z]+)-finalize$/;
|
|
15721
|
+
var VENUE_NAME_MAP = {
|
|
15722
|
+
kalshi: import_sdk17.Venue.kalshi,
|
|
15723
|
+
polymarket: import_sdk17.Venue.polymarket,
|
|
15724
|
+
limitless: import_sdk17.Venue.limitless,
|
|
15725
|
+
opinion: import_sdk17.Venue.opinion,
|
|
15726
|
+
predict: import_sdk17.Venue.predict,
|
|
15727
|
+
probable: import_sdk17.Venue.probable,
|
|
15728
|
+
myriad: import_sdk17.Venue.myriad,
|
|
15729
|
+
hyperliquid: import_sdk17.Venue.hyperliquid
|
|
15730
|
+
};
|
|
15731
|
+
var parseVenueName = (raw) => VENUE_NAME_MAP[raw];
|
|
15732
|
+
var NON_VENUE_FINALIZE_PREFIXES = /* @__PURE__ */ new Set(["bridge"]);
|
|
15733
|
+
var classifyExecutionStepType = (stepType) => {
|
|
15734
|
+
if (!stepType) return null;
|
|
15735
|
+
if (WAIT_STEP_TYPES.has(stepType)) return null;
|
|
15736
|
+
if (CHECKING_BALANCE_STEP_TYPES.has(stepType)) {
|
|
15737
|
+
return { kind: "checking-balance" };
|
|
15738
|
+
}
|
|
15739
|
+
const buySellMatch = stepType.match(VENUE_BUY_SELL_REGEX);
|
|
15740
|
+
if (buySellMatch) {
|
|
15741
|
+
const venue = parseVenueName(buySellMatch[1]);
|
|
15742
|
+
if (venue) return { kind: "executing-venue", venue };
|
|
15743
|
+
}
|
|
15744
|
+
const finalizeMatch = stepType.match(VENUE_FINALIZE_REGEX);
|
|
15745
|
+
if (finalizeMatch && !NON_VENUE_FINALIZE_PREFIXES.has(finalizeMatch[1])) {
|
|
15746
|
+
const venue = parseVenueName(finalizeMatch[1]);
|
|
15747
|
+
if (venue) return { kind: "executing-venue", venue };
|
|
15748
|
+
}
|
|
15749
|
+
if (stepType === "submit-verify-order-status") {
|
|
15750
|
+
return null;
|
|
15751
|
+
}
|
|
15752
|
+
return { kind: "submitting" };
|
|
15753
|
+
};
|
|
15754
|
+
var buildPhaseTimeline = (dag) => {
|
|
15755
|
+
const timeline = [];
|
|
15756
|
+
const completed = new Set(dag.completedSequences);
|
|
15757
|
+
for (let seq = 1; seq <= dag.totalSteps; seq++) {
|
|
15758
|
+
const stepType = dag.stepTypes[seq];
|
|
15759
|
+
if (!stepType) continue;
|
|
15760
|
+
const classified = classifyExecutionStepType(stepType);
|
|
15761
|
+
if (!classified) continue;
|
|
15762
|
+
const isCompleted = completed.has(seq);
|
|
15763
|
+
const last = timeline[timeline.length - 1];
|
|
15764
|
+
if (last && last.kind === classified.kind && last.venue === classified.venue) {
|
|
15765
|
+
last.lastSeq = seq;
|
|
15766
|
+
last.allCompleted = last.allCompleted && isCompleted;
|
|
15767
|
+
continue;
|
|
15768
|
+
}
|
|
15769
|
+
timeline.push({
|
|
15770
|
+
kind: classified.kind,
|
|
15771
|
+
venue: classified.venue,
|
|
15772
|
+
firstSeq: seq,
|
|
15773
|
+
lastSeq: seq,
|
|
15774
|
+
allCompleted: isCompleted
|
|
15775
|
+
});
|
|
15776
|
+
}
|
|
15777
|
+
return timeline;
|
|
15778
|
+
};
|
|
15779
|
+
var phaseRowId = (phase) => phase.venue ? `${phase.kind}:${phase.venue}` : phase.kind;
|
|
15780
|
+
var phaseRowLabel = (phase, labels) => {
|
|
15781
|
+
switch (phase.kind) {
|
|
15782
|
+
case "finding-route":
|
|
15783
|
+
return labels.findingBestRoute;
|
|
15784
|
+
case "checking-balance":
|
|
15785
|
+
return labels.checkingBalance;
|
|
15786
|
+
case "submitting":
|
|
15787
|
+
return labels.submittingOrderProgress;
|
|
15788
|
+
case "wallet-confirm":
|
|
15789
|
+
return labels.confirmTransactionInWallet;
|
|
15790
|
+
case "executing-venue":
|
|
15791
|
+
return labels.executingOnVenue(getTradingVenueLabel(phase.venue));
|
|
15792
|
+
case "filled":
|
|
15793
|
+
return labels.executionConfirmed;
|
|
15794
|
+
case "failed":
|
|
15795
|
+
return labels.orderFailureTitle;
|
|
15796
|
+
}
|
|
15797
|
+
};
|
|
15798
|
+
var buildSubmissionDisplayRows = ({
|
|
15799
|
+
phase,
|
|
15800
|
+
dagProgress,
|
|
15801
|
+
executionVenue,
|
|
15802
|
+
isAwaitingWalletConfirmation,
|
|
15803
|
+
labels
|
|
15804
|
+
}) => {
|
|
15805
|
+
if (phase === "finding-route") {
|
|
15806
|
+
return [
|
|
15807
|
+
{
|
|
15808
|
+
id: "finding-route",
|
|
15809
|
+
label: labels.findingBestRoute,
|
|
15810
|
+
status: "pending"
|
|
15811
|
+
}
|
|
15812
|
+
];
|
|
15813
|
+
}
|
|
15814
|
+
const rows = [
|
|
15815
|
+
{
|
|
15816
|
+
id: "finding-route",
|
|
15817
|
+
label: labels.findingBestRoute,
|
|
15818
|
+
status: "complete"
|
|
15819
|
+
}
|
|
15820
|
+
];
|
|
15821
|
+
const pushPhase = (phaseEntry, status) => {
|
|
15822
|
+
const id = phaseRowId(phaseEntry);
|
|
15823
|
+
if (rows.some((row) => row.id === id)) return;
|
|
15824
|
+
rows.push({
|
|
15825
|
+
id,
|
|
15826
|
+
label: phaseRowLabel(phaseEntry, labels),
|
|
15827
|
+
status,
|
|
15828
|
+
venue: phaseEntry.venue
|
|
15829
|
+
});
|
|
15830
|
+
};
|
|
15831
|
+
if (dagProgress && dagProgress.totalSteps > 0) {
|
|
15832
|
+
const timeline = buildPhaseTimeline(dagProgress);
|
|
15833
|
+
let activeEmitted = false;
|
|
15834
|
+
for (const entry of timeline) {
|
|
15835
|
+
const id = phaseRowId(entry);
|
|
15836
|
+
const alreadyShown = rows.some((row) => row.id === id);
|
|
15837
|
+
if (entry.allCompleted) {
|
|
15838
|
+
if (alreadyShown) continue;
|
|
15839
|
+
pushPhase(entry, "complete");
|
|
15840
|
+
continue;
|
|
15841
|
+
}
|
|
15842
|
+
if (activeEmitted) break;
|
|
15843
|
+
if (alreadyShown) continue;
|
|
15844
|
+
if (isAwaitingWalletConfirmation && entry.kind === "submitting") {
|
|
15845
|
+
pushPhase({ kind: "wallet-confirm" }, "pending");
|
|
15846
|
+
} else {
|
|
15847
|
+
pushPhase(entry, "pending");
|
|
15848
|
+
}
|
|
15849
|
+
activeEmitted = true;
|
|
15850
|
+
}
|
|
15851
|
+
if (!activeEmitted) {
|
|
15852
|
+
const last = rows[rows.length - 1];
|
|
15853
|
+
if (last && last.id.startsWith("executing-venue")) {
|
|
15854
|
+
last.status = "pending";
|
|
15855
|
+
} else {
|
|
15856
|
+
const fallbackVenue = executionVenue;
|
|
15857
|
+
rows.push({
|
|
15858
|
+
id: fallbackVenue ? `executing-venue:${fallbackVenue}` : "executing-venue",
|
|
15859
|
+
label: phaseRowLabel({ kind: "executing-venue", venue: fallbackVenue }, labels),
|
|
15860
|
+
status: "pending",
|
|
15861
|
+
venue: fallbackVenue
|
|
15862
|
+
});
|
|
15863
|
+
}
|
|
15864
|
+
}
|
|
15865
|
+
return rows;
|
|
15866
|
+
}
|
|
15867
|
+
if (isAwaitingWalletConfirmation) {
|
|
15868
|
+
pushPhase({ kind: "wallet-confirm" }, "pending");
|
|
15869
|
+
return rows;
|
|
15870
|
+
}
|
|
15871
|
+
if (phase === "submitting") {
|
|
15872
|
+
pushPhase({ kind: "submitting" }, "pending");
|
|
15873
|
+
return rows;
|
|
15874
|
+
}
|
|
15875
|
+
pushPhase({ kind: "submitting" }, "complete");
|
|
15876
|
+
pushPhase({ kind: "executing-venue", venue: executionVenue }, "pending");
|
|
15877
|
+
return rows;
|
|
15878
|
+
};
|
|
15879
|
+
|
|
15880
|
+
// src/trading/place-order/index.place-order.execution-debug.ts
|
|
15881
|
+
var REDACTED = "[redacted]";
|
|
15882
|
+
var SENSITIVE_FIELD_PATTERNS = [
|
|
15883
|
+
"token",
|
|
15884
|
+
"authorization",
|
|
15885
|
+
"cookie",
|
|
15886
|
+
"secret",
|
|
15887
|
+
"signature",
|
|
15888
|
+
"privatekey",
|
|
15889
|
+
"private_key",
|
|
15890
|
+
"accesstoken",
|
|
15891
|
+
"access_token",
|
|
15892
|
+
"refreshtoken",
|
|
15893
|
+
"refresh_token",
|
|
15894
|
+
"jwt",
|
|
15895
|
+
"password",
|
|
15896
|
+
"apikey",
|
|
15897
|
+
"api_key",
|
|
15898
|
+
"email",
|
|
15899
|
+
"headers"
|
|
15900
|
+
];
|
|
15901
|
+
var isSensitiveFieldName = (name) => {
|
|
15902
|
+
const normalized = name.toLowerCase();
|
|
15903
|
+
return SENSITIVE_FIELD_PATTERNS.some((pattern) => normalized.includes(pattern));
|
|
15904
|
+
};
|
|
15905
|
+
var sanitizeExecutionDebugValue = (input) => {
|
|
15906
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
15907
|
+
const walk = (value) => {
|
|
15908
|
+
if (value === null || value === void 0) return value;
|
|
15909
|
+
if (typeof value !== "object") return value;
|
|
15910
|
+
if (ancestors.has(value)) return "[circular]";
|
|
15911
|
+
ancestors.add(value);
|
|
15912
|
+
try {
|
|
15913
|
+
if (Array.isArray(value)) {
|
|
15914
|
+
return value.map((entry) => walk(entry));
|
|
15915
|
+
}
|
|
15916
|
+
if (value instanceof Error) {
|
|
15917
|
+
return {
|
|
15918
|
+
name: value.name,
|
|
15919
|
+
message: value.message,
|
|
15920
|
+
stack: value.stack
|
|
15921
|
+
};
|
|
15922
|
+
}
|
|
15923
|
+
const out = {};
|
|
15924
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
15925
|
+
if (isSensitiveFieldName(key)) {
|
|
15926
|
+
out[key] = REDACTED;
|
|
15927
|
+
continue;
|
|
15928
|
+
}
|
|
15929
|
+
out[key] = walk(raw);
|
|
15930
|
+
}
|
|
15931
|
+
return out;
|
|
15932
|
+
} finally {
|
|
15933
|
+
ancestors.delete(value);
|
|
15934
|
+
}
|
|
15935
|
+
};
|
|
15936
|
+
return walk(input);
|
|
15937
|
+
};
|
|
15938
|
+
var cloneEnvironment = (env) => __spreadProps(__spreadValues({}, env), {
|
|
15939
|
+
packageVersions: env.packageVersions ? __spreadValues({}, env.packageVersions) : void 0
|
|
15940
|
+
});
|
|
15941
|
+
var buildEnvironment = (overrides) => {
|
|
15942
|
+
var _a;
|
|
15943
|
+
const url = typeof window !== "undefined" ? (_a = window.location) == null ? void 0 : _a.href : void 0;
|
|
15944
|
+
const userAgent = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : void 0;
|
|
15945
|
+
return __spreadValues({
|
|
15946
|
+
url,
|
|
15947
|
+
userAgent,
|
|
15948
|
+
capturedAt: Date.now()
|
|
15949
|
+
}, overrides);
|
|
15950
|
+
};
|
|
15951
|
+
var generateAttemptId = () => {
|
|
15952
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
15953
|
+
return crypto.randomUUID();
|
|
15954
|
+
}
|
|
15955
|
+
return `attempt-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
15956
|
+
};
|
|
15957
|
+
var createExecutionDebugStore = (initial) => {
|
|
15958
|
+
let attempts = [];
|
|
15959
|
+
let environment = buildEnvironment(initial);
|
|
15960
|
+
const findAttempt = (attemptId) => attempts.find((attempt) => attempt.attemptId === attemptId);
|
|
15961
|
+
const touch = (attempt) => {
|
|
15962
|
+
attempt.updatedAt = Date.now();
|
|
15963
|
+
};
|
|
15964
|
+
return {
|
|
15965
|
+
appendAttempt(input = {}) {
|
|
15966
|
+
var _a, _b;
|
|
15967
|
+
const now = Date.now();
|
|
15968
|
+
const attempt = {
|
|
15969
|
+
attemptId: (_a = input.attemptId) != null ? _a : generateAttemptId(),
|
|
15970
|
+
startedAt: now,
|
|
15971
|
+
updatedAt: now,
|
|
15972
|
+
status: (_b = input.status) != null ? _b : "quoting",
|
|
15973
|
+
quoteId: input.quoteId,
|
|
15974
|
+
orderId: input.orderId,
|
|
15975
|
+
orderIds: input.orderIds,
|
|
15976
|
+
quote: input.quote,
|
|
15977
|
+
selectedRoute: input.selectedRoute,
|
|
15978
|
+
bridge: input.bridge,
|
|
15979
|
+
venueExecution: input.venueExecution,
|
|
15980
|
+
rawEvents: [],
|
|
15981
|
+
normalizedSteps: [],
|
|
15982
|
+
errors: []
|
|
15983
|
+
};
|
|
15984
|
+
attempts = [...attempts, attempt];
|
|
15985
|
+
return attempt;
|
|
15986
|
+
},
|
|
15987
|
+
updateAttempt(attemptId, patch) {
|
|
15988
|
+
const attempt = findAttempt(attemptId);
|
|
15989
|
+
if (!attempt) return;
|
|
15990
|
+
if (patch.status !== void 0) attempt.status = patch.status;
|
|
15991
|
+
if (patch.quoteId !== void 0) attempt.quoteId = patch.quoteId;
|
|
15992
|
+
if (patch.orderId !== void 0) attempt.orderId = patch.orderId;
|
|
15993
|
+
if (patch.orderIds !== void 0) attempt.orderIds = patch.orderIds;
|
|
15994
|
+
if (patch.quote !== void 0) attempt.quote = patch.quote;
|
|
15995
|
+
if (patch.selectedRoute !== void 0) attempt.selectedRoute = patch.selectedRoute;
|
|
15996
|
+
if (patch.bridge !== void 0) attempt.bridge = patch.bridge;
|
|
15997
|
+
if (patch.venueExecution !== void 0) attempt.venueExecution = patch.venueExecution;
|
|
15998
|
+
if (patch.finalStatus !== void 0) attempt.finalStatus = patch.finalStatus;
|
|
15999
|
+
touch(attempt);
|
|
16000
|
+
},
|
|
16001
|
+
appendEvent(attemptId, event) {
|
|
16002
|
+
var _a;
|
|
16003
|
+
const attempt = findAttempt(attemptId);
|
|
16004
|
+
if (!attempt) return;
|
|
16005
|
+
attempt.rawEvents.push({
|
|
16006
|
+
kind: event.kind,
|
|
16007
|
+
label: event.label,
|
|
16008
|
+
data: event.data,
|
|
16009
|
+
timestamp: (_a = event.timestamp) != null ? _a : Date.now()
|
|
16010
|
+
});
|
|
16011
|
+
touch(attempt);
|
|
16012
|
+
},
|
|
16013
|
+
appendError(attemptId, error) {
|
|
16014
|
+
var _a;
|
|
16015
|
+
const attempt = findAttempt(attemptId);
|
|
16016
|
+
if (!attempt) return;
|
|
16017
|
+
attempt.errors.push({
|
|
16018
|
+
message: error.message,
|
|
16019
|
+
name: error.name,
|
|
16020
|
+
code: error.code,
|
|
16021
|
+
stack: error.stack,
|
|
16022
|
+
failedStep: error.failedStep,
|
|
16023
|
+
data: error.data,
|
|
16024
|
+
timestamp: (_a = error.timestamp) != null ? _a : Date.now()
|
|
16025
|
+
});
|
|
16026
|
+
touch(attempt);
|
|
16027
|
+
},
|
|
16028
|
+
setNormalizedSteps(attemptId, steps) {
|
|
16029
|
+
const attempt = findAttempt(attemptId);
|
|
16030
|
+
if (!attempt) return;
|
|
16031
|
+
attempt.normalizedSteps = steps;
|
|
16032
|
+
touch(attempt);
|
|
16033
|
+
},
|
|
16034
|
+
getSnapshot() {
|
|
16035
|
+
return {
|
|
16036
|
+
attempts: attempts.map((attempt) => __spreadProps(__spreadValues({}, attempt), {
|
|
16037
|
+
rawEvents: [...attempt.rawEvents],
|
|
16038
|
+
normalizedSteps: [...attempt.normalizedSteps],
|
|
16039
|
+
errors: [...attempt.errors]
|
|
16040
|
+
})),
|
|
16041
|
+
environment: cloneEnvironment(environment)
|
|
16042
|
+
};
|
|
16043
|
+
},
|
|
16044
|
+
getFailedAttempts() {
|
|
16045
|
+
return attempts.filter(
|
|
16046
|
+
(attempt) => attempt.status === "failed" || attempt.finalStatus === "failed" || attempt.errors.length > 0
|
|
16047
|
+
).map((attempt) => __spreadProps(__spreadValues({}, attempt), {
|
|
16048
|
+
rawEvents: [...attempt.rawEvents],
|
|
16049
|
+
normalizedSteps: [...attempt.normalizedSteps],
|
|
16050
|
+
errors: [...attempt.errors]
|
|
16051
|
+
}));
|
|
16052
|
+
},
|
|
16053
|
+
clear() {
|
|
16054
|
+
attempts = [];
|
|
16055
|
+
environment = buildEnvironment(initial);
|
|
16056
|
+
}
|
|
16057
|
+
};
|
|
16058
|
+
};
|
|
16059
|
+
var writeClipboardLegacy = (text) => {
|
|
16060
|
+
if (typeof document === "undefined") return false;
|
|
16061
|
+
const textarea = document.createElement("textarea");
|
|
16062
|
+
textarea.value = text;
|
|
16063
|
+
textarea.setAttribute("readonly", "");
|
|
16064
|
+
textarea.style.position = "fixed";
|
|
16065
|
+
textarea.style.top = "-1000px";
|
|
16066
|
+
textarea.style.opacity = "0";
|
|
16067
|
+
document.body.appendChild(textarea);
|
|
16068
|
+
try {
|
|
16069
|
+
textarea.select();
|
|
16070
|
+
return document.execCommand("copy");
|
|
16071
|
+
} catch (e) {
|
|
16072
|
+
return false;
|
|
16073
|
+
} finally {
|
|
16074
|
+
document.body.removeChild(textarea);
|
|
16075
|
+
}
|
|
16076
|
+
};
|
|
16077
|
+
var tryWriteClipboard = (text, consoleImpl) => __async(null, null, function* () {
|
|
16078
|
+
var _a;
|
|
16079
|
+
if (typeof navigator !== "undefined" && ((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
|
|
16080
|
+
try {
|
|
16081
|
+
yield navigator.clipboard.writeText(text);
|
|
16082
|
+
consoleImpl.info("[agg-execution-debug] Copied execution data to clipboard.");
|
|
16083
|
+
return;
|
|
16084
|
+
} catch (e) {
|
|
16085
|
+
}
|
|
16086
|
+
}
|
|
16087
|
+
if (writeClipboardLegacy(text)) {
|
|
16088
|
+
consoleImpl.info("[agg-execution-debug] Copied execution data to clipboard.");
|
|
16089
|
+
return;
|
|
16090
|
+
}
|
|
16091
|
+
consoleImpl.warn(
|
|
16092
|
+
"[agg-execution-debug] Clipboard copy was blocked by the browser. The JSON is logged below \u2014 right-click the entry and copy."
|
|
16093
|
+
);
|
|
16094
|
+
consoleImpl.log(text);
|
|
16095
|
+
});
|
|
16096
|
+
var installExecutionDebugWindow = ({
|
|
16097
|
+
store,
|
|
16098
|
+
consoleImpl
|
|
16099
|
+
}) => {
|
|
16100
|
+
if (typeof window === "undefined") return () => {
|
|
16101
|
+
};
|
|
16102
|
+
const targetConsole = consoleImpl != null ? consoleImpl : console;
|
|
16103
|
+
const previous = {
|
|
16104
|
+
executionData: window.executionData,
|
|
16105
|
+
getExecutionData: window.getExecutionData,
|
|
16106
|
+
getFailedExecutionData: window.getFailedExecutionData,
|
|
16107
|
+
clearExecutionData: window.clearExecutionData,
|
|
16108
|
+
storeRef: window.__aggExecutionDebugStore
|
|
16109
|
+
};
|
|
16110
|
+
const refresh = () => {
|
|
16111
|
+
window.executionData = sanitizeExecutionDebugValue(store.getSnapshot());
|
|
16112
|
+
};
|
|
16113
|
+
refresh();
|
|
16114
|
+
window.__aggExecutionDebugStore = store;
|
|
16115
|
+
window.getExecutionData = () => {
|
|
16116
|
+
const data = sanitizeExecutionDebugValue(store.getSnapshot());
|
|
16117
|
+
window.executionData = data;
|
|
16118
|
+
void tryWriteClipboard(JSON.stringify(data, null, 2), targetConsole);
|
|
16119
|
+
return data;
|
|
16120
|
+
};
|
|
16121
|
+
window.getFailedExecutionData = () => {
|
|
16122
|
+
const failed = sanitizeExecutionDebugValue({ attempts: store.getFailedAttempts() });
|
|
16123
|
+
void tryWriteClipboard(JSON.stringify(failed, null, 2), targetConsole);
|
|
16124
|
+
return failed;
|
|
16125
|
+
};
|
|
16126
|
+
window.clearExecutionData = () => {
|
|
16127
|
+
store.clear();
|
|
16128
|
+
refresh();
|
|
16129
|
+
};
|
|
16130
|
+
targetConsole.info(
|
|
16131
|
+
"AGG execution debug enabled. Run window.getFailedExecutionData() after a failed order to copy logs."
|
|
16132
|
+
);
|
|
16133
|
+
return () => {
|
|
16134
|
+
if (typeof window === "undefined") return;
|
|
16135
|
+
window.executionData = previous.executionData;
|
|
16136
|
+
window.getExecutionData = previous.getExecutionData;
|
|
16137
|
+
window.getFailedExecutionData = previous.getFailedExecutionData;
|
|
16138
|
+
window.clearExecutionData = previous.clearExecutionData;
|
|
16139
|
+
window.__aggExecutionDebugStore = previous.storeRef;
|
|
16140
|
+
};
|
|
16141
|
+
};
|
|
16142
|
+
var enableExecutionDebugInBrowser = (initial) => {
|
|
16143
|
+
if (typeof window === "undefined") return null;
|
|
16144
|
+
const existing = window.__aggExecutionDebugStore;
|
|
16145
|
+
if (existing) return existing;
|
|
16146
|
+
const store = createExecutionDebugStore(initial);
|
|
16147
|
+
installExecutionDebugWindow({ store });
|
|
16148
|
+
return store;
|
|
16149
|
+
};
|
|
16150
|
+
|
|
15667
16151
|
// src/trading/place-order/index.place-order.utils.ts
|
|
15668
16152
|
var routePriceLabelFormatter = new Intl.NumberFormat("en-US", {
|
|
15669
16153
|
minimumFractionDigits: 0,
|
|
@@ -16851,21 +17335,6 @@ PlaceOrderSuccessView.displayName = "PlaceOrderSuccessView";
|
|
|
16851
17335
|
|
|
16852
17336
|
// src/trading/place-order/index.tsx
|
|
16853
17337
|
var import_jsx_runtime142 = require("react/jsx-runtime");
|
|
16854
|
-
var DEFAULT_STEP_LABELS = {
|
|
16855
|
-
"check-balance": "Checking balance",
|
|
16856
|
-
"check-position": "Checking position",
|
|
16857
|
-
"lane-bridge": "Bridging funds",
|
|
16858
|
-
bridge: "Bridging funds",
|
|
16859
|
-
"bridge-to-user": "Transferring to wallet",
|
|
16860
|
-
"sweep-bridge": "Completing bridge",
|
|
16861
|
-
"submit-order": "Submitting order",
|
|
16862
|
-
"order-bridge-execute": "Executing order",
|
|
16863
|
-
"transfer-to-user": "Transferring to wallet"
|
|
16864
|
-
};
|
|
16865
|
-
var getDefaultStepLabel = (stepType) => {
|
|
16866
|
-
var _a;
|
|
16867
|
-
return (_a = DEFAULT_STEP_LABELS[stepType]) != null ? _a : stepType.replace(/-/g, " ").replace(/^\w/, (c) => c.toUpperCase());
|
|
16868
|
-
};
|
|
16869
17338
|
var resolveRefetchedQuoteData = (result) => {
|
|
16870
17339
|
if (!result || typeof result !== "object" || !("data" in result)) return null;
|
|
16871
17340
|
const data = result.data;
|
|
@@ -17365,7 +17834,6 @@ var renderRouteCard = ({
|
|
|
17365
17834
|
}
|
|
17366
17835
|
);
|
|
17367
17836
|
};
|
|
17368
|
-
var normalizeOrderIdLabelInput2 = (orderId) => orderId.replace(/^#+/, "");
|
|
17369
17837
|
var renderSubmissionSurface = ({
|
|
17370
17838
|
actionLabel,
|
|
17371
17839
|
className,
|
|
@@ -17377,81 +17845,12 @@ var renderSubmissionSurface = ({
|
|
|
17377
17845
|
progressState,
|
|
17378
17846
|
tradingLabels
|
|
17379
17847
|
}) => {
|
|
17380
|
-
const
|
|
17381
|
-
|
|
17382
|
-
|
|
17383
|
-
|
|
17384
|
-
|
|
17385
|
-
|
|
17386
|
-
id: "finding-route",
|
|
17387
|
-
label: tradingLabels.findingBestRoute,
|
|
17388
|
-
status: "pending"
|
|
17389
|
-
}
|
|
17390
|
-
]
|
|
17391
|
-
];
|
|
17392
|
-
}
|
|
17393
|
-
const dag = progressState.dagProgress;
|
|
17394
|
-
if (dag && dag.totalSteps > 0) {
|
|
17395
|
-
const steps = [
|
|
17396
|
-
{
|
|
17397
|
-
id: "finding-route",
|
|
17398
|
-
label: tradingLabels.findingBestRoute,
|
|
17399
|
-
status: "complete"
|
|
17400
|
-
}
|
|
17401
|
-
];
|
|
17402
|
-
for (let i = 1; i <= dag.totalSteps; i++) {
|
|
17403
|
-
const isCompleted = dag.completedSequences.includes(i);
|
|
17404
|
-
const isCurrent = i === dag.currentSequence && !isCompleted;
|
|
17405
|
-
const stepType = (_a = dag.stepTypes[i]) != null ? _a : null;
|
|
17406
|
-
const stepLabel = stepType ? getDefaultStepLabel(stepType) : `Step ${i} of ${dag.totalSteps}`;
|
|
17407
|
-
const prev = steps[steps.length - 1];
|
|
17408
|
-
if (prev && prev.label === stepLabel) {
|
|
17409
|
-
if (prev.status === "complete" && !isCompleted) {
|
|
17410
|
-
prev.status = "pending";
|
|
17411
|
-
}
|
|
17412
|
-
continue;
|
|
17413
|
-
}
|
|
17414
|
-
steps.push({
|
|
17415
|
-
id: `dag-step-${i}`,
|
|
17416
|
-
label: stepLabel,
|
|
17417
|
-
status: isCompleted ? "complete" : isCurrent ? "pending" : "pending"
|
|
17418
|
-
});
|
|
17419
|
-
}
|
|
17420
|
-
return [steps];
|
|
17421
|
-
}
|
|
17422
|
-
const baseSteps = [
|
|
17423
|
-
{
|
|
17424
|
-
id: "finding-route",
|
|
17425
|
-
label: tradingLabels.findingBestRoute,
|
|
17426
|
-
status: "complete"
|
|
17427
|
-
},
|
|
17428
|
-
{
|
|
17429
|
-
id: "submitting-order",
|
|
17430
|
-
label: tradingLabels.submittingOrderProgress,
|
|
17431
|
-
status: "complete"
|
|
17432
|
-
}
|
|
17433
|
-
];
|
|
17434
|
-
const submittedOrderId = (_c = progressState.orderId) != null ? _c : (_b = progressState.orderIds) == null ? void 0 : _b[0];
|
|
17435
|
-
if (submittedOrderId) {
|
|
17436
|
-
baseSteps.push({
|
|
17437
|
-
id: "order-submitted",
|
|
17438
|
-
label: tradingLabels.orderSubmittedProgress(normalizeOrderIdLabelInput2(submittedOrderId)),
|
|
17439
|
-
status: "complete"
|
|
17440
|
-
});
|
|
17441
|
-
}
|
|
17442
|
-
return [
|
|
17443
|
-
baseSteps,
|
|
17444
|
-
[
|
|
17445
|
-
{
|
|
17446
|
-
id: "executing-order",
|
|
17447
|
-
label: tradingLabels.executingOnVenue(getTradingVenueLabel(progressState.executionVenue)),
|
|
17448
|
-
status: "pending",
|
|
17449
|
-
venue: progressState.executionVenue
|
|
17450
|
-
}
|
|
17451
|
-
]
|
|
17452
|
-
];
|
|
17453
|
-
};
|
|
17454
|
-
const stepGroups = resolveStepGroups();
|
|
17848
|
+
const displayRows = buildSubmissionDisplayRows({
|
|
17849
|
+
phase: progressState.phase,
|
|
17850
|
+
dagProgress: progressState.dagProgress,
|
|
17851
|
+
executionVenue: progressState.executionVenue,
|
|
17852
|
+
labels: tradingLabels
|
|
17853
|
+
});
|
|
17455
17854
|
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17456
17855
|
Card,
|
|
17457
17856
|
{
|
|
@@ -17473,51 +17872,50 @@ var renderSubmissionSurface = ({
|
|
|
17473
17872
|
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(LoadingGlyph, { enableAnimations, className: "h-4 w-4 text-current" }),
|
|
17474
17873
|
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("span", { children: actionLabel })
|
|
17475
17874
|
] }),
|
|
17476
|
-
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17477
|
-
|
|
17478
|
-
|
|
17479
|
-
|
|
17480
|
-
|
|
17481
|
-
|
|
17482
|
-
|
|
17483
|
-
|
|
17484
|
-
|
|
17485
|
-
|
|
17486
|
-
|
|
17487
|
-
|
|
17488
|
-
|
|
17489
|
-
|
|
17490
|
-
|
|
17491
|
-
|
|
17492
|
-
|
|
17493
|
-
|
|
17494
|
-
|
|
17495
|
-
|
|
17496
|
-
|
|
17497
|
-
|
|
17498
|
-
|
|
17499
|
-
|
|
17500
|
-
|
|
17501
|
-
|
|
17502
|
-
|
|
17503
|
-
|
|
17504
|
-
|
|
17505
|
-
|
|
17506
|
-
|
|
17507
|
-
|
|
17508
|
-
|
|
17509
|
-
|
|
17510
|
-
|
|
17511
|
-
|
|
17512
|
-
|
|
17513
|
-
|
|
17514
|
-
|
|
17515
|
-
|
|
17516
|
-
|
|
17517
|
-
}
|
|
17518
|
-
|
|
17519
|
-
|
|
17520
|
-
}) })
|
|
17875
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17876
|
+
"div",
|
|
17877
|
+
{
|
|
17878
|
+
className: "agg-order-submission-steps agg-order-submission-group flex flex-col gap-2",
|
|
17879
|
+
"data-testid": "agg-order-submission-steps",
|
|
17880
|
+
children: displayRows.map((step) => {
|
|
17881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
|
|
17882
|
+
"div",
|
|
17883
|
+
{
|
|
17884
|
+
className: "agg-order-submission-step flex items-center gap-2 text-agg-sm leading-agg-5 text-agg-foreground",
|
|
17885
|
+
"data-status": step.status,
|
|
17886
|
+
children: [
|
|
17887
|
+
step.status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17888
|
+
Icon,
|
|
17889
|
+
{
|
|
17890
|
+
name: "check-circle",
|
|
17891
|
+
size: "small",
|
|
17892
|
+
className: "h-3 w-3 shrink-0 text-agg-primary",
|
|
17893
|
+
"aria-hidden": "true"
|
|
17894
|
+
}
|
|
17895
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17896
|
+
LoadingGlyph,
|
|
17897
|
+
{
|
|
17898
|
+
enableAnimations,
|
|
17899
|
+
className: "h-3 w-3 shrink-0 text-agg-primary"
|
|
17900
|
+
}
|
|
17901
|
+
),
|
|
17902
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("p", { className: "min-w-0 flex-1", children: step.label }),
|
|
17903
|
+
step.venue ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
17904
|
+
VenueLogo,
|
|
17905
|
+
{
|
|
17906
|
+
venue: step.venue,
|
|
17907
|
+
size: "small",
|
|
17908
|
+
ariaLabel: getTradingVenueLabel(step.venue),
|
|
17909
|
+
className: "h-4 w-4"
|
|
17910
|
+
}
|
|
17911
|
+
) : null
|
|
17912
|
+
]
|
|
17913
|
+
},
|
|
17914
|
+
step.id
|
|
17915
|
+
);
|
|
17916
|
+
})
|
|
17917
|
+
}
|
|
17918
|
+
)
|
|
17521
17919
|
] })
|
|
17522
17920
|
] })
|
|
17523
17921
|
}
|
|
@@ -17653,6 +18051,7 @@ var PlaceOrder = ({
|
|
|
17653
18051
|
}) => {
|
|
17654
18052
|
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;
|
|
17655
18053
|
const {
|
|
18054
|
+
enableDebug: isExecutionDebugEnabled,
|
|
17656
18055
|
features: { enableAnimations, showFeesBreakdown },
|
|
17657
18056
|
general: { locale }
|
|
17658
18057
|
} = (0, import_hooks53.useSdkUiConfig)();
|
|
@@ -17749,6 +18148,27 @@ var PlaceOrder = ({
|
|
|
17749
18148
|
const [isSplitDetailOpen, setIsSplitDetailOpen] = (0, import_react31.useState)(false);
|
|
17750
18149
|
const [submissionFeedback, setSubmissionFeedback] = (0, import_react31.useState)(null);
|
|
17751
18150
|
const [submissionProgressState, setSubmissionProgressState] = (0, import_react31.useState)(null);
|
|
18151
|
+
const executionDebugStoreRef = (0, import_react31.useRef)(null);
|
|
18152
|
+
const executionDebugAttemptIdRef = (0, import_react31.useRef)(null);
|
|
18153
|
+
(0, import_react31.useEffect)(() => {
|
|
18154
|
+
if (!isExecutionDebugEnabled) {
|
|
18155
|
+
executionDebugStoreRef.current = null;
|
|
18156
|
+
return;
|
|
18157
|
+
}
|
|
18158
|
+
executionDebugStoreRef.current = enableExecutionDebugInBrowser();
|
|
18159
|
+
}, [isExecutionDebugEnabled]);
|
|
18160
|
+
(0, import_react31.useEffect)(() => {
|
|
18161
|
+
if (!isExecutionDebugEnabled) return;
|
|
18162
|
+
const store = executionDebugStoreRef.current;
|
|
18163
|
+
if (!store) return;
|
|
18164
|
+
store.clear();
|
|
18165
|
+
executionDebugAttemptIdRef.current = null;
|
|
18166
|
+
}, [
|
|
18167
|
+
isExecutionDebugEnabled,
|
|
18168
|
+
scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
18169
|
+
scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
18170
|
+
scopedSelectedOutcomeId
|
|
18171
|
+
]);
|
|
17752
18172
|
const debouncedAmount = (0, import_hooks53.useDebouncedValue)(internalAmount, 300);
|
|
17753
18173
|
const isSell = (0, import_react31.useMemo)(() => internalTab === "sell", [internalTab]);
|
|
17754
18174
|
const {
|
|
@@ -18008,8 +18428,39 @@ var PlaceOrder = ({
|
|
|
18008
18428
|
selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData
|
|
18009
18429
|
]);
|
|
18010
18430
|
(0, import_react31.useEffect)(() => {
|
|
18431
|
+
var _a2, _b2;
|
|
18011
18432
|
const dp = executionProgress.dagProgress;
|
|
18012
18433
|
if (!dp) return;
|
|
18434
|
+
const debugStore = executionDebugStoreRef.current;
|
|
18435
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
18436
|
+
if (debugStore && debugAttemptId) {
|
|
18437
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
18438
|
+
kind: "ws_update",
|
|
18439
|
+
label: "dag_progress",
|
|
18440
|
+
data: dp
|
|
18441
|
+
});
|
|
18442
|
+
const normalizedRows = buildSubmissionDisplayRows({
|
|
18443
|
+
phase: "executing",
|
|
18444
|
+
dagProgress: dp,
|
|
18445
|
+
labels: tradingLabels
|
|
18446
|
+
});
|
|
18447
|
+
debugStore.setNormalizedSteps(debugAttemptId, normalizedRows);
|
|
18448
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
18449
|
+
kind: "normalized_steps",
|
|
18450
|
+
data: normalizedRows
|
|
18451
|
+
});
|
|
18452
|
+
if (dp.status === "failed") {
|
|
18453
|
+
debugStore.appendError(debugAttemptId, {
|
|
18454
|
+
message: (_a2 = dp.errorReason) != null ? _a2 : "DAG execution failed",
|
|
18455
|
+
failedStep: (_b2 = dp.currentStepType) != null ? _b2 : void 0,
|
|
18456
|
+
data: { currentSequence: dp.currentSequence, totalSteps: dp.totalSteps }
|
|
18457
|
+
});
|
|
18458
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
18459
|
+
status: "failed",
|
|
18460
|
+
finalStatus: "failed"
|
|
18461
|
+
});
|
|
18462
|
+
}
|
|
18463
|
+
}
|
|
18013
18464
|
setSubmissionProgressState((prev) => {
|
|
18014
18465
|
if (!prev) return prev;
|
|
18015
18466
|
if (dp.status === "failed") {
|
|
@@ -18025,7 +18476,7 @@ var PlaceOrder = ({
|
|
|
18025
18476
|
}
|
|
18026
18477
|
return __spreadProps(__spreadValues({}, prev), { dagProgress: dp });
|
|
18027
18478
|
});
|
|
18028
|
-
}, [executionProgress.dagProgress, tradingLabels
|
|
18479
|
+
}, [executionProgress.dagProgress, tradingLabels]);
|
|
18029
18480
|
(0, import_react31.useEffect)(() => {
|
|
18030
18481
|
const orderIds = submissionProgressState == null ? void 0 : submissionProgressState.orderIds;
|
|
18031
18482
|
if (!(orderIds == null ? void 0 : orderIds.length)) return;
|
|
@@ -18033,6 +18484,17 @@ var PlaceOrder = ({
|
|
|
18033
18484
|
orderIds,
|
|
18034
18485
|
executionProgress.terminalOrderEvents
|
|
18035
18486
|
);
|
|
18487
|
+
const debugStore = executionDebugStoreRef.current;
|
|
18488
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
18489
|
+
if (debugStore && debugAttemptId && executionProgress.terminalOrderEvents.length > 0) {
|
|
18490
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
18491
|
+
kind: "terminal_event",
|
|
18492
|
+
data: {
|
|
18493
|
+
aggregateStatus,
|
|
18494
|
+
events: executionProgress.terminalOrderEvents
|
|
18495
|
+
}
|
|
18496
|
+
});
|
|
18497
|
+
}
|
|
18036
18498
|
if (aggregateStatus === "pending") return;
|
|
18037
18499
|
setSubmissionProgressState((prev) => {
|
|
18038
18500
|
var _a2, _b2, _c2;
|
|
@@ -18075,14 +18537,45 @@ var PlaceOrder = ({
|
|
|
18075
18537
|
tradingLabels.orderFailed
|
|
18076
18538
|
]);
|
|
18077
18539
|
(0, import_react31.useEffect)(() => {
|
|
18540
|
+
var _a2, _b2;
|
|
18078
18541
|
if (!submissionProgressState) return;
|
|
18079
18542
|
onExecutionStateChange == null ? void 0 : onExecutionStateChange(submissionProgressState);
|
|
18543
|
+
const debugStore = executionDebugStoreRef.current;
|
|
18544
|
+
const debugAttemptId = executionDebugAttemptIdRef.current;
|
|
18545
|
+
if (debugStore && debugAttemptId) {
|
|
18546
|
+
debugStore.appendEvent(debugAttemptId, {
|
|
18547
|
+
kind: "state_change",
|
|
18548
|
+
label: submissionProgressState.phase,
|
|
18549
|
+
data: {
|
|
18550
|
+
phase: submissionProgressState.phase,
|
|
18551
|
+
executionVenue: submissionProgressState.executionVenue,
|
|
18552
|
+
orderIds: submissionProgressState.orderIds,
|
|
18553
|
+
errorMessage: submissionProgressState.errorMessage
|
|
18554
|
+
}
|
|
18555
|
+
});
|
|
18556
|
+
}
|
|
18080
18557
|
if (submissionProgressState.phase === "success" && submissionProgressState.summary) {
|
|
18081
18558
|
(0, import_hooks53.invalidateBalanceQueries)(queryClient);
|
|
18082
18559
|
(0, import_hooks53.invalidatePositionQueries)(queryClient);
|
|
18560
|
+
if (debugStore && debugAttemptId) {
|
|
18561
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
18562
|
+
status: "succeeded",
|
|
18563
|
+
finalStatus: "succeeded"
|
|
18564
|
+
});
|
|
18565
|
+
}
|
|
18083
18566
|
onSuccess == null ? void 0 : onSuccess(submissionProgressState.summary);
|
|
18084
18567
|
}
|
|
18085
18568
|
if (submissionProgressState.phase === "failed" && submissionProgressState.errorMessage) {
|
|
18569
|
+
if (debugStore && debugAttemptId) {
|
|
18570
|
+
debugStore.appendError(debugAttemptId, {
|
|
18571
|
+
message: submissionProgressState.errorMessage,
|
|
18572
|
+
failedStep: (_b2 = (_a2 = submissionProgressState.dagProgress) == null ? void 0 : _a2.currentStepType) != null ? _b2 : void 0
|
|
18573
|
+
});
|
|
18574
|
+
debugStore.updateAttempt(debugAttemptId, {
|
|
18575
|
+
status: "failed",
|
|
18576
|
+
finalStatus: "failed"
|
|
18577
|
+
});
|
|
18578
|
+
}
|
|
18086
18579
|
onError == null ? void 0 : onError(new Error(submissionProgressState.errorMessage));
|
|
18087
18580
|
}
|
|
18088
18581
|
}, [submissionProgressState, onExecutionStateChange, onSuccess, onError, queryClient]);
|
|
@@ -18256,23 +18749,91 @@ var PlaceOrder = ({
|
|
|
18256
18749
|
};
|
|
18257
18750
|
const handleExecuteQuote = (0, import_react31.useCallback)(
|
|
18258
18751
|
(quoteData) => __async(null, null, function* () {
|
|
18752
|
+
var _a2, _b2, _c2;
|
|
18259
18753
|
const quoteId = quoteData == null ? void 0 : quoteData.quoteId;
|
|
18260
18754
|
if (!quoteId) {
|
|
18261
18755
|
throw new Error(tradingLabels.quoteUnavailable);
|
|
18262
18756
|
}
|
|
18757
|
+
const debugStore = executionDebugStoreRef.current;
|
|
18758
|
+
const venues = (_b2 = (_a2 = quoteData == null ? void 0 : quoteData.fills) == null ? void 0 : _a2.map((fill) => fill.venue).filter(Boolean)) != null ? _b2 : [];
|
|
18759
|
+
const debugAttempt = debugStore == null ? void 0 : debugStore.appendAttempt({
|
|
18760
|
+
status: "executing",
|
|
18761
|
+
quoteId,
|
|
18762
|
+
quote: {
|
|
18763
|
+
request: {
|
|
18764
|
+
venueMarketOutcomeId: scopedSelectedOutcomeId,
|
|
18765
|
+
amount: internalAmount,
|
|
18766
|
+
slippage: internalSlippage,
|
|
18767
|
+
tradeSide: isSell ? "sell" : "buy"
|
|
18768
|
+
},
|
|
18769
|
+
response: smartRoute.data,
|
|
18770
|
+
selectedRoute: quoteData,
|
|
18771
|
+
side: isSell ? "sell" : "buy",
|
|
18772
|
+
marketId: scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
18773
|
+
eventId: scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
18774
|
+
outcomeId: scopedSelectedOutcomeId != null ? scopedSelectedOutcomeId : void 0,
|
|
18775
|
+
venues,
|
|
18776
|
+
capturedAt: Date.now()
|
|
18777
|
+
},
|
|
18778
|
+
selectedRoute: quoteData
|
|
18779
|
+
});
|
|
18780
|
+
executionDebugAttemptIdRef.current = (_c2 = debugAttempt == null ? void 0 : debugAttempt.attemptId) != null ? _c2 : null;
|
|
18263
18781
|
if (onPrimaryAction) {
|
|
18782
|
+
debugStore == null ? void 0 : debugStore.appendEvent(debugAttempt.attemptId, {
|
|
18783
|
+
kind: "execute_request",
|
|
18784
|
+
label: "delegated_to_partner",
|
|
18785
|
+
data: { quoteId }
|
|
18786
|
+
});
|
|
18264
18787
|
onPrimaryAction({ quoteId });
|
|
18265
18788
|
return;
|
|
18266
18789
|
}
|
|
18267
|
-
|
|
18268
|
-
|
|
18269
|
-
|
|
18270
|
-
|
|
18271
|
-
|
|
18272
|
-
|
|
18273
|
-
|
|
18790
|
+
try {
|
|
18791
|
+
const response = yield executeManaged.mutateAsync({ quoteId });
|
|
18792
|
+
if (debugAttempt) {
|
|
18793
|
+
debugStore == null ? void 0 : debugStore.appendEvent(debugAttempt.attemptId, {
|
|
18794
|
+
kind: "execute_response",
|
|
18795
|
+
data: { orderIds: response.orderIds }
|
|
18796
|
+
});
|
|
18797
|
+
debugStore == null ? void 0 : debugStore.updateAttempt(debugAttempt.attemptId, {
|
|
18798
|
+
orderId: response.orderIds[0],
|
|
18799
|
+
orderIds: response.orderIds
|
|
18800
|
+
});
|
|
18801
|
+
}
|
|
18802
|
+
setSubmissionProgressState({
|
|
18803
|
+
executionVenue: resolveExecutionVenueFromQuote(quoteData),
|
|
18804
|
+
orderId: response.orderIds[0],
|
|
18805
|
+
orderIds: response.orderIds,
|
|
18806
|
+
phase: "submitting"
|
|
18807
|
+
});
|
|
18808
|
+
} catch (error) {
|
|
18809
|
+
if (debugAttempt) {
|
|
18810
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
18811
|
+
debugStore == null ? void 0 : debugStore.appendError(debugAttempt.attemptId, {
|
|
18812
|
+
message: err.message,
|
|
18813
|
+
name: err.name,
|
|
18814
|
+
stack: err.stack,
|
|
18815
|
+
failedStep: "execute_request"
|
|
18816
|
+
});
|
|
18817
|
+
debugStore == null ? void 0 : debugStore.updateAttempt(debugAttempt.attemptId, {
|
|
18818
|
+
status: "failed",
|
|
18819
|
+
finalStatus: "failed"
|
|
18820
|
+
});
|
|
18821
|
+
}
|
|
18822
|
+
throw error;
|
|
18823
|
+
}
|
|
18274
18824
|
}),
|
|
18275
|
-
[
|
|
18825
|
+
[
|
|
18826
|
+
executeManaged,
|
|
18827
|
+
internalAmount,
|
|
18828
|
+
internalSlippage,
|
|
18829
|
+
isSell,
|
|
18830
|
+
onPrimaryAction,
|
|
18831
|
+
scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.id,
|
|
18832
|
+
scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.id,
|
|
18833
|
+
scopedSelectedOutcomeId,
|
|
18834
|
+
smartRoute.data,
|
|
18835
|
+
tradingLabels.quoteUnavailable
|
|
18836
|
+
]
|
|
18276
18837
|
);
|
|
18277
18838
|
const handleSkipToSuccess = (0, import_react31.useCallback)(() => {
|
|
18278
18839
|
const primaryFilledEvent = executionProgress.terminalOrderEvents.find(
|
|
@@ -19487,7 +20048,7 @@ var HomeSearchResults = ({
|
|
|
19487
20048
|
const eventListTabs = useEventListTabs();
|
|
19488
20049
|
const { headerRef, titleRef, shouldUseSelectOverflow } = useEventListTabsHeaderOverflow(eventListTabs);
|
|
19489
20050
|
const visibleVenues = (0, import_react35.useMemo)(
|
|
19490
|
-
() => disabledVenues.length === 0 ? void 0 :
|
|
20051
|
+
() => disabledVenues.length === 0 ? void 0 : import_sdk18.VENUES.filter(
|
|
19491
20052
|
(v) => !disabledVenues.includes(v)
|
|
19492
20053
|
),
|
|
19493
20054
|
[disabledVenues]
|
|
@@ -19921,7 +20482,7 @@ HomePage.displayName = "HomePage";
|
|
|
19921
20482
|
|
|
19922
20483
|
// src/pages/user-profile/index.tsx
|
|
19923
20484
|
var import_hooks59 = require("@agg-build/hooks");
|
|
19924
|
-
var
|
|
20485
|
+
var import_sdk19 = require("@agg-build/sdk");
|
|
19925
20486
|
var import_react37 = require("react");
|
|
19926
20487
|
|
|
19927
20488
|
// src/pages/user-profile/chain-display.ts
|
|
@@ -20661,7 +21222,7 @@ var toneTextClassName = (tone) => {
|
|
|
20661
21222
|
if (tone === "negative") return "text-agg-error";
|
|
20662
21223
|
return "text-agg-muted-foreground";
|
|
20663
21224
|
};
|
|
20664
|
-
var OutcomePill = ({ label: label2 }) => /* @__PURE__ */ (0, import_jsx_runtime148.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_runtime148.jsx)("span", { className: "whitespace-nowrap font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground", children: label2 }) });
|
|
21225
|
+
var OutcomePill = ({ label: label2 }) => /* @__PURE__ */ (0, import_jsx_runtime148.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_runtime148.jsx)("span", { className: "whitespace-nowrap font-agg-sans text-agg-sm leading-agg-5 font-agg-normal text-agg-foreground truncate", children: label2 }) });
|
|
20665
21226
|
var VenueShares = ({
|
|
20666
21227
|
model,
|
|
20667
21228
|
className,
|
|
@@ -20844,7 +21405,7 @@ var PositionRow = ({
|
|
|
20844
21405
|
{
|
|
20845
21406
|
model,
|
|
20846
21407
|
keyPrefix: "desktop",
|
|
20847
|
-
className: "agg-position-venues flex
|
|
21408
|
+
className: "agg-position-venues flex flex-1 flex-wrap content-center items-center gap-x-3 gap-y-2"
|
|
20848
21409
|
}
|
|
20849
21410
|
)
|
|
20850
21411
|
] })
|
|
@@ -21541,6 +22102,7 @@ var UserInfoCard = ({
|
|
|
21541
22102
|
content: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-center", children: labels.auth.depositGeoBlocked }),
|
|
21542
22103
|
size: "small",
|
|
21543
22104
|
side: "bottom",
|
|
22105
|
+
sideOffset: 4,
|
|
21544
22106
|
children
|
|
21545
22107
|
}
|
|
21546
22108
|
),
|
|
@@ -21862,10 +22424,10 @@ var toTokenAmountLabel = ({
|
|
|
21862
22424
|
return `${prefix}${formatTokenAmountTwoDecimals(amountRaw, tokenSymbol, chainId)} ${tokenSymbol}`;
|
|
21863
22425
|
};
|
|
21864
22426
|
var POSITION_ROW_VENUE_ORDER = [
|
|
21865
|
-
|
|
21866
|
-
|
|
21867
|
-
|
|
21868
|
-
|
|
22427
|
+
import_sdk19.Venue.polymarket,
|
|
22428
|
+
import_sdk19.Venue.kalshi,
|
|
22429
|
+
import_sdk19.Venue.opinion,
|
|
22430
|
+
import_sdk19.Venue.limitless
|
|
21869
22431
|
];
|
|
21870
22432
|
function venueBreakdownSortKey(venue) {
|
|
21871
22433
|
const idx = POSITION_ROW_VENUE_ORDER.indexOf(venue);
|
|
@@ -22021,6 +22583,8 @@ var UserProfilePage = ({
|
|
|
22021
22583
|
try {
|
|
22022
22584
|
yield redeemMutation.mutateAsync({ venueMarketOutcomeIds });
|
|
22023
22585
|
yield queryClient.invalidateQueries({ queryKey: ["current-user"] });
|
|
22586
|
+
} catch (err) {
|
|
22587
|
+
console.error("[UserProfilePage] redeem failed", err);
|
|
22024
22588
|
} finally {
|
|
22025
22589
|
setInternalClaimingIds((prev) => {
|
|
22026
22590
|
const _a2 = prev, { [claimKey]: _removed } = _a2, rest = __objRest(_a2, [__restKey(claimKey)]);
|
|
@@ -22403,7 +22967,10 @@ var UserProfilePage = ({
|
|
|
22403
22967
|
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)(
|
|
22404
22968
|
"div",
|
|
22405
22969
|
{
|
|
22406
|
-
className: cn(
|
|
22970
|
+
className: cn(
|
|
22971
|
+
"agg-profile-side-panels flex flex-col-reverse md:flex-col gap-4",
|
|
22972
|
+
classNames == null ? void 0 : classNames.rightColumn
|
|
22973
|
+
),
|
|
22407
22974
|
children: [
|
|
22408
22975
|
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(PositionsValueCard, { valueLabel: positionsValueLabel }),
|
|
22409
22976
|
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
@@ -24694,7 +25261,7 @@ var import_hooks78 = require("@agg-build/hooks");
|
|
|
24694
25261
|
var Dialog6 = __toESM(require("@radix-ui/react-dialog"));
|
|
24695
25262
|
|
|
24696
25263
|
// src/onboarding/onboarding-modal.constants.ts
|
|
24697
|
-
var
|
|
25264
|
+
var import_sdk20 = require("@agg-build/sdk");
|
|
24698
25265
|
var HOW_IT_WORKS_FEATURE_KEYS = [
|
|
24699
25266
|
"createAccount",
|
|
24700
25267
|
"linkAccounts",
|
|
@@ -24706,7 +25273,7 @@ var ONBOARDING_STEPS = {
|
|
|
24706
25273
|
PROFILE_SETUP: 1,
|
|
24707
25274
|
CONNECT_ACCOUNTS: 2
|
|
24708
25275
|
};
|
|
24709
|
-
var ONCHAIN_VENUES = [
|
|
25276
|
+
var ONCHAIN_VENUES = [import_sdk20.Venue.polymarket, import_sdk20.Venue.opinion, import_sdk20.Venue.predict];
|
|
24710
25277
|
|
|
24711
25278
|
// src/onboarding/steps/how-it-works.tsx
|
|
24712
25279
|
var import_react43 = require("react");
|
|
@@ -24926,7 +25493,7 @@ var ProfileSetupStep = ({ onContinue }) => {
|
|
|
24926
25493
|
ProfileSetupStep.displayName = "ProfileSetupStep";
|
|
24927
25494
|
|
|
24928
25495
|
// src/onboarding/steps/connect-accounts.tsx
|
|
24929
|
-
var
|
|
25496
|
+
var import_sdk21 = require("@agg-build/sdk");
|
|
24930
25497
|
var import_hooks75 = require("@agg-build/hooks");
|
|
24931
25498
|
var import_jsx_runtime170 = require("react/jsx-runtime");
|
|
24932
25499
|
var OnchainVenueLogos = () => {
|
|
@@ -25027,7 +25594,7 @@ var ConnectAccountsStep = ({
|
|
|
25027
25594
|
logos: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "sm:flex sm:w-14 sm:items-center sm:justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
25028
25595
|
VenueLogo,
|
|
25029
25596
|
{
|
|
25030
|
-
venue:
|
|
25597
|
+
venue: import_sdk21.Venue.kalshi,
|
|
25031
25598
|
variant: "logo",
|
|
25032
25599
|
size: "large",
|
|
25033
25600
|
className: "h-6 w-6 sm:h-9 sm:w-9"
|
|
@@ -25058,7 +25625,7 @@ var ConnectAccountsStep = ({
|
|
|
25058
25625
|
ConnectAccountsStep.displayName = "ConnectAccountsStep";
|
|
25059
25626
|
|
|
25060
25627
|
// src/onboarding/steps/connect-kalshi-modal.tsx
|
|
25061
|
-
var
|
|
25628
|
+
var import_sdk22 = require("@agg-build/sdk");
|
|
25062
25629
|
var import_react45 = require("react");
|
|
25063
25630
|
var import_hooks76 = require("@agg-build/hooks");
|
|
25064
25631
|
var Dialog4 = __toESM(require("@radix-ui/react-dialog"));
|
|
@@ -25141,7 +25708,7 @@ var ConnectKalshiModal = ({
|
|
|
25141
25708
|
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
25142
25709
|
VenueLogo,
|
|
25143
25710
|
{
|
|
25144
|
-
venue:
|
|
25711
|
+
venue: import_sdk22.Venue.kalshi,
|
|
25145
25712
|
variant: "logo",
|
|
25146
25713
|
size: "large",
|
|
25147
25714
|
className: "h-[60px] w-[60px]"
|
|
@@ -25526,7 +26093,7 @@ var OnboardingModal = ({
|
|
|
25526
26093
|
OnboardingModal.displayName = "OnboardingModal";
|
|
25527
26094
|
|
|
25528
26095
|
// src/profile/index.tsx
|
|
25529
|
-
var
|
|
26096
|
+
var import_sdk23 = require("@agg-build/sdk");
|
|
25530
26097
|
var import_react50 = require("react");
|
|
25531
26098
|
var import_hooks81 = require("@agg-build/hooks");
|
|
25532
26099
|
|
|
@@ -25876,7 +26443,7 @@ AccountsWalletsTab.displayName = "AccountsWalletsTab";
|
|
|
25876
26443
|
|
|
25877
26444
|
// src/profile/index.tsx
|
|
25878
26445
|
var import_jsx_runtime176 = require("react/jsx-runtime");
|
|
25879
|
-
var EVM_WALLET_VENUES = [
|
|
26446
|
+
var EVM_WALLET_VENUES = [import_sdk23.Venue.polymarket, import_sdk23.Venue.predict, import_sdk23.Venue.opinion];
|
|
25880
26447
|
var ProfileModal = ({
|
|
25881
26448
|
open,
|
|
25882
26449
|
onOpenChange,
|
|
@@ -26358,7 +26925,14 @@ var GeoBlockModal = ({
|
|
|
26358
26925
|
maxWidth: "480px",
|
|
26359
26926
|
classNames: { container: cn("!rounded-agg-2xl", classNames == null ? void 0 : classNames.container) },
|
|
26360
26927
|
children: [
|
|
26361
|
-
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
26928
|
+
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
26929
|
+
Modal.Header,
|
|
26930
|
+
{
|
|
26931
|
+
title: "",
|
|
26932
|
+
hideBorder: true,
|
|
26933
|
+
classNames: { root: "min-h-0", container: "px-8 pt-6! pb-0!" }
|
|
26934
|
+
}
|
|
26935
|
+
),
|
|
26362
26936
|
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Modal.Body, { classNames: { root: cn("!px-10 !pb-12 !pt-0", classNames == null ? void 0 : classNames.body) }, children: /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)("div", { className: "flex flex-col items-center gap-8", children: [
|
|
26363
26937
|
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
26364
26938
|
Icon,
|