diff --git a/src/components/SasquatchProDialog.tsx b/src/components/SasquatchProDialog.tsx
index 4000d15..65654fb 100644
--- a/src/components/SasquatchProDialog.tsx
+++ b/src/components/SasquatchProDialog.tsx
@@ -21,7 +21,7 @@ import { useCurrentUser } from '@/hooks/useCurrentUser';
import { useSasquatchPro } from '@/hooks/useSasquatchPro';
import { usePurchasePro } from '@/hooks/usePurchasePro';
import { useToast } from '@/hooks/useToast';
-import { PRO_TIERS, type ProTier } from '@/lib/sasquatchPro';
+import { PRO_TIERS, PRO_LIGHTNING_ADDRESS, type ProTier } from '@/lib/sasquatchPro';
import {
Zap,
Check,
@@ -145,6 +145,10 @@ export function SasquatchProDialog({
+ Paying to{' '} + ⚡ {PRO_LIGHTNING_ADDRESS} +
Tap "I've paid" after your wallet confirms — this records your pass to your Nostr identity.
@@ -178,7 +182,7 @@ export function SasquatchProDialog({- Pays to skatespots@minibits.cash over Lightning. Bound to your npub. + Pays to ⚡ {PRO_LIGHTNING_ADDRESS} over Lightning. Bound to your npub.
)} diff --git a/src/hooks/useListingRestrictions.ts b/src/hooks/useListingRestrictions.ts index 7f9c4da..eae15b9 100644 --- a/src/hooks/useListingRestrictions.ts +++ b/src/hooks/useListingRestrictions.ts @@ -6,8 +6,9 @@ import { useLocalStorage } from '@/hooks/useLocalStorage'; import { MARKETPLACE_ITEM_KIND, SKATE_SPOT_KIND, SKATE_RELAY } from '@/lib/types'; -// Platform fee destination -export const PLATFORM_LIGHTNING_ADDRESS = 'skatespots@minibits.cash'; +// Platform fee destination (single source of truth: src/lib/platform.ts) +import { PLATFORM_LIGHTNING_ADDRESS } from '@/lib/platform'; +export { PLATFORM_LIGHTNING_ADDRESS }; // Platform owner pubkeys - always trusted, never pay fees export const PLATFORM_OWNER_PUBKEYS = [ diff --git a/src/lib/platform.ts b/src/lib/platform.ts index 8429d5c..fe5afb3 100644 --- a/src/lib/platform.ts +++ b/src/lib/platform.ts @@ -26,3 +26,10 @@ export function getPlatform(): string { return 'web'; } } + +/** + * SkateSpots platform Lightning address. Receives Sasquatch Pro passes AND + * marketplace listing fees — the same address, deliberately. Single source of + * truth: never re-type it elsewhere (a typo would send money nowhere). + */ +export const PLATFORM_LIGHTNING_ADDRESS = 'skatespots@minibits.cash'; diff --git a/src/lib/sasquatchPro.ts b/src/lib/sasquatchPro.ts index c97ab53..c7b3132 100644 --- a/src/lib/sasquatchPro.ts +++ b/src/lib/sasquatchPro.ts @@ -12,8 +12,8 @@ * future verifier can validate it retroactively. */ -/** Platform Lightning address that receives Pro payments. */ -export const PRO_LIGHTNING_ADDRESS = 'skatespots@minibits.cash'; +/** Platform Lightning address that receives Pro payments (same as the fee address). */ +export { PLATFORM_LIGHTNING_ADDRESS as PRO_LIGHTNING_ADDRESS } from '@/lib/platform'; export interface ProTier { id: string; diff --git a/src/pages/CreateTourPage.tsx b/src/pages/CreateTourPage.tsx index 67460e3..3068d52 100644 --- a/src/pages/CreateTourPage.tsx +++ b/src/pages/CreateTourPage.tsx @@ -14,6 +14,7 @@ import { useCurrentUser } from '@/hooks/useCurrentUser'; import { useUploadFile } from '@/hooks/useUploadFile'; import { useShops } from '@/hooks/useShops'; import { sanitizeUrl } from '@/lib/sanitizeUrl'; +import { PLATFORM_LIGHTNING_ADDRESS } from '@/lib/platform'; import { useToast } from '@/hooks/useToast'; import { LoginArea } from '@/components/auth/LoginArea'; import { Nip05Required } from '@/components/Nip05Required'; @@ -784,7 +785,7 @@ export default function CreateTourPage({ existing }: { existing?: SkateTour } = international: '5', destruction: '5', }; - tags.push(['zap-split', 'skatespots@minibits.cash', platformFees[tourCategory]]); + tags.push(['zap-split', PLATFORM_LIGHTNING_ADDRESS, platformFees[tourCategory]]); // NIP-31 alt tag const locationText = tourCategory === 'destruction' || tourCategory === 'international'