From e30e3d92ded4f52db762587329d6f884b6d274d6 Mon Sep 17 00:00:00 2001 From: fabiolalombardim Date: Mon, 19 Feb 2024 12:55:55 +0100 Subject: [PATCH 1/6] token creator updates --- src/index.tsx | 2 - src/modules/creator/deployment/index.tsx | 11 ++-- .../creator/deployment/steps/Config.tsx | 27 ++++---- .../creator/deployment/steps/Distribution.tsx | 16 +++-- .../creator/deployment/steps/Ownership.tsx | 46 +++++++------- .../creator/deployment/steps/Summary.tsx | 61 +++++++++++-------- src/theme/legacy.ts | 21 ++++--- 7 files changed, 104 insertions(+), 80 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index f26baf20..e55d28a0 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,11 +1,9 @@ import React from "react" import ReactDOM from "react-dom" - import App from "App" import { TezosProvider } from "services/beacon/context" import localizedFormat from "dayjs/plugin/localizedFormat" import dayjs from "dayjs" -import BigNumber from "bignumber.js" // BigNumber.config({ DECIMAL_PLACES: }) diff --git a/src/modules/creator/deployment/index.tsx b/src/modules/creator/deployment/index.tsx index d066e134..48b59fc4 100644 --- a/src/modules/creator/deployment/index.tsx +++ b/src/modules/creator/deployment/index.tsx @@ -51,6 +51,7 @@ const IndicatorValue = styled(Paper)(({ theme }) => ({ height: "100%", margin: "0 auto", fontSize: 25, + fontWeight: 300, color: theme.palette.text.secondary, userSelect: "none", boxShadow: "none", @@ -76,7 +77,7 @@ const ProgressContainer = styled(Grid)(({ theme }) => ({ background: "#2F3438", display: "grid", borderRadius: 8, - maxHeight: 460, + maxHeight: 480, paddingTop: 20, position: "sticky", top: 125 @@ -101,7 +102,7 @@ const FAQClickToAction = styled(Typography)(({ theme }) => ({ })) const FAQClickText = styled(Typography)(({ theme }) => ({ - color: theme.palette.secondary.main, + color: theme.palette.text.secondary, fontSize: "14px", cursor: "pointer", textAlign: "center" @@ -132,10 +133,10 @@ export const Deployment: React.FC = () => { diff --git a/src/modules/creator/deployment/steps/Config.tsx b/src/modules/creator/deployment/steps/Config.tsx index eab56514..2ab9f66c 100644 --- a/src/modules/creator/deployment/steps/Config.tsx +++ b/src/modules/creator/deployment/steps/Config.tsx @@ -14,13 +14,15 @@ import { useHistory, useRouteMatch } from "react-router-dom" import { DeploymentContext } from "../state/context" import { ActionTypes, TokenContractSettings } from "../state/types" import { TextField as FormikTextField } from "formik-material-ui" -import { SmallButton } from "modules/common/SmallButton" -import { TitleBlock } from "modules/common/TitleBlock" import { FieldChange, handleChange, handleNegativeInput } from "modules/creator/utils" -const ButtonContainer = styled(Grid)({ - marginTop: 40 -}) +const Title = styled(Typography)(({ theme }) => ({ + fontSize: 32, + fontWeight: 600, + [theme.breakpoints.down("sm")]: { + fontSize: 26 + } +})) const CustomTextarea = styled(withTheme(TextareaAutosize))(props => ({ "minHeight": 152, @@ -61,8 +63,7 @@ const CustomFormikTextField = withStyles({ "& .MuiInput-underline:after": { borderBottom: "none !important" } - }, - disabled: {} + } })(FormikTextField) const CustomInputContainer = styled(Grid)(({ theme }) => ({ @@ -180,7 +181,7 @@ const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, {errors.description && touched.description ? {errors.description} : null} - + {" "} Supply{" "} @@ -197,7 +198,7 @@ const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, {errors.totalSupply && touched.totalSupply ? {errors.totalSupply} : null} - + {" "} Decimals{" "} @@ -217,7 +218,7 @@ const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, - + {" "} Icon{" "} @@ -226,7 +227,7 @@ const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, - + {" "} Symbol{" "} @@ -263,9 +264,9 @@ export const ConfigContract: React.FC = () => { <> - + Configure Token Contract - </Typography> + + validateContractAddress(address) !== 3 && validateAddress(address) !== 3 + const hasDuplicates = (options: Holder[]) => { const trimOptions = options.map(option => option.walletAddress.trim()) return new Set(trimOptions).size !== trimOptions.length @@ -125,12 +130,15 @@ const validateForm = (values: TokenDistributionSettings) => { if (values.totalAmount && values.totalAmount.gt(new BigNumber(getTotal(values.holders)))) { errors.totalAmount = "Total Supply not fully allocated" } + if (isInvalidKtOrTzAddress(values.holders[index].walletAddress)) { + errors.holders = "Invalid address" + } }) return errors } -const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, setFieldTouched }: any) => { +const TokenSettingsForm = ({ submitForm, values, errors, touched }: any) => { const theme = useTheme() const isMobile = useMediaQuery(theme.breakpoints.down("sm")) @@ -229,13 +237,13 @@ const TokenSettingsForm = ({ submitForm, values, errors, touched, setFieldValue, style={{ cursor: "pointer", padding: 0 }} onClick={() => arrayHelpers.insert(values.holders.length, newValue)} > - arrayHelpers.insert(values.holders.length, newValue)} color={"secondary"} diff --git a/src/modules/creator/deployment/steps/Ownership.tsx b/src/modules/creator/deployment/steps/Ownership.tsx index 1ac7dd6d..f7f964f8 100644 --- a/src/modules/creator/deployment/steps/Ownership.tsx +++ b/src/modules/creator/deployment/steps/Ownership.tsx @@ -22,46 +22,48 @@ const PageContent = styled(Grid)(({ theme }) => ({ } })) -const Title = styled(Typography)({ - fontSize: 24, - textAlign: "center" -}) +const Title = styled(Typography)(({ theme }) => ({ + fontSize: 32, + fontWeight: 600, + textAlign: "center", + [theme.breakpoints.down("sm")]: { + fontSize: 26 + } +})) const CardContainer = styled(Grid)(({ theme }) => ({ background: theme.palette.primary.dark, + gap: 32, borderRadius: 8, - padding: "36px 47px" + padding: "40px 48px", + [theme.breakpoints.down("sm")]: { + padding: "30px 38px" + } })) const DescriptionContainer = styled(Grid)(({ theme }) => ({ - marginTop: 32, [theme.breakpoints.down("sm")]: { paddingLeft: "4%", - paddingRight: "4%", - marginTop: 40 + paddingRight: "4%" } })) const OptionsContainer = styled(Grid)(({ theme }) => ({ - marginTop: 20, [theme.breakpoints.down("sm")]: { paddingLeft: "4%", - paddingRight: "4%", - marginTop: 40 + paddingRight: "4%" } })) const ChoicesContainer = styled(Grid)(({ theme }) => ({ - marginTop: 50, [theme.breakpoints.down("sm")]: { - paddingLeft: "2%", - paddingRight: "2%", - gap: 20 + gap: 32 } })) const DescriptionText = styled(Typography)(({ theme }) => ({ - fontWeight: 200, + fontWeight: 300, + fontSize: 18, color: theme.palette.text.secondary, [theme.breakpoints.down("sm")]: { fontSize: 14 @@ -70,7 +72,6 @@ const DescriptionText = styled(Typography)(({ theme }) => ({ const OptionButton = styled(Link)(({ theme }) => ({ [theme.breakpoints.down("sm")]: { - width: "95%", display: "flex", textAlign: "center" } @@ -85,19 +86,20 @@ export const Ownership: React.FC = () => { - + Do you already have a governance token? - + This would be an FA2-compatible token contract that will serve to assign voting weight based on ownership. - + + If you already have this asset deployed, click YES. If not, click NO and we will configure and deploy @@ -112,14 +114,14 @@ export const Ownership: React.FC = () => { alignContent="center" justifyContent={isMobileSmall ? "center" : "flex-start"} > - + Yes, I have one - + No, I need one diff --git a/src/modules/creator/deployment/steps/Summary.tsx b/src/modules/creator/deployment/steps/Summary.tsx index 5f06350c..aa23b4bf 100644 --- a/src/modules/creator/deployment/steps/Summary.tsx +++ b/src/modules/creator/deployment/steps/Summary.tsx @@ -6,11 +6,9 @@ import { DeploymentContext } from "../state/context" import { numberWithCommas } from "../state/utils" import BigNumber from "bignumber.js" import { Blockie } from "modules/common/Blockie" -import { CopyButton } from "modules/common/CopyButton" import { ActionTypes } from "../state/types" -import { TitleBlock } from "modules/common/TitleBlock" import { useTokenOriginate } from "services/contracts/token/hooks/useToken" -import { useNotification } from "modules/common/hooks/useNotification" +import { CopyButton } from "modules/explorer/components/CopyButton" const ThirdContainer = styled(Grid)({ background: "#2F3438", @@ -18,9 +16,11 @@ const ThirdContainer = styled(Grid)({ boxSizing: "border-box" }) -const ThirdContainerFirstRow = styled(Grid)({ +const ThirdContainerFirstRow = styled(Grid)(({ theme }) => ({ padding: "19px 48px", - borderBottom: "0.3px solid #7D8C8B", + borderBottom: "0.3px solid #575757", + backgroundColor: theme.palette.primary.dark, + borderRadius: "8px 8px 0px 0px", alignItems: "center", display: "flex", minHeight: 70, @@ -28,12 +28,14 @@ const ThirdContainerFirstRow = styled(Grid)({ padding: "12px 15px", maxHeight: "inherit" } -}) +})) const ThirdContainerLastRow = styled(Grid)({ padding: "19px 48px", alignItems: "center", display: "flex", + backgroundColor: "#24282D", + borderRadius: "0px 0px 8px 8px", minHeight: 70, ["@media (max-width:1167px)"]: { padding: "12px 15px", @@ -42,7 +44,8 @@ const ThirdContainerLastRow = styled(Grid)({ }) const ThirdContainerRow = styled(Grid)({ - "borderBottom": "0.3px solid #7D8C8B", + "borderBottom": "0.3px solid #575757", + "backgroundColor": "#24282D", "padding": "24px 48px", "minHeight": 70, ["@media (max-width:1167px)"]: { @@ -60,21 +63,29 @@ const TitleSpacing = styled(Typography)({ fontSize: 18 }) -const ContainerEdit = styled(Typography)({ - cursor: "pointer" -}) +const ContainerEdit = styled(Typography)(({ theme }) => ({ + cursor: "pointer", + color: theme.palette.secondary.light +})) const AdminAddress = styled(Typography)({ wordBreak: "break-all" }) +const AdminAddressIcon = styled(Typography)({ + wordBreak: "break-all", + display: "flex", + alignItems: "center" +}) + const KeyText = styled(Typography)({ fontWeight: 400 }) const AddressText = styled(Typography)({ marginLeft: 12, - fontWeight: 300 + fontWeight: 300, + marginRight: 8 }) export const ContractSummary: React.FC = () => { @@ -82,7 +93,6 @@ export const ContractSummary: React.FC = () => { const isMobile = useMediaQuery(theme.breakpoints.down("sm")) const history = useHistory() const match = useRouteMatch() - const openNotification = useNotification() const { state, dispatch } = useContext(DeploymentContext) const { tokenDistribution, tokenSettings } = state.data @@ -155,9 +165,7 @@ export const ContractSummary: React.FC = () => { Token Contract Settings - - Edit - + Edit @@ -228,10 +236,17 @@ export const ContractSummary: React.FC = () => { Icon - - + + + icon {tokenSettings.icon} - + @@ -248,23 +263,21 @@ export const ContractSummary: React.FC = () => { Initial Distribution - - Edit - + Edit {tokenDistribution.holders && tokenDistribution.holders.length > 0 ? tokenDistribution.holders.map((holder, index) => { return ( - + {toShortAddress(holder.walletAddress)} - + { - + ) }) : null} diff --git a/src/theme/legacy.ts b/src/theme/legacy.ts index 51d86fe2..f366ef67 100644 --- a/src/theme/legacy.ts +++ b/src/theme/legacy.ts @@ -1,5 +1,5 @@ -import { createMuiTheme } from "@material-ui/core/styles" -export const legacyTheme = createMuiTheme({ +import { createTheme } from "@material-ui/core/styles" +export const legacyTheme = createTheme({ palette: { primary: { main: "#1C1F23", @@ -94,8 +94,8 @@ export const legacyTheme = createMuiTheme({ "color": "#FDFDFD", "opacity": 0.5, "marginLeft": 15, - "fontSize": 14, - "lineHeight": "18.5px", + "fontSize": 16, + "lineHeight": "21.6px", "height": 40, "display": "flex", "alignItems": "center", @@ -122,11 +122,12 @@ export const legacyTheme = createMuiTheme({ MuiStepConnector: { vertical: { padding: "0px", - marginLeft: 17 + marginLeft: 17, + marginBottom: 2 }, lineVertical: { - borderLeftWidth: 2, - minHeight: 28, + borderLeftWidth: 3, + minHeight: 30, marginTop: -16 }, line: { @@ -167,11 +168,11 @@ export const legacyTheme = createMuiTheme({ "height": 32, "width": 32, "color": "#2f3438", - "border": "2px solid rgba(255, 255, 255, 0.2)", + "border": "3px solid rgba(255, 255, 255, 0.2)", "borderRadius": "50%", "&$active": { "fill": "#81feb7", - "border": "2px solid #81feb7", + "border": "3px solid #81feb7", "borderRadius": "50%", "& $text": { fill: "#1C1F23", @@ -180,7 +181,7 @@ export const legacyTheme = createMuiTheme({ }, "&$completed": { fill: "#81feb7", - border: "2px solid #81feb7" + border: "3px solid #81feb7" } }, text: { From 980e534250c2c1554ab3fc36ef7b7d196e54f15b Mon Sep 17 00:00:00 2001 From: fabiolalombardim Date: Mon, 19 Feb 2024 20:42:22 +0100 Subject: [PATCH 2/6] creator steps upgrade --- src/modules/common/TitleBlock.tsx | 23 ++-- src/modules/creator/index.tsx | 16 ++- src/modules/creator/steps/DaoSettings.tsx | 8 +- src/modules/creator/steps/Governance.tsx | 148 ++++++++++++---------- src/modules/creator/steps/Summary.tsx | 110 ++++++---------- src/modules/creator/steps/Template.tsx | 13 +- src/theme/legacy.ts | 7 +- 7 files changed, 163 insertions(+), 162 deletions(-) diff --git a/src/modules/common/TitleBlock.tsx b/src/modules/common/TitleBlock.tsx index 8aadc35e..568e8466 100644 --- a/src/modules/common/TitleBlock.tsx +++ b/src/modules/common/TitleBlock.tsx @@ -3,6 +3,10 @@ import React from "react" import { ReactElement } from "react-markdown/lib/react-markdown" import { InfoRounded } from "@material-ui/icons" +const DescriptionText = styled(Typography)(({ theme }) => ({ + color: theme.palette.secondary.dark +})) + const StyledGrid = styled(Grid)({ height: "fit-content", borderRadius: 8, @@ -26,8 +30,9 @@ const InfoIconInput = styled(InfoRounded)(({ theme }) => ({ })) const CustomTooltipText = styled(Typography)({ - fontSize: 14, - marginLeft: 2 + fontSize: 18, + marginLeft: 2, + fontWeight: 200 }) const CustomTextContainer = styled(Paper)({ @@ -35,7 +40,8 @@ const CustomTextContainer = styled(Paper)({ background: "inherit", boxShadow: "none", display: "flex", - alignItems: "center" + alignItems: "center", + marginRight: 24 }) interface Props { @@ -55,7 +61,7 @@ export const TitleBlock: React.FC = ({ }) => { return ( - + {title} @@ -74,14 +80,9 @@ export const TitleBlock: React.FC = ({ {title === "" ? ( - - {" "} - {description} - + {description} ) : description ? ( - - {description} - + {description} ) : null} diff --git a/src/modules/creator/index.tsx b/src/modules/creator/index.tsx index 805773bc..56e75581 100644 --- a/src/modules/creator/index.tsx +++ b/src/modules/creator/index.tsx @@ -75,11 +75,17 @@ const FAQClickToAction = styled(Typography)(({ theme }) => ({ fontWeight: 300 })) +const FAQReadMe = styled(Typography)(({ theme }) => ({ + fontSize: "14px", + cursor: "pointer", + fontWeight: 300 +})) + const ProgressContainer = styled(Grid)(({ theme }) => ({ background: "#2F3438", display: "grid", borderRadius: 8, - maxHeight: 650, + maxHeight: 680, paddingTop: 20, position: "sticky", top: 130 @@ -142,10 +148,10 @@ export const DAOCreate: React.FC = () => { @@ -153,7 +159,7 @@ export const DAOCreate: React.FC = () => { - New to DAOs? + New to DAOs? Read our FAQ diff --git a/src/modules/creator/steps/DaoSettings.tsx b/src/modules/creator/steps/DaoSettings.tsx index 2122f20d..a4568c39 100644 --- a/src/modules/creator/steps/DaoSettings.tsx +++ b/src/modules/creator/steps/DaoSettings.tsx @@ -121,6 +121,10 @@ const ErrorText = styled(Typography)({ marginTop: 4 }) +const DescriptionText = styled(Typography)(({ theme }) => ({ + color: theme.palette.secondary.dark +})) + const DaoSettingsForm = withRouter(({ submitForm, values, setFieldValue, errors, touched, setFieldTouched }: any) => { const theme = useTheme() const isMobile = useMediaQuery(theme.breakpoints.down("md")) @@ -394,14 +398,14 @@ export const DaoSettings = (): JSX.Element => { + These settings will define the name, symbol, and initial distribution of your token. You will need a pre-existing FA2 token to use as governance token. To deploy your own governance token you can go{" "} here {" "} and then come back. - + } > diff --git a/src/modules/creator/steps/Governance.tsx b/src/modules/creator/steps/Governance.tsx index 58c2fc4f..ccad4640 100644 --- a/src/modules/creator/steps/Governance.tsx +++ b/src/modules/creator/steps/Governance.tsx @@ -107,14 +107,17 @@ const ItemContainer = styled(Grid)(({ theme }) => ({ padding: "12px 25px" })) -const ValueText = styled(Typography)({ - fontSize: 14 -}) +const ValueText = styled(Typography)(({ theme }) => ({ + fontSize: 16, + color: theme.palette.secondary.dark, + fontWeight: 200 +})) const StyledSlider = withStyles({ root: { textAlign: "center", - width: "100%" + width: "100%", + height: 4.5 }, valueLabel: { textAlign: "center" @@ -129,7 +132,10 @@ const StyledSlider = withStyles({ track: { backgroundColor: "#4BCF93", borderRadius: "4px", - height: 2 + height: 4.5 + }, + rail: { + height: 4.5 } })(Slider) @@ -141,7 +147,7 @@ const CustomSliderValue = styled(withTheme(Paper))(props => ({ justifyContent: "center", background: "#2F3438", borderRadius: 8, - width: 97 + width: "100%" })) const Value = styled(Typography)({ @@ -154,7 +160,8 @@ const styles = { marginTop: 6, marginBottom: 16, fontWeight: 400, - fontSize: 17 + fontSize: 18, + width: "75%" } } @@ -173,10 +180,6 @@ const CustomFormikTextField = withStyles({ } })(TextField) -const GridNoPadding = styled(Grid)({ - paddingLeft: "8px !important" -}) - const InfoBox = styled(Paper)({ boxShadow: "none", border: "none", @@ -409,6 +412,12 @@ const GovernanceForm = ({ submitForm, values, setFieldValue, errors, touched, se Voting Cycle Duration + + {errors.proposalFlushBlocks ? : } + @@ -778,7 +787,7 @@ const GovernanceForm = ({ submitForm, values, setFieldValue, errors, touched, se /> - {orgSettings.governanceToken.tokenMetadata?.symbol || ""} + {orgSettings.governanceToken.tokenMetadata?.symbol || ""} - + {() => ( )} - - + + {getIn(values, "returnedTokenPercentage")}% - + - - - Min & Max Transfer Amounts - - - - - - setFieldTouched("minXtzAmount")} - // onChange={(e: any) => controlMaxFieldLimit("minXtzAmount", e)} - /> - - - Min. XTZ - - - - - - {errors.minXtzAmount && touched.minXtzAmount ? {errors.minXtzAmount} : null} - - - - - setFieldTouched("maxXtzAmount")} - // onChange={(e: any) => controlMaxFieldLimit("maxXtzAmount", e)} - /> - - - Max. XTZ - - - - - - {errors.maxXtzAmount && touched.maxXtzAmount ? {errors.maxXtzAmount} : null} - + + + + Minimum XTZ Transfer Amount + + + + + + setFieldTouched("minXtzAmount")} + // onChange={(e: any) => controlMaxFieldLimit("minXtzAmount", e)} + /> + + + XTZ + + + + + + {errors.minXtzAmount && touched.minXtzAmount ? {errors.minXtzAmount} : null} + + + + + + Maximum XTZ Transfer Amount + + + + + + setFieldTouched("maxXtzAmount")} + // onChange={(e: any) => controlMaxFieldLimit("maxXtzAmount", e)} + /> + + + XTZ + + + + + + {errors.maxXtzAmount && touched.maxXtzAmount ? {errors.maxXtzAmount} : null} + + ) diff --git a/src/modules/creator/steps/Summary.tsx b/src/modules/creator/steps/Summary.tsx index 65b9935b..1cda4007 100644 --- a/src/modules/creator/steps/Summary.tsx +++ b/src/modules/creator/steps/Summary.tsx @@ -1,18 +1,10 @@ -import { Box, Grid, styled, Typography, useMediaQuery, useTheme } from "@material-ui/core" import React, { useContext, useEffect } from "react" +import { Box, Grid, styled, Typography, useMediaQuery, useTheme } from "@material-ui/core" import { useHistory, useRouteMatch } from "react-router-dom" import { ActionTypes, CreatorContext } from "modules/creator/state" import { TitleBlock } from "modules/common/TitleBlock" import { toShortAddress } from "services/contracts/utils" -const SecondContainer = styled(Grid)({ - marginTop: 42, - background: "#2F3438", - borderRadius: 8, - padding: "26px 48px", - boxSizing: "border-box" -}) - const ThirdContainer = styled(Grid)({ marginTop: 42, background: "#2F3438", @@ -73,11 +65,12 @@ const FirstContainer = styled(Grid)({ }) const TitleSpacing = styled(Typography)({ - marginTop: 8 + marginTop: 8, + fontWeight: 600 }) -const DescriptionSpacing = styled(Typography)({ - marginTop: 16 +const KeyLabel = styled(Typography)({ + fontWeight: 500 }) const ContainerEdit = styled(Typography)({ @@ -132,29 +125,6 @@ export const Summary = (): JSX.Element => { description={"Review your settings to ensure you’ve made the correct choices."} > - - - - - {state.data.orgSettings.symbol} - - - Edit - - - - - - {state.data.orgSettings.name} - - - - - {state.data.orgSettings.description} - - - - { justifyContent="space-between" > - DAO SETTINGS + DAO Basis Edit @@ -175,9 +145,9 @@ export const Summary = (): JSX.Element => { - + Administrator - + @@ -192,9 +162,9 @@ export const Summary = (): JSX.Element => { - + Guardian - + @@ -207,9 +177,9 @@ export const Summary = (): JSX.Element => { - + Governance Token Address - + @@ -224,9 +194,9 @@ export const Summary = (): JSX.Element => { - + Governance Token ID - + @@ -246,7 +216,7 @@ export const Summary = (): JSX.Element => { justifyContent="space-between" > - PROPOSAL & VOTING SETTINGS + Proposal & Voting Edit @@ -257,9 +227,9 @@ export const Summary = (): JSX.Element => { - + Voting Period Duration - + @@ -272,9 +242,9 @@ export const Summary = (): JSX.Element => { - + Proposal Execution Delay - + @@ -287,9 +257,9 @@ export const Summary = (): JSX.Element => { - + Proposal blocks to expire - + @@ -302,9 +272,9 @@ export const Summary = (): JSX.Element => { - + Stake required to propose - + @@ -317,9 +287,9 @@ export const Summary = (): JSX.Element => { - + Stake returned if rejected - + @@ -332,9 +302,9 @@ export const Summary = (): JSX.Element => { - + Transfer maximum XTZ amount - + @@ -347,9 +317,9 @@ export const Summary = (): JSX.Element => { - + Transfer minimum XTZ amount - + @@ -369,7 +339,7 @@ export const Summary = (): JSX.Element => { justifyContent="space-between" > - QUORUM SETTINGS + Quorum Edit @@ -380,9 +350,9 @@ export const Summary = (): JSX.Element => { - + Quorum threshold - + @@ -395,9 +365,9 @@ export const Summary = (): JSX.Element => { - + Quorum Change - + @@ -410,9 +380,9 @@ export const Summary = (): JSX.Element => { - + Quorum Max Change - + @@ -425,9 +395,9 @@ export const Summary = (): JSX.Element => { - + Quorum Min. Amount - + @@ -440,9 +410,9 @@ export const Summary = (): JSX.Element => { - + Quorum Max. Amount - + diff --git a/src/modules/creator/steps/Template.tsx b/src/modules/creator/steps/Template.tsx index 960dcc8a..b531c823 100644 --- a/src/modules/creator/steps/Template.tsx +++ b/src/modules/creator/steps/Template.tsx @@ -16,11 +16,12 @@ const LambdaCustomBox = styled(Grid)(({ theme }) => ({ "borderRadius": 8, "maxWidth": 342, "width": "-webkit-fill-available", - "padding": "40px 44px", + "textAlign": "start", "cursor": "pointer", "paddingBottom": 0, "flexBasis": "47%", + "padding": "37px 41px", "&:hover": { border: "3px solid rgba(129, 254, 183, 0.4)", paddingTop: 37, @@ -37,7 +38,8 @@ const LambdaCustomBox = styled(Grid)(({ theme }) => ({ const styles = makeStyles({ selected: { border: "3px solid rgba(129, 254, 183, 0.4)", - padding: "37px 41px" + padding: "37px 41px", + paddingBottom: 0 } }) @@ -50,16 +52,15 @@ const ErrorText = styled(Typography)({ const BoxTitle = styled(Typography)({ fontSize: 18, - fontWeight: 500, + fontWeight: 600, fontFamily: "Roboto Flex", marginBottom: 10 }) const BoxDescription = styled(Typography)({ fontWeight: 300, - fontSize: 16, - lineHeight: "135%", - letterSpacing: -0.18, + fontSize: 18, + lineHeight: "160%", alignSelf: "stretch" }) diff --git a/src/theme/legacy.ts b/src/theme/legacy.ts index f366ef67..a39c066c 100644 --- a/src/theme/legacy.ts +++ b/src/theme/legacy.ts @@ -7,8 +7,9 @@ export const legacyTheme = createTheme({ dark: "#2F3438" }, secondary: { - main: "#4BCF93", - light: "#81FEB7" + main: "#81FEB7", + light: "#81FEB7", + dark: "#BFC5CA" }, text: { primary: "#000000", @@ -44,7 +45,7 @@ export const legacyTheme = createTheme({ }, h3: { fontSize: 32, - fontWeight: 500, + fontWeight: 600, fontFamily: "Roboto Flex" }, h2: { From 9bacc7ca969998172665b40eb1cdb1f482925f0d Mon Sep 17 00:00:00 2001 From: fabiolalombardim Date: Sat, 24 Feb 2024 22:04:10 +0100 Subject: [PATCH 3/6] create full dao changes --- src/modules/common/TitleBlock.tsx | 9 +- .../creator/components/DeploymentLoader.tsx | 90 +------ src/modules/creator/steps/DeploymentType.tsx | 2 +- src/modules/creator/steps/Governance.tsx | 23 +- src/modules/creator/steps/Quorum.tsx | 14 +- src/modules/creator/steps/Review.tsx | 43 ++-- src/modules/creator/steps/Summary.tsx | 223 ++++++++++++------ src/modules/creator/steps/Template.tsx | 11 +- .../explorer/components/CopyButton.tsx | 10 +- src/theme/legacy.ts | 9 +- 10 files changed, 237 insertions(+), 197 deletions(-) diff --git a/src/modules/common/TitleBlock.tsx b/src/modules/common/TitleBlock.tsx index 568e8466..8fa49568 100644 --- a/src/modules/common/TitleBlock.tsx +++ b/src/modules/common/TitleBlock.tsx @@ -35,14 +35,17 @@ const CustomTooltipText = styled(Typography)({ fontWeight: 200 }) -const CustomTextContainer = styled(Paper)({ +const CustomTextContainer = styled(Paper)(({ theme }) => ({ maxWidth: "fit-content", background: "inherit", boxShadow: "none", display: "flex", alignItems: "center", - marginRight: 24 -}) + marginRight: 24, + [theme.breakpoints.down("sm")]: { + alignItems: "baseline" + } +})) interface Props { title?: ReactElement | string diff --git a/src/modules/creator/components/DeploymentLoader.tsx b/src/modules/creator/components/DeploymentLoader.tsx index 3f3efb3a..7b76d42d 100644 --- a/src/modules/creator/components/DeploymentLoader.tsx +++ b/src/modules/creator/components/DeploymentLoader.tsx @@ -1,6 +1,7 @@ import { Box, Grid, + LinearProgress, Step, StepConnector, StepLabel, @@ -8,10 +9,12 @@ import { styled, Theme, Typography, + useTheme, withStyles } from "@material-ui/core" import React, { useEffect, useState } from "react" import { SuspenseDots } from "./SuspenseDots" +import ProgressBar from "react-customizable-progressbar" const WaitingText = styled(Typography)({ marginTop: 46, @@ -23,70 +26,12 @@ const WaitingText = styled(Typography)({ const StyledContainer = styled(Box)({ width: "100%", - marginTop: "-15%", minWidth: 650, ["@media (max-width:1167px)"]: { minWidth: "auto" } }) -const StyledStepper = styled(Stepper)(({ theme }) => ({ - "width": "100%", - "paddingLeft": 0, - "paddingRight": 0, - "background": "inherit", - "& .MuiStepConnector-alternativeLabel": { - "left": "calc(-50% + 19px)", - "right": "calc(50% + 19px)", - "top": 16, - "& .MuiStepConnector-lineHorizontal": { - borderColor: theme.palette.primary.light, - borderTopWidth: 3 - } - } -})) - -const StyledLabel = styled(StepLabel)( - ({ theme, focused, hasError }: { theme: Theme; focused: boolean; hasError: boolean }) => ({ - "& .MuiStepIcon-root": { - borderWidth: 3 - }, - "& .MuiStepIcon-active": { - borderColor: hasError ? theme.palette.error.main : focused ? "#fff" : theme.palette.primary.light, - fill: "none" - }, - "& .MuiStepIcon-text": { - fill: "none" - }, - "& .MuiStepIcon-completed": { - borderColor: focused ? "#fff" : theme.palette.secondary.main, - fill: theme.palette.secondary.main - } - }) -) - -const ColorlibConnector = withStyles((theme: Theme) => ({ - alternativeLabel: { - top: 22 - }, - active: { - "& $line": { - backgroundColor: theme.palette.secondary.main - } - }, - completed: { - "& $line": { - backgroundColor: theme.palette.secondary.main - } - }, - line: { - height: 3, - border: 0, - backgroundColor: theme.palette.primary.light, - borderRadius: 1 - } -}))(StepConnector) - interface Props { states: { activeText: string; completedText: string }[] activeStep: number | undefined @@ -100,6 +45,8 @@ export const DeploymentLoader: React.FC = ({ states, activeStep, error }) const isStarted = Number.isInteger(activeStep) const showActiveText = isStarted && !isFinished && activeStep === focusedState const showCompletedText = isStarted && focusedState < (activeStep as number) + const [progress, setProgress] = useState(0) + const theme = useTheme() useEffect(() => { if (activeStep) { @@ -107,13 +54,19 @@ export const DeploymentLoader: React.FC = ({ states, activeStep, error }) setFocusedState(states.length - 1) } else { setFocusedState(activeStep) + // setProgress(progress + 25) } } }, [activeStep, isFinished, states.length]) + useEffect(() => { + setProgress(progress + 25) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [focusedState]) + return ( - + {showActiveText @@ -127,25 +80,8 @@ export const DeploymentLoader: React.FC = ({ states, activeStep, error }) - }> - {states.map((_, index) => ( - { - if (!activeStep) { - return - } - if (index <= activeStep) { - setFocusedState(index) - } - }} - completed={activeStep ? index < activeStep : false} - > - - - ))} - + ) } diff --git a/src/modules/creator/steps/DeploymentType.tsx b/src/modules/creator/steps/DeploymentType.tsx index f68fb7f3..c677b9db 100644 --- a/src/modules/creator/steps/DeploymentType.tsx +++ b/src/modules/creator/steps/DeploymentType.tsx @@ -94,7 +94,7 @@ export const DeploymentType = (): JSX.Element => { + Learn more about the two available deployment options in{" "} ({ width: 72, minHeight: 59, marginBottom: 16, - display: "grid" + display: "grid", + [theme.breakpoints.down("sm")]: { + width: 160 + } })) const TimeText = styled(Typography)({ @@ -155,6 +158,11 @@ const Value = styled(Typography)({ padding: "15%" }) +const ProgressBarContainer = styled(Grid)({ + marginTop: 8, + paddingLeft: 6 +}) + const styles = { voting: { marginTop: 6, @@ -180,7 +188,7 @@ const CustomFormikTextField = withStyles({ } })(TextField) -const InfoBox = styled(Paper)({ +const InfoBox = styled(Paper)(({ theme }) => ({ boxShadow: "none", border: "none", marginTop: 20, @@ -189,8 +197,11 @@ const InfoBox = styled(Paper)({ gap: 10, backgroundColor: "#2F3438", borderRadius: 8, - padding: "32px 48px" -}) + padding: "32px 48px", + [theme.breakpoints.down("sm")]: { + padding: "28px 38px" + } +})) const validateForm = (values: VotingSettings) => { const errors: FormikErrors = {} @@ -810,7 +821,7 @@ const GovernanceForm = ({ submitForm, values, setFieldValue, errors, touched, se Returned Stake After Proposal Rejection - + {() => ( @@ -828,7 +839,7 @@ const GovernanceForm = ({ submitForm, values, setFieldValue, errors, touched, se - + diff --git a/src/modules/creator/steps/Quorum.tsx b/src/modules/creator/steps/Quorum.tsx index cf310000..3862e4cd 100644 --- a/src/modules/creator/steps/Quorum.tsx +++ b/src/modules/creator/steps/Quorum.tsx @@ -38,7 +38,7 @@ const CustomSliderValue = styled(withTheme(Paper))(props => ({ justifyContent: "center", background: "#2F3438", borderRadius: 8, - width: 97 + width: "100%" })) const Value = styled(Typography)({ @@ -49,7 +49,8 @@ const Value = styled(Typography)({ const StyledSlider = withStyles({ root: { textAlign: "center", - width: "100%" + width: "100%", + height: 4.5 }, valueLabel: { textAlign: "center" @@ -64,7 +65,10 @@ const StyledSlider = withStyles({ track: { backgroundColor: "#4BCF93", borderRadius: "4px", - height: 2 + height: 4.5 + }, + rail: { + height: 4.5 } })(Slider) @@ -506,13 +510,13 @@ const QuorumForm = ({ }} /> - + {fixedQuorum}% - + )} diff --git a/src/modules/creator/steps/Review.tsx b/src/modules/creator/steps/Review.tsx index 134844ed..f26f6aff 100644 --- a/src/modules/creator/steps/Review.tsx +++ b/src/modules/creator/steps/Review.tsx @@ -13,7 +13,8 @@ import { ConnectWalletButton } from "modules/common/Toolbar" const RocketImg = styled("img")({ marginBottom: 46, - height: 128 + height: 245, + marginTop: 40 }) const CustomButton = styled(Button)({ @@ -103,23 +104,22 @@ export const Review: React.FC = () => { - {data && !data.address ? ( - - - Deploying - - - {" "} - {state.data.orgSettings.name} - - - {" "} - to the Tezos Network - - - ) : null} + + + + Deploying + + + {" "} + {state.data.orgSettings.name} + + + {" "} + to the Tezos Network + + + - @@ -137,14 +137,19 @@ export const Review: React.FC = () => { {states[0].activeText !== "" && states[2].completedText === "" && error === null ? ( data && data.address ? null : ( - + This may take several minutes, Do not close the tab ) ) : null} ) : ( - + + + In order to continue, you must be connected to a wallet + + + )} diff --git a/src/modules/creator/steps/Summary.tsx b/src/modules/creator/steps/Summary.tsx index 1cda4007..5a21656c 100644 --- a/src/modules/creator/steps/Summary.tsx +++ b/src/modules/creator/steps/Summary.tsx @@ -4,9 +4,11 @@ import { useHistory, useRouteMatch } from "react-router-dom" import { ActionTypes, CreatorContext } from "modules/creator/state" import { TitleBlock } from "modules/common/TitleBlock" import { toShortAddress } from "services/contracts/utils" +import { Blockie } from "modules/common/Blockie" +import { CopyButton } from "modules/explorer/components/CopyButton" const ThirdContainer = styled(Grid)({ - marginTop: 42, + marginTop: 40, background: "#2F3438", borderRadius: 8, boxSizing: "border-box" @@ -14,7 +16,10 @@ const ThirdContainer = styled(Grid)({ const ThirdContainerFirstRow = styled(Grid)({ padding: "19px 48px", - borderBottom: "0.3px solid #7D8C8B", + backgroundColor: "#2f3438", + borderTopLeftRadius: 8, + borderTopRightRadius: 8, + borderBottom: "0.3px solid #575757", alignItems: "center", display: "flex", maxHeight: 70, @@ -36,7 +41,8 @@ const ThirdContainerLastRow = styled(Grid)({ }) const ThirdContainerRow = styled(Grid)({ - borderBottom: "0.3px solid #7D8C8B", + borderBottom: "0.3px solid #575757", + backgroundColor: "#24282d", padding: "24px 48px", maxHeight: 70, ["@media (max-width:1167px)"]: { @@ -45,9 +51,21 @@ const ThirdContainerRow = styled(Grid)({ } }) -const ThirdContainerSpecialRow = styled(Grid)({ - borderBottom: "0.3px solid #7D8C8B", - borderTop: "0.3px solid #7D8C8B", +const ThirdContainerRowDescription = styled(Grid)({ + backgroundColor: "#2f3438", + padding: "24px 48px", + maxHeight: "inherit", + borderBottomLeftRadius: 8, + borderBottomRightRadius: 8, + ["@media (max-width:1167px)"]: { + padding: "12px 15px", + maxHeight: "inherit" + } +}) + +const ThirdContainerRowOdd = styled(Grid)({ + backgroundColor: "#2a2e32", + borderBottom: "0.3px solid #575757", padding: "24px 48px", maxHeight: 70, ["@media (max-width:1167px)"]: { @@ -56,12 +74,27 @@ const ThirdContainerSpecialRow = styled(Grid)({ } }) -const FirstContainer = styled(Grid)({ - background: "#2F3438", - borderRadius: 8, - padding: "22px 48px", - boxSizing: "border-box", - marginTop: 4 +const ThirdContainerRowOddLast = styled(Grid)({ + backgroundColor: "#2a2e32", + borderBottomLeftRadius: 8, + borderBottomRightRadius: 8, + padding: "24px 48px", + maxHeight: 70, + ["@media (max-width:1167px)"]: { + padding: "12px 15px", + maxHeight: "inherit" + } +}) + +const ThirdContainerSpecialRow = styled(Grid)({ + borderBottom: "0.3px solid #575757", + borderTop: "0.3px solid #575757", + padding: "24px 48px", + maxHeight: 70, + ["@media (max-width:1167px)"]: { + padding: "12px 15px", + maxHeight: "inherit" + } }) const TitleSpacing = styled(Typography)({ @@ -70,7 +103,8 @@ const TitleSpacing = styled(Typography)({ }) const KeyLabel = styled(Typography)({ - fontWeight: 500 + fontWeight: 500, + cursor: "default" }) const ContainerEdit = styled(Typography)({ @@ -78,7 +112,12 @@ const ContainerEdit = styled(Typography)({ }) const AdminAddress = styled(Typography)({ - wordBreak: "break-all" + wordBreak: "break-all", + cursor: "default" +}) + +const ValueLabel = styled(Typography)({ + cursor: "default" }) export const Summary = (): JSX.Element => { @@ -142,69 +181,103 @@ export const Summary = (): JSX.Element => { - + - Administrator + DAO Name - {isMobile - ? toShortAddress(state.data.orgSettings.administrator) - : state.data.orgSettings.administrator} + {state.data.orgSettings.name} - + - Guardian + Token Symbol - {isMobile ? toShortAddress(state.data.orgSettings.guardian) : state.data.orgSettings.guardian} + {state.data.orgSettings.symbol} + + + + + Token Address + + + + + + {toShortAddress(state.data.orgSettings.governanceToken.address)} + + + + + + - + - Governance Token Address + Token ID - {isMobile - ? toShortAddress(state.data.orgSettings.governanceToken.address) - : state.data.orgSettings.governanceToken.address} + {state.data.orgSettings.governanceToken.tokenId} - - + + - Governance Token ID + Guardian - - - {state.data.orgSettings.governanceToken.tokenId} - + + + + {toShortAddress(state.data.orgSettings.guardian)} + + + + + + + + + + + Description + + + + + {state.data.orgSettings.description} + - + @@ -224,7 +297,7 @@ export const Summary = (): JSX.Element => { - + @@ -232,12 +305,12 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.votingBlocks} blocks - + - + @@ -247,14 +320,14 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.proposalFlushBlocks} blocks - + - + @@ -262,12 +335,12 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.proposalExpiryBlocks} blocks - + - + @@ -277,14 +350,14 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.proposeStakeRequired} locked tokens - + - + @@ -292,14 +365,14 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.returnedTokenPercentage}% of locked tokens - + - + - + @@ -307,14 +380,14 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.maxXtzAmount} XTZ - + - + - + @@ -322,12 +395,12 @@ export const Summary = (): JSX.Element => { - + {state.data.votingSettings.minXtzAmount} XTZ - + - + @@ -347,7 +420,7 @@ export const Summary = (): JSX.Element => { - + @@ -355,12 +428,12 @@ export const Summary = (): JSX.Element => { - + {state.data.quorumSettings.quorumThreshold}% - + - + @@ -370,14 +443,14 @@ export const Summary = (): JSX.Element => { - + {state.data.quorumSettings.quorumChange}% - + - + @@ -385,12 +458,12 @@ export const Summary = (): JSX.Element => { - + {state.data.quorumSettings.quorumMaxChange}% - + - + @@ -400,14 +473,14 @@ export const Summary = (): JSX.Element => { - + {state.data.quorumSettings.minQuorumAmount}% - + - + @@ -415,12 +488,12 @@ export const Summary = (): JSX.Element => { - + {state.data.quorumSettings.maxQuorumAmount}% - + - + diff --git a/src/modules/creator/steps/Template.tsx b/src/modules/creator/steps/Template.tsx index b531c823..f65ebc64 100644 --- a/src/modules/creator/steps/Template.tsx +++ b/src/modules/creator/steps/Template.tsx @@ -21,13 +21,10 @@ const LambdaCustomBox = styled(Grid)(({ theme }) => ({ "cursor": "pointer", "paddingBottom": 0, "flexBasis": "47%", - "padding": "37px 41px", + "padding": "33px 38px 0px", "&:hover": { border: "3px solid rgba(129, 254, 183, 0.4)", - paddingTop: 37, - paddingBottom: 0, - paddingRight: 41, - paddingLeft: 41 + padding: "30px 35px 0px" }, ["@media (max-width:1167px)"]: { marginBottom: 20, @@ -38,8 +35,8 @@ const LambdaCustomBox = styled(Grid)(({ theme }) => ({ const styles = makeStyles({ selected: { border: "3px solid rgba(129, 254, 183, 0.4)", - padding: "37px 41px", - paddingBottom: 0 + paddingBottom: 0, + padding: "30px 35px 0px" } }) diff --git a/src/modules/explorer/components/CopyButton.tsx b/src/modules/explorer/components/CopyButton.tsx index 44fa14cf..bc827656 100644 --- a/src/modules/explorer/components/CopyButton.tsx +++ b/src/modules/explorer/components/CopyButton.tsx @@ -1,7 +1,11 @@ import React, { useState } from "react" -import { Box, Tooltip } from "@material-ui/core" +import { Box, Tooltip, styled } from "@material-ui/core" import { ReactComponent as CopyIcon } from "assets/img/copy_icon.svg" +const TooltipButton = styled(Tooltip)({ + cursor: "pointer" +}) + export const CopyButton: React.FC<{ text: string }> = ({ text }) => { const [copied, setCopied] = useState(false) return ( @@ -16,9 +20,9 @@ export const CopyButton: React.FC<{ text: string }> = ({ text }) => { }, 2000) }} > - + - + ) } diff --git a/src/theme/legacy.ts b/src/theme/legacy.ts index 8ff8a3c9..9e682a25 100644 --- a/src/theme/legacy.ts +++ b/src/theme/legacy.ts @@ -54,7 +54,8 @@ export const legacyTheme = createTheme({ fontWeight: 500 }, h4: { - fontSize: 20 + fontSize: 24, + fontWeight: 600 }, h5: { fontSize: 35 @@ -70,6 +71,12 @@ export const legacyTheme = createTheme({ } }, overrides: { + MuiLinearProgress: { + colorSecondary: { + borderRadius: 8, + height: 8 + } + }, MuiSlider: { root: { color: "#3D3D3D" From 90b96ee9b8e7a29c64a375080dca5890ab11c85c Mon Sep 17 00:00:00 2001 From: fabiolalombardim Date: Sun, 25 Feb 2024 16:29:53 +0100 Subject: [PATCH 4/6] fix percentage --- src/modules/creator/components/DeploymentLoader.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/creator/components/DeploymentLoader.tsx b/src/modules/creator/components/DeploymentLoader.tsx index 7b76d42d..9c0171a6 100644 --- a/src/modules/creator/components/DeploymentLoader.tsx +++ b/src/modules/creator/components/DeploymentLoader.tsx @@ -54,13 +54,12 @@ export const DeploymentLoader: React.FC = ({ states, activeStep, error }) setFocusedState(states.length - 1) } else { setFocusedState(activeStep) - // setProgress(progress + 25) } } }, [activeStep, isFinished, states.length]) useEffect(() => { - setProgress(progress + 25) + setProgress(progress + 20) // eslint-disable-next-line react-hooks/exhaustive-deps }, [focusedState]) From 48c9924c1a79f02388368cbaabd43cc2e83783c4 Mon Sep 17 00:00:00 2001 From: Ashutosh Date: Tue, 5 Mar 2024 13:12:43 +0530 Subject: [PATCH 5/6] Messaging Updates --- src/modules/lite/explorer/pages/CreateProposal/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/lite/explorer/pages/CreateProposal/index.tsx b/src/modules/lite/explorer/pages/CreateProposal/index.tsx index 3893ebe9..7f8d2e81 100644 --- a/src/modules/lite/explorer/pages/CreateProposal/index.tsx +++ b/src/modules/lite/explorer/pages/CreateProposal/index.tsx @@ -509,7 +509,7 @@ export const ProposalForm = ({ {" "} - If enabled, the poll will use the voters XTZ balance instead of their balance + If enabled, the poll will use the voter's XTZ balance instead of their governance token balance From ee3d841a21715f3d2fd94e4de08a9d374f74a1a3 Mon Sep 17 00:00:00 2001 From: Ashutosh Date: Wed, 6 Mar 2024 16:00:28 +0530 Subject: [PATCH 6/6] Fix for the Build --- src/modules/lite/explorer/pages/CreateProposal/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/lite/explorer/pages/CreateProposal/index.tsx b/src/modules/lite/explorer/pages/CreateProposal/index.tsx index 7f8d2e81..f10b5c3e 100644 --- a/src/modules/lite/explorer/pages/CreateProposal/index.tsx +++ b/src/modules/lite/explorer/pages/CreateProposal/index.tsx @@ -509,7 +509,7 @@ export const ProposalForm = ({ {" "} - If enabled, the poll will use the voter's XTZ balance instead of their governance token balance + If enabled, the poll will use the voter's XTZ balance instead of their governance token balance