bandkit 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +222 -77
  2. package/dist/BandPanel.d.ts.map +1 -1
  3. package/dist/BandPanel.js +23 -2
  4. package/dist/BandPanel.js.map +1 -1
  5. package/dist/BotDecisionPanel.d.ts +7 -0
  6. package/dist/BotDecisionPanel.d.ts.map +1 -0
  7. package/dist/BotDecisionPanel.js +124 -0
  8. package/dist/BotDecisionPanel.js.map +1 -0
  9. package/dist/ContractEventFeed.d.ts +7 -0
  10. package/dist/ContractEventFeed.d.ts.map +1 -0
  11. package/dist/ContractEventFeed.js +76 -0
  12. package/dist/ContractEventFeed.js.map +1 -0
  13. package/dist/GasBadge.d.ts +6 -0
  14. package/dist/GasBadge.d.ts.map +1 -0
  15. package/dist/GasBadge.js +37 -0
  16. package/dist/GasBadge.js.map +1 -0
  17. package/dist/OrderBookWidget.d.ts +8 -0
  18. package/dist/OrderBookWidget.d.ts.map +1 -0
  19. package/dist/OrderBookWidget.js +92 -0
  20. package/dist/OrderBookWidget.js.map +1 -0
  21. package/dist/RegimeBadge.d.ts +6 -0
  22. package/dist/RegimeBadge.d.ts.map +1 -0
  23. package/dist/RegimeBadge.js +39 -0
  24. package/dist/RegimeBadge.js.map +1 -0
  25. package/dist/TradeTape.d.ts +8 -0
  26. package/dist/TradeTape.d.ts.map +1 -0
  27. package/dist/TradeTape.js +67 -0
  28. package/dist/TradeTape.js.map +1 -0
  29. package/dist/decisionEngine.d.ts +41 -0
  30. package/dist/decisionEngine.d.ts.map +1 -0
  31. package/dist/decisionEngine.js +166 -0
  32. package/dist/decisionEngine.js.map +1 -0
  33. package/dist/index.d.ts +14 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +18 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/useBinanceOrderBook.d.ts +27 -0
  38. package/dist/useBinanceOrderBook.d.ts.map +1 -0
  39. package/dist/useBinanceOrderBook.js +95 -0
  40. package/dist/useBinanceOrderBook.js.map +1 -0
  41. package/dist/useBinanceTrades.d.ts +23 -0
  42. package/dist/useBinanceTrades.d.ts.map +1 -0
  43. package/dist/useBinanceTrades.js +77 -0
  44. package/dist/useBinanceTrades.js.map +1 -0
  45. package/dist/useBotDecision.d.ts +32 -0
  46. package/dist/useBotDecision.d.ts.map +1 -0
  47. package/dist/useBotDecision.js +104 -0
  48. package/dist/useBotDecision.js.map +1 -0
  49. package/dist/useCoinbaseTicker.d.ts +28 -0
  50. package/dist/useCoinbaseTicker.d.ts.map +1 -0
  51. package/dist/useCoinbaseTicker.js +87 -0
  52. package/dist/useCoinbaseTicker.js.map +1 -0
  53. package/dist/useGasPrice.d.ts +18 -0
  54. package/dist/useGasPrice.d.ts.map +1 -0
  55. package/dist/useGasPrice.js +44 -0
  56. package/dist/useGasPrice.js.map +1 -0
  57. package/dist/useStrategyContractEvents.d.ts +23 -0
  58. package/dist/useStrategyContractEvents.d.ts.map +1 -0
  59. package/dist/useStrategyContractEvents.js +79 -0
  60. package/dist/useStrategyContractEvents.js.map +1 -0
  61. package/dist/useVolatilityRegime.d.ts +17 -0
  62. package/dist/useVolatilityRegime.d.ts.map +1 -0
  63. package/dist/useVolatilityRegime.js +48 -0
  64. package/dist/useVolatilityRegime.js.map +1 -0
  65. package/package.json +4 -2
  66. package/scripts/test-decision-stream.cjs +417 -0
package/README.md CHANGED
@@ -6,80 +6,134 @@ The package ships:
6
6
 
7
7
  - `BandStrategy.sol` — a deposit/withdraw contract owned by the deploying wallet
8
8
  - `BandExecutor.sol` — a restricted executor for the off-chain engine
9
- - React hooks + a single `<BandPanel />` component that walks the user through the full lifecycle
10
- - A dark UI with explicit stage progression
9
+ - `<BandPanel />` the full deploy fund start stop withdraw flow as a single staged React component (default title: **"Get started"**)
10
+ - Live market widgets: `<OrderBookWidget />`, `<TradeTape />`
11
+ - On-chain feed: `<ContractEventFeed />` (watches your deployed strategy contract's events)
12
+ - Context badges: `<RegimeBadge />` (volatility regime), `<GasBadge />` (mainnet gas price)
13
+ - Decision proxy: `<BotDecisionPanel />` — live BUY/SELL/WAIT/STAND-DOWN preview from Binance + Coinbase data (preview only, not the on-chain bot)
14
+ - A dark UI throughout
11
15
 
12
- It does **not** ship trading strategy logic, signal generation, risk management, or the off-chain trade-execution daemon — those are out of scope and must be supplied by the integrator.
16
+ It does **not** ship trading strategy logic, signal generation, risk management, or the off-chain trade-execution daemon — those are out of scope.
13
17
 
14
18
  ## Install
15
19
 
16
20
  ```bash
17
21
  npm install bandkit wagmi viem @tanstack/react-query
18
- # optional, only if you want the RainbowKit connect modal:
22
+ # optional, for the Connect Wallet modal:
19
23
  npm install @rainbow-me/rainbowkit
20
24
  ```
21
25
 
22
26
  ## Lovable prompt (paste verbatim)
23
27
 
24
28
  ```text
25
- Build a dark-themed Ethereum trading bot frontend using the npm package `bandkit`
26
- plus wagmi, viem, and @tanstack/react-query. Use @rainbow-me/rainbowkit for the
27
- Connect Wallet modal. Default network is Ethereum mainnet. Use a placeholder
28
- WalletConnect projectId for now.
29
-
30
- Use the helper `createBandKitConfig` from bandkit to build the wagmi config.
31
-
32
- Wrap the app in (in order, outside to inside):
33
- WagmiProvider → QueryClientProvider → RainbowKitProvider
34
-
35
- Render at the top of the page:
36
- - <ConnectButton /> from @rainbow-me/rainbowkit
37
- - <BandPanel /> from bandkit (this is the whole bot UI)
38
-
39
- <BandPanel /> is the complete flow. It contains four staged sections that the
40
- user progresses through:
41
- 1. Connect Wallet
42
- 2. Deploy Smart Contract (one-time, deploys BandStrategy from user's wallet)
43
- 3. Fund Smart Contract (sends ETH into the deployed strategy contract)
44
- 4. Run Bot (Start / Stop / Withdraw — the off-chain engine trades using
45
- contract funds; if the engine isn't running, the buttons just authorize
46
- it on-chain without doing anything)
47
-
48
- Add a TradingView Advanced Chart widget above the BandPanel showing ETHUSD on
49
- the Coinbase exchange. Use the TradingView widget script with dark theme.
50
-
51
- DO NOT add: extra wallet send buttons, hardcoded engine wallet addresses, custom
52
- trading logic, backtesting UI, profit projections, simulated balances, or any
53
- flow that sends user ETH to an address other than the strategy contract.
54
-
55
- Background should be near-black (#0a0a0a). Use system font stack. The page
56
- should be a single centered column with the TradingView chart on top and the
57
- BandPanel below it. Keep the rest of the layout minimal.
29
+ Build a dark-themed Ethereum trading bot dashboard using the npm package
30
+ `bandkit` (NOT to be confused with Band Protocol — they are unrelated).
31
+ Also install: wagmi, viem, @tanstack/react-query, @rainbow-me/rainbowkit.
32
+
33
+ Default network: Ethereum mainnet. Use a placeholder WalletConnect projectId.
34
+ Build the wagmi config with `createBandKitConfig` from bandkit.
35
+
36
+ Wrap the app (outside to inside):
37
+ WagmiProvider → QueryClientProvider → RainbowKitProvider (with darkTheme())
38
+
39
+ Page layout single centered column on a near-black background (#0a0a0a),
40
+ max-width 1100px, gap 20px, system font stack:
41
+
42
+ ┌─────────────────────────────────────────────────────┐
43
+ │ [ GasBadge ] [ RegimeBadge ] [ConnectButton]│ ← top bar
44
+ ├─────────────────────────────────────────────────────┤
45
+ │ │
46
+ │ TradingView Advanced Chart │ ← ETHUSD on COINBASE,
47
+ (height 420px, dark theme) │ dark theme
48
+ │ │
49
+ ├──────────────────────┬──────────────────────────────┤
50
+ │ │ │
51
+ │ <BandPanel /> │ <BotDecisionPanel /> │ ← two-column split
52
+ │ (the bot UI: it │ │ on >=900px wide,
53
+ │ has its own deploy,├──────────────────────────────┤ stacked below
54
+ │ fund, start, stop, │ <OrderBookWidget /> │
55
+ │ withdraw buttons. │ │
56
+ │ Default title is ├──────────────────────────────┤
57
+ │ "Get started") │ <TradeTape /> │
58
+ │ │ │
59
+ │ ├──────────────────────────────┤
60
+ │ │ <ContractEventFeed │
61
+ │ │ strategyContractAddress=
62
+ │ │ {deployedAddress} /> │
63
+ └──────────────────────┴──────────────────────────────┘
64
+
65
+ Components to import from bandkit:
66
+ - BandPanel (the main staged UI)
67
+ - BotDecisionPanel (live BUY/SELL/WAIT decision preview — top of right column)
68
+ - OrderBookWidget (live Binance ETH/USDT depth)
69
+ - TradeTape (live recent trades)
70
+ - ContractEventFeed (on-chain events from the deployed strategy)
71
+ - RegimeBadge (RANGING / MIXED / TRENDING based on volatility)
72
+ - GasBadge (current mainnet gas price)
73
+
74
+ Wire BandPanel's `onStrategyContractDeployed` callback to lift the deployed
75
+ contract address into page state, and pass it as ContractEventFeed's
76
+ `strategyContractAddress` prop so the feed activates the moment the contract
77
+ is live.
78
+
79
+ DO NOT add: grid ladders, BUY/SELL order lists, "Build Grid" buttons,
80
+ custom contract calls, fake order books, simulated balances, profit
81
+ projections, "Band Protocol" labels, hardcoded contract addresses, or any
82
+ extra send-ETH buttons. BandPanel is the entire user lifecycle — do not
83
+ duplicate any of its actions elsewhere on the page.
58
84
  ```
59
85
 
60
86
  ## Minimal app
61
87
 
62
88
  ```tsx
89
+ import { useState } from "react";
63
90
  import "@rainbow-me/rainbowkit/styles.css";
64
91
  import { ConnectButton, RainbowKitProvider, darkTheme } from "@rainbow-me/rainbowkit";
65
92
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
66
93
  import { WagmiProvider } from "wagmi";
67
- import { BandPanel, createBandKitConfig } from "bandkit";
94
+ import type { Address } from "viem";
95
+ import {
96
+ BandPanel,
97
+ ContractEventFeed,
98
+ GasBadge,
99
+ OrderBookWidget,
100
+ RegimeBadge,
101
+ TradeTape,
102
+ createBandKitConfig
103
+ } from "bandkit";
68
104
 
69
105
  const queryClient = new QueryClient();
70
106
  const config = createBandKitConfig({
71
- appName: "BandKit",
72
- walletConnectProjectId: "REPLACE_ME" // get one at https://cloud.walletconnect.com
107
+ appName: "Get started",
108
+ walletConnectProjectId: "REPLACE_ME"
73
109
  });
74
110
 
75
111
  export function App() {
112
+ const [strategy, setStrategy] = useState<Address>();
113
+
76
114
  return (
77
115
  <WagmiProvider config={config}>
78
116
  <QueryClientProvider client={queryClient}>
79
117
  <RainbowKitProvider theme={darkTheme()}>
80
- <div style={{ display: "grid", gap: 20, padding: 24, placeItems: "center" }}>
81
- <ConnectButton />
82
- <BandPanel />
118
+ <div style={{ background: "#0a0a0a", color: "#f5f5f7", minHeight: "100vh", padding: 24 }}>
119
+ <div style={{ display: "grid", gap: 20, margin: "0 auto", maxWidth: 1100 }}>
120
+ <div style={{ alignItems: "center", display: "flex", gap: 12, justifyContent: "flex-end" }}>
121
+ <GasBadge />
122
+ <RegimeBadge />
123
+ <ConnectButton />
124
+ </div>
125
+
126
+ {/* TradingView ETHUSD chart embed here */}
127
+
128
+ <div style={{ display: "grid", gap: 20, gridTemplateColumns: "minmax(0, 1fr) 360px" }}>
129
+ <BandPanel onStrategyContractDeployed={setStrategy} />
130
+ <div style={{ display: "grid", gap: 20 }}>
131
+ <OrderBookWidget />
132
+ <TradeTape />
133
+ <ContractEventFeed strategyContractAddress={strategy} />
134
+ </div>
135
+ </div>
136
+ </div>
83
137
  </div>
84
138
  </RainbowKitProvider>
85
139
  </QueryClientProvider>
@@ -88,52 +142,147 @@ export function App() {
88
142
  }
89
143
  ```
90
144
 
91
- ## What each stage does
145
+ ## What each stage of `<BandPanel />` does
92
146
 
93
147
  | Stage | UI button | On-chain call | What changes |
94
148
  |---|---|---|---|
95
149
  | 1. Connect Wallet | (from RainbowKit) | none | wagmi session established |
96
- | 2. Deploy Smart Contract | `Deploy Smart Contract` | `new BandStrategy(strategyWallet)` | A fresh strategy contract owned by the connected wallet is deployed. The contract address is saved to `localStorage` under `bandkit:strategy-contract-address`. |
97
- | 3. Fund Smart Contract | `Fund Smart Contract` | `BandStrategy.deposit() payable` | The amount you typed is moved from your wallet into the strategy contract. You can call this multiple times. |
98
- | 4a. Start Bot | `▶ Start Bot` | `BandStrategy.activateStrategyEngine()` | Authorizes the contract's strategy engine to draw on contract funds. Trades do not happen from this call alone see "Out of scope" below. |
99
- | 4b. Stop Bot | `■ Stop Bot` | `BandStrategy.deactivateStrategyEngine()` | Revokes the engine authorization. |
100
- | 4c. Withdraw | `Withdraw All Contract ETH to Wallet` | `BandStrategy.withdrawAll()` | Returns all of the connected wallet's deposited ETH from the contract back to the wallet. |
150
+ | 2. Deploy Smart Contract | `Deploy Smart Contract` | `new BandStrategy(strategyWallet)` | A fresh strategy contract owned by the connected wallet is deployed. Address saved to `localStorage`. |
151
+ | 3. Fund Smart Contract | `Fund Smart Contract` | `BandStrategy.deposit() payable` | ETH moves from your wallet into the strategy contract. Can be called multiple times. |
152
+ | 4a. Start Bot | `▶ Start Bot` | `BandStrategy.activateStrategyEngine()` | **Transfers all of your contract balance to `strategyWallet`** and marks the engine active. Header shows a pulsing ACTIVE badge. |
153
+ | 4b. Stop Bot | `■ Stop Bot` | `BandStrategy.deactivateStrategyEngine()` | Marks the engine inactive. Does *not* move funds back. |
154
+ | 4c. Withdraw | `Withdraw All Contract ETH to Wallet` | `BandStrategy.withdrawAll()` | Returns any ETH still in the contract back to your wallet. Only works for funds you have not yet sent to the engine via Start. |
155
+
156
+ > **Order matters.** Withdraw only returns funds still held by the contract. Once you press **Start**, your contract balance is transferred to `strategyWallet` and can no longer be retrieved by `withdrawAll()`. Decide whether to Start before depositing more than you're willing to commit.
101
157
 
102
- Funds never leave your control:
103
- - The strategy contract is owned by **your wallet** (the one connected when you click Deploy).
104
- - The strategy contract's `strategyWallet` (the destination it can send trade proceeds to) defaults to your own wallet too, unless you pass a different `strategyWalletAddress` prop.
105
- - Nothing in bandkit ever sends ETH to an address baked into the published package.
158
+ ## Components
106
159
 
107
- ## `<BandPanel />` props
160
+ ### `<BandPanel />`
108
161
 
109
162
  ```ts
110
163
  type BandPanelProps = {
111
- strategyContractAddress?: Address; // skip Stage 2 by passing an existing one
164
+ strategyContractAddress?: Address; // skip Stage 2 if already deployed
112
165
  strategyWalletAddress?: Address; // destination for trade outputs (default: connected wallet)
113
166
  chainId?: number; // default: mainnet (1)
114
167
  className?: string;
115
- title?: string; // default: "BandKit Engine"
168
+ title?: string; // default: "Get started"
116
169
  onSubmitted?: (hash: string, action: StrategyContractAction) => void;
117
170
  onStrategyContractDeployed?: (address: Address) => void;
118
171
  };
119
172
  ```
120
173
 
121
- All props are optional. Default behavior: connect wallet → deploy a contract owned by that wallet → fund it → run it.
174
+ ### `<OrderBookWidget />`
175
+
176
+ Live Binance order book (default ETH/USDT, depth 20, throttled 100ms).
177
+
178
+ ```ts
179
+ type OrderBookWidgetProps = {
180
+ className?: string;
181
+ title?: string; // default: "Order Book"
182
+ rows?: number; // default: 10
183
+ symbol?: string; // default: "ethusdt"
184
+ depth?: 5 | 10 | 20; // default: 20
185
+ enabled?: boolean;
186
+ };
187
+ ```
188
+
189
+ ### `<TradeTape />`
190
+
191
+ Scrolling list of recent Binance trades, color-coded by side.
192
+
193
+ ```ts
194
+ type TradeTapeProps = {
195
+ className?: string;
196
+ title?: string; // default: "Recent Trades"
197
+ rows?: number; // default: 20
198
+ symbol?: string; // default: "ethusdt"
199
+ enabled?: boolean;
200
+ };
201
+ ```
202
+
203
+ ### `<ContractEventFeed />`
204
+
205
+ Watches your deployed strategy contract's `Deposited` / `Withdrawn` / `StrategyEngineActivated` / `StrategyEngineDeactivated` events live.
206
+
207
+ ```ts
208
+ type ContractEventFeedProps = {
209
+ strategyContractAddress?: Address; // pass the deployed address; feed is dormant without it
210
+ chainId?: number;
211
+ maxEvents?: number; // default: 25
212
+ enabled?: boolean;
213
+ className?: string;
214
+ title?: string; // default: "Contract Activity"
215
+ };
216
+ ```
217
+
218
+ ### `<RegimeBadge />`
122
219
 
123
- ## Hooks (use directly if you want to build your own UI)
220
+ Computes rolling stddev + drift over the live ETH price stream and classifies as `RANGING` / `MIXED` / `TRENDING` / `WARMING UP`.
221
+
222
+ ```ts
223
+ type RegimeBadgeProps = {
224
+ windowSize?: number; // default: 60 ticks
225
+ rangingThresholdPct?: number; // default: 0.15 (stddev %)
226
+ trendingThresholdPct?: number; // default: 0.45 (|drift| %)
227
+ enabled?: boolean;
228
+ className?: string;
229
+ };
230
+ ```
231
+
232
+ ### `<BotDecisionPanel />`
233
+
234
+ Live decision proxy. Combines Binance order book imbalance + recent trade flow + volatility regime + Coinbase cross-venue divergence into a `BUY` / `SELL` / `WAIT` / `STAND DOWN` decision with a 0–100 confidence score and human-readable reasons. **Preview only — does not execute trades.**
235
+
236
+ ```ts
237
+ type BotDecisionPanelProps = {
238
+ className?: string;
239
+ title?: string; // default: "Bot Decision (live)"
240
+ evaluationIntervalMs?: number; // default: 2000
241
+ flowWindowMs?: number; // default: 60000
242
+ historyLimit?: number; // default: 30
243
+ thresholds?: Partial<DecisionThresholds>; // override imbalance/flow/spread/divergence/depth cutoffs
244
+ enabled?: boolean;
245
+ // plus sub-options: orderBook, trades, coinbase, regime
246
+ };
247
+ ```
248
+
249
+ The pure decision function `computeBotDecision()` is also exported, so you can re-use the same logic in a Node script or backtest without React.
250
+
251
+ ### `<GasBadge />`
252
+
253
+ Current mainnet gas price, color-coded by tier (low/normal/high/spike).
254
+
255
+ ```ts
256
+ type GasBadgeProps = {
257
+ chainId?: number; // default: mainnet (1)
258
+ pollingIntervalMs?: number; // default: 12000
259
+ lowThresholdGwei?: number; // default: 15
260
+ highThresholdGwei?: number; // default: 40
261
+ spikeThresholdGwei?: number; // default: 100
262
+ enabled?: boolean;
263
+ className?: string;
264
+ };
265
+ ```
266
+
267
+ ## Hooks (use directly to build your own UI)
124
268
 
125
269
  | Hook | Returns |
126
270
  |---|---|
127
- | `useBandDashboard` | Aggregated state: deployment, fund balance, engine state, ETH price ticker. Used internally by `<BandPanel />`. |
128
- | `useStrategyContract` | `depositEth`, `withdrawEth`, `withdrawAll`, `activateStrategyEngine`, `deactivateStrategyEngine`, plus reactive balances and tx status. |
129
- | `useStrategyContractDeployment` | `deployStrategyContract()`, deployment-status state machine, persists contract address in localStorage. |
130
- | `useEthPriceTicker` | Live ETH/USDT price + 24h change from Binance WebSocket. |
131
- | `useWalletEthBalance` | Connected wallet's ETH balance (auto-refreshing). |
271
+ | `useBandDashboard` | Aggregated dashboard state (deployment, balance, engine, ETH price). |
272
+ | `useStrategyContract` | `depositEth`, `withdrawEth`, `withdrawAll`, `activateStrategyEngine`, `deactivateStrategyEngine`, plus reactive balances. |
273
+ | `useStrategyContractDeployment` | `deployStrategyContract()`, deployment status, localStorage persistence. |
274
+ | `useEthPriceTicker` | Live ETH/USDT price + 24h change from Binance. |
275
+ | `useBinanceOrderBook` | Live bid/ask depth ladder. |
276
+ | `useBinanceTrades` | Stream of recent trades. |
277
+ | `useStrategyContractEvents` | Live on-chain events from your deployed strategy. |
278
+ | `useVolatilityRegime` | Rolling stddev/drift classification: RANGING / MIXED / TRENDING. |
279
+ | `useGasPrice` | Current gas price + tier classification. |
280
+ | `useWalletEthBalance` | Connected wallet's ETH balance. |
132
281
 
133
282
  ## Contracts
134
283
 
135
- - `contracts/BandStrategy.sol` — deposit/withdraw vault, owner = deployer
136
- - `contracts/BandExecutor.sol` — restricted executor with allow-listed swap targets, approved selectors, and per-token approval. Owner can pause; operator can execute approved trades.
284
+ - `contracts/BandStrategy.sol` — deposit/withdraw vault, owner = deployer.
285
+ - `contracts/BandExecutor.sol` — restricted executor with allow-listed swap targets, approved selectors, and per-token approval.
137
286
 
138
287
  Build & test:
139
288
 
@@ -142,30 +291,26 @@ npm run compile:contracts
142
291
  npm test
143
292
  ```
144
293
 
145
- Deploy to mainnet (requires `MAINNET_RPC_URL` and `DEPLOYER_PRIVATE_KEY` in `.env`):
294
+ Deploy via Hardhat:
146
295
 
147
296
  ```bash
148
297
  npm run deploy:mainnet
149
298
  ```
150
299
 
151
- You do not need this script for the React flow — `<BandPanel />` deploys the strategy contract from the user's browser wallet.
300
+ You usually don't need this script — `<BandPanel />` deploys the strategy contract from the user's browser wallet.
152
301
 
153
302
  ## Out of scope (important)
154
303
 
155
- bandkit gives you **the user-facing scaffolding only**. It does not include:
156
-
157
- - **Strategy logic.** No Bollinger band, no grid, no MACD, no signal generation. You write this.
158
- - **The off-chain engine.** The `Run Bot` / `Stop Bot` buttons toggle an on-chain authorization flag. To actually place trades, a long-running Node process must call `BandExecutor.executeTrade` / `executeBatch` when your strategy says so. A starter searcher lives in `engine/executor-searcher.js`; you run it on a server (Railway, Fly, your own machine) — **not in the browser, not in Lovable.**
159
- - **Profit guarantees, backtesting, simulated results, performance dashboards.**
160
-
161
- Without the off-chain searcher running, clicking `Start Bot` only flips an on-chain boolean — no trades happen. This is intentional: bandkit separates control (browser) from execution (server) so the user can always stop or withdraw regardless of the engine's state.
304
+ - **Strategy logic.** No Bollinger, grid, MACD, signal generation. You write this.
305
+ - **The off-chain engine.** The `Start Bot` button transfers ETH to `strategyWallet` and flips an on-chain flag. Actual trades require a Node process (`engine/executor-searcher.js`) running on a server you control, calling `BandExecutor.executeTrade`. Without it, no trades happen.
306
+ - **Profit guarantees, backtesting, simulated results.**
162
307
 
163
308
  ## Security notes
164
309
 
165
310
  - The connected wallet owns the strategy contract; only the owner can withdraw funds.
166
- - The engine's authorization to trade is granted by the owner via `activateStrategyEngine` and revoked via `deactivateStrategyEngine`.
167
- - `withdrawAll()` always returns the caller's full deposit, regardless of engine state. If you're testing for the first time, fund a small amount and try `Withdraw All Contract ETH to Wallet` immediately to verify withdrawal works on your network.
168
- - The package contains no hardcoded wallet addresses. Every destination is derived from the connected wallet or props you pass.
311
+ - The Start Bot button **moves funds** it does not merely authorize. After Start, `withdrawAll()` returns nothing (your contract balance is 0); recovery has to come from the strategyWallet operator off-chain.
312
+ - `<BandPanel />` defaults `strategyWallet` to the connected wallet, so by default funds stay with the deployer.
313
+ - The package contains no hardcoded wallet addresses.
169
314
 
170
315
  ## License
171
316
 
@@ -1 +1 @@
1
- {"version":3,"file":"BandPanel.d.ts","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrE,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAgFF,wBAAgB,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAoB,EACpB,SAAS,EACT,KAAwB,EACxB,WAAW,EACX,0BAA0B,EAC3B,EAAE,cAAc,2CAsThB"}
1
+ {"version":3,"file":"BandPanel.d.ts","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrE,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAgFF,wBAAgB,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAoB,EACpB,SAAS,EACT,KAAqB,EACrB,WAAW,EACX,0BAA0B,EAC3B,EAAE,cAAc,2CA0ThB"}
package/dist/BandPanel.js CHANGED
@@ -69,7 +69,7 @@ function shortAddress(addr) {
69
69
  return "—";
70
70
  return `${addr.slice(0, 6)}…${addr.slice(-4)}`;
71
71
  }
72
- export function BandPanel({ strategyContractAddress, strategyWalletAddress, chainId = mainnet.id, className, title = "BandKit Engine", onSubmitted, onStrategyContractDeployed }) {
72
+ export function BandPanel({ strategyContractAddress, strategyWalletAddress, chainId = mainnet.id, className, title = "Get started", onSubmitted, onStrategyContractDeployed }) {
73
73
  const [fundAmountEth, setFundAmountEth] = useState("0.0001");
74
74
  const [localError, setLocalError] = useState();
75
75
  const dashboard = useBandDashboard({ strategyContractAddress, chainId, deployment: { strategyWalletAddress } });
@@ -172,7 +172,7 @@ export function BandPanel({ strategyContractAddress, strategyWalletAddress, chai
172
172
  gap: 18,
173
173
  maxWidth: 560,
174
174
  padding: 22
175
- }, children: [_jsxs("header", { style: { display: "grid", gap: 4 }, children: [_jsxs("div", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h2", { style: { fontSize: 20, fontWeight: 700, lineHeight: 1.2, margin: 0 }, children: title }), _jsx(PriceBadge, { price: price.priceText, change: price.changePercent24hText })] }), _jsx("div", { style: { color: palette.textMuted, fontSize: 13 }, children: headerStatus })] }), _jsx(StageRail, { stages: [stage1, stage2, stage3, stage4], labels: ["Wallet", "Deploy", "Fund", "Run"] }), _jsx(StatGrid, { items: [
175
+ }, children: [_jsx("style", { children: `@keyframes bandkitPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.45; transform: scale(1.35); } }` }), _jsxs("header", { style: { display: "grid", gap: 4 }, children: [_jsxs("div", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsxs("div", { style: { alignItems: "center", display: "flex", gap: 10 }, children: [_jsx("h2", { style: { fontSize: 20, fontWeight: 700, lineHeight: 1.2, margin: 0 }, children: title }), isEngineActive ? _jsx(EnginePulse, {}) : null] }), _jsx(PriceBadge, { price: price.priceText, change: price.changePercent24hText })] }), _jsx("div", { style: { color: palette.textMuted, fontSize: 13 }, children: headerStatus })] }), _jsx(StageRail, { stages: [stage1, stage2, stage3, stage4], labels: ["Wallet", "Deploy", "Fund", "Run"] }), _jsx(StatGrid, { items: [
176
176
  { label: "Wallet ETH", value: `${Number(wallet.balanceEth).toFixed(6)} ETH` },
177
177
  { label: "Contract ETH", value: `${Number(strategyContract.balanceEth).toFixed(6)} ETH` },
178
178
  { label: "Allocated", value: `${Number(engine.allocatedEth).toFixed(6)} ETH` },
@@ -257,6 +257,27 @@ function Stage({ index, state, title, description, children }) {
257
257
  width: 24
258
258
  }, children: state === "done" ? "✓" : index }), _jsxs("div", { style: { display: "grid", gap: 2 }, children: [_jsx("strong", { style: { fontSize: 15, fontWeight: 700 }, children: title }), _jsx("span", { style: { color: palette.textMuted, fontSize: 12 }, children: description })] })] }), children ? _jsx("div", { style: { display: "grid", gap: 10 }, children: children }) : null] }));
259
259
  }
260
+ function EnginePulse() {
261
+ return (_jsxs("span", { style: {
262
+ alignItems: "center",
263
+ background: "rgba(16, 185, 129, 0.12)",
264
+ border: `1px solid ${palette.success}66`,
265
+ borderRadius: 999,
266
+ color: palette.success,
267
+ display: "inline-flex",
268
+ fontSize: 10,
269
+ fontWeight: 700,
270
+ gap: 6,
271
+ letterSpacing: "0.08em",
272
+ padding: "3px 10px"
273
+ }, children: [_jsx("span", { "aria-hidden": true, style: {
274
+ animation: "bandkitPulse 1.4s ease-in-out infinite",
275
+ background: palette.success,
276
+ borderRadius: 999,
277
+ height: 6,
278
+ width: 6
279
+ } }), "ACTIVE"] }));
280
+ }
260
281
  function PriceBadge({ price, change }) {
261
282
  return (_jsxs("div", { style: {
262
283
  alignItems: "center",
@@ -1 +1 @@
1
- {"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type UseBotDecisionOptions } from "./useBotDecision.js";
2
+ export type BotDecisionPanelProps = UseBotDecisionOptions & {
3
+ className?: string;
4
+ title?: string;
5
+ };
6
+ export declare function BotDecisionPanel({ className, title, ...hookOptions }: BotDecisionPanelProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=BotDecisionPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BotDecisionPanel.d.ts","sourceRoot":"","sources":["../src/BotDecisionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAsCF,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAA6B,EAAE,GAAG,WAAW,EAAE,EAAE,qBAAqB,2CA2HnH"}