@@ -22,7 +22,7 @@ import { ensureFundsFor } from 'lib/tank';
22import useDeepEqualReference from 'lib/useDeepEqualReference';
22import useDeepEqualReference from 'lib/useDeepEqualReference';
23import useGasPrice from 'lib/useGasPrice';
23import useGasPrice from 'lib/useGasPrice';
24import timeout from 'lib/timeout';
24import timeout from 'lib/timeout';
25−import { safeToWei } from 'lib/lib';
25+import { safeToWei, safeFromWei } from 'lib/lib';
27const STATE = {
27const STATE = {
28 NONE: 'NONE',
28 NONE: 'NONE',
@@ -73,6 +73,8 @@ export default function useEthereumTransaction(
73 const [needFunds, setNeedFunds] = useState();
73 const [needFunds, setNeedFunds] = useState();
74 const [confirmationProgress, setConfirmationProgress] = useState(0.0);
74 const [confirmationProgress, setConfirmationProgress] = useState(0.0);
76+ const [finalCost, setFinalCost] = useState();
76 const initializing = nonce === undefined || chainId === undefined;
78 const initializing = nonce === undefined || chainId === undefined;
77 const constructed = !!unsignedTransactions;
79 const constructed = !!unsignedTransactions;
78 const isDefaultState = state === STATE.NONE;
80 const isDefaultState = state === STATE.NONE;
@@ -186,10 +188,26 @@ export default function useEthereumTransaction(
187 setConfirmationProgress(0.2);
189 setConfirmationProgress(0.2);
189− await Promise.all(
191+ const receipts = await Promise.all(
190 txHashes.map(txHash => waitForTransactionConfirm(_web3, txHash))
192 txHashes.map(txHash => waitForTransactionConfirm(_web3, txHash))
200+ toBN(receipt.gasUsed)
201+ .mul(toBN(gasPrice))
193 setConfirmationProgress(0.9);
211 setConfirmationProgress(0.9);
195 setState(STATE.CONFIRMED);
213 setState(STATE.CONFIRMED);
@@ -217,6 +235,7 @@ export default function useEthereumTransaction(
217 setError(undefined);
235 setError(undefined);
218 setNeedFunds(undefined);
236 setNeedFunds(undefined);
219 setConfirmationProgress(0.0);
237 setConfirmationProgress(0.0);
238+ setFinalCost(undefined);
220 }, [resetGasPrice, setError]);
239 }, [resetGasPrice, setError]);
222 useEffect(() => {
241 useEffect(() => {
@@ -314,6 +333,7 @@ export default function useEthereumTransaction(
314 needFunds,
333 needFunds,
315 gasLimit,
334 gasLimit,
316 unsignedTransactions,
335 unsignedTransactions,
319 return { ...values, bind: values };
339 return { ...values, bind: values };