From bf9b094ee6b0025df4a3484b2e108fe891e7a426 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed Date: Thu, 18 Apr 2024 17:30:01 +0200 Subject: [PATCH 1/5] time to renew your core --- .../[network]/(App)/bulkcore1/TimeSection.tsx | 6 ++++- .../walletStatus/BuyWalletStatus.tsx | 25 ++++++++++++++++++- src/config/network.ts | 2 +- src/utils/broker/saleStatus.ts | 12 ++++++--- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/app/[network]/(App)/bulkcore1/TimeSection.tsx b/src/app/[network]/(App)/bulkcore1/TimeSection.tsx index 3c70be33..c359f072 100644 --- a/src/app/[network]/(App)/bulkcore1/TimeSection.tsx +++ b/src/app/[network]/(App)/bulkcore1/TimeSection.tsx @@ -5,6 +5,7 @@ import WalletStatus from '@/components/walletStatus/WalletStatus' import { network_list } from '@/config/network' import { useCurrentBlockNumber, useSubstrateQuery } from '@/hooks/useSubstrateQuery' import { saleStatus } from '@/utils/broker' +import { StatusCode } from '@/utils/broker/saleStatus' import { getChainFromPath } from '@/utils/common/chainPath' import { ConfigurationType, @@ -59,10 +60,11 @@ export default function BrokerSaleInfo() { // Update saleStage every second based on the currentBlockNumber const [saleStage, setSaleStage] = useState('') const [saleTitle, setSaleTitle] = useState('') + const [statusCode, setStatusCode] = useState(null) const [timeRemaining, setTimeRemaining] = useState('') useEffect(() => { if (saleInfo && configuration && brokerConstants) { - const { statusMessage, timeRemaining, statusTitle } = saleStatus( + const { statusMessage, timeRemaining, statusTitle, statusCode } = saleStatus( currentBlockNumber, saleInfo, configuration, @@ -71,6 +73,7 @@ export default function BrokerSaleInfo() { setTimeRemaining(timeRemaining) setSaleTitle(statusTitle) setSaleStage(statusMessage) + setStatusCode(statusCode) } }, [currentBlockNumber, saleInfo, configuration, brokerConstants]) @@ -181,6 +184,7 @@ export default function BrokerSaleInfo() { saleInfo={saleInfo} formatPrice={`${(currentPrice / 10 ** 12).toFixed(8)} ${tokenSymbol}`} currentPrice={currentPrice} + statusCode={statusCode} /> diff --git a/src/components/walletStatus/BuyWalletStatus.tsx b/src/components/walletStatus/BuyWalletStatus.tsx index 970e05c7..64309c28 100644 --- a/src/components/walletStatus/BuyWalletStatus.tsx +++ b/src/components/walletStatus/BuyWalletStatus.tsx @@ -2,25 +2,31 @@ import PurchaseInteractor from '@/components/broker/extrinsics/PurchaseInteracto import SecondaryButton from '@/components/button/SecondaryButton' import CuteInfo from '@/components/info/CuteInfo' import { ConnectButton } from '@/components/web3/ConnectButton' +import { StatusCode } from '@/utils/broker/saleStatus' +import { goToChainRoute } from '@/utils/common/chainPath' import { truncateHash } from '@/utils/truncateHash' import { encodeAddress } from '@polkadot/util-crypto' import { SaleInfoType, useBalance, useInkathon } from '@poppyseed/lastic-sdk' import Image from 'next/image' +import { usePathname } from 'next/navigation' import React from 'react' type BuyWalletStatusType = { saleInfo: SaleInfoType formatPrice: string currentPrice: number + statusCode: StatusCode } const BuyWalletStatus: React.FC = ({ saleInfo, formatPrice, currentPrice, + statusCode, }) => { const { activeAccount, activeChain } = useInkathon() const { balanceFormatted, balance } = useBalance(activeAccount?.address, true) + const pathname = usePathname() let inputPurchasePrice = Math.floor(currentPrice * 1.02) @@ -39,12 +45,29 @@ const BuyWalletStatus: React.FC = ({ ) } + if (statusCode === StatusCode.Interlude) { + return ( +
+
+ + +
+
+ ) + } + if (saleInfo.coresSold >= saleInfo.coresOffered) { return (
-
) diff --git a/src/config/network.ts b/src/config/network.ts index 6370ddf1..7674912f 100644 --- a/src/config/network.ts +++ b/src/config/network.ts @@ -164,7 +164,7 @@ export const network_list: NetworkInfo = { leadinLength: 50400, regionLength: 5040, idealBulkProportion: 100, - limitCoresOffered: 3, + limitCoresOffered: null, renewalBump: 3, contributionTimeout: 5040, }, diff --git a/src/utils/broker/saleStatus.ts b/src/utils/broker/saleStatus.ts index 1a6eb6d4..23c84e08 100644 --- a/src/utils/broker/saleStatus.ts +++ b/src/utils/broker/saleStatus.ts @@ -5,7 +5,7 @@ import { blocksToTimeFormat, } from '@poppyseed/lastic-sdk' -enum StatusCode { +export enum StatusCode { Interlude = 'interlude', LeadIn = 'leadIn', Purchase = 'purchase', @@ -18,7 +18,7 @@ interface StatusInfo { const statusInfoMap: Record = { [StatusCode.Interlude]: { - statusTitle: 'Interlude Period', + statusTitle: 'Renewal Period', statusMessage: 'Time to renew your core!', }, [StatusCode.LeadIn]: { @@ -85,7 +85,12 @@ export function saleStatus( saleInfo: SaleInfoType, config: ConfigurationType, constant: BrokerConstantsType, -): { statusTitle: string; statusMessage: string; timeRemaining: string } { +): { + statusTitle: string + statusMessage: string + timeRemaining: string + statusCode: StatusCode +} { // Check issue https://github.com/LasticXYZ/LasticUI/issues/94 to see why this is commented out // const saleEnds = getSaleEnds(saleInfo, config, constant) @@ -103,5 +108,6 @@ export function saleStatus( statusTitle, statusMessage, timeRemaining, + statusCode, } } From 1464f2b18d703a68f3ed1795fa18b87a8b73142c Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed Date: Thu, 18 Apr 2024 17:33:40 +0200 Subject: [PATCH 2/5] fix --- src/components/walletStatus/BuyWalletStatus.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/walletStatus/BuyWalletStatus.tsx b/src/components/walletStatus/BuyWalletStatus.tsx index 64309c28..60f9e7e6 100644 --- a/src/components/walletStatus/BuyWalletStatus.tsx +++ b/src/components/walletStatus/BuyWalletStatus.tsx @@ -15,7 +15,7 @@ type BuyWalletStatusType = { saleInfo: SaleInfoType formatPrice: string currentPrice: number - statusCode: StatusCode + statusCode: StatusCode | null } const BuyWalletStatus: React.FC = ({ @@ -30,7 +30,7 @@ const BuyWalletStatus: React.FC = ({ let inputPurchasePrice = Math.floor(currentPrice * 1.02) - if (!activeAccount) { + if (!activeAccount || !statusCode) { return (
From 219750490bb11bf12df8d7893f3a906b055ba6b8 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed Date: Thu, 18 Apr 2024 17:40:34 +0200 Subject: [PATCH 3/5] removing redundant info --- .../core/[number]/[regionId]/[mask]/Core.tsx | 3 +-- src/components/cores/CoreItemExtensive.tsx | 23 ++++++------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx b/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx index 0e4452d2..fa840648 100644 --- a/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx +++ b/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx @@ -149,12 +149,11 @@ const BrokerRegionData: FC = ({ coreNb, regionId, mask })
= ({ amITheOwner, paid, coreNumber, - size, phase, cost, currencyCost, @@ -41,7 +39,7 @@ const CoreItemExtensive: React.FC = ({
Lastic Logo
-
+
Owner: {toShortAddress(owner)} {amITheOwner ? '(You)' : '(Not you)'} @@ -59,21 +57,14 @@ const CoreItemExtensive: React.FC = ({
-
-

Size: {size} core

-

Phase: {phase}

+
+

Mask: {mask}

-
-

- Cost: {cost} {currencyCost} -

+
+

Begin: {begin}

-
-
-

Mask: {mask}

-

Begin: {begin}

-

End: {end}

-
+
+

End: {end}

From b7bc4d3d362e974a4431905fd8cc682a54c35424 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed Date: Thu, 18 Apr 2024 19:06:59 +0200 Subject: [PATCH 4/5] successful interactions --- src/components/button/PrimaryButton.tsx | 2 +- .../button/PrimaryButtonWithAutoTeleport.tsx | 30 +------- .../walletStatus/BuyWalletStatus.tsx | 73 ++++++++++++++++--- 3 files changed, 65 insertions(+), 40 deletions(-) diff --git a/src/components/button/PrimaryButton.tsx b/src/components/button/PrimaryButton.tsx index bc014e9b..582716a9 100644 --- a/src/components/button/PrimaryButton.tsx +++ b/src/components/button/PrimaryButton.tsx @@ -20,7 +20,7 @@ const PrimaryButton: FC = ({ diff --git a/src/components/button/PrimaryButtonWithAutoTeleport.tsx b/src/components/button/PrimaryButtonWithAutoTeleport.tsx index 3ae741fa..7ed37ff4 100644 --- a/src/components/button/PrimaryButtonWithAutoTeleport.tsx +++ b/src/components/button/PrimaryButtonWithAutoTeleport.tsx @@ -2,9 +2,8 @@ import PrimaryButton, { PrimaryButtonProps } from '@/components/button/PrimaryBu import ModalNotification from '@/components/modal/ModalNotification' import ModalTranasaction from '@/components/modal/ModalTransaction' import { useTeleport } from '@/hooks/useTeleport' -import { FormControlLabel, Switch } from '@mui/material' import { BN } from '@polkadot/util' -import { FC, useState } from 'react' +import { FC } from 'react' export interface PrimaryButtonWithAutoTeleportProps extends PrimaryButtonProps { /** Amount needed for the action. Determines if teleport will happen or not. */ @@ -21,7 +20,7 @@ const PrimaryButtonWithAutoTeleport: FC = ({ amountNeeded, teleportTo, }) => { - const [autoTeleportEnabled, setAutoTeleportEnabled] = useState(true) + const autoTeleportEnabled = true const { autoTeleport, notification, setNotification, isTeleporting, teleportMessage } = useTeleport(onClick) @@ -35,19 +34,6 @@ const PrimaryButtonWithAutoTeleport: FC = ({ return (
- setAutoTeleportEnabled(e.target.checked)} - size="small" - sx={switchStyle} - /> - } - label="Auto Teleport" - /> - = ({ ) } -const switchStyle = { - '& .MuiSwitch-switchBase.Mui-checked': { - color: '#FF6370', - }, - '& .MuiSwitch-switchBase + .MuiSwitch-track': { - backgroundColor: '#E6B3CA', - }, - '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': { - backgroundColor: '#E6B3CA', - }, -} - export default PrimaryButtonWithAutoTeleport diff --git a/src/components/walletStatus/BuyWalletStatus.tsx b/src/components/walletStatus/BuyWalletStatus.tsx index 60f9e7e6..514885fe 100644 --- a/src/components/walletStatus/BuyWalletStatus.tsx +++ b/src/components/walletStatus/BuyWalletStatus.tsx @@ -2,11 +2,12 @@ import PurchaseInteractor from '@/components/broker/extrinsics/PurchaseInteracto import SecondaryButton from '@/components/button/SecondaryButton' import CuteInfo from '@/components/info/CuteInfo' import { ConnectButton } from '@/components/web3/ConnectButton' +import { parseNativeTokenToHuman } from '@/utils/account/token' import { StatusCode } from '@/utils/broker/saleStatus' import { goToChainRoute } from '@/utils/common/chainPath' import { truncateHash } from '@/utils/truncateHash' import { encodeAddress } from '@polkadot/util-crypto' -import { SaleInfoType, useBalance, useInkathon } from '@poppyseed/lastic-sdk' +import { SaleInfoType, useBalance, useInkathon, useRelayBalance } from '@poppyseed/lastic-sdk' import Image from 'next/image' import { usePathname } from 'next/navigation' import React from 'react' @@ -25,10 +26,27 @@ const BuyWalletStatus: React.FC = ({ statusCode, }) => { const { activeAccount, activeChain } = useInkathon() - const { balanceFormatted, balance } = useBalance(activeAccount?.address, true) + const { + freeBalance: balance, + tokenSymbol, + tokenDecimals, + } = useBalance(activeAccount?.address, true) + const { freeBalance: relayBalance } = useRelayBalance(activeAccount?.address, true) + + const formattedCoreBalance = parseNativeTokenToHuman({ + paid: balance?.toString(), + decimals: tokenDecimals, + reduceDecimals: 2, + }) + const formattedrelayBalance = parseNativeTokenToHuman({ + paid: relayBalance?.toString(), + decimals: tokenDecimals, + reduceDecimals: 2, + }) + const pathname = usePathname() - let inputPurchasePrice = Math.floor(currentPrice * 1.02) + let inputPurchasePrice = Math.ceil(currentPrice) if (!activeAccount || !statusCode) { return ( @@ -110,16 +128,49 @@ const BuyWalletStatus: React.FC = ({ Using account:{' '} {truncateHash(encodeAddress(activeAccount.address, activeChain?.ss58Prefix || 42), 8)}
-
- {balance - ? balance.toNumber() > 0 - ? `Balance: ${balanceFormatted}` - : 'You have 0 balance on this account' - : 'Loading Balance'} +
+ {balance ? ( +
+ {' '} + Balance on Coretime: {formattedCoreBalance} {tokenSymbol} +
+ ) : ( + 'Loading Balance' + )} + {relayBalance ? ( +
+ {' '} + Balance on Relay: {formattedrelayBalance} {tokenSymbol} +
+ ) : ( + 'Loading Relay Balance' + )} +
+
+ {balance && + relayBalance && + balance.toNumber() < inputPurchasePrice && + relayBalance.toNumber() < inputPurchasePrice ? ( +
Insufficient balance for purchase.
+ ) : null}
-
- +
+ {balance && + relayBalance && + balance.toNumber() < inputPurchasePrice && + relayBalance.toNumber() >= inputPurchasePrice ? ( +
Your assets will be autoteleported.
+ ) : null}
+ {balance && + relayBalance && + balance.toNumber() > 0 && + (balance.toNumber() > inputPurchasePrice || + relayBalance.toNumber() > inputPurchasePrice) ? ( +
+ +
+ ) : null}
From 13337d74c3633c83cad9f3d0f3e2475f6f0f352c Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed Date: Thu, 18 Apr 2024 19:13:09 +0200 Subject: [PATCH 5/5] changing color to pink --- src/app/(Website)/WorldMap.tsx | 4 +++- src/app/[network]/(App)/bulkcore1/CoreUtilisation.tsx | 2 +- src/app/[network]/(App)/bulkcore1/TimeSection.tsx | 2 +- .../(App)/core/[number]/[regionId]/[mask]/Core.tsx | 2 +- src/components/activityBoxes/BoxesContainer.tsx | 6 +++--- src/components/broker/extrinsics/PartitionCoreModal.tsx | 4 ++-- src/components/button/PrimaryButton.tsx | 4 ++-- src/components/button/PrimaryButtonWeb.tsx | 4 ++-- src/components/button/SecondaryButtonWeb.tsx | 2 +- src/components/button/SideButton.tsx | 2 +- src/components/card/AboutCard.tsx | 2 +- src/components/timelineComp/TimelineComp.tsx | 4 ++-- src/components/timelineComp/TimelineUtilize.tsx | 4 ++-- src/components/timelineComp/TimelineUtilizeCore.tsx | 4 ++-- 14 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/app/(Website)/WorldMap.tsx b/src/app/(Website)/WorldMap.tsx index 8dfac2f5..fbc78bdb 100644 --- a/src/app/(Website)/WorldMap.tsx +++ b/src/app/(Website)/WorldMap.tsx @@ -18,7 +18,9 @@ const WorldMap = () => {
{/* Text section */}
-
Join us
+
+ Join us +

Join traders and builders around the world

diff --git a/src/app/[network]/(App)/bulkcore1/CoreUtilisation.tsx b/src/app/[network]/(App)/bulkcore1/CoreUtilisation.tsx index 9b9fd9ef..bfc2a779 100644 --- a/src/app/[network]/(App)/bulkcore1/CoreUtilisation.tsx +++ b/src/app/[network]/(App)/bulkcore1/CoreUtilisation.tsx @@ -61,7 +61,7 @@ const CoreUtilisation: React.FC = () => { diff --git a/src/app/[network]/(App)/bulkcore1/TimeSection.tsx b/src/app/[network]/(App)/bulkcore1/TimeSection.tsx index c359f072..ce6726e5 100644 --- a/src/app/[network]/(App)/bulkcore1/TimeSection.tsx +++ b/src/app/[network]/(App)/bulkcore1/TimeSection.tsx @@ -151,7 +151,7 @@ export default function BrokerSaleInfo() {
-
+
{saleTitle}
diff --git a/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx b/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx index fa840648..52f2a0de 100644 --- a/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx +++ b/src/app/[network]/(App)/core/[number]/[regionId]/[mask]/Core.tsx @@ -171,7 +171,7 @@ const BrokerRegionData: FC = ({ coreNb, regionId, mask })
-
+
{saleTitle}
diff --git a/src/components/activityBoxes/BoxesContainer.tsx b/src/components/activityBoxes/BoxesContainer.tsx index b481fc60..5d9b29dc 100644 --- a/src/components/activityBoxes/BoxesContainer.tsx +++ b/src/components/activityBoxes/BoxesContainer.tsx @@ -101,21 +101,21 @@ const SquareBoxesContainer: React.FC = ({
{squareBoxes}
@@ -29,7 +29,7 @@ const PrimaryButton: FC = ({ return ( {title} diff --git a/src/components/button/PrimaryButtonWeb.tsx b/src/components/button/PrimaryButtonWeb.tsx index b333854c..ef58ea67 100644 --- a/src/components/button/PrimaryButtonWeb.tsx +++ b/src/components/button/PrimaryButtonWeb.tsx @@ -20,7 +20,7 @@ const PrimaryButtonWeb: FC = ({ @@ -29,7 +29,7 @@ const PrimaryButtonWeb: FC = ({ return ( {title} diff --git a/src/components/button/SecondaryButtonWeb.tsx b/src/components/button/SecondaryButtonWeb.tsx index dbede47b..846da624 100644 --- a/src/components/button/SecondaryButtonWeb.tsx +++ b/src/components/button/SecondaryButtonWeb.tsx @@ -20,7 +20,7 @@ const SecondaryButtonWeb: FC = ({ diff --git a/src/components/button/SideButton.tsx b/src/components/button/SideButton.tsx index 2ff6da42..b40c42c1 100644 --- a/src/components/button/SideButton.tsx +++ b/src/components/button/SideButton.tsx @@ -29,7 +29,7 @@ const SideButton: FC = ({ return ( {title} diff --git a/src/components/card/AboutCard.tsx b/src/components/card/AboutCard.tsx index b753c862..da9c2742 100644 --- a/src/components/card/AboutCard.tsx +++ b/src/components/card/AboutCard.tsx @@ -11,7 +11,7 @@ const AboutCard: React.FC = ({ title, description }) => {

{title}

-
+

{description}

diff --git a/src/components/timelineComp/TimelineComp.tsx b/src/components/timelineComp/TimelineComp.tsx index 147b3e11..f2d0d18e 100644 --- a/src/components/timelineComp/TimelineComp.tsx +++ b/src/components/timelineComp/TimelineComp.tsx @@ -25,9 +25,9 @@ const Slider: FC = ({ currentBlockNumber, saleInfo, config, co return (
-
+
diff --git a/src/components/timelineComp/TimelineUtilize.tsx b/src/components/timelineComp/TimelineUtilize.tsx index 7699d7f7..a92a29f9 100644 --- a/src/components/timelineComp/TimelineUtilize.tsx +++ b/src/components/timelineComp/TimelineUtilize.tsx @@ -48,9 +48,9 @@ const Slider: FC = ({ currentRelayBlock, saleInfo, config, con {regionBeginTimestamp !== null ? regionBeginTimestamp : 'Loading...'} Region End Timestamp: {regionEndTimestamp !== null ? regionEndTimestamp : 'Loading...'} */}
-
+
diff --git a/src/components/timelineComp/TimelineUtilizeCore.tsx b/src/components/timelineComp/TimelineUtilizeCore.tsx index 272874ca..4b087254 100644 --- a/src/components/timelineComp/TimelineUtilizeCore.tsx +++ b/src/components/timelineComp/TimelineUtilizeCore.tsx @@ -48,9 +48,9 @@ const Slider: FC = ({ currentRelayBlock, beginRegion, config, {regionBeginTimestamp !== null ? regionBeginTimestamp : 'Loading...'} Region End Timestamp: {regionEndTimestamp !== null ? regionEndTimestamp : 'Loading...'} */}
-
+