diff --git a/src/components/MeritSummaryCard.svelte b/src/components/MeritSummaryCard.svelte
index 921e241..713eb73 100644
--- a/src/components/MeritSummaryCard.svelte
+++ b/src/components/MeritSummaryCard.svelte
@@ -11,7 +11,7 @@
import { Separator } from '$lib/components/ui/separator/index.js';
import * as Table from '@/components/ui/table';
import { Rocket, RocketATagFilter } from '@/event_helpers/rockets';
- import { getRocketURL, unixToRelativeTime } from '@/helpers';
+ import { getCuckPrice, getRocketURL, unixToRelativeTime } from '@/helpers';
import { derived } from 'svelte/store';
import { goto } from '$app/navigation';
@@ -25,6 +25,7 @@
export let merit: MeritRequest;
export let rocket: NDKEvent;
+ let cuckPrice: number | undefined = undefined;
let result: VoteDirection | undefined;
@@ -41,6 +42,18 @@
_votes.unsubscribe();
});
+ $: {
+ if (!cuckPrice) {
+ getCuckPrice().then((data) => {
+ if (data instanceof Error) {
+ console.error(data);
+ } else {
+ cuckPrice = data;
+ }
+ });
+ }
+ }
+
let votes = derived(_votes, ($_votes) => {
return new MapOfVotes($_votes, parsedRocket, merit).Votes;
});
@@ -136,7 +149,8 @@
Approximate value of {merit.Sats.toLocaleString()} sats in CuckLoserBucks
- ${merit.Sats.toLocaleString()}
+ ${cuckPrice ? ((merit.Sats / 100000000) * cuckPrice).toFixed(2) : 'Loading'}
diff --git a/src/lib/helpers.ts b/src/lib/helpers.ts
index a3ae1c2..6d0b63e 100644
--- a/src/lib/helpers.ts
+++ b/src/lib/helpers.ts
@@ -56,3 +56,16 @@ export function unixToRelativeTime(timestamp: number): string {
return formattedDate;
}
}
+
+export async function getCuckPrice(): Promise {
+ try {
+ var url = 'https://api.coindesk.com/v1/bpi/currentprice.json';
+ var symbol = 'USD';
+ const data = await fetch(url);
+ const json = await data.json();
+ const cuckPrice = parseFloat(json.bpi[symbol].rate.replace(/,/g, ''));
+ return cuckPrice;
+ } catch (e) {
+ return e as Error;
+ }
+}