import React from "react";
import { Account, useFetchAccountInfo } from "providers/accounts";
import { TableCardBody } from "components/common/TableCardBody";
import {
ConfigAccount,
StakeConfigInfoAccount,
ValidatorInfoAccount,
} from "validators/accounts/config";
import {
AccountAddressRow,
AccountBalanceRow,
AccountHeader,
} from "components/common/Account";
import { PublicKey } from "@solana/web3.js";
import { Address } from "components/common/Address";
const MAX_SLASH_PENALTY = Math.pow(2, 8);
export function ConfigAccountSection({
account,
configAccount,
}: {
account: Account;
configAccount: ConfigAccount;
}) {
switch (configAccount.type) {
case "stakeConfig":
return (
);
case "validatorInfo":
return (
);
}
}
function StakeConfigCard({
account,
configAccount,
}: {
account: Account;
configAccount: StakeConfigInfoAccount;
}) {
const refresh = useFetchAccountInfo();
const warmupCooldownFormatted = new Intl.NumberFormat("en-US", {
style: "percent",
maximumFractionDigits: 2,
}).format(configAccount.info.warmupCooldownRate);
const slashPenaltyFormatted = new Intl.NumberFormat("en-US", {
style: "percent",
maximumFractionDigits: 2,
}).format(configAccount.info.slashPenalty / MAX_SLASH_PENALTY);
return (
refresh(account.pubkey, "parsed")}
/>
Warmup / Cooldown Rate |
{warmupCooldownFormatted} |
Slash Penalty |
{slashPenaltyFormatted} |
);
}
function ValidatorInfoCard({
account,
configAccount,
}: {
account: Account;
configAccount: ValidatorInfoAccount;
}) {
const refresh = useFetchAccountInfo();
return (
refresh(account.pubkey, "parsed")}
/>
{configAccount.info.configData.name && (
Name |
{configAccount.info.configData.name}
|
)}
{configAccount.info.configData.keybaseUsername && (
Keybase Username |
{configAccount.info.configData.keybaseUsername}
|
)}
{configAccount.info.configData.website && (
Website |
{configAccount.info.configData.website}
|
)}
{configAccount.info.configData.details && (
Details |
{configAccount.info.configData.details}
|
)}
{configAccount.info.keys && configAccount.info.keys.length > 1 && (
Signer |
|
)}
);
}