@1sat/sweep-ui 0.0.1 → 0.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.
|
@@ -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;
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/sweep-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Sweep UI components for migrating legacy BSV assets",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./
|
|
6
|
+
"main": "./src/index.ts",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./
|
|
11
|
+
"import": "./src/index.ts"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"files": ["dist", "src"],
|
|
@@ -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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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} />
|