bandkit 1.0.7 → 1.0.9
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 +0 -7
- package/dist/SwapWidget.d.ts +9 -2
- package/dist/SwapWidget.d.ts.map +1 -1
- package/dist/SwapWidget.js +40 -12
- package/dist/SwapWidget.js.map +1 -1
- package/dist/UniswapPoolStats.d.ts.map +1 -1
- package/dist/UniswapPoolStats.js +22 -11
- package/dist/UniswapPoolStats.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/useUniswapPoolStats.d.ts +21 -5
- package/dist/useUniswapPoolStats.d.ts.map +1 -1
- package/dist/useUniswapPoolStats.js +29 -40
- package/dist/useUniswapPoolStats.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,6 @@ The package ships:
|
|
|
12
12
|
- Context badges: `<RegimeBadge />` (volatility regime), `<GasBadge />` (mainnet gas price)
|
|
13
13
|
- Decision proxy: `<BotDecisionPanel />` — live BUY/SELL/WAIT/STAND-DOWN preview from Binance + Coinbase data
|
|
14
14
|
- On-chain market context: `<UniswapPoolStats />` — live 24h volume / fees / TVL from the Uniswap subgraph
|
|
15
|
-
- Manual swap surface: `<SwapWidget />` — embedded Uniswap swap UI
|
|
16
15
|
- A dark UI throughout, with `framer-motion` animations and `sonner` toast notifications baked in
|
|
17
16
|
|
|
18
17
|
It does **not** ship trading strategy logic, signal generation, risk management, or the off-chain trade-execution daemon — those are out of scope.
|
|
@@ -65,9 +64,6 @@ max-width 1100px, gap 20px, system font stack:
|
|
|
65
64
|
│ │ <TradeTape /> │
|
|
66
65
|
│ │ │
|
|
67
66
|
│ ├──────────────────────────────┤
|
|
68
|
-
│ │ <SwapWidget /> │
|
|
69
|
-
│ │ │
|
|
70
|
-
│ ├──────────────────────────────┤
|
|
71
67
|
│ │ <ContractEventFeed │
|
|
72
68
|
│ │ strategyContractAddress= │
|
|
73
69
|
│ │ {deployedAddress} /> │
|
|
@@ -83,7 +79,6 @@ Components to import from bandkit:
|
|
|
83
79
|
- UniswapPoolStats (24h vol/fees/TVL for ETH/USDC pool via The Graph)
|
|
84
80
|
- OrderBookWidget (live Binance ETH/USDT depth)
|
|
85
81
|
- TradeTape (live recent trades)
|
|
86
|
-
- SwapWidget (embedded Uniswap swap iframe)
|
|
87
82
|
- ContractEventFeed (on-chain events from the deployed strategy)
|
|
88
83
|
- RegimeBadge (RANGING / MIXED / TRENDING based on volatility)
|
|
89
84
|
- GasBadge (current mainnet gas price)
|
|
@@ -118,7 +113,6 @@ import {
|
|
|
118
113
|
OrderBookWidget,
|
|
119
114
|
RegimeBadge,
|
|
120
115
|
StrategyValueSparkline,
|
|
121
|
-
SwapWidget,
|
|
122
116
|
TradeTape,
|
|
123
117
|
UniswapPoolStats,
|
|
124
118
|
createBandKitConfig
|
|
@@ -155,7 +149,6 @@ export function App() {
|
|
|
155
149
|
<UniswapPoolStats />
|
|
156
150
|
<OrderBookWidget />
|
|
157
151
|
<TradeTape />
|
|
158
|
-
<SwapWidget />
|
|
159
152
|
<ContractEventFeed strategyContractAddress={strategy} />
|
|
160
153
|
</div>
|
|
161
154
|
</div>
|
package/dist/SwapWidget.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { type CSSProperties } from "react";
|
|
2
|
+
export type SwapProvider = "cowswap" | "defillama";
|
|
2
3
|
export type SwapWidgetProps = {
|
|
3
4
|
className?: string;
|
|
4
5
|
title?: string;
|
|
6
|
+
provider?: SwapProvider;
|
|
7
|
+
/** Token symbol (ETH, WETH, USDC, etc.) or full address. */
|
|
5
8
|
inputCurrency?: string;
|
|
9
|
+
/** Token symbol or full address. */
|
|
6
10
|
outputCurrency?: string;
|
|
7
|
-
chain
|
|
11
|
+
/** EVM chain id. 1 = mainnet, 8453 = base, 42161 = arbitrum, 11155111 = sepolia. */
|
|
12
|
+
chainId?: number;
|
|
13
|
+
/** Full URL override — if set, ignores provider / inputCurrency / etc. */
|
|
14
|
+
customUrl?: string;
|
|
8
15
|
height?: number;
|
|
9
16
|
style?: CSSProperties;
|
|
10
17
|
};
|
|
11
|
-
export declare function SwapWidget({ className, title, inputCurrency, outputCurrency,
|
|
18
|
+
export declare function SwapWidget({ className, title, provider, inputCurrency, outputCurrency, chainId, customUrl, height, style }: SwapWidgetProps): import("react/jsx-runtime").JSX.Element;
|
|
12
19
|
//# sourceMappingURL=SwapWidget.d.ts.map
|
package/dist/SwapWidget.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AA6CF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAoB,EACpB,QAAoB,EACpB,aAAqB,EACrB,cAAuB,EACvB,OAAW,EACX,SAAS,EACT,MAAY,EACZ,KAAK,EACN,EAAE,eAAe,2CAmEjB"}
|
package/dist/SwapWidget.js
CHANGED
|
@@ -8,16 +8,44 @@ const palette = {
|
|
|
8
8
|
textMuted: "#9ca3af",
|
|
9
9
|
textDim: "#52525b"
|
|
10
10
|
};
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
const COWSWAP_LABEL = {
|
|
12
|
+
cowswap: "CoW Swap",
|
|
13
|
+
defillama: "DefiLlama"
|
|
14
|
+
};
|
|
15
|
+
function buildCowSwapUrl(chainId, input, output) {
|
|
16
|
+
// https://swap.cow.fi/#/<chainId>/swap/<sellToken>/<buyToken>
|
|
17
|
+
return `https://swap.cow.fi/#/${chainId}/swap/${encodeURIComponent(input)}/${encodeURIComponent(output)}`;
|
|
18
|
+
}
|
|
19
|
+
function buildDefiLlamaUrl(chainId, input, output) {
|
|
20
|
+
const chainSlug = chainSlugForDefiLlama(chainId);
|
|
21
|
+
// https://swap.defillama.com/?chain=ethereum&from=ETH&to=USDC
|
|
22
|
+
const params = new URLSearchParams({ chain: chainSlug, from: input, to: output });
|
|
23
|
+
return `https://swap.defillama.com/?${params.toString()}`;
|
|
24
|
+
}
|
|
25
|
+
function chainSlugForDefiLlama(chainId) {
|
|
26
|
+
switch (chainId) {
|
|
27
|
+
case 1:
|
|
28
|
+
return "ethereum";
|
|
29
|
+
case 8453:
|
|
30
|
+
return "base";
|
|
31
|
+
case 42161:
|
|
32
|
+
return "arbitrum";
|
|
33
|
+
case 10:
|
|
34
|
+
return "optimism";
|
|
35
|
+
case 137:
|
|
36
|
+
return "polygon";
|
|
37
|
+
default:
|
|
38
|
+
return "ethereum";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function SwapWidget({ className, title = "Quick Swap", provider = "cowswap", inputCurrency = "ETH", outputCurrency = "USDC", chainId = 1, customUrl, height = 640, style }) {
|
|
13
42
|
const src = useMemo(() => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}, [chain, inputCurrency, outputCurrency]);
|
|
43
|
+
if (customUrl)
|
|
44
|
+
return customUrl;
|
|
45
|
+
return provider === "defillama"
|
|
46
|
+
? buildDefiLlamaUrl(chainId, inputCurrency, outputCurrency)
|
|
47
|
+
: buildCowSwapUrl(chainId, inputCurrency, outputCurrency);
|
|
48
|
+
}, [chainId, customUrl, inputCurrency, outputCurrency, provider]);
|
|
21
49
|
return (_jsxs("section", { className: className, style: {
|
|
22
50
|
background: palette.bg,
|
|
23
51
|
border: `1px solid ${palette.border}`,
|
|
@@ -30,17 +58,17 @@ export function SwapWidget({ className, title = "Quick Swap", inputCurrency = "E
|
|
|
30
58
|
maxWidth: 420,
|
|
31
59
|
padding: 18,
|
|
32
60
|
...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 }),
|
|
61
|
+
}, 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("a", { href: src, rel: "noreferrer", style: { color: palette.textDim, fontSize: 11, textDecoration: "none" }, target: "_blank", children: ["open ", COWSWAP_LABEL[provider], " \u2197"] })] }), _jsx("div", { style: {
|
|
34
62
|
background: palette.surface,
|
|
35
63
|
border: `1px solid ${palette.border}`,
|
|
36
64
|
borderRadius: 10,
|
|
37
65
|
overflow: "hidden"
|
|
38
|
-
}, children: _jsx("iframe", { allow: "clipboard-write; clipboard-read", loading: "lazy", referrerPolicy: "no-referrer", src: src, style: {
|
|
66
|
+
}, children: _jsx("iframe", { allow: "clipboard-write; clipboard-read; web3", loading: "lazy", referrerPolicy: "no-referrer-when-downgrade", src: src, style: {
|
|
39
67
|
border: 0,
|
|
40
68
|
colorScheme: "dark",
|
|
41
69
|
display: "block",
|
|
42
70
|
height,
|
|
43
71
|
width: "100%"
|
|
44
|
-
}, title:
|
|
72
|
+
}, title: `${COWSWAP_LABEL[provider]} Swap` }) }), _jsxs("p", { style: { color: palette.textDim, fontSize: 10, lineHeight: 1.4, margin: 0 }, children: ["Manual swap via ", COWSWAP_LABEL[provider], " (MEV-protected, iframe-friendly). Connect your wallet inside the widget to trade."] })] }));
|
|
45
73
|
}
|
|
46
74
|
//# sourceMappingURL=SwapWidget.js.map
|
package/dist/SwapWidget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapWidget.js","sourceRoot":"","sources":["../src/SwapWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SwapWidget.js","sourceRoot":"","sources":["../src/SwapWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,2CAqG/G"}
|
package/dist/UniswapPoolStats.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useUniswapPoolStats } from "./useUniswapPoolStats.js";
|
|
3
3
|
import { Skeleton } from "./Skeleton.js";
|
|
4
4
|
const palette = {
|
|
@@ -39,7 +39,26 @@ export function UniswapPoolStats({ className, title = "Uniswap v3 Pool", ...hook
|
|
|
39
39
|
gap: 12,
|
|
40
40
|
maxWidth: 420,
|
|
41
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
|
|
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
|
|
43
|
+
? `${stats.baseSymbol}/${stats.quoteSymbol} · ${stats.dexId}${stats.feeTierBps !== null ? ` · ${(stats.feeTierBps / 100).toFixed(2)}%` : ""}`
|
|
44
|
+
: status] })] }), stats ? (_jsxs(_Fragment, { children: [_jsxs("div", { style: {
|
|
45
|
+
background: palette.surface,
|
|
46
|
+
border: `1px solid ${palette.border}`,
|
|
47
|
+
borderRadius: 10,
|
|
48
|
+
display: "grid",
|
|
49
|
+
gap: 1,
|
|
50
|
+
gridTemplateColumns: "1fr 1fr 1fr",
|
|
51
|
+
overflow: "hidden"
|
|
52
|
+
}, children: [_jsx(Cell, { label: "24h Volume", value: compactFormatter.format(stats.volume24hUsd) }), _jsx(Cell, { label: "24h Fees", value: compactFormatter.format(stats.fees24hUsd) }), _jsx(Cell, { label: "Liquidity", value: compactFormatter.format(stats.liquidityUsd) })] }), _jsxs("div", { style: {
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
color: palette.textMuted,
|
|
55
|
+
display: "flex",
|
|
56
|
+
fontSize: 11,
|
|
57
|
+
fontVariantNumeric: "tabular-nums",
|
|
58
|
+
gap: 12,
|
|
59
|
+
justifyContent: "space-between",
|
|
60
|
+
padding: "0 2px"
|
|
61
|
+
}, children: [_jsxs("span", { children: ["Price", " ", _jsxs("strong", { style: { color: palette.text }, children: ["$", stats.priceUsd.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })] })] }), _jsxs("span", { style: { color: stats.priceChange24hPct >= 0 ? "#10b981" : palette.error }, children: [stats.priceChange24hPct >= 0 ? "+" : "", stats.priceChange24hPct.toFixed(2), "% 24h"] }), _jsxs("span", { children: [stats.txns24hBuys.toLocaleString(), " / ", stats.txns24hSells.toLocaleString(), " buys/sells"] })] })] })) : status === "error" ? (_jsx("div", { style: { color: palette.error, fontSize: 12 }, children: error ?? "Could not load pool data." })) : (_jsxs("div", { style: {
|
|
43
62
|
background: palette.surface,
|
|
44
63
|
border: `1px solid ${palette.border}`,
|
|
45
64
|
borderRadius: 10,
|
|
@@ -47,15 +66,7 @@ export function UniswapPoolStats({ className, title = "Uniswap v3 Pool", ...hook
|
|
|
47
66
|
gap: 1,
|
|
48
67
|
gridTemplateColumns: "1fr 1fr 1fr",
|
|
49
68
|
overflow: "hidden"
|
|
50
|
-
}, children: [_jsx(
|
|
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."] })] }));
|
|
69
|
+
}, children: [_jsx(CellSkeleton, {}), _jsx(CellSkeleton, {}), _jsx(CellSkeleton, {})] })), _jsxs("p", { style: { color: palette.textDim, fontSize: 10, lineHeight: 1.4, margin: 0 }, children: ["On-chain pool data via DexScreener (free, no key). Default pool: ETH/USDC 0.05% on mainnet \u2014 override with the", " ", _jsx("code", { style: { background: palette.surface, borderRadius: 4, padding: "1px 5px" }, children: "poolId" }), " and", " ", _jsx("code", { style: { background: palette.surface, borderRadius: 4, padding: "1px 5px" }, children: "chain" }), " props."] })] }));
|
|
59
70
|
}
|
|
60
71
|
function Cell({ label, value }) {
|
|
61
72
|
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 })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniswapPoolStats.js","sourceRoot":"","sources":["../src/UniswapPoolStats.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAmC,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,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;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,KAAK;IACf,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IACtD,QAAQ,EAAE,KAAK;IACf,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAyB;IAC9G,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnG,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;SACZ,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,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,aAC3G,oCAAkB,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAI,EAC5F,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"UniswapPoolStats.js","sourceRoot":"","sources":["../src/UniswapPoolStats.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,7 +29,6 @@ export { useStrategyValueHistory, type ValueSample, type UseStrategyValueHistory
|
|
|
29
29
|
export { StrategyValueSparkline, type StrategyValueSparklineProps } from "./StrategyValueSparkline.js";
|
|
30
30
|
export { Skeleton, SkeletonRow, type SkeletonProps } from "./Skeleton.js";
|
|
31
31
|
export { AnimatedNumber, type AnimatedNumberProps } from "./AnimatedNumber.js";
|
|
32
|
-
export { SwapWidget, type SwapWidgetProps } from "./SwapWidget.js";
|
|
33
32
|
export { useUniswapPoolStats, type UniswapPoolStats as UniswapPoolStatsData, type UseUniswapPoolStatsOptions, type UseUniswapPoolStatsResult, type UniswapPoolStatsStatus } from "./useUniswapPoolStats.js";
|
|
34
33
|
export { UniswapPoolStats, type UniswapPoolStatsProps } from "./UniswapPoolStats.js";
|
|
35
34
|
/** @deprecated Use BAND_STRATEGY_ABI. 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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"}
|
package/dist/index.js
CHANGED
|
@@ -35,8 +35,6 @@ export { StrategyValueSparkline } from "./StrategyValueSparkline.js";
|
|
|
35
35
|
// --- UI primitives -------------------------------------------------------
|
|
36
36
|
export { Skeleton, SkeletonRow } from "./Skeleton.js";
|
|
37
37
|
export { AnimatedNumber } from "./AnimatedNumber.js";
|
|
38
|
-
// --- Swap surface --------------------------------------------------------
|
|
39
|
-
export { SwapWidget } from "./SwapWidget.js";
|
|
40
38
|
// --- Uniswap pool stats (on-chain market context) ------------------------
|
|
41
39
|
export { useUniswapPoolStats } from "./useUniswapPoolStats.js";
|
|
42
40
|
export { UniswapPoolStats } from "./UniswapPoolStats.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAA+B,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAmC,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAG9B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EAI1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EAKlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAmE,MAAM,0BAA0B,CAAC;AAEhI,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EAMpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAElF,OAAO,EACL,gBAAgB,EAMjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAEhE,4EAA4E;AAC5E,OAAO,EACL,yBAAyB,EAK1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAA+B,MAAM,wBAAwB,CAAC;AAExF,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EACL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAE7D,2EAA2E;AAC3E,OAAO,EACL,iBAAiB,EAKlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,EAOf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAI5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAA8B,MAAM,uBAAuB,CAAC;AAErF,2EAA2E;AAC3E,OAAO,EACL,uBAAuB,EAIxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AAErC,4EAA4E;AAC5E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAE/E,4EAA4E;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
export type UniswapPoolStatsStatus = "idle" | "loading" | "live" | "error";
|
|
2
2
|
export type UniswapPoolStats = {
|
|
3
3
|
poolId: string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
dexId: string;
|
|
5
|
+
baseSymbol: string;
|
|
6
|
+
quoteSymbol: string;
|
|
7
|
+
feeTierBps: number | null;
|
|
8
|
+
priceUsd: number;
|
|
9
|
+
liquidityUsd: number;
|
|
8
10
|
volume24hUsd: number;
|
|
11
|
+
volume6hUsd: number;
|
|
12
|
+
volume1hUsd: number;
|
|
9
13
|
fees24hUsd: number;
|
|
14
|
+
priceChange24hPct: number;
|
|
15
|
+
txns24hBuys: number;
|
|
16
|
+
txns24hSells: number;
|
|
10
17
|
updatedAt?: Date;
|
|
11
18
|
};
|
|
12
19
|
export type UseUniswapPoolStatsOptions = {
|
|
20
|
+
/** Pool / pair contract address. Default: ETH/USDC 0.05% mainnet. */
|
|
13
21
|
poolId?: string;
|
|
14
|
-
|
|
22
|
+
/** Chain slug as DexScreener understands it. Default: ethereum. */
|
|
23
|
+
chain?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Fee tier in basis points (0.05% = 5 bps × 100 = 500 in Uniswap's tier
|
|
26
|
+
* encoding; we accept the raw bps number, e.g. 5 for 0.05%). Used only to
|
|
27
|
+
* estimate `fees24hUsd` since DexScreener doesn't return it directly.
|
|
28
|
+
* Default: 5 bps (Uniswap v3 0.05%).
|
|
29
|
+
*/
|
|
30
|
+
feeTierBps?: number;
|
|
15
31
|
refetchIntervalMs?: number;
|
|
16
32
|
enabled?: boolean;
|
|
17
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUniswapPoolStats.d.ts","sourceRoot":"","sources":["../src/useUniswapPoolStats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUniswapPoolStats.d.ts","sourceRoot":"","sources":["../src/useUniswapPoolStats.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAqBF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,yBAAyB,CAoEvG"}
|
|
@@ -1,32 +1,12 @@
|
|
|
1
1
|
import { useEffect, useMemo, useState } from "react";
|
|
2
|
-
import { GraphQLClient, gql } from "graphql-request";
|
|
3
|
-
// Default: ETH/USDC 0.05% on mainnet
|
|
4
2
|
const DEFAULT_POOL_ID = "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640";
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const POOL_QUERY = gql `
|
|
8
|
-
query Pool($id: ID!) {
|
|
9
|
-
pool(id: $id) {
|
|
10
|
-
id
|
|
11
|
-
feeTier
|
|
12
|
-
totalValueLockedUSD
|
|
13
|
-
token0 {
|
|
14
|
-
symbol
|
|
15
|
-
}
|
|
16
|
-
token1 {
|
|
17
|
-
symbol
|
|
18
|
-
}
|
|
19
|
-
poolDayData(first: 1, orderBy: date, orderDirection: desc) {
|
|
20
|
-
volumeUSD
|
|
21
|
-
feesUSD
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
`;
|
|
3
|
+
const DEFAULT_CHAIN = "ethereum";
|
|
4
|
+
const DEFAULT_FEE_TIER_BPS = 5;
|
|
26
5
|
export function useUniswapPoolStats(options = {}) {
|
|
27
6
|
const enabled = options.enabled ?? true;
|
|
28
7
|
const poolId = (options.poolId ?? DEFAULT_POOL_ID).toLowerCase();
|
|
29
|
-
const
|
|
8
|
+
const chain = options.chain ?? DEFAULT_CHAIN;
|
|
9
|
+
const feeTierBps = options.feeTierBps ?? DEFAULT_FEE_TIER_BPS;
|
|
30
10
|
const refetchIntervalMs = options.refetchIntervalMs ?? 60_000;
|
|
31
11
|
const [stats, setStats] = useState(null);
|
|
32
12
|
const [status, setStatus] = useState("idle");
|
|
@@ -36,29 +16,40 @@ export function useUniswapPoolStats(options = {}) {
|
|
|
36
16
|
setStatus("idle");
|
|
37
17
|
return;
|
|
38
18
|
}
|
|
39
|
-
const client = new GraphQLClient(subgraphUrl);
|
|
40
19
|
let cancelled = false;
|
|
20
|
+
const endpoint = `https://api.dexscreener.com/latest/dex/pairs/${chain}/${poolId}`;
|
|
41
21
|
async function fetchOnce() {
|
|
42
22
|
if (!cancelled)
|
|
43
|
-
setStatus(
|
|
23
|
+
setStatus((prev) => (prev === "live" ? "live" : "loading"));
|
|
44
24
|
try {
|
|
45
|
-
const
|
|
25
|
+
const res = await fetch(endpoint, { headers: { accept: "application/json" } });
|
|
26
|
+
if (!res.ok)
|
|
27
|
+
throw new Error(`DexScreener responded ${res.status}`);
|
|
28
|
+
const data = (await res.json());
|
|
46
29
|
if (cancelled)
|
|
47
30
|
return;
|
|
48
|
-
if (!data.
|
|
49
|
-
setError("Pool not found
|
|
31
|
+
if (!data.pair) {
|
|
32
|
+
setError("Pool not found on DexScreener");
|
|
50
33
|
setStatus("error");
|
|
51
34
|
return;
|
|
52
35
|
}
|
|
53
|
-
const
|
|
36
|
+
const p = data.pair;
|
|
37
|
+
const volume24h = p.volume?.h24 ?? 0;
|
|
54
38
|
setStats({
|
|
55
|
-
poolId:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
39
|
+
poolId: p.pairAddress,
|
|
40
|
+
dexId: p.dexId,
|
|
41
|
+
baseSymbol: p.baseToken.symbol,
|
|
42
|
+
quoteSymbol: p.quoteToken.symbol,
|
|
43
|
+
feeTierBps,
|
|
44
|
+
priceUsd: Number(p.priceUsd ?? 0),
|
|
45
|
+
liquidityUsd: p.liquidity?.usd ?? 0,
|
|
46
|
+
volume24hUsd: volume24h,
|
|
47
|
+
volume6hUsd: p.volume?.h6 ?? 0,
|
|
48
|
+
volume1hUsd: p.volume?.h1 ?? 0,
|
|
49
|
+
fees24hUsd: volume24h * (feeTierBps / 10_000),
|
|
50
|
+
priceChange24hPct: p.priceChange?.h24 ?? 0,
|
|
51
|
+
txns24hBuys: p.txns?.h24?.buys ?? 0,
|
|
52
|
+
txns24hSells: p.txns?.h24?.sells ?? 0,
|
|
62
53
|
updatedAt: new Date()
|
|
63
54
|
});
|
|
64
55
|
setStatus("live");
|
|
@@ -77,9 +68,7 @@ export function useUniswapPoolStats(options = {}) {
|
|
|
77
68
|
cancelled = true;
|
|
78
69
|
clearInterval(id);
|
|
79
70
|
};
|
|
80
|
-
|
|
81
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
|
-
}, [enabled, poolId, refetchIntervalMs, subgraphUrl]);
|
|
71
|
+
}, [chain, enabled, feeTierBps, poolId, refetchIntervalMs]);
|
|
83
72
|
return useMemo(() => ({ stats, status, error }), [stats, status, error]);
|
|
84
73
|
}
|
|
85
74
|
//# sourceMappingURL=useUniswapPoolStats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUniswapPoolStats.js","sourceRoot":"","sources":["../src/useUniswapPoolStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useUniswapPoolStats.js","sourceRoot":"","sources":["../src/useUniswapPoolStats.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bandkit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Open-source scaffolding for Ethereum range-bound trading strategies: strategy contract deployment, restricted executor, and React hooks. Strategy logic is not included.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|