bandkit 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -11
- package/dist/AnimatedNumber.d.ts +10 -0
- package/dist/AnimatedNumber.d.ts.map +1 -0
- package/dist/AnimatedNumber.js +35 -0
- package/dist/AnimatedNumber.js.map +1 -0
- package/dist/BandPanel.d.ts.map +1 -1
- package/dist/BandPanel.js +50 -4
- package/dist/BandPanel.js.map +1 -1
- package/dist/BotDecisionPanel.d.ts.map +1 -1
- package/dist/BotDecisionPanel.js +24 -15
- package/dist/BotDecisionPanel.js.map +1 -1
- package/dist/ContractEventFeed.d.ts.map +1 -1
- package/dist/ContractEventFeed.js +11 -2
- package/dist/ContractEventFeed.js.map +1 -1
- package/dist/GasBadge.d.ts.map +1 -1
- package/dist/GasBadge.js +10 -2
- package/dist/GasBadge.js.map +1 -1
- package/dist/OrderBookWidget.d.ts.map +1 -1
- package/dist/OrderBookWidget.js +27 -3
- package/dist/OrderBookWidget.js.map +1 -1
- package/dist/RegimeBadge.d.ts.map +1 -1
- package/dist/RegimeBadge.js +3 -1
- package/dist/RegimeBadge.js.map +1 -1
- package/dist/Skeleton.d.ts +15 -0
- package/dist/Skeleton.d.ts.map +1 -0
- package/dist/Skeleton.js +26 -0
- package/dist/Skeleton.js.map +1 -0
- package/dist/StrategyValueSparkline.d.ts +9 -0
- package/dist/StrategyValueSparkline.d.ts.map +1 -0
- package/dist/StrategyValueSparkline.js +99 -0
- package/dist/StrategyValueSparkline.js.map +1 -0
- package/dist/SwapWidget.d.ts +12 -0
- package/dist/SwapWidget.d.ts.map +1 -0
- package/dist/SwapWidget.js +46 -0
- package/dist/SwapWidget.js.map +1 -0
- package/dist/TradeTape.d.ts.map +1 -1
- package/dist/TradeTape.js +16 -7
- package/dist/TradeTape.js.map +1 -1
- package/dist/UniswapPoolStats.d.ts +7 -0
- package/dist/UniswapPoolStats.d.ts.map +1 -0
- package/dist/UniswapPoolStats.js +66 -0
- package/dist/UniswapPoolStats.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/useStrategyValueHistory.d.ts +24 -0
- package/dist/useStrategyValueHistory.d.ts.map +1 -0
- package/dist/useStrategyValueHistory.js +112 -0
- package/dist/useStrategyValueHistory.js.map +1 -0
- package/dist/useUniswapPoolStats.d.ts +24 -0
- package/dist/useUniswapPoolStats.d.ts.map +1 -0
- package/dist/useUniswapPoolStats.js +85 -0
- package/dist/useUniswapPoolStats.js.map +1 -0
- package/package.json +7 -2
package/dist/OrderBookWidget.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useBinanceOrderBook } from "./useBinanceOrderBook.js";
|
|
3
|
+
import { Skeleton } from "./Skeleton.js";
|
|
4
|
+
import { AnimatedNumber } from "./AnimatedNumber.js";
|
|
3
5
|
const palette = {
|
|
4
6
|
bg: "#0a0a0a",
|
|
5
7
|
surface: "#111113",
|
|
@@ -36,7 +38,11 @@ export function OrderBookWidget({ className, title = "Order Book", rows = 10, ..
|
|
|
36
38
|
gap: 12,
|
|
37
39
|
maxWidth: 360,
|
|
38
40
|
padding: 18
|
|
39
|
-
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx(StatusDot, { status: book.status, symbol: book.symbol })] }), _jsx(HeaderRow, {}), _jsx("div", { style: { display: "grid", gap: 1 }, children: visibleAsks.
|
|
41
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx(StatusDot, { status: book.status, symbol: book.symbol })] }), _jsx(HeaderRow, {}), _jsx("div", { style: { display: "grid", gap: 1 }, children: visibleAsks.length > 0
|
|
42
|
+
? visibleAsks.map((level) => (_jsx(Row, { side: "ask", level: level, maxTotal: maxTotal }, `ask-${level.price}`)))
|
|
43
|
+
: Array.from({ length: rows }).map((_, i) => _jsx(SkeletonBookRow, {}, `ask-sk-${i}`)) }), _jsx(SpreadRow, { midPrice: book.midPrice, spread: book.spread, spreadPercent: book.spreadPercent }), _jsx("div", { style: { display: "grid", gap: 1 }, children: visibleBids.length > 0
|
|
44
|
+
? visibleBids.map((level) => (_jsx(Row, { side: "bid", level: level, maxTotal: maxTotal }, `bid-${level.price}`)))
|
|
45
|
+
: Array.from({ length: rows }).map((_, i) => _jsx(SkeletonBookRow, {}, `bid-sk-${i}`)) }), book.error ? (_jsx("div", { style: { color: palette.ask, fontSize: 12 }, children: book.error })) : null] }));
|
|
40
46
|
}
|
|
41
47
|
function HeaderRow() {
|
|
42
48
|
const cell = {
|
|
@@ -58,6 +64,7 @@ function Row({ side, level, maxTotal }) {
|
|
|
58
64
|
position: "absolute",
|
|
59
65
|
right: 0,
|
|
60
66
|
top: 0,
|
|
67
|
+
transition: "width 180ms ease-out",
|
|
61
68
|
width: `${widthPct}%`
|
|
62
69
|
} }), _jsxs("div", { style: {
|
|
63
70
|
display: "grid",
|
|
@@ -68,9 +75,26 @@ function Row({ side, level, maxTotal }) {
|
|
|
68
75
|
position: "relative"
|
|
69
76
|
}, children: [_jsx("span", { style: { color, fontWeight: 600 }, children: priceFormatter.format(level.price) }), _jsx("span", { style: { color: palette.text, textAlign: "right" }, children: sizeFormatter.format(level.size) }), _jsx("span", { style: { color: palette.textMuted, textAlign: "right" }, children: sizeFormatter.format(level.total) })] })] }));
|
|
70
77
|
}
|
|
78
|
+
function SkeletonBookRow() {
|
|
79
|
+
return (_jsxs("div", { style: {
|
|
80
|
+
display: "grid",
|
|
81
|
+
gap: 6,
|
|
82
|
+
gridTemplateColumns: "1fr 1fr 1fr",
|
|
83
|
+
padding: "3px 4px"
|
|
84
|
+
}, children: [_jsx(Skeleton, { height: 10 }), _jsx(Skeleton, { height: 10 }), _jsx(Skeleton, { height: 10 })] }));
|
|
85
|
+
}
|
|
71
86
|
function SpreadRow({ midPrice, spread, spreadPercent }) {
|
|
72
87
|
if (midPrice === null) {
|
|
73
|
-
return (
|
|
88
|
+
return (_jsxs("div", { style: {
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
background: palette.surface,
|
|
91
|
+
border: `1px solid ${palette.border}`,
|
|
92
|
+
borderRadius: 6,
|
|
93
|
+
display: "flex",
|
|
94
|
+
gap: 8,
|
|
95
|
+
justifyContent: "space-between",
|
|
96
|
+
padding: "4px 8px"
|
|
97
|
+
}, children: [_jsx(Skeleton, { width: 64, height: 10 }), _jsx(Skeleton, { width: 80, height: 12 }), _jsx(Skeleton, { width: 48, height: 10 })] }));
|
|
74
98
|
}
|
|
75
99
|
return (_jsxs("div", { style: {
|
|
76
100
|
alignItems: "center",
|
|
@@ -83,7 +107,7 @@ function SpreadRow({ midPrice, spread, spreadPercent }) {
|
|
|
83
107
|
fontVariantNumeric: "tabular-nums",
|
|
84
108
|
justifyContent: "space-between",
|
|
85
109
|
padding: "4px 8px"
|
|
86
|
-
}, children: [_jsxs("span", { children: ["Spread ", spread !== null ? `$${spread.toFixed(2)}` : "—"] }), _jsxs("strong", { style: { color: palette.text, fontSize: 12 }, children: ["$", priceFormatter.format(
|
|
110
|
+
}, children: [_jsxs("span", { children: ["Spread ", spread !== null ? `$${spread.toFixed(2)}` : "—"] }), _jsxs("strong", { style: { color: palette.text, fontSize: 12 }, children: ["$", _jsx(AnimatedNumber, { value: midPrice, format: (n) => priceFormatter.format(n) })] }), _jsx("span", { children: spreadPercent !== null ? `${spreadPercent.toFixed(3)}%` : "—" })] }));
|
|
87
111
|
}
|
|
88
112
|
function StatusDot({ status, symbol }) {
|
|
89
113
|
const color = status === "live" ? palette.bid : status === "connecting" ? "#fbbf24" : palette.ask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderBookWidget.js","sourceRoot":"","sources":["../src/OrderBookWidget.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAmC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"OrderBookWidget.js","sourceRoot":"","sources":["../src/OrderBookWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegimeBadge.d.ts","sourceRoot":"","sources":["../src/RegimeBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE7G,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoBF,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RegimeBadge.d.ts","sourceRoot":"","sources":["../src/RegimeBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE7G,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoBF,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,gBAAgB,2CAwC1E"}
|
package/dist/RegimeBadge.js
CHANGED
|
@@ -27,12 +27,14 @@ export function RegimeBadge({ className, ...hookOptions }) {
|
|
|
27
27
|
display: "inline-flex",
|
|
28
28
|
fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
29
29
|
gap: 10,
|
|
30
|
-
padding: "6px 12px"
|
|
30
|
+
padding: "6px 12px",
|
|
31
|
+
transition: "border-color 320ms ease"
|
|
31
32
|
}, children: [_jsx("span", { "aria-hidden": true, style: {
|
|
32
33
|
background: m.color,
|
|
33
34
|
borderRadius: 999,
|
|
34
35
|
boxShadow: regime === "RANGING" ? `0 0 8px ${m.color}88` : "none",
|
|
35
36
|
height: 8,
|
|
37
|
+
transition: "background 320ms ease, box-shadow 320ms ease",
|
|
36
38
|
width: 8
|
|
37
39
|
} }), _jsxs("div", { style: { display: "grid", gap: 2 }, children: [_jsx("strong", { style: { color: m.color, fontSize: 11, fontWeight: 700, letterSpacing: "0.08em" }, children: m.label }), _jsxs("span", { style: { color: palette.textDim, fontSize: 10, fontVariantNumeric: "tabular-nums" }, children: [stddevPct !== null ? `σ ${stddevPct.toFixed(2)}%` : "σ —", driftPct !== null ? ` · Δ ${driftPct >= 0 ? "+" : ""}${driftPct.toFixed(2)}%` : "", ` · n=${sampleCount}`] })] })] }));
|
|
38
40
|
}
|
package/dist/RegimeBadge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegimeBadge.js","sourceRoot":"","sources":["../src/RegimeBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAgD,MAAM,0BAA0B,CAAC;AAM7G,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,IAAI,GAAmE;IAC3E,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE;IACvF,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAChE,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACpF,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE;CACrF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,EAAoB;IACzE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,MAAM,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE;YACrC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,0DAA0D;YACtE,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"RegimeBadge.js","sourceRoot":"","sources":["../src/RegimeBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAgD,MAAM,0BAA0B,CAAC;AAM7G,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,IAAI,GAAmE;IAC3E,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE;IACvF,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAChE,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACpF,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE;CACrF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,EAAoB;IACzE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,MAAM,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE;YACrC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,0DAA0D;YACtE,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,yBAAyB;SACtC,aAED,oCAEE,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC,CAAC,KAAK;oBACnB,YAAY,EAAE,GAAG;oBACjB,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM;oBACjE,MAAM,EAAE,CAAC;oBACT,UAAU,EAAE,8CAA8C;oBAC1D,KAAK,EAAE,CAAC;iBACT,GACD,EACF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACrC,iBAAQ,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAG,CAAC,CAAC,KAAK,GAAU,EAC7G,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE,aACtF,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EACzD,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAClF,QAAQ,WAAW,EAAE,IACjB,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
export type SkeletonProps = {
|
|
3
|
+
width?: number | string;
|
|
4
|
+
height?: number | string;
|
|
5
|
+
borderRadius?: number;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
export declare function Skeleton({ width, height, borderRadius, className, style }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function SkeletonRow({ columns, gap, height }: {
|
|
11
|
+
columns?: number;
|
|
12
|
+
gap?: number;
|
|
13
|
+
height?: number;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=Skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../src/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAOF,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,MAAW,EACX,YAAgB,EAChB,SAAS,EACT,KAAK,EACN,EAAE,aAAa,2CAqBf;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAW,EACX,GAAO,EACP,MAAW,EACZ,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,2CAeA"}
|
package/dist/Skeleton.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const SHIMMER_KEYFRAMES = `@keyframes bandkitShimmer {
|
|
3
|
+
0% { background-position: 200% 0; }
|
|
4
|
+
100% { background-position: -200% 0; }
|
|
5
|
+
}`;
|
|
6
|
+
export function Skeleton({ width = "100%", height = 12, borderRadius = 4, className, style }) {
|
|
7
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: SHIMMER_KEYFRAMES }), _jsx("span", { "aria-hidden": true, className: className, style: {
|
|
8
|
+
animation: "bandkitShimmer 1.6s ease-in-out infinite",
|
|
9
|
+
background: "linear-gradient(90deg, #131316 0%, #1e1e22 50%, #131316 100%)",
|
|
10
|
+
backgroundSize: "200% 100%",
|
|
11
|
+
borderRadius,
|
|
12
|
+
display: "block",
|
|
13
|
+
height,
|
|
14
|
+
width,
|
|
15
|
+
...style
|
|
16
|
+
} })] }));
|
|
17
|
+
}
|
|
18
|
+
export function SkeletonRow({ columns = 3, gap = 8, height = 12 }) {
|
|
19
|
+
return (_jsx("div", { style: {
|
|
20
|
+
display: "grid",
|
|
21
|
+
gap,
|
|
22
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
23
|
+
padding: "4px 2px"
|
|
24
|
+
}, children: Array.from({ length: columns }).map((_, i) => (_jsx(Skeleton, { height: height }, i))) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sourceRoot":"","sources":["../src/Skeleton.tsx"],"names":[],"mappings":";AAUA,MAAM,iBAAiB,GAAG;;;EAGxB,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,GAAG,MAAM,EACd,MAAM,GAAG,EAAE,EACX,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,KAAK,EACS;IACd,OAAO,CACL,8BACE,0BAAQ,iBAAiB,GAAS,EAClC,oCAEE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;oBACL,SAAS,EAAE,0CAA0C;oBACrD,UAAU,EACR,+DAA+D;oBACjE,cAAc,EAAE,WAAW;oBAC3B,YAAY;oBACZ,OAAO,EAAE,OAAO;oBAChB,MAAM;oBACN,KAAK;oBACL,GAAG,KAAK;iBACT,GACD,IACD,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,GAAG,CAAC,EACX,GAAG,GAAG,CAAC,EACP,MAAM,GAAG,EAAE,EAKZ;IACC,OAAO,CACL,cACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,GAAG;YACH,mBAAmB,EAAE,UAAU,OAAO,QAAQ;YAC9C,OAAO,EAAE,SAAS;SACnB,YAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7C,KAAC,QAAQ,IAAS,MAAM,EAAE,MAAM,IAAjB,CAAC,CAAoB,CACrC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type UseStrategyValueHistoryOptions } from "./useStrategyValueHistory.js";
|
|
2
|
+
export type StrategyValueSparklineProps = UseStrategyValueHistoryOptions & {
|
|
3
|
+
className?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function StrategyValueSparkline({ className, title, width, height, ...hookOptions }: StrategyValueSparklineProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=StrategyValueSparkline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrategyValueSparkline.d.ts","sourceRoot":"","sources":["../src/StrategyValueSparkline.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,8BAA8B,CAAC;AAItC,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,GAAG;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAwB,EACxB,KAAW,EACX,MAAW,EACX,GAAG,WAAW,EACf,EAAE,2BAA2B,2CA+I7B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useEthPriceTicker } from "./useEthPriceTicker.js";
|
|
4
|
+
import { useStrategyValueHistory } from "./useStrategyValueHistory.js";
|
|
5
|
+
import { AnimatedNumber } from "./AnimatedNumber.js";
|
|
6
|
+
import { Skeleton } from "./Skeleton.js";
|
|
7
|
+
const palette = {
|
|
8
|
+
bg: "#0a0a0a",
|
|
9
|
+
surface: "#111113",
|
|
10
|
+
border: "#1f1f23",
|
|
11
|
+
text: "#f5f5f7",
|
|
12
|
+
textMuted: "#9ca3af",
|
|
13
|
+
textDim: "#52525b",
|
|
14
|
+
up: "#10b981",
|
|
15
|
+
down: "#ef4444",
|
|
16
|
+
flat: "#9ca3af"
|
|
17
|
+
};
|
|
18
|
+
const usdFormatter = new Intl.NumberFormat("en-US", {
|
|
19
|
+
currency: "USD",
|
|
20
|
+
maximumFractionDigits: 2,
|
|
21
|
+
minimumFractionDigits: 2,
|
|
22
|
+
style: "currency"
|
|
23
|
+
});
|
|
24
|
+
export function StrategyValueSparkline({ className, title = "Strategy Value", width = 220, height = 64, ...hookOptions }) {
|
|
25
|
+
const history = useStrategyValueHistory(hookOptions);
|
|
26
|
+
const ethPrice = useEthPriceTicker();
|
|
27
|
+
const hasContract = Boolean(hookOptions.strategyContractAddress);
|
|
28
|
+
const hasData = history.samples.length >= 2;
|
|
29
|
+
const tone = history.changeEth > 0.0000005
|
|
30
|
+
? palette.up
|
|
31
|
+
: history.changeEth < -0.0000005
|
|
32
|
+
? palette.down
|
|
33
|
+
: palette.flat;
|
|
34
|
+
const currentUsd = ethPrice.price && Number.isFinite(ethPrice.price)
|
|
35
|
+
? history.currentTotalEth * ethPrice.price
|
|
36
|
+
: null;
|
|
37
|
+
const changeUsd = ethPrice.price && Number.isFinite(ethPrice.price) ? history.changeEth * ethPrice.price : null;
|
|
38
|
+
const path = useMemo(() => buildPath(history.samples.map((s) => s.totalEth), width, height), [
|
|
39
|
+
history.samples,
|
|
40
|
+
width,
|
|
41
|
+
height
|
|
42
|
+
]);
|
|
43
|
+
const areaPath = useMemo(() => buildAreaPath(history.samples.map((s) => s.totalEth), width, height), [history.samples, width, height]);
|
|
44
|
+
return (_jsxs("section", { className: className, style: {
|
|
45
|
+
background: palette.bg,
|
|
46
|
+
border: `1px solid ${palette.border}`,
|
|
47
|
+
borderRadius: 14,
|
|
48
|
+
boxShadow: "0 20px 60px rgba(0, 0, 0, 0.55)",
|
|
49
|
+
color: palette.text,
|
|
50
|
+
display: "grid",
|
|
51
|
+
fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
52
|
+
gap: 14,
|
|
53
|
+
maxWidth: 420,
|
|
54
|
+
padding: 18
|
|
55
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx("span", { style: { color: palette.textDim, fontSize: 11 }, children: hasData ? `${history.samples.length} pts` : hasContract ? "collecting" : "no contract" })] }), !hasContract ? (_jsx("div", { style: {
|
|
56
|
+
color: palette.textDim,
|
|
57
|
+
fontSize: 12,
|
|
58
|
+
padding: "20px 4px",
|
|
59
|
+
textAlign: "center"
|
|
60
|
+
}, children: "Deploy a strategy contract to start tracking value." })) : !hasData ? (_jsxs("div", { style: { display: "grid", gap: 10 }, children: [_jsx(Skeleton, { width: 140, height: 22 }), _jsx(Skeleton, { width: 80, height: 12 }), _jsx(Skeleton, { width: "100%", height: height, borderRadius: 8 })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { alignItems: "baseline", display: "flex", gap: 10, justifyContent: "space-between" }, children: [_jsxs("div", { style: { display: "grid", gap: 2 }, children: [_jsx("strong", { style: { fontSize: 22, fontWeight: 700, lineHeight: 1.1 }, children: _jsx(AnimatedNumber, { value: history.currentTotalEth, format: (n) => `${n.toFixed(6)} ETH` }) }), currentUsd !== null ? (_jsx("span", { style: { color: palette.textMuted, fontSize: 12 }, children: _jsx(AnimatedNumber, { value: currentUsd, format: (n) => usdFormatter.format(n) }) })) : null] }), _jsxs("div", { style: { display: "grid", gap: 2, textAlign: "right" }, children: [_jsxs("strong", { style: { color: tone, fontSize: 13, fontWeight: 700 }, children: [history.changeEth >= 0 ? "+" : "", history.changeEth.toFixed(6), " ETH"] }), _jsxs("span", { style: { color: palette.textDim, fontSize: 11 }, children: [history.changePct === null
|
|
61
|
+
? "—"
|
|
62
|
+
: `${history.changePct >= 0 ? "+" : ""}${history.changePct.toFixed(2)}% since start`, changeUsd !== null
|
|
63
|
+
? ` · ${changeUsd >= 0 ? "+" : ""}${usdFormatter.format(changeUsd)}`
|
|
64
|
+
: ""] })] })] }), _jsxs("svg", { "aria-hidden": true, height: height, style: {
|
|
65
|
+
background: palette.surface,
|
|
66
|
+
border: `1px solid ${palette.border}`,
|
|
67
|
+
borderRadius: 8,
|
|
68
|
+
display: "block",
|
|
69
|
+
width: "100%"
|
|
70
|
+
}, viewBox: `0 0 ${width} ${height}`, width: "100%", children: [areaPath ? _jsx("path", { d: areaPath, fill: `${tone}1f` }) : null, path ? (_jsx("path", { d: path, fill: "none", stroke: tone, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, style: { transition: "stroke 320ms ease" } })) : null] }), _jsx("div", { style: {
|
|
71
|
+
color: palette.textDim,
|
|
72
|
+
fontSize: 10,
|
|
73
|
+
lineHeight: 1.4
|
|
74
|
+
}, children: "Tracks contract balance + allocated value over time. Not realised PnL \u2014 actual trade outcomes occur off-chain at the strategyWallet." })] }))] }));
|
|
75
|
+
}
|
|
76
|
+
function buildPath(values, width, height) {
|
|
77
|
+
if (values.length < 2)
|
|
78
|
+
return null;
|
|
79
|
+
const min = Math.min(...values);
|
|
80
|
+
const max = Math.max(...values);
|
|
81
|
+
const range = max - min || max || 1;
|
|
82
|
+
const stepX = width / (values.length - 1);
|
|
83
|
+
const points = values.map((v, i) => {
|
|
84
|
+
const x = i * stepX;
|
|
85
|
+
const norm = (v - min) / range;
|
|
86
|
+
const y = height - norm * (height - 8) - 4;
|
|
87
|
+
return `${x.toFixed(2)},${y.toFixed(2)}`;
|
|
88
|
+
});
|
|
89
|
+
return `M${points.join(" L")}`;
|
|
90
|
+
}
|
|
91
|
+
function buildAreaPath(values, width, height) {
|
|
92
|
+
if (values.length < 2)
|
|
93
|
+
return null;
|
|
94
|
+
const line = buildPath(values, width, height);
|
|
95
|
+
if (!line)
|
|
96
|
+
return null;
|
|
97
|
+
return `${line} L${width},${height} L0,${height} Z`;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=StrategyValueSparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrategyValueSparkline.js","sourceRoot":"","sources":["../src/StrategyValueSparkline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
export type SwapWidgetProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
inputCurrency?: string;
|
|
6
|
+
outputCurrency?: string;
|
|
7
|
+
chain?: "mainnet" | "base" | "arbitrum" | "optimism" | "polygon";
|
|
8
|
+
height?: number;
|
|
9
|
+
style?: CSSProperties;
|
|
10
|
+
};
|
|
11
|
+
export declare function SwapWidget({ className, title, inputCurrency, outputCurrency, chain, height, style }: SwapWidgetProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SwapWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwapWidget.d.ts","sourceRoot":"","sources":["../src/SwapWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAaF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAoB,EACpB,aAAqB,EACrB,cAA6B,EAC7B,KAAiB,EACjB,MAAY,EACZ,KAAK,EACN,EAAE,eAAe,2CAoEjB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
const palette = {
|
|
4
|
+
bg: "#0a0a0a",
|
|
5
|
+
surface: "#111113",
|
|
6
|
+
border: "#1f1f23",
|
|
7
|
+
text: "#f5f5f7",
|
|
8
|
+
textMuted: "#9ca3af",
|
|
9
|
+
textDim: "#52525b"
|
|
10
|
+
};
|
|
11
|
+
const USDC_MAINNET = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
|
|
12
|
+
export function SwapWidget({ className, title = "Quick Swap", inputCurrency = "ETH", outputCurrency = USDC_MAINNET, chain = "mainnet", height = 540, style }) {
|
|
13
|
+
const src = useMemo(() => {
|
|
14
|
+
const params = new URLSearchParams({
|
|
15
|
+
inputCurrency,
|
|
16
|
+
outputCurrency,
|
|
17
|
+
chain
|
|
18
|
+
});
|
|
19
|
+
return `https://app.uniswap.org/#/swap?${params.toString()}`;
|
|
20
|
+
}, [chain, inputCurrency, outputCurrency]);
|
|
21
|
+
return (_jsxs("section", { className: className, style: {
|
|
22
|
+
background: palette.bg,
|
|
23
|
+
border: `1px solid ${palette.border}`,
|
|
24
|
+
borderRadius: 14,
|
|
25
|
+
boxShadow: "0 20px 60px rgba(0, 0, 0, 0.55)",
|
|
26
|
+
color: palette.text,
|
|
27
|
+
display: "grid",
|
|
28
|
+
fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
29
|
+
gap: 12,
|
|
30
|
+
maxWidth: 420,
|
|
31
|
+
padding: 18,
|
|
32
|
+
...style
|
|
33
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx("a", { href: src, rel: "noreferrer", style: { color: palette.textDim, fontSize: 11, textDecoration: "none" }, target: "_blank", children: "open in Uniswap \u2197" })] }), _jsx("div", { style: {
|
|
34
|
+
background: palette.surface,
|
|
35
|
+
border: `1px solid ${palette.border}`,
|
|
36
|
+
borderRadius: 10,
|
|
37
|
+
overflow: "hidden"
|
|
38
|
+
}, children: _jsx("iframe", { allow: "clipboard-write; clipboard-read", loading: "lazy", referrerPolicy: "no-referrer", src: src, style: {
|
|
39
|
+
border: 0,
|
|
40
|
+
colorScheme: "dark",
|
|
41
|
+
display: "block",
|
|
42
|
+
height,
|
|
43
|
+
width: "100%"
|
|
44
|
+
}, title: "Uniswap Swap" }) }), _jsx("p", { style: { color: palette.textDim, fontSize: 10, lineHeight: 1.4, margin: 0 }, children: "Manual swap via Uniswap. Connect your wallet inside the widget to trade." })] }));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=SwapWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwapWidget.js","sourceRoot":"","sources":["../src/SwapWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,OAAO,CAAC;AAYpD,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAElE,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,GAAG,YAAY,EACpB,aAAa,GAAG,KAAK,EACrB,cAAc,GAAG,YAAY,EAC7B,KAAK,GAAG,SAAS,EACjB,MAAM,GAAG,GAAG,EACZ,KAAK,EACW;IAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,aAAa;YACb,cAAc;YACd,KAAK;SACN,CAAC,CAAC;QACH,OAAO,kCAAkC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC/D,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,OAAO,CACL,mBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,MAAM,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE;YACrC,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,iCAAiC;YAC5C,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,0DAA0D;YACtE,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,EAAE;YACX,GAAG,KAAK;SACT,aAED,kBAAQ,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,aACvF,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,KAAK,GAAM,EAC9F,YACE,IAAI,EAAE,GAAG,EACT,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EACvE,MAAM,EAAC,QAAQ,uCAGb,IACG,EAET,cACE,KAAK,EAAE;oBACL,UAAU,EAAE,OAAO,CAAC,OAAO;oBAC3B,MAAM,EAAE,aAAa,OAAO,CAAC,MAAM,EAAE;oBACrC,YAAY,EAAE,EAAE;oBAChB,QAAQ,EAAE,QAAQ;iBACnB,YAED,iBACE,KAAK,EAAC,iCAAiC,EACvC,OAAO,EAAC,MAAM,EACd,cAAc,EAAC,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;wBACL,MAAM,EAAE,CAAC;wBACT,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,OAAO;wBAChB,MAAM;wBACN,KAAK,EAAE,MAAM;qBACd,EACD,KAAK,EAAC,cAAc,GACpB,GACE,EAEN,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,yFAE1E,IACI,CACX,CAAC;AACJ,CAAC"}
|
package/dist/TradeTape.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradeTape.d.ts","sourceRoot":"","sources":["../src/TradeTape.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TradeTape.d.ts","sourceRoot":"","sources":["../src/TradeTape.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGvF,MAAM,MAAM,cAAc,GAAG,uBAAuB,GAAG;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA8BF,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAuB,EAAE,IAAS,EAAE,GAAG,WAAW,EAAE,EAAE,cAAc,2CA0E1G"}
|
package/dist/TradeTape.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
2
3
|
import { useBinanceTrades } from "./useBinanceTrades.js";
|
|
4
|
+
import { Skeleton } from "./Skeleton.js";
|
|
3
5
|
const palette = {
|
|
4
6
|
bg: "#0a0a0a",
|
|
5
7
|
border: "#1f1f23",
|
|
@@ -39,16 +41,23 @@ export function TradeTape({ className, title = "Recent Trades", rows = 20, ...ho
|
|
|
39
41
|
gap: 10,
|
|
40
42
|
maxWidth: 360,
|
|
41
43
|
padding: 18
|
|
42
|
-
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx(StatusDot, { status: status, symbol: symbol })] }), _jsx(HeaderRow, {}), _jsx("div", { style: { display: "grid", gap: 1, maxHeight: 360, overflow: "hidden" }, children: trades.length === 0
|
|
43
|
-
|
|
44
|
-
return (_jsxs("div", { style: {
|
|
44
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx(StatusDot, { status: status, symbol: symbol })] }), _jsx(HeaderRow, {}), _jsx("div", { style: { display: "grid", gap: 1, maxHeight: 360, overflow: "hidden" }, children: trades.length === 0
|
|
45
|
+
? Array.from({ length: Math.min(rows, 12) }).map((_, i) => (_jsxs("div", { style: {
|
|
45
46
|
display: "grid",
|
|
46
|
-
|
|
47
|
-
fontVariantNumeric: "tabular-nums",
|
|
47
|
+
gap: 6,
|
|
48
48
|
gridTemplateColumns: "1fr 1fr 56px",
|
|
49
49
|
padding: "3px 4px"
|
|
50
|
-
}, children: [_jsx(
|
|
51
|
-
|
|
50
|
+
}, children: [_jsx(Skeleton, { height: 10 }), _jsx(Skeleton, { height: 10 }), _jsx(Skeleton, { height: 10 })] }, `sk-${i}`)))
|
|
51
|
+
: (_jsx(AnimatePresence, { initial: false, children: trades.map((trade) => {
|
|
52
|
+
const color = trade.side === "buy" ? palette.buy : palette.sell;
|
|
53
|
+
return (_jsxs(motion.div, { animate: { opacity: 1, y: 0 }, exit: { opacity: 0, height: 0, marginTop: 0, marginBottom: 0 }, initial: { opacity: 0, y: -6 }, layout: true, style: {
|
|
54
|
+
display: "grid",
|
|
55
|
+
fontSize: 12,
|
|
56
|
+
fontVariantNumeric: "tabular-nums",
|
|
57
|
+
gridTemplateColumns: "1fr 1fr 56px",
|
|
58
|
+
padding: "3px 4px"
|
|
59
|
+
}, transition: { duration: 0.22, ease: [0.22, 0.61, 0.36, 1] }, children: [_jsx("span", { style: { color, fontWeight: 600 }, children: priceFormatter.format(trade.price) }), _jsx("span", { style: { color: palette.text, textAlign: "right" }, children: sizeFormatter.format(trade.size) }), _jsx("span", { style: { color: palette.textDim, textAlign: "right" }, children: timeAgo(trade.timestamp) })] }, trade.id));
|
|
60
|
+
}) })) })] }));
|
|
52
61
|
}
|
|
53
62
|
function HeaderRow() {
|
|
54
63
|
const cell = {
|
package/dist/TradeTape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradeTape.js","sourceRoot":"","sources":["../src/TradeTape.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"TradeTape.js","sourceRoot":"","sources":["../src/TradeTape.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type UseUniswapPoolStatsOptions } from "./useUniswapPoolStats.js";
|
|
2
|
+
export type UniswapPoolStatsProps = UseUniswapPoolStatsOptions & {
|
|
3
|
+
className?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function UniswapPoolStats({ className, title, ...hookOptions }: UniswapPoolStatsProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=UniswapPoolStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniswapPoolStats.d.ts","sourceRoot":"","sources":["../src/UniswapPoolStats.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGhG,MAAM,MAAM,qBAAqB,GAAG,0BAA0B,GAAG;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6BF,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAyB,EAAE,GAAG,WAAW,EAAE,EAAE,qBAAqB,2CAsE/G"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useUniswapPoolStats } from "./useUniswapPoolStats.js";
|
|
3
|
+
import { Skeleton } from "./Skeleton.js";
|
|
4
|
+
const palette = {
|
|
5
|
+
bg: "#0a0a0a",
|
|
6
|
+
surface: "#111113",
|
|
7
|
+
border: "#1f1f23",
|
|
8
|
+
text: "#f5f5f7",
|
|
9
|
+
textMuted: "#9ca3af",
|
|
10
|
+
textDim: "#52525b",
|
|
11
|
+
accent: "#3b82f6",
|
|
12
|
+
live: "#10b981",
|
|
13
|
+
error: "#ef4444"
|
|
14
|
+
};
|
|
15
|
+
const usdFormatter = new Intl.NumberFormat("en-US", {
|
|
16
|
+
currency: "USD",
|
|
17
|
+
maximumFractionDigits: 0,
|
|
18
|
+
minimumFractionDigits: 0,
|
|
19
|
+
style: "currency"
|
|
20
|
+
});
|
|
21
|
+
const compactFormatter = new Intl.NumberFormat("en-US", {
|
|
22
|
+
currency: "USD",
|
|
23
|
+
maximumFractionDigits: 2,
|
|
24
|
+
minimumFractionDigits: 0,
|
|
25
|
+
notation: "compact",
|
|
26
|
+
style: "currency"
|
|
27
|
+
});
|
|
28
|
+
export function UniswapPoolStats({ className, title = "Uniswap v3 Pool", ...hookOptions }) {
|
|
29
|
+
const { stats, status, error } = useUniswapPoolStats(hookOptions);
|
|
30
|
+
const dotColor = status === "live" ? palette.live : status === "error" ? palette.error : "#fbbf24";
|
|
31
|
+
return (_jsxs("section", { className: className, style: {
|
|
32
|
+
background: palette.bg,
|
|
33
|
+
border: `1px solid ${palette.border}`,
|
|
34
|
+
borderRadius: 14,
|
|
35
|
+
boxShadow: "0 20px 60px rgba(0, 0, 0, 0.55)",
|
|
36
|
+
color: palette.text,
|
|
37
|
+
display: "grid",
|
|
38
|
+
fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
39
|
+
gap: 12,
|
|
40
|
+
maxWidth: 420,
|
|
41
|
+
padding: 18
|
|
42
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsxs("span", { style: { alignItems: "center", color: palette.textMuted, display: "inline-flex", fontSize: 11, gap: 6 }, children: [_jsx("span", { "aria-hidden": true, style: { background: dotColor, borderRadius: 999, height: 6, width: 6 } }), stats ? `${stats.token0Symbol}/${stats.token1Symbol} · ${stats.feeTierBps.toFixed(2)} bps` : status] })] }), stats ? (_jsxs("div", { style: {
|
|
43
|
+
background: palette.surface,
|
|
44
|
+
border: `1px solid ${palette.border}`,
|
|
45
|
+
borderRadius: 10,
|
|
46
|
+
display: "grid",
|
|
47
|
+
gap: 1,
|
|
48
|
+
gridTemplateColumns: "1fr 1fr 1fr",
|
|
49
|
+
overflow: "hidden"
|
|
50
|
+
}, children: [_jsx(Cell, { label: "24h Volume", value: compactFormatter.format(stats.volume24hUsd) }), _jsx(Cell, { label: "24h Fees", value: compactFormatter.format(stats.fees24hUsd) }), _jsx(Cell, { label: "TVL", value: compactFormatter.format(stats.totalValueLockedUsd) })] })) : status === "error" ? (_jsx("div", { style: { color: palette.error, fontSize: 12 }, children: error ?? "Could not load pool data." })) : (_jsxs("div", { style: {
|
|
51
|
+
background: palette.surface,
|
|
52
|
+
border: `1px solid ${palette.border}`,
|
|
53
|
+
borderRadius: 10,
|
|
54
|
+
display: "grid",
|
|
55
|
+
gap: 1,
|
|
56
|
+
gridTemplateColumns: "1fr 1fr 1fr",
|
|
57
|
+
overflow: "hidden"
|
|
58
|
+
}, children: [_jsx(CellSkeleton, {}), _jsx(CellSkeleton, {}), _jsx(CellSkeleton, {})] })), _jsxs("p", { style: { color: palette.textDim, fontSize: 10, lineHeight: 1.4, margin: 0 }, children: ["On-chain data via The Graph. Default pool is ETH/USDC 0.05% mainnet \u2014 override with the", " ", _jsx("code", { style: { background: palette.surface, borderRadius: 4, padding: "1px 5px" }, children: "poolId" }), " prop."] })] }));
|
|
59
|
+
}
|
|
60
|
+
function Cell({ label, value }) {
|
|
61
|
+
return (_jsxs("div", { style: { background: palette.surface, display: "grid", gap: 2, padding: "10px 12px" }, children: [_jsx("span", { style: { color: palette.textDim, fontSize: 10, letterSpacing: "0.06em", textTransform: "uppercase" }, children: label }), _jsx("strong", { style: { fontSize: 14, fontWeight: 700 }, children: value })] }));
|
|
62
|
+
}
|
|
63
|
+
function CellSkeleton() {
|
|
64
|
+
return (_jsxs("div", { style: { background: palette.surface, display: "grid", gap: 4, padding: "10px 12px" }, children: [_jsx(Skeleton, { width: 56, height: 9 }), _jsx(Skeleton, { width: 72, height: 14 })] }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=UniswapPoolStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniswapPoolStats.js","sourceRoot":"","sources":["../src/UniswapPoolStats.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,13 @@ export { useCoinbaseTicker, type CoinbaseTickerStatus, type CoinbaseTickerMessag
|
|
|
25
25
|
export { useBotDecision, type BotDecision, type DecisionResult, type DecisionThresholds, type DecisionHistoryEntry, type UseBotDecisionOptions, type UseBotDecisionResult } from "./useBotDecision.js";
|
|
26
26
|
export { computeBotDecision, computeBookImbalance, computeBookDepth, computeTradeImbalance, DEFAULT_DECISION_THRESHOLDS, type DecisionInputs, type DecisionReason, type BookLevel } from "./decisionEngine.js";
|
|
27
27
|
export { BotDecisionPanel, type BotDecisionPanelProps } from "./BotDecisionPanel.js";
|
|
28
|
+
export { useStrategyValueHistory, type ValueSample, type UseStrategyValueHistoryOptions, type UseStrategyValueHistoryResult } from "./useStrategyValueHistory.js";
|
|
29
|
+
export { StrategyValueSparkline, type StrategyValueSparklineProps } from "./StrategyValueSparkline.js";
|
|
30
|
+
export { Skeleton, SkeletonRow, type SkeletonProps } from "./Skeleton.js";
|
|
31
|
+
export { AnimatedNumber, type AnimatedNumberProps } from "./AnimatedNumber.js";
|
|
32
|
+
export { SwapWidget, type SwapWidgetProps } from "./SwapWidget.js";
|
|
33
|
+
export { useUniswapPoolStats, type UniswapPoolStats as UniswapPoolStatsData, type UseUniswapPoolStatsOptions, type UseUniswapPoolStatsResult, type UniswapPoolStatsStatus } from "./useUniswapPoolStats.js";
|
|
34
|
+
export { UniswapPoolStats, type UniswapPoolStatsProps } from "./UniswapPoolStats.js";
|
|
28
35
|
/** @deprecated Use BAND_STRATEGY_ABI. Will be removed in v1.0. */
|
|
29
36
|
export { BAND_STRATEGY_ABI as ETH_BOT_VAULT_ABI } from "./bandStrategyAbi.js";
|
|
30
37
|
/** @deprecated Use BAND_STRATEGY_BYTECODE. Will be removed in v1.0. */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|