@1sat/sweep-ui 0.0.1 → 0.0.2

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.
@@ -1,6 +1,8 @@
1
1
  import type { LegacyKeys } from "../types";
2
+ import type { WalletInterface } from "@bsv/sdk";
2
3
  export interface SweepAppProps {
3
4
  legacyKeys?: LegacyKeys;
5
+ wallet?: WalletInterface | null;
4
6
  }
5
- export declare function SweepApp({ legacyKeys: initialKeys }: SweepAppProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: SweepAppProps): import("react/jsx-runtime").JSX.Element;
6
8
  //# sourceMappingURL=SweepApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SweepApp.d.ts","sourceRoot":"","sources":["../../src/components/SweepApp.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,MAAM,WAAW,aAAa;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,aAAa,2CAuPlE"}
1
+ {"version":3,"file":"SweepApp.d.ts","sourceRoot":"","sources":["../../src/components/SweepApp.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,MAAM,WAAW,aAAa;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa,2CAgQ1F"}
package/dist/index.js CHANGED
@@ -2053,8 +2053,8 @@ async function legacyBurnOrdinals(params) {
2053
2053
 
2054
2054
  // src/components/SweepApp.tsx
2055
2055
  import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
2056
- function SweepApp({ legacyKeys: initialKeys }) {
2057
- const [walletConnected, setWalletConnected] = useState5(false);
2056
+ function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }) {
2057
+ const [walletConnected, setWalletConnected] = useState5(!!externalWallet);
2058
2058
  const [scanning, setScanning] = useState5(false);
2059
2059
  const [scanProgress, setScanProgress] = useState5("");
2060
2060
  const [assets, setAssets] = useState5(null);
@@ -2066,6 +2066,12 @@ function SweepApp({ legacyKeys: initialKeys }) {
2066
2066
  const [selectedOpns, setSelectedOpns] = useState5(new Set);
2067
2067
  const [sweepAmount, setSweepAmount] = useState5(null);
2068
2068
  const [activeTab, setActiveTab] = useState5("ordinals");
2069
+ useEffect2(() => {
2070
+ setWalletConnected(!!externalWallet);
2071
+ }, [externalWallet]);
2072
+ const resolveWallet = useCallback2(() => {
2073
+ return externalWallet ?? getWallet();
2074
+ }, [externalWallet]);
2069
2075
  const addTx = useCallback2((label, txid, error) => {
2070
2076
  setTxHistory((prev) => [...prev, { label, txid, timestamp: new Date, error }]);
2071
2077
  }, []);
@@ -2191,7 +2197,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2191
2197
  return selected;
2192
2198
  }, [assets, sweepAmount]);
2193
2199
  const handleSweepBsv = useCallback2(async () => {
2194
- const wallet = getWallet();
2200
+ const wallet = resolveWallet();
2195
2201
  if (!wallet || !legacyKeys || !assets)
2196
2202
  return;
2197
2203
  await runOperation("Sweep BSV", async () => {
@@ -2200,7 +2206,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2200
2206
  throw new Error(result.errors[0]);
2201
2207
  return result.bsvTxid ?? "";
2202
2208
  });
2203
- }, [legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
2209
+ }, [resolveWallet, legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
2204
2210
  const handleSendBsv = useCallback2(async (destination) => {
2205
2211
  if (!legacyKeys || !assets)
2206
2212
  return;
@@ -2210,7 +2216,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2210
2216
  });
2211
2217
  }, [legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
2212
2218
  const handleSweepOrdinals = useCallback2(async () => {
2213
- const wallet = getWallet();
2219
+ const wallet = resolveWallet();
2214
2220
  if (!wallet || !legacyKeys || !assets)
2215
2221
  return;
2216
2222
  const selected = assets.ordinals.filter((o) => selectedOrdinals.has(o.outpoint));
@@ -2222,7 +2228,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2222
2228
  throw new Error(result.errors[0]);
2223
2229
  return result.ordinalTxids[0] ?? "";
2224
2230
  });
2225
- }, [legacyKeys, assets, selectedOrdinals, runOperation]);
2231
+ }, [resolveWallet, legacyKeys, assets, selectedOrdinals, runOperation]);
2226
2232
  const handleSendOrdinals = useCallback2(async (destination) => {
2227
2233
  if (!legacyKeys || !assets)
2228
2234
  return;
@@ -2246,7 +2252,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2246
2252
  });
2247
2253
  }, [legacyKeys, assets, selectedOrdinals, runOperation]);
2248
2254
  const handleSweepOpns = useCallback2(async () => {
2249
- const wallet = getWallet();
2255
+ const wallet = resolveWallet();
2250
2256
  if (!wallet || !legacyKeys || !assets)
2251
2257
  return;
2252
2258
  const selected = assets.opnsNames.filter((o) => selectedOpns.has(o.outpoint));
@@ -2258,7 +2264,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2258
2264
  throw new Error(result.errors[0]);
2259
2265
  return result.ordinalTxids[0] ?? "";
2260
2266
  });
2261
- }, [legacyKeys, assets, selectedOpns, runOperation]);
2267
+ }, [resolveWallet, legacyKeys, assets, selectedOpns, runOperation]);
2262
2268
  const handleSendOpns = useCallback2(async (destination) => {
2263
2269
  if (!legacyKeys || !assets)
2264
2270
  return;
@@ -2303,7 +2309,7 @@ function SweepApp({ legacyKeys: initialKeys }) {
2303
2309
  })
2304
2310
  ]
2305
2311
  }),
2306
- /* @__PURE__ */ jsx11(ConnectWallet, {
2312
+ !externalWallet && /* @__PURE__ */ jsx11(ConnectWallet, {
2307
2313
  onConnected: () => setWalletConnected(true),
2308
2314
  onDisconnected: () => setWalletConnected(false),
2309
2315
  connected: walletConnected
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/sweep-ui",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Sweep UI components for migrating legacy BSV assets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -12,15 +12,17 @@ import { executeSweep } from "../lib/sweeper";
12
12
  import { legacySendBsv, legacySendOrdinals, legacyBurnOrdinals } from "../lib/legacy-send";
13
13
  import { getWallet } from "../lib/wallet";
14
14
  import type { LegacyKeys } from "../types";
15
+ import type { WalletInterface } from "@bsv/sdk";
15
16
 
16
17
  type TabId = "ordinals" | "opns" | "bsv21" | "bsv20" | "locks";
17
18
 
18
19
  export interface SweepAppProps {
19
20
  legacyKeys?: LegacyKeys;
21
+ wallet?: WalletInterface | null;
20
22
  }
21
23
 
22
- export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
23
- const [walletConnected, setWalletConnected] = useState(false);
24
+ export function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: SweepAppProps) {
25
+ const [walletConnected, setWalletConnected] = useState(!!externalWallet);
24
26
  const [scanning, setScanning] = useState(false);
25
27
  const [scanProgress, setScanProgress] = useState("");
26
28
  const [assets, setAssets] = useState<ScannedAssets | null>(null);
@@ -33,6 +35,14 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
33
35
  const [sweepAmount, setSweepAmount] = useState<number | null>(null);
34
36
  const [activeTab, setActiveTab] = useState<TabId>("ordinals");
35
37
 
38
+ useEffect(() => {
39
+ setWalletConnected(!!externalWallet);
40
+ }, [externalWallet]);
41
+
42
+ const resolveWallet = useCallback((): WalletInterface | null => {
43
+ return externalWallet ?? getWallet();
44
+ }, [externalWallet]);
45
+
36
46
  const addTx = useCallback((label: string, txid: string, error?: string) => {
37
47
  setTxHistory((prev) => [...prev, { label, txid, timestamp: new Date(), error }]);
38
48
  }, []);
@@ -98,7 +108,6 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
98
108
  }
99
109
  }, []);
100
110
 
101
- // Auto-scan when keys are provided via props
102
111
  useEffect(() => {
103
112
  if (initialKeys) handleScan(initialKeys);
104
113
  }, [initialKeys, handleScan]);
@@ -134,14 +143,14 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
134
143
  }, [assets, sweepAmount]);
135
144
 
136
145
  const handleSweepBsv = useCallback(async () => {
137
- const wallet = getWallet();
146
+ const wallet = resolveWallet();
138
147
  if (!wallet || !legacyKeys || !assets) return;
139
148
  await runOperation("Sweep BSV", async () => {
140
149
  const result = await executeSweep({ wallet, wif: legacyKeys.payPk, funding: getSelectedFunding(), ordinals: [], bsv21Tokens: [], amount: sweepAmount ?? undefined, onProgress: setSweepProgress });
141
150
  if (result.errors.length > 0) throw new Error(result.errors[0]);
142
151
  return result.bsvTxid ?? "";
143
152
  });
144
- }, [legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
153
+ }, [resolveWallet, legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
145
154
 
146
155
  const handleSendBsv = useCallback(async (destination: string) => {
147
156
  if (!legacyKeys || !assets) return;
@@ -152,7 +161,7 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
152
161
  }, [legacyKeys, assets, sweepAmount, getSelectedFunding, runOperation]);
153
162
 
154
163
  const handleSweepOrdinals = useCallback(async () => {
155
- const wallet = getWallet();
164
+ const wallet = resolveWallet();
156
165
  if (!wallet || !legacyKeys || !assets) return;
157
166
  const selected = assets.ordinals.filter((o) => selectedOrdinals.has(o.outpoint));
158
167
  if (selected.length === 0) return;
@@ -161,7 +170,7 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
161
170
  if (result.errors.length > 0) throw new Error(result.errors[0]);
162
171
  return result.ordinalTxids[0] ?? "";
163
172
  });
164
- }, [legacyKeys, assets, selectedOrdinals, runOperation]);
173
+ }, [resolveWallet, legacyKeys, assets, selectedOrdinals, runOperation]);
165
174
 
166
175
  const handleSendOrdinals = useCallback(async (destination: string) => {
167
176
  if (!legacyKeys || !assets) return;
@@ -184,7 +193,7 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
184
193
  }, [legacyKeys, assets, selectedOrdinals, runOperation]);
185
194
 
186
195
  const handleSweepOpns = useCallback(async () => {
187
- const wallet = getWallet();
196
+ const wallet = resolveWallet();
188
197
  if (!wallet || !legacyKeys || !assets) return;
189
198
  const selected = assets.opnsNames.filter((o) => selectedOpns.has(o.outpoint));
190
199
  if (selected.length === 0) return;
@@ -193,7 +202,7 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
193
202
  if (result.errors.length > 0) throw new Error(result.errors[0]);
194
203
  return result.ordinalTxids[0] ?? "";
195
204
  });
196
- }, [legacyKeys, assets, selectedOpns, runOperation]);
205
+ }, [resolveWallet, legacyKeys, assets, selectedOpns, runOperation]);
197
206
 
198
207
  const handleSendOpns = useCallback(async (destination: string) => {
199
208
  if (!legacyKeys || !assets) return;
@@ -224,7 +233,9 @@ export function SweepApp({ legacyKeys: initialKeys }: SweepAppProps) {
224
233
  <p className="text-sm text-muted-foreground">Transfer or sweep legacy assets</p>
225
234
  </div>
226
235
 
227
- <ConnectWallet onConnected={() => setWalletConnected(true)} onDisconnected={() => setWalletConnected(false)} connected={walletConnected} />
236
+ {!externalWallet && (
237
+ <ConnectWallet onConnected={() => setWalletConnected(true)} onDisconnected={() => setWalletConnected(false)} connected={walletConnected} />
238
+ )}
228
239
 
229
240
  {!initialKeys && (
230
241
  <WifInput onScan={handleScan} scanning={scanning} disabled={sweeping} />