diff --git a/package.json b/package.json
index c86a47e..97e8da4 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "ghost-dao-interface",
"private": true,
- "version": "0.5.1",
+ "version": "0.5.2",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/src/components/Chip/Chip.jsx b/src/components/Chip/Chip.jsx
index a4d9117..f19cbe8 100644
--- a/src/components/Chip/Chip.jsx
+++ b/src/components/Chip/Chip.jsx
@@ -20,7 +20,7 @@ const StyledMuiChip = styled(MuiChip, {
: template === "gray"
? theme.colors.gray[500]
: template === "darkGray"
- ? theme.colors.gray[600]
+ ? theme.colors.primary[300]
: theme.colors.feedback[template]
: theme.palette.mode === "light"
? theme.colors.gray[90]
@@ -34,7 +34,7 @@ const StyledMuiChip = styled(MuiChip, {
: template === "gray"
? theme.colors.gray[10]
: template === "darkGray"
- ? theme.colors.gray[90]
+ ? theme.colors.gray[800]
: theme.colors.gray[600],
fontWeight: strong ? 700 : 450,
},
diff --git a/src/containers/Bond/Bonds.jsx b/src/containers/Bond/Bonds.jsx
index e880a4b..20ee595 100644
--- a/src/containers/Bond/Bonds.jsx
+++ b/src/containers/Bond/Bonds.jsx
@@ -57,7 +57,17 @@ const Bonds = ({ chainId, address, connect }) => {
}}
>
-
+
+
+ Active bonds
+
+
+ }
+ >
{
warmupLength={warmupInfo.expiry - epoch.number}
setPreClaimConfirmed={() => setPreClaimConfirmed(true)}
/>
-
+
+
+ Your Bonds
+
+
+ }
+ >
Payout Options
diff --git a/src/containers/Bridge/Bridge.jsx b/src/containers/Bridge/Bridge.jsx
index d159b5f..3fd6340 100644
--- a/src/containers/Bridge/Bridge.jsx
+++ b/src/containers/Bridge/Bridge.jsx
@@ -291,7 +291,7 @@ const Bridge = ({ chainId, address, config, connect }) => {
return (
<>
-
+
{
onClick={() => setBridgeAction(!bridgeAction)}
/>)}
{
- bridgeAction ? `Bridge $${ghstSymbol}` : "Transaction History"
+ bridgeAction ? `Bridge-In $${ghstSymbol}` : "Transaction History"
}
}
diff --git a/src/containers/Dex/Dex.jsx b/src/containers/Dex/Dex.jsx
index 073d8a7..9ab8196 100644
--- a/src/containers/Dex/Dex.jsx
+++ b/src/containers/Dex/Dex.jsx
@@ -186,7 +186,7 @@ const Dex = ({ chainId, address, connect }) => {
{
-
+
{
return (
-
+
{
-
+
diff --git a/src/containers/Governance/ProposalDetails.jsx b/src/containers/Governance/ProposalDetails.jsx
index bff84fa..88a3e06 100644
--- a/src/containers/Governance/ProposalDetails.jsx
+++ b/src/containers/Governance/ProposalDetails.jsx
@@ -115,13 +115,13 @@ const ProposalDetails = ({ chainId, address }) => {
setSelectedDiscussionUrl("dicks")} />
}
>
-
+
-
+
For: {formatNumber(forVotes.toString(), 2)} ({formatNumber(forVotes * HUNDRED / proposalQuorum, 1)}%)
-
+
Against: {formatNumber(againstVotes.toString(), 2)} ({formatNumber(againstVotes * HUNDRED / proposalQuorum, 1)}%)
@@ -218,7 +218,7 @@ const VotingTimeline = ({ proposalId, chainId }) => {
-
+
)
}
@@ -226,16 +226,33 @@ const VotingTimeline = ({ proposalId, chainId }) => {
const VotingTimelineItem = ({ isFirst, isLast, time, message }) => {
return (
-
+
+ {message}
+
+
- {!isFirst && }
-
- {!isLast && }
+
+
+
-
- {message}
- {new Date(time * 1000).toLocaleString()}
+
+
+ {new Date(time * 1000).toLocaleString()}
+
)
diff --git a/src/containers/Governance/components/GovernanceInfoText.jsx b/src/containers/Governance/components/GovernanceInfoText.jsx
index 114c516..f551d7f 100644
--- a/src/containers/Governance/components/GovernanceInfoText.jsx
+++ b/src/containers/Governance/components/GovernanceInfoText.jsx
@@ -9,10 +9,10 @@ const GovernanceInfoText = () => {
fontSize="0.875em"
lineHeight="15px"
>
- ghostDAO's adaptive governance system algorithmically sets proposal threshold based on activity.
+ ghostDAO’s adaptive governance system algorithmically sets minimum collateral based on activity.
Learn more here.
diff --git a/src/containers/Governance/components/Metric.jsx b/src/containers/Governance/components/Metric.jsx
index 8c39cdd..1b79ad7 100644
--- a/src/containers/Governance/components/Metric.jsx
+++ b/src/containers/Governance/components/Metric.jsx
@@ -1,6 +1,9 @@
import Metric from "../../../components/Metric/Metric";
import { formatCurrency, formatNumber } from "../../../helpers";
+import { DecimalBigNumber } from "../../../helpers/DecimalBigNumber";
+import { getTokenDecimals } from "../../../hooks/helpers";
+import { useTotalSupply } from "../../../hooks/tokens";
import {
useMinQuorum,
useProposalThreshold,
@@ -8,15 +11,22 @@ import {
} from "../../../hooks/governance";
export const MinQuorumPercentage = props => {
- const { percentage } = useMinQuorum(props.chainId);
+ const { numerator, denominator, percentage } = useMinQuorum(props.chainId);
+ const { totalSupply } = useTotalSupply(props.chainId, "GHST");
+ const decimals = getTokenDecimals(props.ghstSymbol);
+
+ const value = new DecimalBigNumber(
+ (totalSupply?._value ?? 0n) * numerator / denominator,
+ decimals
+ );
const _props = {
...props,
label: `Min Quorum`,
- tooltip: `Minimum quorum needed for proposal to be succeeded.`,
+ tooltip: `Minimum $${props.ghstSymbol} turnout required for the proposal to become valid`,
};
- if (percentage) _props.metric = `${formatNumber(percentage, 2)}%`;
+ if (percentage) _props.metric = `${formatCurrency(value?.toString(), 2, props.ghstSymbol)} (${formatNumber(percentage * 100, 2)}%)`;
else _props.isLoading = true;
return ;
@@ -28,7 +38,7 @@ export const ProposalThreshold = props => {
const _props = {
...props,
label: `$${props.ghstSymbol} Threshold`,
- tooltip: `Minimum $${props.ghstSymbol} amount to be locked to create proposal.`,
+ tooltip: `Minimum $${props.ghstSymbol} required to be locked to create a proposal`,
};
if (threshold) _props.metric = `${formatCurrency(threshold.toString(), 0, props.ghstSymbol)}`;
@@ -43,7 +53,7 @@ export const ProposalsCount = props => {
const _props = {
...props,
label: `Proposals Count`,
- tooltip: `How much proposals already passed.`,
+ tooltip: `Total proposals created`,
};
if (proposalsCount) _props.metric = proposalsCount.toString();
diff --git a/src/containers/Governance/components/ProposalDiscussion.jsx b/src/containers/Governance/components/ProposalDiscussion.jsx
index 9bf829b..56d4f54 100644
--- a/src/containers/Governance/components/ProposalDiscussion.jsx
+++ b/src/containers/Governance/components/ProposalDiscussion.jsx
@@ -7,7 +7,7 @@ const ProposalDiscussion = (linkProps) => {
{
fontSize="0.875em"
lineHeight="15px"
>
- Important: We display only the 10 most recent proposals. Only one proposal can be active at a time.
+ Important: Only the 10 most recent proposals are displayed. Only one proposal can be active at a time.
{
const isSmallScreen = useScreenSize("md");
const navigate = useNavigate();
+ const theme = useTheme();
const [blockNumber, setBlockNumber] = useState(0n);
const [selectedDiscussionUrl, setSelectedDiscussionUrl] = useState(undefined);
@@ -83,11 +83,17 @@ const ProposalsList = ({ chainId, config }) => {
isOpened={isDiscussionModalOpened}
closeModal={() => setSelectedDiscussionUrl(undefined)}
/>
-
-
-
-
-
+
+
+ Proposals
+
+
+ }
+ >
{filteredProposals?.map(proposal => (
{
/>
))}
+
+ {proposalsFilter === "active" &&
+
+ }
>
);
@@ -112,7 +122,35 @@ const ProposalsList = ({ chainId, config }) => {
isOpened={isDiscussionModalOpened}
closeModal={() => setSelectedDiscussionUrl(undefined)}
/>
-
+
+
+ Proposals
+
+
+
+
+ Discussion Forum
+
+
+
+ }
+ >
@@ -128,9 +166,9 @@ const ProposalsList = ({ chainId, config }) => {
))}
-
+ {proposalsFilter === "active" &&
-
+ }
>
);
@@ -141,7 +179,7 @@ const ProposalTable = ({ children }) => (
- Proposal ID
+ Proposal ID
Status
Discussion
Vote Ends
@@ -160,7 +198,7 @@ const ProposalRow = ({ proposal, setActive, blockNumber, openProposal, chainId }
return (
-
+
GDP-{proposal.id}
diff --git a/src/containers/Governance/helpers.js b/src/containers/Governance/helpers.js
index 505d17a..925852d 100644
--- a/src/containers/Governance/helpers.js
+++ b/src/containers/Governance/helpers.js
@@ -1,7 +1,7 @@
export const convertStatusToTemplate = (status) => {
switch (status.toUpperCase()) {
case "EXECUTED":
- return 'info';
+ return 'darkGray';
case "CANCELED":
return 'warning';
case "SUCCEEDED":
@@ -9,6 +9,6 @@ export const convertStatusToTemplate = (status) => {
case "DEFEATED":
return 'error';
default:
- return 'info';
+ return 'darkGray';
}
}
diff --git a/src/containers/Stake/components/FarmPools.jsx b/src/containers/Stake/components/FarmPools.jsx
index d8b24bc..e56943a 100644
--- a/src/containers/Stake/components/FarmPools.jsx
+++ b/src/containers/Stake/components/FarmPools.jsx
@@ -61,7 +61,17 @@ const FarmPools = ({ chainId }) => {
}
return (
-
+
+
+ Farm Pools
+
+
+ }
+ >
diff --git a/src/containers/WethWrapper/WethWrapper.jsx b/src/containers/WethWrapper/WethWrapper.jsx
index 79cbdcd..8656d41 100644
--- a/src/containers/WethWrapper/WethWrapper.jsx
+++ b/src/containers/WethWrapper/WethWrapper.jsx
@@ -137,7 +137,7 @@ const WethWrapper = ({ chainId, address, config, connect }) => {
-
+