@@ -1,22 +1,22 @@
1import { useCallback, useEffect, useState } from 'react';
1import { useCallback, useEffect, useState } from 'react';
2import { Just } from 'folktale/maybe';
2import { Just } from 'folktale/maybe';
3−import { fromWei, toWei } from 'web3-utils';
3+import { toWei } from 'web3-utils';
5import { useNetwork } from 'store/network';
5import { useNetwork } from 'store/network';
6import { useWallet } from 'store/wallet';
6import { useWallet } from 'store/wallet';
7import { usePointCursor } from 'store/pointCursor';
7import { usePointCursor } from 'store/pointCursor';
8−import { useSuggestedGasPrice } from 'lib/useSuggestedGasPrice';
10−import { GAS_LIMITS } from './constants';
9+import { GAS_LIMITS, DEFAULT_GAS_PRICE_GWEI } from './constants';
12 signTransaction,
11 signTransaction,
13 sendSignedTransaction,
12 sendSignedTransaction,
14 waitForTransactionConfirm,
13 waitForTransactionConfirm,
16} from './txn';
15} from './txn';
17−import * as need from './need';
16+import * as need from 'lib/need';
18−import { ensureFundsFor } from './tank';
17+import { ensureFundsFor } from 'lib/tank';
19import useDeepEqualReference from './useDeepEqualReference';
18import useDeepEqualReference from './useDeepEqualReference';
19+import useGasPrice from './useGasPrice';
21const STATE = {
21const STATE = {
22 NONE: 'NONE',
22 NONE: 'NONE',
@@ -37,7 +37,7 @@ export default function useEthereumTransaction(
37 transactionBuilder,
37 transactionBuilder,
39 initialGasLimit = GAS_LIMITS.DEFAULT,
39 initialGasLimit = GAS_LIMITS.DEFAULT,
40− initialGasPrice = 20
40+ initialGasPrice = DEFAULT_GAS_PRICE_GWEI
42 const { wallet, walletType, walletHdPath } = useWallet();
42 const { wallet, walletType, walletHdPath } = useWallet();
43 const { web3, networkType } = useNetwork();
43 const { web3, networkType } = useNetwork();
@@ -59,9 +59,7 @@ export default function useEthereumTransaction(
59 const [state, setState] = useState(STATE.NONE);
59 const [state, setState] = useState(STATE.NONE);
60 const [chainId, setChainId] = useState();
60 const [chainId, setChainId] = useState();
61 const [nonce, setNonce] = useState();
61 const [nonce, setNonce] = useState();
62− const [gasPrice, setGasPrice] = useState(initialGasPrice); // gwei
62+ const { gasPrice, setGasPrice, resetGasPrice } = useGasPrice(initialGasPrice);
63− const [suggestedGasPrice, setSuggestedGasPrice] = useState(gasPrice); // gwei
64− const { gasPrice: estimatedGasPrice } = useSuggestedGasPrice();
65 const [gasLimit] = useState(initialGasLimit);
63 const [gasLimit] = useState(initialGasLimit);
66 const [unsignedTransaction, setUnsignedTransaction] = useState();
64 const [unsignedTransaction, setUnsignedTransaction] = useState();
67 const [signedTransaction, setSignedTransaction] = useState();
65 const [signedTransaction, setSignedTransaction] = useState();
@@ -179,25 +177,11 @@ export default function useEthereumTransaction(
179 setSignedTransaction(undefined);
177 setSignedTransaction(undefined);
180 setNonce(undefined);
178 setNonce(undefined);
181 setChainId(undefined);
179 setChainId(undefined);
182− setGasPrice(suggestedGasPrice);
180+ resetGasPrice();
183 setState(STATE.NONE);
181 setState(STATE.NONE);
184 setError(undefined);
182 setError(undefined);
185 setNeedFunds(undefined);
183 setNeedFunds(undefined);
186− }, [suggestedGasPrice, setError]);
184+ }, [resetGasPrice, setError]);
188− const resetGasPrice = useCallback(() => setGasPrice(suggestedGasPrice), [
194− const gasPrice = parseInt(
195− fromWei(estimatedGasPrice.toString(), 'gwei'),
198− setSuggestedGasPrice(gasPrice);
199− setGasPrice(gasPrice);
200− }, [estimatedGasPrice]);
202 useEffect(() => {
186 useEffect(() => {
203 let mounted = true;
187 let mounted = true;
@@ -226,15 +210,7 @@ export default function useEthereumTransaction(
228 return () => (mounted = false);
212 return () => (mounted = false);
229− }, [
213+ }, [_wallet, _web3, setError, nonce, chainId, networkType, initialGasPrice]);
239 useEffect(() => {
215 useEffect(() => {
240 let mounted = true;
216 let mounted = true;