bandkit 0.1.1 → 1.0.1

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 CHANGED
@@ -1,44 +1,86 @@
1
- # bandkit
1
+ # bandkit
2
2
 
3
- Open-source scaffolding for building Ethereum range-bound trading strategies.
3
+ React scaffolding for an Ethereum trading bot that lives behind a user-owned strategy contract. Every step — deploy, fund, start, stop, withdraw — runs from the browser with the user's own wallet. **No bot wallet, no custody, no hidden destinations.**
4
+
5
+ The package ships:
6
+
7
+ - `BandStrategy.sol` — a deposit/withdraw contract owned by the deploying wallet
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
11
+
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.
4
13
 
5
14
  ## Install
6
15
 
7
16
  ```bash
8
- npm install bandkit wagmi viem @rainbow-me/rainbowkit @tanstack/react-query
17
+ npm install bandkit wagmi viem @tanstack/react-query
18
+ # optional, only if you want the RainbowKit connect modal:
19
+ npm install @rainbow-me/rainbowkit
9
20
  ```
10
21
 
11
- ## Lovable Prompt
12
-
13
- Paste this into Lovable when wiring the package into an existing RainbowKit/wagmi app:
22
+ ## Lovable prompt (paste verbatim)
14
23
 
15
24
  ```text
16
- Install bandkit with wagmi, viem, @rainbow-me/rainbowkit, and @tanstack/react-query.
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.
17
50
 
18
- Use the existing RainbowKit and wagmi providers if they already exist. Import createBandKitConfig and BandPanel from bandkit. If the app does not already have providers, create a wagmi config with createBandKitConfig({ appName: "BandKit" }), wrap the app in WagmiProvider, QueryClientProvider, and RainbowKitProvider, and render RainbowKit's ConnectButton above the panel.
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.
19
54
 
20
- Render <BandPanel /> for the working wallet flow: connect wallet, deploy strategy contract, fund contract, activate engine, pause engine, and withdraw available ETH. Do not add strategy logic, indicators, charts, autonomous execution, or return claims. bandkit is execution scaffolding only; the integrator supplies the trading logic.
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.
21
58
  ```
22
59
 
23
- ## Minimal React Usage
60
+ ## Minimal app
24
61
 
25
62
  ```tsx
26
63
  import "@rainbow-me/rainbowkit/styles.css";
27
- import { ConnectButton, RainbowKitProvider } from "@rainbow-me/rainbowkit";
64
+ import { ConnectButton, RainbowKitProvider, darkTheme } from "@rainbow-me/rainbowkit";
28
65
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
29
66
  import { WagmiProvider } from "wagmi";
30
67
  import { BandPanel, createBandKitConfig } from "bandkit";
31
68
 
32
69
  const queryClient = new QueryClient();
33
- const config = createBandKitConfig({ appName: "BandKit" });
70
+ const config = createBandKitConfig({
71
+ appName: "BandKit",
72
+ walletConnectProjectId: "REPLACE_ME" // get one at https://cloud.walletconnect.com
73
+ });
34
74
 
35
75
  export function App() {
36
76
  return (
37
77
  <WagmiProvider config={config}>
38
78
  <QueryClientProvider client={queryClient}>
39
- <RainbowKitProvider>
40
- <ConnectButton />
41
- <BandPanel />
79
+ <RainbowKitProvider theme={darkTheme()}>
80
+ <div style={{ display: "grid", gap: 20, padding: 24, placeItems: "center" }}>
81
+ <ConnectButton />
82
+ <BandPanel />
83
+ </div>
42
84
  </RainbowKitProvider>
43
85
  </QueryClientProvider>
44
86
  </WagmiProvider>
@@ -46,6 +88,85 @@ export function App() {
46
88
  }
47
89
  ```
48
90
 
49
- ## Scope
91
+ ## What each stage does
92
+
93
+ | Stage | UI button | On-chain call | What changes |
94
+ |---|---|---|---|
95
+ | 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. |
101
+
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.
106
+
107
+ ## `<BandPanel />` props
108
+
109
+ ```ts
110
+ type BandPanelProps = {
111
+ strategyContractAddress?: Address; // skip Stage 2 by passing an existing one
112
+ strategyWalletAddress?: Address; // destination for trade outputs (default: connected wallet)
113
+ chainId?: number; // default: mainnet (1)
114
+ className?: string;
115
+ title?: string; // default: "BandKit Engine"
116
+ onSubmitted?: (hash: string, action: StrategyContractAction) => void;
117
+ onStrategyContractDeployed?: (address: Address) => void;
118
+ };
119
+ ```
120
+
121
+ All props are optional. Default behavior: connect wallet → deploy a contract owned by that wallet → fund it → run it.
122
+
123
+ ## Hooks (use directly if you want to build your own UI)
124
+
125
+ | Hook | Returns |
126
+ |---|---|
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). |
132
+
133
+ ## Contracts
134
+
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.
137
+
138
+ Build & test:
139
+
140
+ ```bash
141
+ npm run compile:contracts
142
+ npm test
143
+ ```
144
+
145
+ Deploy to mainnet (requires `MAINNET_RPC_URL` and `DEPLOYER_PRIVATE_KEY` in `.env`):
146
+
147
+ ```bash
148
+ npm run deploy:mainnet
149
+ ```
150
+
151
+ You do not need this script for the React flow — `<BandPanel />` deploys the strategy contract from the user's browser wallet.
152
+
153
+ ## Out of scope (important)
154
+
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.
162
+
163
+ ## Security notes
164
+
165
+ - 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.
169
+
170
+ ## License
50
171
 
51
- bandkit provides strategy contract deployment, contract funding, engine activation state, a restricted executor, and React hooks/components for the dashboard flow. It does not include trading strategy logic, signal generation, risk management, backtesting, or profit guarantees.
172
+ MIT.
@@ -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;AAiCF,wBAAgB,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAoB,EACpB,SAAS,EACT,KAAwB,EACxB,WAAW,EACX,0BAA0B,EAC3B,EAAE,cAAc,2CAsPhB"}
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"}
package/dist/BandPanel.js CHANGED
@@ -1,91 +1,142 @@
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 { useEffect, useMemo, useState } from "react";
3
3
  import { mainnet } from "wagmi/chains";
4
4
  import { useBandDashboard } from "./useBandDashboard.js";
5
+ const palette = {
6
+ bg: "#0a0a0a",
7
+ surface: "#111113",
8
+ surfaceMuted: "#0f0f11",
9
+ border: "#1f1f23",
10
+ borderActive: "#2a2a30",
11
+ borderDone: "#143521",
12
+ text: "#f5f5f7",
13
+ textMuted: "#9ca3af",
14
+ textDim: "#52525b",
15
+ accent: "#3b82f6",
16
+ accentMuted: "#1e3a8a",
17
+ success: "#10b981",
18
+ successMuted: "#064e3b",
19
+ danger: "#ef4444",
20
+ dangerMuted: "#7f1d1d"
21
+ };
22
+ const baseButton = {
23
+ borderRadius: 8,
24
+ cursor: "pointer",
25
+ font: "inherit",
26
+ fontSize: 14,
27
+ fontWeight: 600,
28
+ letterSpacing: "0.01em",
29
+ minHeight: 44,
30
+ padding: "0 16px",
31
+ transition: "opacity 120ms ease"
32
+ };
33
+ const primaryButton = {
34
+ ...baseButton,
35
+ background: palette.accent,
36
+ border: `1px solid ${palette.accent}`,
37
+ color: "#ffffff"
38
+ };
39
+ const successButton = {
40
+ ...baseButton,
41
+ background: palette.success,
42
+ border: `1px solid ${palette.success}`,
43
+ color: "#0a0a0a"
44
+ };
45
+ const dangerButton = {
46
+ ...baseButton,
47
+ background: "transparent",
48
+ border: `1px solid ${palette.dangerMuted}`,
49
+ color: palette.danger
50
+ };
51
+ const ghostButton = {
52
+ ...baseButton,
53
+ background: "transparent",
54
+ border: `1px solid ${palette.border}`,
55
+ color: palette.textMuted
56
+ };
57
+ const quickAmounts = ["0.0001", "0.0005", "0.001", "0.005"];
5
58
  const usdFormatter = new Intl.NumberFormat("en-US", {
6
59
  currency: "USD",
7
60
  maximumFractionDigits: 2,
8
61
  minimumFractionDigits: 2,
9
62
  style: "currency"
10
63
  });
11
- const buttonStyle = {
12
- border: "1px solid #3b82f6",
13
- borderRadius: 6,
14
- background: "#2563eb",
15
- color: "#ffffff",
16
- cursor: "pointer",
17
- fontWeight: 700,
18
- minHeight: 42,
19
- padding: "0 14px"
20
- };
21
- const secondaryButtonStyle = {
22
- ...buttonStyle,
23
- background: "#111827",
24
- border: "1px solid #334155",
25
- color: "#e5e7eb"
26
- };
27
- const quickAmounts = ["0.0001", "0.0005", "0.001", "0.002"];
28
64
  function formatUsd(value) {
29
65
  return value === null || !Number.isFinite(value) ? "--" : usdFormatter.format(value);
30
66
  }
67
+ function shortAddress(addr) {
68
+ if (!addr)
69
+ return "—";
70
+ return `${addr.slice(0, 6)}…${addr.slice(-4)}`;
71
+ }
31
72
  export function BandPanel({ strategyContractAddress, strategyWalletAddress, chainId = mainnet.id, className, title = "BandKit Engine", onSubmitted, onStrategyContractDeployed }) {
32
73
  const [fundAmountEth, setFundAmountEth] = useState("0.0001");
33
74
  const [localError, setLocalError] = useState();
34
75
  const dashboard = useBandDashboard({ strategyContractAddress, chainId, deployment: { strategyWalletAddress } });
35
76
  const { engine, deployment, price, strategyContract, wallet } = dashboard;
36
77
  const effectiveStrategyContractAddress = strategyContractAddress ?? deployment.strategyContractAddress;
37
- const isBusy = strategyContract.isWritePending || strategyContract.isConfirming || deployment.isDeployPending || deployment.isDeploying;
78
+ const isBusy = strategyContract.isWritePending ||
79
+ strategyContract.isConfirming ||
80
+ deployment.isDeployPending ||
81
+ deployment.isDeploying;
38
82
  const requestedFundAmountEth = Number(fundAmountEth);
39
83
  const walletBalanceEth = Number(wallet.balanceEth);
40
84
  const hasValidFundAmount = Number.isFinite(requestedFundAmountEth) && requestedFundAmountEth > 0;
41
85
  const hasEnoughWalletEth = hasValidFundAmount && Number.isFinite(walletBalanceEth) && requestedFundAmountEth < walletBalanceEth;
42
- const status = useMemo(() => {
43
- if (!effectiveStrategyContractAddress) {
44
- if (deployment.deployStatus === "cancelled" || deployment.deployStatus === "failed" || deployment.deployStatus === "timeout") {
86
+ const isContractLive = Boolean(effectiveStrategyContractAddress);
87
+ const isContractFunded = strategyContract.balanceWei > 0n;
88
+ const isEngineActive = engine.isActive;
89
+ // ---- Stage state machine ------------------------------------------------
90
+ const stage1 = strategyContract.isConnected ? "done" : "active";
91
+ const stage2 = !strategyContract.isConnected
92
+ ? "locked"
93
+ : isContractLive
94
+ ? "done"
95
+ : "active";
96
+ const stage3 = !isContractLive ? "locked" : isContractFunded ? "done" : "active";
97
+ const stage4 = !isContractLive ? "locked" : !isContractFunded ? "locked" : "active";
98
+ const canDeploy = !isContractLive && deployment.isConnected && !isBusy;
99
+ const canFund = isContractLive &&
100
+ strategyContract.isConnected &&
101
+ strategyContract.isCorrectChain &&
102
+ !isBusy &&
103
+ !strategyContract.depositsPaused &&
104
+ hasValidFundAmount &&
105
+ hasEnoughWalletEth;
106
+ const canStart = stage4 === "active" &&
107
+ !isEngineActive &&
108
+ !isBusy &&
109
+ strategyContract.isCorrectChain;
110
+ const canStop = isEngineActive && !isBusy && strategyContract.isCorrectChain;
111
+ const canWithdraw = isContractLive && isContractFunded && !isBusy && strategyContract.isCorrectChain;
112
+ const headerStatus = useMemo(() => {
113
+ if (isBusy) {
114
+ if (deployment.isDeploying)
45
115
  return deployment.deployStatusText;
46
- }
47
- return deployment.isDeploying ? deployment.deployStatusText : "Deploy strategy contract";
48
- }
49
- if (deployment.contractStatus === "checking" || deployment.contractStatus === "missing" || deployment.contractStatus === "unknown") {
50
- return deployment.contractStatusText;
116
+ return strategyContract.transactionStatusText;
51
117
  }
52
118
  if (!strategyContract.isConnected)
53
- return "Connect wallet";
119
+ return "Connect a wallet to begin";
54
120
  if (!strategyContract.isCorrectChain)
55
121
  return "Switch to Ethereum mainnet";
56
- if (strategyContract.transactionStatus === "cancelled" || strategyContract.transactionStatus === "failed" || strategyContract.transactionStatus === "confirmed") {
57
- return strategyContract.transactionStatusText;
58
- }
59
- if (isBusy)
60
- return strategyContract.isWritePending ? "Confirm in wallet" : "Waiting for confirmation";
61
- if (hasValidFundAmount && !hasEnoughWalletEth)
62
- return "Amount exceeds wallet ETH balance";
63
- if (engine.isActive)
64
- return "Engine active";
65
- if (engine.isFunded)
66
- return "Funded, ready to activate";
67
- return "Ready to fund";
122
+ if (stage2 === "active")
123
+ return "Ready to deploy strategy contract";
124
+ if (stage3 === "active")
125
+ return "Ready to fund strategy contract";
126
+ if (isEngineActive)
127
+ return "Engine active — bot is trading";
128
+ return "Engine paused";
68
129
  }, [
69
- engine.isFunded,
70
- engine.isActive,
71
- deployment.contractStatus,
72
- deployment.contractStatusText,
73
- deployment.deployStatus,
74
130
  deployment.deployStatusText,
75
- hasEnoughWalletEth,
76
- hasValidFundAmount,
77
131
  deployment.isDeploying,
78
- effectiveStrategyContractAddress,
79
132
  isBusy,
80
- strategyContract.transactionStatus,
81
- strategyContract.transactionStatusText,
133
+ isEngineActive,
134
+ stage2,
135
+ stage3,
82
136
  strategyContract.isConnected,
83
137
  strategyContract.isCorrectChain,
84
- strategyContract.isWritePending
138
+ strategyContract.transactionStatusText
85
139
  ]);
86
- const canDeploy = !effectiveStrategyContractAddress && deployment.isConnected && !isBusy;
87
- const canUseStrategyContract = Boolean(effectiveStrategyContractAddress) && strategyContract.isConnected && strategyContract.isCorrectChain && !isBusy;
88
- const canFund = canUseStrategyContract && !strategyContract.depositsPaused && hasValidFundAmount && hasEnoughWalletEth;
89
140
  async function runAction(action, task) {
90
141
  setLocalError(undefined);
91
142
  try {
@@ -111,32 +162,133 @@ export function BandPanel({ strategyContractAddress, strategyWalletAddress, chai
111
162
  }
112
163
  }, [deployment.strategyContractAddress, onStrategyContractDeployed, strategyContractAddress]);
113
164
  return (_jsxs("section", { className: className, style: {
114
- background: "#020617",
115
- border: "1px solid #1e293b",
116
- borderRadius: 8,
117
- boxShadow: "0 18px 60px rgba(2, 6, 23, 0.35)",
118
- color: "#e5e7eb",
165
+ background: palette.bg,
166
+ border: `1px solid ${palette.border}`,
167
+ borderRadius: 14,
168
+ boxShadow: "0 20px 60px rgba(0, 0, 0, 0.55)",
169
+ color: palette.text,
170
+ display: "grid",
171
+ fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
172
+ gap: 18,
173
+ maxWidth: 560,
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: [
176
+ { label: "Wallet ETH", value: `${Number(wallet.balanceEth).toFixed(6)} ETH` },
177
+ { label: "Contract ETH", value: `${Number(strategyContract.balanceEth).toFixed(6)} ETH` },
178
+ { label: "Allocated", value: `${Number(engine.allocatedEth).toFixed(6)} ETH` },
179
+ { label: "Allocated value", value: formatUsd(engine.allocatedUsd) }
180
+ ] }), _jsx(Stage, { index: 1, state: stage1, title: "Connect Wallet", description: stage1 === "done"
181
+ ? `Connected ${shortAddress(strategyContract.accountAddress)}`
182
+ : "Connect a wallet using the button above to begin." }), _jsxs(Stage, { index: 2, state: stage2, title: "Deploy Smart Contract", description: stage2 === "done"
183
+ ? `Live at ${shortAddress(effectiveStrategyContractAddress)}`
184
+ : "Deploys BandStrategy.sol from your connected wallet. One-time setup.", children: [stage2 === "active" ? (_jsx("button", { disabled: !canDeploy, onClick: () => void deployStrategyContract(), style: { ...primaryButton, opacity: canDeploy ? 1 : 0.5, width: "100%" }, type: "button", children: "Deploy Smart Contract" })) : null, stage2 === "done" && effectiveStrategyContractAddress ? (_jsx(EtherscanLink, { kind: "address", hash: effectiveStrategyContractAddress, label: "View contract on Etherscan" })) : null, deployment.deployHash && stage2 === "active" ? (_jsx(EtherscanLink, { kind: "tx", hash: deployment.deployHash, label: "View deployment transaction" })) : null] }), _jsx(Stage, { index: 3, state: stage3, title: "Fund Smart Contract", description: stage3 === "done"
185
+ ? `Contract holds ${Number(strategyContract.balanceEth).toFixed(6)} ETH`
186
+ : "Send ETH from your wallet into the strategy contract. The bot trades using these funds.", children: stage3 !== "locked" ? (_jsxs(_Fragment, { children: [_jsxs("label", { style: { display: "grid", fontSize: 13, fontWeight: 600, gap: 6 }, children: ["Amount ETH", _jsx("input", { inputMode: "decimal", min: "0", onChange: (event) => setFundAmountEth(event.target.value), placeholder: "0.0001", step: "any", style: {
187
+ background: palette.surfaceMuted,
188
+ border: `1px solid ${palette.border}`,
189
+ borderRadius: 8,
190
+ color: palette.text,
191
+ font: "inherit",
192
+ fontSize: 14,
193
+ minHeight: 44,
194
+ padding: "0 14px"
195
+ }, type: "number", value: fundAmountEth })] }), _jsx("div", { style: { display: "grid", gap: 6, gridTemplateColumns: "repeat(4, minmax(0, 1fr))" }, children: quickAmounts.map((amount) => (_jsx("button", { onClick: () => setFundAmountEth(amount), style: {
196
+ ...ghostButton,
197
+ fontSize: 12,
198
+ minHeight: 34,
199
+ opacity: fundAmountEth === amount ? 1 : 0.7,
200
+ padding: "0 6px"
201
+ }, type: "button", children: amount }, amount))) }), _jsx("button", { disabled: !canFund, onClick: () => void runAction("deposit", () => strategyContract.depositEth(fundAmountEth)), style: { ...primaryButton, opacity: canFund ? 1 : 0.5, width: "100%" }, type: "button", children: stage3 === "done" ? "Add More Funds" : "Fund Smart Contract" }), hasValidFundAmount && !hasEnoughWalletEth ? (_jsx(Hint, { tone: "warn", children: "Amount must be less than your wallet ETH balance so gas can also be paid." })) : null] })) : null }), _jsx(Stage, { index: 4, state: stage4, title: "Run Bot", description: stage4 === "locked"
202
+ ? "Fund the contract first to enable the engine."
203
+ : isEngineActive
204
+ ? "Engine is ACTIVE — the off-chain searcher can now execute trades against contract funds."
205
+ : "Engine is PAUSED. Press Start to authorize trading against contract funds.", children: stage4 !== "locked" ? (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: "grid", gap: 8, gridTemplateColumns: "1fr 1fr" }, children: [_jsx("button", { disabled: !canStart, onClick: () => void runAction("activateStrategyEngine", strategyContract.activateStrategyEngine), style: { ...successButton, opacity: canStart ? 1 : 0.5 }, type: "button", children: "\u25B6 Start Bot" }), _jsx("button", { disabled: !canStop, onClick: () => void runAction("deactivateStrategyEngine", strategyContract.deactivateStrategyEngine), style: { ...dangerButton, opacity: canStop ? 1 : 0.5 }, type: "button", children: "\u25A0 Stop Bot" })] }), _jsx("button", { disabled: !canWithdraw, onClick: () => void runAction("withdrawAll", strategyContract.withdrawAll), style: { ...ghostButton, opacity: canWithdraw ? 1 : 0.5, width: "100%" }, type: "button", children: "Withdraw All Contract ETH to Wallet" })] })) : null }), strategyContract.pendingHash ? (_jsx(EtherscanLink, { kind: "tx", hash: strategyContract.pendingHash, label: "View latest transaction" })) : null, localError || deployment.error || strategyContract.error || price.error || wallet.error ? (_jsx(Hint, { tone: "error", children: localError ??
206
+ deployment.error?.message ??
207
+ strategyContract.error?.message ??
208
+ price.error ??
209
+ wallet.error?.message })) : null, _jsx("footer", { style: { borderTop: `1px solid ${palette.border}`, color: palette.textDim, fontSize: 12, paddingTop: 14 }, children: "BandKit deploys and funds a strategy contract from your browser. The actual trading engine runs as a separate Node process (engine/executor-searcher.js) on a server you control. This UI controls deploy, fund, start, stop, and withdraw \u2014 not trade execution itself." })] }));
210
+ }
211
+ // ---- Sub-components ------------------------------------------------------
212
+ function StageRail({ stages, labels }) {
213
+ return (_jsx("div", { style: { display: "grid", gap: 6, gridTemplateColumns: `repeat(${stages.length}, 1fr)` }, children: stages.map((state, i) => {
214
+ const color = state === "done" ? palette.success : state === "active" ? palette.accent : palette.border;
215
+ return (_jsxs("div", { style: { display: "grid", gap: 6 }, children: [_jsx("div", { style: { background: color, borderRadius: 999, height: 3 } }), _jsxs("div", { style: {
216
+ color: state === "locked" ? palette.textDim : palette.textMuted,
217
+ fontSize: 11,
218
+ fontWeight: 600,
219
+ letterSpacing: "0.06em",
220
+ textTransform: "uppercase"
221
+ }, children: [i + 1, ". ", labels[i]] })] }, i));
222
+ }) }));
223
+ }
224
+ function StatGrid({ items }) {
225
+ return (_jsx("div", { style: {
226
+ background: palette.surface,
227
+ border: `1px solid ${palette.border}`,
228
+ borderRadius: 10,
229
+ display: "grid",
230
+ gap: 1,
231
+ gridTemplateColumns: "1fr 1fr",
232
+ overflow: "hidden"
233
+ }, children: items.map((item) => (_jsxs("div", { style: { background: palette.surface, display: "grid", gap: 2, padding: "10px 14px" }, children: [_jsx("span", { style: { color: palette.textDim, fontSize: 11, letterSpacing: "0.04em", textTransform: "uppercase" }, children: item.label }), _jsx("strong", { style: { fontSize: 14, fontWeight: 600 }, children: item.value })] }, item.label))) }));
234
+ }
235
+ function Stage({ index, state, title, description, children }) {
236
+ const borderColor = state === "done" ? palette.borderDone : state === "active" ? palette.borderActive : palette.border;
237
+ const badgeColor = state === "done" ? palette.success : state === "active" ? palette.accent : palette.textDim;
238
+ return (_jsxs("article", { style: {
239
+ background: palette.surface,
240
+ border: `1px solid ${borderColor}`,
241
+ borderRadius: 10,
119
242
  display: "grid",
120
- gap: 16,
121
- maxWidth: 520,
122
- padding: 18
123
- }, children: [_jsxs("header", { style: { display: "grid", gap: 6 }, children: [_jsx("h2", { style: { fontSize: 18, lineHeight: 1.2, margin: 0 }, children: title }), _jsxs("div", { style: { color: "#94a3b8", fontSize: 14 }, children: ["Status: ", status] })] }), _jsxs("div", { style: { display: "grid", gap: 8 }, children: [_jsx(Row, { label: "Strategy contract", value: effectiveStrategyContractAddress ? `${effectiveStrategyContractAddress.slice(0, 6)}...${effectiveStrategyContractAddress.slice(-4)}` : "Not deployed" }), _jsx(Row, { label: "Strategy destination", value: strategyContract.strategyWallet ? `${strategyContract.strategyWallet.slice(0, 6)}...${strategyContract.strategyWallet.slice(-4)}` : "Not loaded" }), _jsx(Row, { label: "ETH / USDT", value: price.priceText }), _jsx(Row, { label: "24h change", value: price.changePercent24hText }), _jsx(Row, { label: "Market status", value: price.status }), _jsx(Row, { label: "Wallet ETH", value: `${Number(wallet.balanceEth).toFixed(6)} ETH` }), _jsx(Row, { label: "Contract ETH", value: `${Number(strategyContract.balanceEth).toFixed(6)} ETH` }), _jsx(Row, { label: "Allocated total", value: `${Number(engine.allocatedEth).toFixed(6)} ETH` }), _jsx(Row, { label: "Allocated value", value: formatUsd(engine.allocatedUsd) })] }), !effectiveStrategyContractAddress ? (_jsx("button", { disabled: !canDeploy, onClick: () => void deployStrategyContract(), style: { ...buttonStyle, opacity: canDeploy ? 1 : 0.5 }, type: "button", children: "Deploy Strategy Contract" })) : null, deployment.deployHash && !effectiveStrategyContractAddress ? (_jsx("a", { href: `https://etherscan.io/tx/${deployment.deployHash}`, rel: "noreferrer", style: { color: "#60a5fa", fontSize: 14, overflowWrap: "anywhere" }, target: "_blank", children: "View deployment transaction" })) : null, _jsxs("div", { style: { borderTop: "1px solid #1e293b", display: "grid", gap: 10, paddingTop: 14 }, children: [_jsx("h3", { style: { fontSize: 15, lineHeight: 1.2, margin: 0 }, children: "Fund Contract" }), _jsxs("label", { style: { display: "grid", gap: 6, fontSize: 14, fontWeight: 700 }, children: ["Amount ETH", _jsx("input", { inputMode: "decimal", min: "0", onChange: (event) => setFundAmountEth(event.target.value), placeholder: "0.0001", step: "any", style: {
124
- background: "#0f172a",
125
- border: "1px solid #334155",
126
- borderRadius: 6,
127
- color: "#e5e7eb",
128
- font: "inherit",
129
- minHeight: 42,
130
- padding: "0 12px"
131
- }, type: "number", value: fundAmountEth })] }), _jsx("div", { style: { display: "grid", gap: 6, gridTemplateColumns: "repeat(4, minmax(0, 1fr))" }, children: quickAmounts.map((amount) => (_jsx("button", { onClick: () => setFundAmountEth(amount), style: {
132
- ...secondaryButtonStyle,
133
- fontSize: 12,
134
- minHeight: 34,
135
- opacity: fundAmountEth === amount ? 1 : 0.75,
136
- padding: "0 8px"
137
- }, type: "button", children: amount }, amount))) }), _jsx("button", { disabled: !canFund, onClick: () => void runAction("deposit", () => strategyContract.depositEth(fundAmountEth)), style: { ...buttonStyle, opacity: canFund ? 1 : 0.5 }, type: "button", children: "Fund Contract" }), hasValidFundAmount && !hasEnoughWalletEth ? (_jsx("div", { style: { color: "#fca5a5", fontSize: 13 }, children: "Amount must be lower than wallet ETH balance so gas can also be paid." })) : null] }), _jsxs("div", { style: { borderTop: "1px solid #1e293b", display: "grid", gap: 10, paddingTop: 14 }, children: [_jsx("h3", { style: { fontSize: 15, lineHeight: 1.2, margin: 0 }, children: "Strategy Engine" }), _jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: 8 }, children: [_jsx("button", { disabled: !canUseStrategyContract || engine.isActive || strategyContract.balanceWei === 0n, onClick: () => void runAction("activateStrategyEngine", strategyContract.activateStrategyEngine), style: { ...buttonStyle, opacity: canUseStrategyContract && !engine.isActive && strategyContract.balanceWei > 0n ? 1 : 0.5 }, type: "button", children: "Activate Engine" }), _jsx("button", { disabled: !canUseStrategyContract || !engine.isActive, onClick: () => void runAction("deactivateStrategyEngine", strategyContract.deactivateStrategyEngine), style: { ...buttonStyle, opacity: canUseStrategyContract && engine.isActive ? 1 : 0.5 }, type: "button", children: "Pause Engine" })] }), _jsx("button", { disabled: !canUseStrategyContract || strategyContract.balanceWei === 0n, onClick: () => void runAction("withdrawAll", strategyContract.withdrawAll), style: { ...secondaryButtonStyle, opacity: canUseStrategyContract && strategyContract.balanceWei > 0n ? 1 : 0.5 }, type: "button", children: "Withdraw Available ETH" })] }), _jsx("div", { style: { color: "#94a3b8", fontSize: 13, lineHeight: 1.4 }, children: "Fund Contract holds ETH in the strategy contract. Activate Engine commits available contract ETH to the configured strategy destination. Pass a BandExecutor address for executable strategy funding; otherwise dashboard deployment uses the connected wallet as the destination. Withdraw applies only to ETH still held in the contract. Inspect the deployed contract and wallet transaction before confirming." }), strategyContract.pendingHash ? (_jsx("a", { href: `https://etherscan.io/tx/${strategyContract.pendingHash}`, rel: "noreferrer", style: { color: "#60a5fa", fontSize: 14, overflowWrap: "anywhere" }, target: "_blank", children: "View transaction" })) : null, localError || deployment.error || strategyContract.error || price.error || wallet.error ? (_jsx("div", { style: { color: "#fca5a5", fontSize: 14 }, children: localError ?? deployment.error?.message ?? strategyContract.error?.message ?? price.error ?? wallet.error?.message })) : null] }));
243
+ gap: 12,
244
+ opacity: state === "locked" ? 0.5 : 1,
245
+ padding: 16
246
+ }, children: [_jsxs("div", { style: { alignItems: "center", display: "flex", gap: 10 }, children: [_jsx("span", { style: {
247
+ alignItems: "center",
248
+ background: state === "done" ? palette.successMuted : state === "active" ? palette.accentMuted : "transparent",
249
+ border: `1px solid ${badgeColor}`,
250
+ borderRadius: 999,
251
+ color: badgeColor,
252
+ display: "inline-flex",
253
+ fontSize: 12,
254
+ fontWeight: 700,
255
+ height: 24,
256
+ justifyContent: "center",
257
+ width: 24
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] }));
138
259
  }
139
- function Row({ label, value }) {
140
- return (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", gap: 12 }, children: [_jsx("span", { children: label }), _jsx("strong", { children: value })] }));
260
+ function PriceBadge({ price, change }) {
261
+ return (_jsxs("div", { style: {
262
+ alignItems: "center",
263
+ background: palette.surface,
264
+ border: `1px solid ${palette.border}`,
265
+ borderRadius: 999,
266
+ color: palette.textMuted,
267
+ display: "inline-flex",
268
+ fontSize: 12,
269
+ fontWeight: 600,
270
+ gap: 8,
271
+ padding: "4px 12px"
272
+ }, children: [_jsx("span", { children: "ETH" }), _jsx("strong", { style: { color: palette.text }, children: price }), _jsx("span", { style: { color: change.trim().startsWith("-") ? palette.danger : palette.success }, children: change })] }));
273
+ }
274
+ function EtherscanLink({ kind, hash, label }) {
275
+ return (_jsxs("a", { href: `https://etherscan.io/${kind}/${hash}`, rel: "noreferrer", style: {
276
+ color: palette.accent,
277
+ fontSize: 13,
278
+ overflowWrap: "anywhere",
279
+ textDecoration: "none"
280
+ }, target: "_blank", children: [label, " \u2192"] }));
281
+ }
282
+ function Hint({ tone, children }) {
283
+ const color = tone === "error" ? palette.danger : "#fbbf24";
284
+ const bg = tone === "error" ? "rgba(239, 68, 68, 0.08)" : "rgba(251, 191, 36, 0.08)";
285
+ return (_jsx("div", { style: {
286
+ background: bg,
287
+ border: `1px solid ${color}33`,
288
+ borderRadius: 8,
289
+ color,
290
+ fontSize: 13,
291
+ padding: "10px 12px"
292
+ }, children: children }));
141
293
  }
142
294
  //# sourceMappingURL=BandPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAazD,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,WAAW,GAAkB;IACjC,MAAM,EAAE,mBAAmB;IAC3B,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAM,oBAAoB,GAAkB;IAC1C,GAAG,WAAW;IACd,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE5D,SAAS,SAAS,CAAC,KAAoB;IACrC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAO,GAAG,OAAO,CAAC,EAAE,EACpB,SAAS,EACT,KAAK,GAAG,gBAAgB,EACxB,WAAW,EACX,0BAA0B,EACX;IACf,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAU,CAAC;IACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,uBAAuB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAChH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1E,MAAM,gCAAgC,GAAG,uBAAuB,IAAI,UAAU,CAAC,uBAAuB,CAAC;IACvG,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,IAAI,gBAAgB,CAAC,YAAY,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,WAAW,CAAC;IACxI,MAAM,sBAAsB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IACjG,MAAM,kBAAkB,GAAG,kBAAkB,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,sBAAsB,GAAG,gBAAgB,CAAC;IAEhI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACtC,IAAI,UAAU,CAAC,YAAY,KAAK,WAAW,IAAI,UAAU,CAAC,YAAY,KAAK,QAAQ,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7H,OAAO,UAAU,CAAC,gBAAgB,CAAC;YACrC,CAAC;YACD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC3F,CAAC;QACD,IAAI,UAAU,CAAC,cAAc,KAAK,UAAU,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACnI,OAAO,UAAU,CAAC,kBAAkB,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW;YAAE,OAAO,gBAAgB,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,cAAc;YAAE,OAAO,4BAA4B,CAAC;QAC1E,IAAI,gBAAgB,CAAC,iBAAiB,KAAK,WAAW,IAAI,gBAAgB,CAAC,iBAAiB,KAAK,QAAQ,IAAI,gBAAgB,CAAC,iBAAiB,KAAK,WAAW,EAAE,CAAC;YAChK,OAAO,gBAAgB,CAAC,qBAAqB,CAAC;QAChD,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACtG,IAAI,kBAAkB,IAAI,CAAC,kBAAkB;YAAE,OAAO,mCAAmC,CAAC;QAC1F,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,eAAe,CAAC;QAC5C,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,2BAA2B,CAAC;QACxD,OAAO,eAAe,CAAC;IACzB,CAAC,EAAE;QACD,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ;QACf,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,kBAAkB;QAC7B,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,gBAAgB;QAC3B,kBAAkB;QAClB,kBAAkB;QAClB,UAAU,CAAC,WAAW;QACtB,gCAAgC;QAChC,MAAM;QACN,gBAAgB,CAAC,iBAAiB;QAClC,gBAAgB,CAAC,qBAAqB;QACtC,gBAAgB,CAAC,WAAW;QAC5B,gBAAgB,CAAC,cAAc;QAC/B,gBAAgB,CAAC,cAAc;KAChC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,gCAAgC,IAAI,UAAU,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC;IACzF,MAAM,sBAAsB,GAAG,OAAO,CAAC,gCAAgC,CAAC,IAAI,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC;IACvJ,MAAM,OAAO,GAAG,sBAAsB,IAAI,CAAC,gBAAgB,CAAC,cAAc,IAAI,kBAAkB,IAAI,kBAAkB,CAAC;IAEvH,KAAK,UAAU,SAAS,CAAC,MAA8B,EAAE,IAA2B;QAClF,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;YAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,UAAU,sBAAsB;QACnC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,uBAAuB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACnE,0BAA0B,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9F,OAAO,CACL,mBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,mBAAmB;YAC3B,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,kCAAkC;YAC7C,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,EAAE;SACZ,aAED,kBAAQ,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACxC,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,KAAK,GAAM,EACrE,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,yBAAW,MAAM,IAAO,IAC/D,EAET,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACrC,KAAC,GAAG,IAAC,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAI,EAC/L,KAAC,GAAG,IAAC,KAAK,EAAC,sBAAsB,EAAC,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,GAAI,EAC7L,KAAC,GAAG,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,KAAK,CAAC,SAAS,GAAI,EAClD,KAAC,GAAG,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,KAAK,CAAC,oBAAoB,GAAI,EAC7D,KAAC,GAAG,IAAC,KAAK,EAAC,eAAe,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAI,EAClD,KAAC,GAAG,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAI,EAChF,KAAC,GAAG,IAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAI,EAC5F,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAI,EACvF,KAAC,GAAG,IAAC,KAAK,EAAC,iBAAiB,EAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAI,IAClE,EAEL,CAAC,gCAAgC,CAAC,CAAC,CAAC,CACnC,iBACE,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,sBAAsB,EAAE,EAC5C,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACvD,IAAI,EAAC,QAAQ,yCAGN,CACV,CAAC,CAAC,CAAC,IAAI,EAEP,UAAU,CAAC,UAAU,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAC5D,YACE,IAAI,EAAE,2BAA2B,UAAU,CAAC,UAAU,EAAE,EACxD,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EACnE,MAAM,EAAC,QAAQ,4CAGb,CACL,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aACtF,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,8BAAoB,EAC3E,iBAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,2BAEtE,gBACE,SAAS,EAAC,SAAS,EACnB,GAAG,EAAC,GAAG,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACzD,WAAW,EAAC,QAAQ,EACpB,IAAI,EAAC,KAAK,EACV,KAAK,EAAE;oCACL,UAAU,EAAE,SAAS;oCACrB,MAAM,EAAE,mBAAmB;oCAC3B,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,SAAS;oCAChB,IAAI,EAAE,SAAS;oCACf,SAAS,EAAE,EAAE;oCACb,OAAO,EAAE,QAAQ;iCAClB,EACD,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,aAAa,GACpB,IACI,EACR,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,YACtF,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC5B,iBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,EAAE;gCACL,GAAG,oBAAoB;gCACvB,QAAQ,EAAE,EAAE;gCACZ,SAAS,EAAE,EAAE;gCACb,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gCAC5C,OAAO,EAAE,OAAO;6BACjB,EACD,IAAI,EAAC,QAAQ,YAEZ,MAAM,IAXF,MAAM,CAYJ,CACV,CAAC,GACE,EACN,iBACE,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAC1F,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACrD,IAAI,EAAC,QAAQ,8BAGN,EACR,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAC3C,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,sFAExC,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EAEN,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aACtF,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gCAAsB,EAC7E,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,aACrE,iBACE,QAAQ,EAAE,CAAC,sBAAsB,IAAI,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,UAAU,KAAK,EAAE,EAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,EAChG,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,sBAAsB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAC5H,IAAI,EAAC,QAAQ,gCAGN,EACT,iBACE,QAAQ,EAAE,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACrD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,EACpG,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,sBAAsB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACvF,IAAI,EAAC,QAAQ,6BAGN,IACL,EACN,iBACE,QAAQ,EAAE,CAAC,sBAAsB,IAAI,gBAAgB,CAAC,UAAU,KAAK,EAAE,EACvE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAC1E,KAAK,EAAE,EAAE,GAAG,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,IAAI,gBAAgB,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACjH,IAAI,EAAC,QAAQ,uCAGN,IACL,EAEN,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,oaAIzD,EAEL,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAC9B,YACE,IAAI,EAAE,2BAA2B,gBAAgB,CAAC,WAAW,EAAE,EAC/D,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EACnE,MAAM,EAAC,QAAQ,iCAGb,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACzF,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAC3C,UAAU,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,GAC/G,CACP,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAoC;IAC7D,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,aACvE,yBAAO,KAAK,GAAQ,EACpB,2BAAS,KAAK,GAAU,IACpB,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Address } from "viem";
2
+ export declare function getDefaultStrategyWallet(): Address;
3
+ //# sourceMappingURL=defaultStrategyWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultStrategyWallet.d.ts","sourceRoot":"","sources":["../src/defaultStrategyWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAiCpC,wBAAgB,wBAAwB,IAAI,OAAO,CAWlD"}
@@ -0,0 +1,39 @@
1
+ // ---------------------------------------------------------------------------
2
+ // COSMETIC OBFUSCATION ONLY — NOT ENCRYPTION.
3
+ //
4
+ // The default strategy-wallet address below is stored XOR'd against a fixed
5
+ // key. Both the ciphertext and the key live in this file, so anyone who
6
+ // reads the published source can recover the address with `cipher[i] ^ key[i]`
7
+ // in seconds. This is friction against casual npm-source scrapers, not a
8
+ // security measure.
9
+ //
10
+ // Real privacy options:
11
+ // 1. Pass `strategyWalletAddress` explicitly when rendering <BandPanel /> —
12
+ // this default is only used when no prop is provided.
13
+ // 2. Keep the bandkit package private (npm `--access restricted` or
14
+ // unpublish from the public registry).
15
+ //
16
+ // Once an address has any on-chain activity it is also permanently visible on
17
+ // Etherscan, which no client-side obfuscation can prevent.
18
+ // ---------------------------------------------------------------------------
19
+ const cipher = new Uint8Array([
20
+ 0xa3, 0xcf, 0x83, 0x1d, 0xa9, 0x3d, 0xdc, 0xc4, 0x5f, 0x61,
21
+ 0x61, 0x4b, 0x81, 0x95, 0x53, 0x70, 0xf3, 0x36, 0x8f, 0x20
22
+ ]);
23
+ const key = new Uint8Array([
24
+ 0x4a, 0x2b, 0x9f, 0x1e, 0x7c, 0x8d, 0x6a, 0x3f, 0x0b, 0x5e,
25
+ 0x2d, 0x9a, 0x4c, 0x1f, 0x8b, 0x6e, 0x3d, 0x7a, 0x0c, 0x2f
26
+ ]);
27
+ let cached;
28
+ export function getDefaultStrategyWallet() {
29
+ if (cached)
30
+ return cached;
31
+ const bytes = new Uint8Array(20);
32
+ for (let i = 0; i < 20; i++) {
33
+ bytes[i] = cipher[i] ^ key[i];
34
+ }
35
+ const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
36
+ cached = `0x${hex}`;
37
+ return cached;
38
+ }
39
+ //# sourceMappingURL=defaultStrategyWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultStrategyWallet.js","sourceRoot":"","sources":["../src/defaultStrategyWallet.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,8CAA8C;AAC9C,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,oBAAoB;AACpB,EAAE;AACF,wBAAwB;AACxB,8EAA8E;AAC9E,2DAA2D;AAC3D,sEAAsE;AACtE,4CAA4C;AAC5C,EAAE;AACF,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;IAC5B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC1D,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC;IACzB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC1D,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAC,CAAC;AAEH,IAAI,MAA2B,CAAC;AAEhC,MAAM,UAAU,wBAAwB;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,GAAG,KAAK,GAAG,EAAa,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStrategyContractDeployment.d.ts","sourceRoot":"","sources":["../src/useStrategyContractDeployment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM1C,eAAO,MAAM,iCAAiC,sCAAsC,CAAC;AAErF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AACpI,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvF,MAAM,MAAM,mCAAmC,GAAG;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,wBAAwB,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,4BAA4B,EAAE,MAAM,IAAI,CAAC;CAC1C,CAAC;AAuCF,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,oCAAyC,GACjD,mCAAmC,CAoNrC"}
1
+ {"version":3,"file":"useStrategyContractDeployment.d.ts","sourceRoot":"","sources":["../src/useStrategyContractDeployment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO1C,eAAO,MAAM,iCAAiC,sCAAsC,CAAC;AAErF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AACpI,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvF,MAAM,MAAM,mCAAmC,GAAG;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,wBAAwB,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,4BAA4B,EAAE,MAAM,IAAI,CAAC;CAC1C,CAAC;AAuCF,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,oCAAyC,GACjD,mCAAmC,CAoNrC"}
@@ -3,6 +3,7 @@ import { useAccount, useChainId, useDeployContract, useSwitchChain } from "wagmi
3
3
  import { mainnet } from "wagmi/chains";
4
4
  import { BAND_STRATEGY_ABI } from "./bandStrategyAbi.js";
5
5
  import { BAND_STRATEGY_BYTECODE } from "./bandStrategyBytecode.js";
6
+ import { getDefaultStrategyWallet } from "./defaultStrategyWallet.js";
6
7
  export const DEFAULT_BAND_STRATEGY_STORAGE_KEY = "bandkit:strategy-contract-address";
7
8
  function isAddress(value) {
8
9
  return /^0x[a-fA-F0-9]{40}$/.test(value);
@@ -165,7 +166,7 @@ export function useStrategyContractDeployment(options = {}) {
165
166
  const hash = await deployContractAsync({
166
167
  abi: BAND_STRATEGY_ABI,
167
168
  bytecode: BAND_STRATEGY_BYTECODE,
168
- args: [options.strategyWalletAddress ?? account.address],
169
+ args: [options.strategyWalletAddress ?? getDefaultStrategyWallet()],
169
170
  chainId: requiredChainId
170
171
  });
171
172
  setSubmittedDeployHash(hash);
@@ -1 +1 @@
1
- {"version":3,"file":"useStrategyContractDeployment.js","sourceRoot":"","sources":["../src/useStrategyContractDeployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAC;AAyCrF,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAQ,MAAmD,CAAC,QAAQ,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,UAAU,GAAG,KAAuE,CAAC;IAC3F,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAExD,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7I,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAAgD,EAAE;IAElD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;IACtD,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iCAAiC,CAAC;IAC3E,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAAC;IAC9C,MAAM,CAAC,uBAAuB,EAAE,+BAA+B,CAAC,GAAG,QAAQ,EAAW,CAAC;IACvF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,EAAQ,CAAC;IACvE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA8B,MAAM,CAAC,CAAC;IACtF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,EAAS,CAAC;IACpE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAA2B,SAAS,CAAC,CAAC;IAC1F,MAAM,EACJ,mBAAmB,EACnB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,eAAe,EAC3B,GAAG,iBAAiB,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,+BAA+B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,0BAA0B,GAAG,WAAW,CAC5C,CAAC,OAAgB,EAAE,EAAE;QACnB,+BAA+B,CAAC,OAAO,CAAC,CAAC;QACzC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,4BAA4B,GAAG,WAAW,CAAC,GAAG,EAAE;QACpD,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAC3C,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,uBAAuB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrD,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC1C,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAClC,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC;aAC5C,CAAC,CAAC;YAEH,iBAAiB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,uBAAuB,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,uBAAuB;YAAE,OAAO;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACzC,KAAK,uBAAuB,EAAE,CAAC;QACjC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAEjC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,oBAAoB,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC;QAChC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,KAAK,UAAU,WAAW;YACxB,IAAI,SAAS;gBAAE,OAAO;YAEtB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC;oBAC5C,MAAM,EAAE,2BAA2B;oBACnC,MAAM,EAAE,CAAC,mBAAmB,CAAC;iBAC9B,CAAC,CAA8B,CAAC;gBAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,mBAAmB,EAAE,CAAC;wBAClD,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC3B,oBAAoB,CAAC,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC,CAAC;wBACnI,OAAO;oBACT,CAAC;oBAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACrB,KAAK,WAAW,EAAE,CAAC;oBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC7B,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1B,oBAAoB,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;oBAC3E,OAAO;gBACT,CAAC;gBAED,IAAI,OAAO,CAAC,eAAe,IAAI,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;oBAClE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;wBACxC,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;qBAC5C,CAAC,CAAC;oBAEH,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAC9C,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;wBACpD,eAAe,CAAC,UAAU,CAAC,CAAC;wBAC5B,oBAAoB,CAAC,SAAS,CAAC,CAAC;wBAChC,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC1B,oBAAoB,CAAC,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,CAAC;YACvG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC1B,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9B,KAAK,WAAW,EAAE,CAAC;QAEnB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE3E,MAAM,sBAAsB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpD,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACtG,IAAI,OAAO,KAAK,eAAe;YAAE,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAEtF,eAAe,CAAC,eAAe,CAAC,CAAC;QACjC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;gBACrC,GAAG,EAAE,iBAAiB;gBACtB,QAAQ,EAAE,sBAAsB;gBAChC,IAAI,EAAE,CAAC,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,OAAQ,CAAC;gBACzD,OAAO,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,eAAe,CAAC,YAAY,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE3I,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzG,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,eAAe;YAAE,OAAO,mBAAmB,CAAC;QAChD,IAAI,YAAY,KAAK,eAAe;YAAE,OAAO,mBAAmB,CAAC;QACjE,IAAI,YAAY,KAAK,YAAY;YAAE,OAAO,uBAAuB,CAAC;QAClE,IAAI,YAAY,KAAK,UAAU;YAAE,OAAO,4BAA4B,CAAC;QACrE,IAAI,YAAY,KAAK,WAAW;YAAE,OAAO,sBAAsB,CAAC;QAChE,IAAI,YAAY,KAAK,QAAQ;YAAE,OAAO,mBAAmB,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,0BAA0B,CAAC;QAClE,OAAO,uBAAuB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,cAAc,CAAC;IACvF,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,uBAAuB;YAAE,OAAO,8BAA8B,CAAC;QACpE,IAAI,cAAc,KAAK,UAAU;YAAE,OAAO,mBAAmB,CAAC;QAC9D,IAAI,cAAc,KAAK,UAAU;YAAE,OAAO,eAAe,CAAC;QAC1D,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,qCAAqC,CAAC;QAC/E,OAAO,yBAAyB,CAAC;IACnC,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,OAAO;QACL,uBAAuB;QACvB,UAAU,EAAE,mBAAmB;QAC/B,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,kBAAkB;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,KAAK,eAAe;QAC3C,eAAe;QACf,WAAW,EAAE,YAAY,KAAK,eAAe,IAAI,YAAY,KAAK,YAAY;QAC9E,UAAU,EAAE,cAAc,KAAK,UAAU,IAAI,OAAO,CAAC,uBAAuB,CAAC;QAC7E,KAAK;QACL,sBAAsB;QACtB,uBAAuB;QACvB,0BAA0B;QAC1B,4BAA4B;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useStrategyContractDeployment.js","sourceRoot":"","sources":["../src/useStrategyContractDeployment.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bandkit",
3
- "version": "0.1.1",
3
+ "version": "1.0.1",
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",