Skip to content

Commit

Permalink
feat: added total supply fetching, temporarily removed protocol history
Browse files Browse the repository at this point in the history
  • Loading branch information
Polybius93 committed Dec 5, 2023
1 parent e63740b commit 54b177d
Show file tree
Hide file tree
Showing 14 changed files with 186 additions and 177 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
import { HStack, Text, VStack } from '@chakra-ui/react';
import { HStack, Text, VStack } from "@chakra-ui/react";

interface LockScreenProtocolFeeProps {
assetAmount?: number;
bitcoinPrice?: number;
}

function calculateProtocolFee(amount: number, protocolFeePercentage: number): string {
function calculateProtocolFee(
amount: number,
protocolFeePercentage: number,
): string {
return (amount * protocolFeePercentage).toFixed(8);
}

function calculateProtocolFeeInUSD(
assetAmount: number,
usdPrice: number,
protocolFeePercentage: number
protocolFeePercentage: number,
): string {
return (assetAmount * protocolFeePercentage * usdPrice).toFixed(8);
}
Expand All @@ -23,26 +26,26 @@ export function LockScreenProtocolFee({
}: LockScreenProtocolFeeProps): React.JSX.Element {
return (
<VStack
alignItems={'end'}
p={'15px'}
w={'100%'}
border={'1px solid'}
borderRadius={'md'}
borderColor={'border.cyan.01'}
alignItems={"end"}
p={"15px"}
w={"100%"}
border={"1px solid"}
borderRadius={"md"}
borderColor={"border.cyan.01"}
>
<HStack justifyContent={'space-between'} w={'100%'}>
<Text color={'white.02'} fontSize={'sm'}>
<HStack justifyContent={"space-between"} w={"100%"}>
<Text color={"white.02"} fontSize={"sm"}>
Protocol Fee
</Text>
<Text color={'white.01'} fontSize={'sm'} fontWeight={800}>
<Text color={"white.01"} fontSize={"sm"} fontWeight={800}>
{assetAmount && calculateProtocolFee(assetAmount, 0.0001)} BTC
</Text>{' '}
</Text>{" "}
</HStack>
<Text color={'white.01'} fontSize={'sm'}>
={' '}
<Text color={"white.01"} fontSize={"sm"}>
={" "}
{assetAmount &&
bitcoinPrice &&
calculateProtocolFeeInUSD(assetAmount, bitcoinPrice, 0.0001)}{' '}
calculateProtocolFeeInUSD(assetAmount, bitcoinPrice, 0.0001)}{" "}
$
</Text>
</VStack>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ export function LockScreen(): React.JSX.Element {
return (
<VStack w={"300px"} spacing={"15px"}>
<VaultCard vault={readyVaults[0]} isSelected />
<LockScreenProtocolFee assetAmount={readyVaults[0].collateral} bitcoinPrice={bitcoin?.bitcoinPrice}/>
<LockScreenProtocolFee
assetAmount={readyVaults[0].collateral}
bitcoinPrice={bitcoin?.bitcoinPrice}
/>
<Button
isLoading={isSubmitting}
variant={"account"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
import { Skeleton, Text, VStack } from "@chakra-ui/react";
import { ProtocolHistory } from "@components/protocol-history/protocol-history";
// import { ProtocolHistory } from "@components/protocol-history/protocol-history";

import { useContext } from "react";
import { BlockchainContext } from "../../../../providers/blockchain-context-provider";
import { ProtocolSummaryStackLayout } from "./components/protocol-summary-stack.layout";

export function ProtocolSummaryStack(): React.JSX.Element {
const blockchainContext = useContext(BlockchainContext)
const totalSupply = blockchainContext?.ethereum.totalSupply
const bitcoinPrice = blockchainContext?.bitcoin.bitcoinPrice
const blockchainContext = useContext(BlockchainContext);
const totalSupply = blockchainContext?.ethereum.totalSupply;
const bitcoinPrice = blockchainContext?.bitcoin.bitcoinPrice;
return (
<ProtocolSummaryStackLayout>
<VStack alignItems={"start"} h={"250px"} w={"50%"} spacing={"15px"}>
<Text alignContent={"start"} color={"white"} fontSize={"lg"}>
TVL
</Text>
<VStack alignItems={"start"} w={"100%"} spacing={"0px"}>
<Skeleton isLoaded={totalSupply !== undefined} w={'100%'}>
<Text
alignContent={"start"}
color={"white"}
fontSize={"3xl"}
fontWeight={"semibold"}
>
{totalSupply} dlcBTC
</Text>
<Skeleton isLoaded={totalSupply !== undefined} w={"100%"}>
<Text
alignContent={"start"}
color={"white"}
fontSize={"3xl"}
fontWeight={"semibold"}
>
{totalSupply} dlcBTC
</Text>
</Skeleton>
<Skeleton isLoaded={totalSupply !== undefined} w={'100%'}>
<Text alignContent={"start"} color={"white"} fontSize={"lg"}>
${totalSupply && bitcoinPrice ? (totalSupply * bitcoinPrice).toLocaleString() : (0)}
</Text>
<Skeleton isLoaded={totalSupply !== undefined} w={"100%"}>
<Text alignContent={"start"} color={"white"} fontSize={"lg"}>
$
{totalSupply && bitcoinPrice
? (totalSupply * bitcoinPrice).toLocaleString()
: 0}
</Text>
</Skeleton>
</VStack>
</VStack>
<ProtocolHistory />
{/* <ProtocolHistory /> */}
</ProtocolSummaryStackLayout>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ interface TransactionFormInputProps {

export function TransactionFormInput({
values,
bitcoinPrice
bitcoinPrice,
}: TransactionFormInputProps): React.JSX.Element {
return (
<VStack
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ export function TransactionForm(): React.JSX.Element {
<Text w={"100%"} color={"accent.cyan.01"}>
Amount of dlcBTC you want to mint:
</Text>
<TransactionFormInput values={values} bitcoinPrice={bitcoinPrice} />
<TransactionFormInput
values={values}
bitcoinPrice={bitcoinPrice}
/>
<FormErrorMessage fontSize={"xs"}>
{errors.amount}
</FormErrorMessage>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,48 @@
import { HStack, Image, Text } from "@chakra-ui/react";
import { CustomSkeleton } from "@components/custom-skeleton/custom-skeleton";
// /* eslint-disable */

interface ProtocolHistoryItem {
id: string;
value: string;
uuid: string;
date: string;
}
// import { HStack, Image, Text } from "@chakra-ui/react";
// import { CustomSkeleton } from "@components/custom-skeleton/custom-skeleton";

export function ProtocolHistoryItem(
protocolHistoryItem: ProtocolHistoryItem,
): React.JSX.Element {
if (!protocolHistoryItem) return <CustomSkeleton height={"35px"} />;
// interface ProtocolHistoryItem {
// id: string;
// value: string;
// uuid: string;
// date: string;
// }

return (
<HStack
justifyContent={"space-between"}
p={"10px"}
w={"300px"}
h={"35px"}
bgGradient={"linear(to-r, background.content.01, background.content.02)"}
blendMode={"screen"}
border={"1px solid"}
borderRadius={"md"}
borderColor={"border.white.01"}
>
<HStack spacing={"15px"}>
<Image
src={"/images/logos/dlc-btc-logo.svg"}
alt={"dlcBTC Logo"}
boxSize={"20px"}
/>
<Text color={"white"} fontWeight={800}>
{protocolHistoryItem.value}
</Text>
<Text color={"white"} fontSize={"sm"}>
{protocolHistoryItem.uuid}
</Text>
</HStack>
<Text color={"white"} fontSize={"sm"}>
{protocolHistoryItem.date}
</Text>
</HStack>
);
}
// export function ProtocolHistoryItem(
// protocolHistoryItem: ProtocolHistoryItem,
// ): React.JSX.Element {
// if (!protocolHistoryItem) return <CustomSkeleton height={"35px"} />;

// return (
// <HStack
// justifyContent={"space-between"}
// p={"10px"}
// w={"300px"}
// h={"35px"}
// bgGradient={"linear(to-r, background.content.01, background.content.02)"}
// blendMode={"screen"}
// border={"1px solid"}
// borderRadius={"md"}
// borderColor={"border.white.01"}
// >
// <HStack spacing={"15px"}>
// <Image
// src={"/images/logos/dlc-btc-logo.svg"}
// alt={"dlcBTC Logo"}
// boxSize={"20px"}
// />
// <Text color={"white"} fontWeight={800}>
// {protocolHistoryItem.value}
// </Text>
// <Text color={"white"} fontSize={"sm"}>
// {protocolHistoryItem.uuid}
// </Text>
// </HStack>
// <Text color={"white"} fontSize={"sm"}>
// {protocolHistoryItem.date}
// </Text>
// </HStack>
// );
// }
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { VStack } from "@chakra-ui/react";
import { FadeLayer } from "@components/fade-layer/fade-layer";
import { HasChildren } from "@models/has-children";
// import { VStack } from "@chakra-ui/react";
// import { FadeLayer } from "@components/fade-layer/fade-layer";
// import { HasChildren } from "@models/has-children";

export function ProtocolHistoryLayout({
children,
}: HasChildren): React.JSX.Element {
return (
<VStack h={"250px"}>
<FadeLayer height={"195px"} fadeHeight={"25px"}>
<VStack alignItems={"start"} h={"195px"} spacing={"15px"} w={"50%"}>
{children}
</VStack>
</FadeLayer>
</VStack>
);
}
// export function ProtocolHistoryLayout({
// children,
// }: HasChildren): React.JSX.Element {
// return (
// <VStack h={"250px"}>
// <FadeLayer height={"195px"} fadeHeight={"25px"}>
// <VStack alignItems={"start"} h={"195px"} spacing={"15px"} w={"50%"}>
// {children}
// </VStack>
// </FadeLayer>
// </VStack>
// );
// }
50 changes: 25 additions & 25 deletions src/app/components/protocol-history/protocol-history.tsx
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
import { Text, VStack } from "@chakra-ui/react";
// // import { Text, VStack } from "@chakra-ui/react";

import { exampleProtocolHistoryItems } from "@shared/examples/example-protocol-history-items";
// // import { exampleProtocolHistoryItems } from "@shared/examples/example-protocol-history-items";

import { ProtocolHistoryItem } from "./components/protocol-history-item";
import { ProtocolHistoryLayout } from "./components/protocol-history.layout";
import { scrollBarCSS } from "../../../styles/css-styles";
// // import { ProtocolHistoryItem } from "./components/protocol-history-item";
// import { ProtocolHistoryLayout } from "./components/protocol-history.layout";
// // import { scrollBarCSS } from "../../../styles/css-styles";

export function ProtocolHistory(): React.JSX.Element {
return (
<ProtocolHistoryLayout>
<Text alignContent={"start"} color={"white.01"} fontSize={"lg"}>
Protocol History
</Text>
<VStack
overflowY={"scroll"}
overflowX={"hidden"}
alignItems={"start"}
pr={"15px"}
css={scrollBarCSS}
>
{exampleProtocolHistoryItems.map((item) => (
<ProtocolHistoryItem key={item.id} {...item} />
))}
</VStack>
</ProtocolHistoryLayout>
);
}
// export function ProtocolHistory(): React.JSX.Element {
// return (
// <ProtocolHistoryLayout>
// {/* <Text alignContent={"start"} color={"white.01"} fontSize={"lg"}>
// Protocol History
// </Text>
// <VStack
// overflowY={"scroll"}
// overflowX={"hidden"}
// alignItems={"start"}
// pr={"15px"}
// css={scrollBarCSS}
// >
// {exampleProtocolHistoryItems.map((item) => (
// <ProtocolHistoryItem key={item.id} {...item} />
// ))}
// </VStack> */}
// </ProtocolHistoryLayout>
// );
// }
Loading

0 comments on commit 54b177d

Please sign in to comment.