diff --git a/common/network-defaults/envs/qa.env b/common/network-defaults/envs/qa.env index 842fb54c4d..0e791db172 100644 --- a/common/network-defaults/envs/qa.env +++ b/common/network-defaults/envs/qa.env @@ -9,7 +9,7 @@ MIX_DENOM_DISPLAY=nym STAKE_DENOM=unyx STAKE_DENOM_DISPLAY=nyx DENOMS_EXPONENT=6 -MIXNET_CONTRACT_ADDRESS=n1suhgf5svhu4usrurvxzlgn54ksxmn8gljarjtxqnapv8kjnp4nrsd3qaep +MIXNET_CONTRACT_ADDRESS=n1rjzps6qrmdqmf0xz4cn4x4rcmqeqzq6hnzqg4wcvd0r2lyasdq5sepn5s8 VESTING_CONTRACT_ADDRESS=n1xr3rq8yvd7qplsw5yx90ftsr2zdhg4e9z60h5duusgxpv72hud3sjkxkav BANDWIDTH_CLAIM_CONTRACT_ADDRESS=n19lc9u84cz0yz3fww5283nucc9yvr8gsjmgeul0 COCONUT_BANDWIDTH_CONTRACT_ADDRESS=n1ghd753shjuwexxywmgs4xz7x2q732vcn7ty4yw diff --git a/nym-wallet/nym-wallet-types/src/network.rs b/nym-wallet/nym-wallet-types/src/network.rs index c3712355b1..2a07812fa1 100644 --- a/nym-wallet/nym-wallet-types/src/network.rs +++ b/nym-wallet/nym-wallet-types/src/network.rs @@ -160,7 +160,7 @@ mod qa { pub(crate) const STAKE_DENOM: DenomDetails = DenomDetails::new("unyx", "nyx", 6); pub(crate) const MIXNET_CONTRACT_ADDRESS: &str = - "n1suhgf5svhu4usrurvxzlgn54ksxmn8gljarjtxqnapv8kjnp4nrsd3qaep"; + "n1rjzps6qrmdqmf0xz4cn4x4rcmqeqzq6hnzqg4wcvd0r2lyasdq5sepn5s8"; pub(crate) const VESTING_CONTRACT_ADDRESS: &str = "n1xr3rq8yvd7qplsw5yx90ftsr2zdhg4e9z60h5duusgxpv72hud3sjkxkav"; pub(crate) const BANDWIDTH_CLAIM_CONTRACT_ADDRESS: &str = diff --git a/nym-wallet/src/components/Bonding/BondedMixnode.tsx b/nym-wallet/src/components/Bonding/BondedMixnode.tsx index cfd9fc3cbf..0d717f4872 100644 --- a/nym-wallet/src/components/Bonding/BondedMixnode.tsx +++ b/nym-wallet/src/components/Bonding/BondedMixnode.tsx @@ -118,14 +118,16 @@ export const BondedMixnode = ({ } Action={ - + mixnode.type === 'mixnode' && ( + + ) } > diff --git a/nym-wallet/src/context/bonding.tsx b/nym-wallet/src/context/bonding.tsx index 2064e6abcc..07ecf84555 100644 --- a/nym-wallet/src/context/bonding.tsx +++ b/nym-wallet/src/context/bonding.tsx @@ -35,6 +35,7 @@ import { attachDefaultOperatingCost, toPercentFloatString, toPercentIntegerStrin // TODO add relevant data export type TBondedMixnode = { + type: 'mixnode'; name?: string; identityKey: string; stake: DecCoin; @@ -48,12 +49,12 @@ export type TBondedMixnode = { host: string; httpApiPort: number; mixPort: number; - profitMarginPercent: number; verlocPort: number; version: string; }; export interface TBondedGateway { + type: 'gateway'; name: string; identityKey: string; ip: string; @@ -63,7 +64,6 @@ export interface TBondedGateway { host: string; httpApiPort: number; mixPort: number; - profitMarginPercent: number; verlocPort: number; version: string; } @@ -167,45 +167,34 @@ export const BondingContextProvider = ({ children }: { children?: React.ReactNod Console.warn(`get_operator_rewards request failed: ${e}`); } if (data) { - // const { mix_node } = data; - // const { status, stakeSaturation, numberOfDelegators } = await getAdditionalMixnodeDetails( - // data.mix_node.identity_key, - // ); - console.log('data', data); - const { status, stakeSaturation } = await getAdditionalMixnodeDetails(data.bond_information.id); + const { bond_information, rewarding_details } = data; + const { status, stakeSaturation } = await getAdditionalMixnodeDetails(bond_information.id); const nodeDescription = await getNodeDescription( - data.bond_information.mix_node.host, - data.bond_information.mix_node.http_api_port, + bond_information.mix_node.host, + bond_information.mix_node.http_api_port, ); setBondedNode({ + type: ownership.nodeType, name: nodeDescription?.name, - identityKey: data.bond_information.mix_node.identity_key, - ip: '', + identityKey: bond_information.mix_node.identity_key, + ip: bond_information.id, stake: { - amount: calculateStake(data.rewarding_details.operator, data.rewarding_details.delegates).toString(), - denom: data.bond_information.original_pledge.denom, + amount: calculateStake(rewarding_details.operator, data.rewarding_details.delegates).toString(), + denom: bond_information.original_pledge.denom, }, - bond: data.bond_information.original_pledge, - profitMargin: toPercentIntegerString(data.rewarding_details.cost_params.profit_margin_percent), - delegators: data.rewarding_details.unique_delegations, - proxy: data.bond_information.proxy, + bond: bond_information.original_pledge, + profitMargin: toPercentIntegerString(rewarding_details.cost_params.profit_margin_percent), + delegators: rewarding_details.unique_delegations, + proxy: bond_information.proxy, operatorRewards, status, stakeSaturation, - host: '1.2.34.5', - httpApiPort: 8000, - mixPort: 1789, - profitMarginPercent: 10, - verlocPort: 1790, - version: '1.0.2', + host: bond_information.mix_node.host.replace(/\s/g, ''), + httpApiPort: bond_information.mix_node.http_api_port, + mixPort: bond_information.mix_node.mix_port, + verlocPort: bond_information.mix_node.verloc_port, + version: bond_information.mix_node.version, } as TBondedMixnode); - - // host: mix_node.host.replace(/\s/g, ''), - // httpApiPort: mix_node.http_api_port, - // mixPort: mix_node.mix_port, - // profitMarginPercent: mix_node.profit_margin_percent, - // verlocPort: mix_node.verloc_port, - // version: mix_node.version, } } catch (e: any) { Console.warn(e); @@ -220,6 +209,7 @@ export const BondingContextProvider = ({ children }: { children?: React.ReactNod const nodeDescription = await getNodeDescription(data.gateway.host, data.gateway.clients_port); setBondedNode({ + type: ownership.nodeType, name: nodeDescription?.name, identityKey: data.gateway.identity_key, ip: data.gateway.host, diff --git a/nym-wallet/src/context/mocks/bonding.tsx b/nym-wallet/src/context/mocks/bonding.tsx index 061acb733f..71ddac9cb6 100644 --- a/nym-wallet/src/context/mocks/bonding.tsx +++ b/nym-wallet/src/context/mocks/bonding.tsx @@ -7,6 +7,7 @@ import { mockSleep } from './utils'; const SLEEP_MS = 1000; const bondedMixnodeMock: TBondedMixnode = { + type: 'mixnode', name: 'Monster node', identityKey: '7mjM2fYbtN6kxMwp1TrmQ4VwPks3URR5pBgWPWhzT98F', stake: { denom: 'nym', amount: '1234' }, @@ -19,12 +20,12 @@ const bondedMixnodeMock: TBondedMixnode = { host: '1.2.34.5 ', httpApiPort: 8000, mixPort: 1789, - profitMarginPercent: 10, verlocPort: 1790, version: '1.0.2', }; const bondedGatewayMock: TBondedGateway = { + type: 'gateway', name: 'Monster node', identityKey: 'WayM2fYbtN6kxMwp1TrmQ4VwPks3URR5pBgWPWhzT98F', ip: '112.43.234.57', @@ -32,7 +33,6 @@ const bondedGatewayMock: TBondedGateway = { host: '1.2.34.5 ', httpApiPort: 8000, mixPort: 1789, - profitMarginPercent: 10, verlocPort: 1790, version: '1.0.2', }; diff --git a/nym-wallet/src/pages/bonding/node-settings/general-settings/ParametersSettings.tsx b/nym-wallet/src/pages/bonding/node-settings/general-settings/ParametersSettings.tsx index ebd5ff98d4..a26aa53774 100644 --- a/nym-wallet/src/pages/bonding/node-settings/general-settings/ParametersSettings.tsx +++ b/nym-wallet/src/pages/bonding/node-settings/general-settings/ParametersSettings.tsx @@ -6,12 +6,14 @@ import { TBondedMixnode, TBondedGateway } from '../../../../context/bonding'; import { SimpleModal } from '../../../../components/Modals/SimpleModal'; export const ParametersSettings = ({ bondedNode }: { bondedNode: TBondedMixnode | TBondedGateway }) => { - const { profitMarginPercent, bond } = bondedNode; + const { bond } = bondedNode; const [buttonActive, setButtonActive] = useState(false); const [open, setOpen] = useState(true); const [openConfirmationModal, setOpenConfirmationModal] = useState(false); - const [profitMargin, setProfitMargin] = useState(profitMarginPercent); + const [profitMarginPercent, setProfitMarginPercent] = useState( + bondedNode.type === 'mixnode' ? bondedNode.profitMargin : '', + ); const [operatorCost, setOperatorCost] = useState(parseInt(bond.amount)); const theme = useTheme(); @@ -29,7 +31,7 @@ export const ParametersSettings = ({ bondedNode }: { bondedNode: TBondedMixnode const numNewValue = parseInt(value) || 0; switch (id) { case 'profitMargin': - setProfitMargin(numNewValue); + setProfitMarginPercent(value); break; case 'operatorCost': setOperatorCost(numNewValue);