@1sat/sweep-ui 0.0.5 → 0.0.6

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.
@@ -3,6 +3,7 @@ import type { WalletInterface } from "@bsv/sdk";
3
3
  export interface SweepAppProps {
4
4
  legacyKeys?: LegacyKeys;
5
5
  wallet?: WalletInterface | null;
6
+ sweepOnly?: boolean;
6
7
  }
7
- export declare function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: SweepAppProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet, sweepOnly }: SweepAppProps): import("react/jsx-runtime").JSX.Element;
8
9
  //# 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;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,2CAiQ1F"}
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;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,aAAa,2CAiQrG"}
@@ -6,7 +6,7 @@ export declare function FundingSection({ funding, totalBsv, sweepAmount, onSweep
6
6
  sweepAmount: number | null;
7
7
  onSweepAmountChange: (amount: number | null) => void;
8
8
  onSweep: () => void;
9
- onSend: (destination: string) => void;
9
+ onSend?: (destination: string) => void;
10
10
  walletConnected: boolean;
11
11
  }): import("react/jsx-runtime").JSX.Element | null;
12
12
  export declare function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelectAll, onDeselectAll, onSweep, onSend, onBurn, walletConnected }: {
@@ -16,8 +16,8 @@ export declare function OrdinalsSection({ ordinals, selectedOrdinals, onToggle,
16
16
  onSelectAll: () => void;
17
17
  onDeselectAll: () => void;
18
18
  onSweep: () => void;
19
- onSend: (destination: string) => void;
20
- onBurn: () => void;
19
+ onSend?: (destination: string) => void;
20
+ onBurn?: () => void;
21
21
  walletConnected: boolean;
22
22
  }): import("react/jsx-runtime").JSX.Element | null;
23
23
  export declare function Bsv21Section({ tokens }: {
@@ -1 +1 @@
1
- {"version":3,"file":"asset-preview.d.ts","sourceRoot":"","sources":["../../src/components/asset-preview.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA8CjD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IACzH,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CACnN,kDAiCA;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IAC/I,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CAC/P,kDAgDA;AA0BD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,kDAsBlE;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,kDAmBnE;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,kDAapE"}
1
+ {"version":3,"file":"asset-preview.d.ts","sourceRoot":"","sources":["../../src/components/asset-preview.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA8CjD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IACzH,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CACpN,kDAqCA;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IAC/I,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CACjQ,kDAsDA;AA0BD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,kDAsBlE;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,kDAmBnE;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,kDAapE"}
@@ -6,8 +6,8 @@ export declare function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelec
6
6
  onSelectAll: () => void;
7
7
  onDeselectAll: () => void;
8
8
  onSweep: () => void;
9
- onSend: (destination: string) => void;
10
- onBurn: () => void;
9
+ onSend?: (destination: string) => void;
10
+ onBurn?: () => void;
11
11
  walletConnected: boolean;
12
12
  }): import("react/jsx-runtime").JSX.Element | null;
13
13
  //# sourceMappingURL=opns-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opns-section.d.ts","sourceRoot":"","sources":["../../src/components/opns-section.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IACxI,SAAS,EAAE,eAAe,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CAC5P,kDAmGA"}
1
+ {"version":3,"file":"opns-section.d.ts","sourceRoot":"","sources":["../../src/components/opns-section.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IACxI,SAAS,EAAE,eAAe,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;CAC9P,kDAyGA"}
package/dist/index.js CHANGED
@@ -1144,7 +1144,7 @@ function FundingSection({ funding, totalBsv, sweepAmount, onSweepAmountChange, o
1144
1144
  /* @__PURE__ */ jsxs3("div", {
1145
1145
  className: "mt-3 space-y-2",
1146
1146
  children: [
1147
- /* @__PURE__ */ jsx8(Input, {
1147
+ onSend && /* @__PURE__ */ jsx8(Input, {
1148
1148
  type: "text",
1149
1149
  placeholder: "Destination address...",
1150
1150
  value: address,
@@ -1154,7 +1154,7 @@ function FundingSection({ funding, totalBsv, sweepAmount, onSweepAmountChange, o
1154
1154
  /* @__PURE__ */ jsxs3("div", {
1155
1155
  className: "flex gap-2",
1156
1156
  children: [
1157
- /* @__PURE__ */ jsxs3(Button, {
1157
+ onSend && /* @__PURE__ */ jsxs3(Button, {
1158
1158
  variant: "outline",
1159
1159
  size: "sm",
1160
1160
  className: "flex-1",
@@ -1290,7 +1290,7 @@ function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelectAll, on
1290
1290
  selectedOrdinals.size > 0 && /* @__PURE__ */ jsxs3("div", {
1291
1291
  className: "mt-3 space-y-2",
1292
1292
  children: [
1293
- /* @__PURE__ */ jsx8(Input, {
1293
+ onSend && /* @__PURE__ */ jsx8(Input, {
1294
1294
  type: "text",
1295
1295
  placeholder: "Destination address...",
1296
1296
  value: address,
@@ -1300,7 +1300,7 @@ function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelectAll, on
1300
1300
  /* @__PURE__ */ jsxs3("div", {
1301
1301
  className: "flex gap-2",
1302
1302
  children: [
1303
- /* @__PURE__ */ jsxs3(Button, {
1303
+ onSend && /* @__PURE__ */ jsxs3(Button, {
1304
1304
  variant: "outline",
1305
1305
  size: "sm",
1306
1306
  className: "flex-1",
@@ -1321,7 +1321,7 @@ function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelectAll, on
1321
1321
  title: walletConnected ? undefined : "Connect BRC-100 wallet to sweep",
1322
1322
  children: "Sweep to Wallet"
1323
1323
  }),
1324
- /* @__PURE__ */ jsx8(Button, {
1324
+ onBurn && /* @__PURE__ */ jsx8(Button, {
1325
1325
  size: "sm",
1326
1326
  className: "bg-red-600 hover:bg-red-700 text-white",
1327
1327
  onClick: () => {
@@ -1662,7 +1662,7 @@ function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelectAll, onDeselec
1662
1662
  selectedOpns.size > 0 && /* @__PURE__ */ jsxs4("div", {
1663
1663
  className: "mt-3 space-y-2",
1664
1664
  children: [
1665
- /* @__PURE__ */ jsx9(Input, {
1665
+ onSend && /* @__PURE__ */ jsx9(Input, {
1666
1666
  type: "text",
1667
1667
  placeholder: "Destination address...",
1668
1668
  value: address,
@@ -1672,7 +1672,7 @@ function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelectAll, onDeselec
1672
1672
  /* @__PURE__ */ jsxs4("div", {
1673
1673
  className: "flex gap-2",
1674
1674
  children: [
1675
- /* @__PURE__ */ jsxs4(Button, {
1675
+ onSend && /* @__PURE__ */ jsxs4(Button, {
1676
1676
  variant: "outline",
1677
1677
  size: "sm",
1678
1678
  className: "flex-1",
@@ -1693,7 +1693,7 @@ function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelectAll, onDeselec
1693
1693
  title: walletConnected ? undefined : "Connect BRC-100 wallet to sweep",
1694
1694
  children: "Sweep to Wallet"
1695
1695
  }),
1696
- /* @__PURE__ */ jsx9(Button, {
1696
+ onBurn && /* @__PURE__ */ jsx9(Button, {
1697
1697
  size: "sm",
1698
1698
  className: "bg-red-600 hover:bg-red-700 text-white",
1699
1699
  onClick: () => {
@@ -2053,7 +2053,7 @@ 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, wallet: externalWallet }) {
2056
+ function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet, sweepOnly }) {
2057
2057
  const [walletConnected, setWalletConnected] = useState5(!!externalWallet);
2058
2058
  const [scanning, setScanning] = useState5(false);
2059
2059
  const [scanProgress, setScanProgress] = useState5("");
@@ -2333,7 +2333,7 @@ function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }) {
2333
2333
  sweepAmount,
2334
2334
  onSweepAmountChange: setSweepAmount,
2335
2335
  onSweep: handleSweepBsv,
2336
- onSend: handleSendBsv,
2336
+ onSend: sweepOnly ? undefined : handleSendBsv,
2337
2337
  walletConnected
2338
2338
  }),
2339
2339
  tabs.length > 0 && /* @__PURE__ */ jsxs6(Tabs, {
@@ -2364,8 +2364,8 @@ function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }) {
2364
2364
  onSelectAll: handleSelectAllOrdinals,
2365
2365
  onDeselectAll: handleDeselectAllOrdinals,
2366
2366
  onSweep: handleSweepOrdinals,
2367
- onSend: handleSendOrdinals,
2368
- onBurn: handleBurnOrdinals,
2367
+ onSend: sweepOnly ? undefined : handleSendOrdinals,
2368
+ onBurn: sweepOnly ? undefined : handleBurnOrdinals,
2369
2369
  walletConnected
2370
2370
  })
2371
2371
  }),
@@ -2378,8 +2378,8 @@ function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }) {
2378
2378
  onSelectAll: handleSelectAllOpns,
2379
2379
  onDeselectAll: handleDeselectAllOpns,
2380
2380
  onSweep: handleSweepOpns,
2381
- onSend: handleSendOpns,
2382
- onBurn: handleBurnOpns,
2381
+ onSend: sweepOnly ? undefined : handleSendOpns,
2382
+ onBurn: sweepOnly ? undefined : handleBurnOpns,
2383
2383
  walletConnected
2384
2384
  })
2385
2385
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/sweep-ui",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Sweep UI components for migrating legacy BSV assets",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -19,9 +19,10 @@ type TabId = "ordinals" | "opns" | "bsv21" | "bsv20" | "locks";
19
19
  export interface SweepAppProps {
20
20
  legacyKeys?: LegacyKeys;
21
21
  wallet?: WalletInterface | null;
22
+ sweepOnly?: boolean;
22
23
  }
23
24
 
24
- export function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: SweepAppProps) {
25
+ export function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet, sweepOnly }: SweepAppProps) {
25
26
  const [walletConnected, setWalletConnected] = useState(!!externalWallet);
26
27
  const [scanning, setScanning] = useState(false);
27
28
  const [scanProgress, setScanProgress] = useState("");
@@ -248,7 +249,7 @@ export function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: Sw
248
249
 
249
250
  {assets && !sweeping && (
250
251
  <div className="space-y-3">
251
- <FundingSection funding={assets.funding} totalBsv={assets.totalBsv} sweepAmount={sweepAmount} onSweepAmountChange={setSweepAmount} onSweep={handleSweepBsv} onSend={handleSendBsv} walletConnected={walletConnected} />
252
+ <FundingSection funding={assets.funding} totalBsv={assets.totalBsv} sweepAmount={sweepAmount} onSweepAmountChange={setSweepAmount} onSweep={handleSweepBsv} onSend={sweepOnly ? undefined : handleSendBsv} walletConnected={walletConnected} />
252
253
 
253
254
  {tabs.length > 0 && (
254
255
  <Tabs value={activeTab} onValueChange={(v) => setActiveTab(v as TabId)}>
@@ -261,10 +262,10 @@ export function SweepApp({ legacyKeys: initialKeys, wallet: externalWallet }: Sw
261
262
  ))}
262
263
  </TabsList>
263
264
  <TabsContent value="ordinals">
264
- <OrdinalsSection ordinals={assets.ordinals} selectedOrdinals={selectedOrdinals} onToggle={handleToggleOrdinal} onSelectAll={handleSelectAllOrdinals} onDeselectAll={handleDeselectAllOrdinals} onSweep={handleSweepOrdinals} onSend={handleSendOrdinals} onBurn={handleBurnOrdinals} walletConnected={walletConnected} />
265
+ <OrdinalsSection ordinals={assets.ordinals} selectedOrdinals={selectedOrdinals} onToggle={handleToggleOrdinal} onSelectAll={handleSelectAllOrdinals} onDeselectAll={handleDeselectAllOrdinals} onSweep={handleSweepOrdinals} onSend={sweepOnly ? undefined : handleSendOrdinals} onBurn={sweepOnly ? undefined : handleBurnOrdinals} walletConnected={walletConnected} />
265
266
  </TabsContent>
266
267
  <TabsContent value="opns">
267
- <OpnsSection opnsNames={assets.opnsNames} selectedOpns={selectedOpns} onToggle={handleToggleOpns} onSelectAll={handleSelectAllOpns} onDeselectAll={handleDeselectAllOpns} onSweep={handleSweepOpns} onSend={handleSendOpns} onBurn={handleBurnOpns} walletConnected={walletConnected} />
268
+ <OpnsSection opnsNames={assets.opnsNames} selectedOpns={selectedOpns} onToggle={handleToggleOpns} onSelectAll={handleSelectAllOpns} onDeselectAll={handleDeselectAllOpns} onSweep={handleSweepOpns} onSend={sweepOnly ? undefined : handleSendOpns} onBurn={sweepOnly ? undefined : handleBurnOpns} walletConnected={walletConnected} />
268
269
  </TabsContent>
269
270
  <TabsContent value="bsv21"><Bsv21Section tokens={assets.bsv21Tokens} /></TabsContent>
270
271
  <TabsContent value="bsv20"><Bsv20Section tokens={assets.bsv20Tokens} /></TabsContent>
@@ -51,7 +51,7 @@ function OrdinalCard({ ordinal, isSelected, onToggle }: { ordinal: EnrichedOrdin
51
51
  }
52
52
 
53
53
  export function FundingSection({ funding, totalBsv, sweepAmount, onSweepAmountChange, onSweep, onSend, walletConnected }: {
54
- funding: IndexedOutput[]; totalBsv: number; sweepAmount: number | null; onSweepAmountChange: (amount: number | null) => void; onSweep: () => void; onSend: (destination: string) => void; walletConnected: boolean;
54
+ funding: IndexedOutput[]; totalBsv: number; sweepAmount: number | null; onSweepAmountChange: (amount: number | null) => void; onSweep: () => void; onSend?: (destination: string) => void; walletConnected: boolean;
55
55
  }) {
56
56
  const [address, setAddress] = useState("");
57
57
  if (funding.length === 0) return null;
@@ -77,9 +77,13 @@ export function FundingSection({ funding, totalBsv, sweepAmount, onSweepAmountCh
77
77
  <Button variant="outline" size="sm" className="h-9 text-xs" onClick={() => onSweepAmountChange(null)} disabled={isMax}>Max</Button>
78
78
  </div>
79
79
  <div className="mt-3 space-y-2">
80
- <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
80
+ {onSend && (
81
+ <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
82
+ )}
81
83
  <div className="flex gap-2">
82
- <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {displayAmount} sats</Button>
84
+ {onSend && (
85
+ <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {displayAmount} sats</Button>
86
+ )}
83
87
  <Button size="sm" className="flex-1" onClick={onSweep} disabled={!walletConnected} title={walletConnected ? undefined : "Connect BRC-100 wallet to sweep"}>Sweep to Wallet</Button>
84
88
  </div>
85
89
  </div>
@@ -88,7 +92,7 @@ export function FundingSection({ funding, totalBsv, sweepAmount, onSweepAmountCh
88
92
  }
89
93
 
90
94
  export function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelectAll, onDeselectAll, onSweep, onSend, onBurn, walletConnected }: {
91
- ordinals: EnrichedOrdinal[]; selectedOrdinals: Set<string>; onToggle: (outpoint: string) => void; onSelectAll: () => void; onDeselectAll: () => void; onSweep: () => void; onSend: (destination: string) => void; onBurn: () => void; walletConnected: boolean;
95
+ ordinals: EnrichedOrdinal[]; selectedOrdinals: Set<string>; onToggle: (outpoint: string) => void; onSelectAll: () => void; onDeselectAll: () => void; onSweep: () => void; onSend?: (destination: string) => void; onBurn?: () => void; walletConnected: boolean;
92
96
  }) {
93
97
  const [page, setPage] = useState(0);
94
98
  const [address, setAddress] = useState("");
@@ -127,11 +131,17 @@ export function OrdinalsSection({ ordinals, selectedOrdinals, onToggle, onSelect
127
131
  )}
128
132
  {selectedOrdinals.size > 0 && (
129
133
  <div className="mt-3 space-y-2">
130
- <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
134
+ {onSend && (
135
+ <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
136
+ )}
131
137
  <div className="flex gap-2">
132
- <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {selectedOrdinals.size} Ordinal{selectedOrdinals.size !== 1 ? "s" : ""}</Button>
138
+ {onSend && (
139
+ <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {selectedOrdinals.size} Ordinal{selectedOrdinals.size !== 1 ? "s" : ""}</Button>
140
+ )}
133
141
  <Button size="sm" className="flex-1" onClick={onSweep} disabled={!walletConnected} title={walletConnected ? undefined : "Connect BRC-100 wallet to sweep"}>Sweep to Wallet</Button>
134
- <Button size="sm" className="bg-red-600 hover:bg-red-700 text-white" onClick={() => { if (window.confirm(`Permanently burn ${selectedOrdinals.size} ordinal${selectedOrdinals.size !== 1 ? "s" : ""}? This cannot be undone.`)) onBurn(); }}>Burn</Button>
142
+ {onBurn && (
143
+ <Button size="sm" className="bg-red-600 hover:bg-red-700 text-white" onClick={() => { if (window.confirm(`Permanently burn ${selectedOrdinals.size} ordinal${selectedOrdinals.size !== 1 ? "s" : ""}? This cannot be undone.`)) onBurn(); }}>Burn</Button>
144
+ )}
135
145
  </div>
136
146
  </div>
137
147
  )}
@@ -5,7 +5,7 @@ import type { EnrichedOrdinal } from "../lib/scanner";
5
5
  import { getServices } from "../lib/services";
6
6
 
7
7
  export function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelectAll, onDeselectAll, onSweep, onSend, onBurn, walletConnected }: {
8
- opnsNames: EnrichedOrdinal[]; selectedOpns: Set<string>; onToggle: (outpoint: string) => void; onSelectAll: () => void; onDeselectAll: () => void; onSweep: () => void; onSend: (destination: string) => void; onBurn: () => void; walletConnected: boolean;
8
+ opnsNames: EnrichedOrdinal[]; selectedOpns: Set<string>; onToggle: (outpoint: string) => void; onSelectAll: () => void; onDeselectAll: () => void; onSweep: () => void; onSend?: (destination: string) => void; onBurn?: () => void; walletConnected: boolean;
9
9
  }) {
10
10
  const [address, setAddress] = useState("");
11
11
  const [resolvedNames, setResolvedNames] = useState<Map<string, string>>(new Map());
@@ -95,11 +95,17 @@ export function OpnsSection({ opnsNames, selectedOpns, onToggle, onSelectAll, on
95
95
  </div>
96
96
  {selectedOpns.size > 0 && (
97
97
  <div className="mt-3 space-y-2">
98
- <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
98
+ {onSend && (
99
+ <Input type="text" placeholder="Destination address..." value={address} onChange={(e) => setAddress(e.target.value)} className="font-mono text-xs" />
100
+ )}
99
101
  <div className="flex gap-2">
100
- <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {selectedOpns.size} Domain{selectedOpns.size !== 1 ? "s" : ""}</Button>
102
+ {onSend && (
103
+ <Button variant="outline" size="sm" className="flex-1" disabled={!address.trim()} onClick={() => onSend(address.trim())}>Send {selectedOpns.size} Domain{selectedOpns.size !== 1 ? "s" : ""}</Button>
104
+ )}
101
105
  <Button size="sm" className="flex-1" onClick={onSweep} disabled={!walletConnected} title={walletConnected ? undefined : "Connect BRC-100 wallet to sweep"}>Sweep to Wallet</Button>
102
- <Button size="sm" className="bg-red-600 hover:bg-red-700 text-white" onClick={() => { if (window.confirm(`Permanently burn ${selectedOpns.size} domain${selectedOpns.size !== 1 ? "s" : ""}? This cannot be undone.`)) onBurn(); }}>Burn</Button>
106
+ {onBurn && (
107
+ <Button size="sm" className="bg-red-600 hover:bg-red-700 text-white" onClick={() => { if (window.confirm(`Permanently burn ${selectedOpns.size} domain${selectedOpns.size !== 1 ? "s" : ""}? This cannot be undone.`)) onBurn(); }}>Burn</Button>
108
+ )}
103
109
  </div>
104
110
  </div>
105
111
  )}