@@ -8,13 +8,16 @@ import './FeeDropdown.scss';
9const PRICE_LABELS = ['Fast', 'Normal', 'Slow'];
9const PRICE_LABELS = ['Fast', 'Normal', 'Slow'];
11−export interface GasPrice {
11+export interface GasPriceData {
12 price: number;
12 price: number;
13 wait: string;
13 wait: string;
14+ maxFeePerGas: number;
15+ maxPriorityFeePerGas: number;
16+ suggestedBaseFeePerGas: number;
16export const formatWait = (wait: number) => Math.round(wait * 100) / 100;
19export const formatWait = (wait: number) => Math.round(wait * 100) / 100;
17−export const formatDisplay = ({ price, wait }: GasPrice) =>
20+export const formatDisplay = ({ price, wait }: GasPriceData) =>
18 `${price} gwei (${wait} min)`;
21 `${price} gwei (${wait} min)`;
20export default function FeeDropdown({
23export default function FeeDropdown({
@@ -22,12 +25,16 @@ export default function FeeDropdown({
23 setGasPrice: (g: number) => void;
26 setGasPrice: (g: number) => void;
28+ const { suggestedGasPrices }: { suggestedGasPrices: {
30+ average: GasPriceData,
25− const { suggestedGasPrices } = useGasPrice(DEFAULT_GAS_PRICE_GWEI);
32+ }} = useGasPrice(DEFAULT_GAS_PRICE_GWEI);
27 const [open, setOpen] = useState(false);
34 const [open, setOpen] = useState(false);
28 const [useCustom, setUseCustom] = useState(false);
35 const [useCustom, setUseCustom] = useState(false);
29 const [custom, setCustom] = useState<string | undefined>();
36 const [custom, setCustom] = useState<string | undefined>();
30− const [selected, setSelected] = useState<GasPrice>(
37+ const [selected, setSelected] = useState<GasPriceData>(
31 suggestedGasPrices.average
38 suggestedGasPrices.average
@@ -51,7 +58,13 @@ export default function FeeDropdown({
51 customWait = `< ${fast.wait}`;
58 customWait = `< ${fast.wait}`;
54− setSelected({ price: cleanedNum, wait: customWait });
62+ price: cleanedNum,
64+ maxFeePerGas: cleanedNum,
65+ maxPriorityFeePerGas: cleanedNum,
66+ suggestedBaseFeePerGas: cleanedNum
57 useEffect(() => {
70 useEffect(() => {
@@ -59,7 +72,7 @@ export default function FeeDropdown({
59 }, [suggestedGasPrices]);
72 }, [suggestedGasPrices]);
61 const selectPrice = useCallback(
74 const selectPrice = useCallback(
62− (value: GasPrice) => () => {
75+ (value: GasPriceData) => () => {
63 setSelected(value);
76 setSelected(value);
64 setGasPrice(value.price);
77 setGasPrice(value.price);
65 setOpen(false);
78 setOpen(false);
@@ -97,7 +110,7 @@ export default function FeeDropdown({
97 toggleOpen={() => setOpen(!open)}>
110 toggleOpen={() => setOpen(!open)}>
98 <Box className="prices">
111 <Box className="prices">
99 {Object.values(suggestedGasPrices).map(
112 {Object.values(suggestedGasPrices).map(
100− (value: GasPrice, ind: number) => (
113+ (value: GasPriceData, ind: number) => (
102 className="price"
115 className="price"
103 onClick={selectPrice(value)}
116 onClick={selectPrice(value)}