diff --git a/nym-wallet/src/pages/settings/index.tsx b/nym-wallet/src/pages/settings/index.tsx
index ea00fe30c5..d3a59a3e29 100644
--- a/nym-wallet/src/pages/settings/index.tsx
+++ b/nym-wallet/src/pages/settings/index.tsx
@@ -44,9 +44,7 @@ export const Settings = () => {
)}
{selectedTab === 0 && mixnodeDetails && }
- {selectedTab === 1 && mixnodeDetails && (
-
- )}
+ {selectedTab === 1 && mixnodeDetails && }
{selectedTab === 2 && mixnodeDetails && }
>
diff --git a/nym-wallet/src/pages/settings/system-variables.tsx b/nym-wallet/src/pages/settings/system-variables.tsx
index befdbd72bc..0ad6b50e25 100644
--- a/nym-wallet/src/pages/settings/system-variables.tsx
+++ b/nym-wallet/src/pages/settings/system-variables.tsx
@@ -1,4 +1,4 @@
-import React, { useContext, useState } from 'react'
+import React, { useContext, useEffect, useState } from 'react'
import {
Box,
Button,
@@ -15,24 +15,18 @@ import { AccessTimeOutlined, PercentOutlined } from '@mui/icons-material'
import { yupResolver } from '@hookform/resolvers/yup'
import { useForm } from 'react-hook-form'
import { InfoTooltip } from '../../components/InfoToolTip'
-import { EnumNodeType, TMixnodeBondDetails } from '../../types'
+import { TMixnodeBondDetails } from '../../types'
import { validationSchema } from './validationSchema'
-import { bond, unbond } from '../../requests'
-import { ClientContext } from '../../context/main'
+import { getGasFee, updateMixnode } from '../../requests'
+import { ClientContext, MAJOR_CURRENCY } from '../../context/main'
type TFormData = {
profitMarginPercent: number
- signature: string
}
-export const SystemVariables = ({
- mixnodeDetails,
- pledge,
-}: {
- mixnodeDetails: TMixnodeBondDetails['mix_node']
- pledge: TMixnodeBondDetails['pledge_amount']
-}) => {
+export const SystemVariables = ({ mixnodeDetails }: { mixnodeDetails: TMixnodeBondDetails['mix_node'] }) => {
const [nodeUpdateResponse, setNodeUpdateResponse] = useState<'success' | 'failed'>()
+ const [configFee, setConfigFee] = useState()
const {
register,
@@ -40,28 +34,28 @@ export const SystemVariables = ({
formState: { errors, isSubmitting },
} = useForm({
resolver: yupResolver(validationSchema),
- defaultValues: { profitMarginPercent: mixnodeDetails.profit_margin_percent.toString(), signature: '' },
+ defaultValues: { profitMarginPercent: mixnodeDetails.profit_margin_percent.toString() },
})
+ useEffect(() => {
+ ;(async () => {
+ const fee = await getGasFee('UpdateMixnodeConfig')
+ setConfigFee(fee.amount)
+ })()
+ }, [])
+
const { userBalance } = useContext(ClientContext)
const onSubmit = async (data: TFormData) => {
- await unbond(EnumNodeType.mixnode)
- await bond({
- type: EnumNodeType.mixnode,
- data: { ...mixnodeDetails, profit_margin_percent: data.profitMarginPercent },
- pledge: { denom: 'Minor', amount: pledge.amount },
- //hardcoded for the moment as required in bonding but not necessary
- ownerSignature: data.signature,
- })
- .then(() => {
+ try {
+ await updateMixnode({ profitMarginPercent: data.profitMarginPercent }).then(() => {
userBalance.fetchBalance()
setNodeUpdateResponse('success')
})
- .catch((e) => {
- setNodeUpdateResponse('failed')
- console.log(e)
- })
+ } catch (e) {
+ setNodeUpdateResponse('failed')
+ console.log(e)
+ }
}
return (
@@ -80,13 +74,6 @@ export const SystemVariables = ({
error={!!errors.profitMarginPercent}
disabled={isSubmitting}
/>
-
Node updated failed
) : (
-
+
+ Fee for this transaction: {`${configFee} ${MAJOR_CURRENCY}`}{' '}
+
)}