Skip to content

Commit

Permalink
init wagmi gas
Browse files Browse the repository at this point in the history
  • Loading branch information
aeolianeth committed Jan 21, 2025
1 parent cd7dadb commit f4cd13c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { useJBChainId, useSuckers } from 'juice-sdk-react'
import { useEffect, useState } from 'react'
import { useState } from 'react'

import { Trans } from '@lingui/macro'
import axios from 'axios'
import { estimateGas } from '@wagmi/core'
import { JuiceListbox } from 'components/inputs/JuiceListbox'
import { NETWORKS } from 'constants/networks'
import { useFormikContext } from 'formik'
import { useConfig } from 'wagmi'
import { PayProjectModalFormValues } from '../hooks/usePayProjectModal/usePayProjectModal'
import { useProjectPaymentTokens } from '../hooks/useProjectPaymentTokens'

Expand All @@ -20,6 +21,7 @@ export const ChainSelectSection = () => {
const suckers = suckersQuery.data

const defaultChainId = useJBChainId()
const config = useConfig()
const { values, setFieldValue } =
useFormikContext<PayProjectModalFormValues>()

Expand All @@ -32,26 +34,22 @@ export const ChainSelectSection = () => {
}))

const fetchGasEstimates = async () => {
const estimates: GasEstimates = {}
for (const option of networkOptions) {
try {
const response = await axios.get(
`https://api.blocknative.com/gasprices/blockprices?chainid=${option.value}`,
)
const data = response.data
const estimatedGas =
data?.blockPrices[0]?.estimatedPrices[0]?.maxFeePerGas
estimates[option.value] = estimatedGas || 'Unavailable'
} catch (error) {
estimates[option.value] = 'Error fetching'
}
}
setGasEstimates(estimates)
const estimates = await Promise.allSettled(
Array.from(allowedChainIds).map(async chainId => {
await estimateGas(config, {
chainId: chainId,
// TODO pass in tx data and contract address
// to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
// value: parseEther('0.01'),
})
}),
)
// setGasEstimates(estimates)
}

useEffect(() => {
fetchGasEstimates()
}, [])
// useEffect(() => {
// fetchGasEstimates()
// }, [])

if (!suckers || suckers.length <= 1) return null

Expand Down Expand Up @@ -79,7 +77,7 @@ export const ChainSelectSection = () => {
}}
options={networkOptions.map(option => ({
...option,
label: `${option.label}`
label: `${option.label}`,
// - Gas: ${
// gasEstimates[option.value] || 'Loading...'
// }`,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
import { Address, Hash, parseEther } from 'viem'
import { DEFAULT_METADATA, NATIVE_TOKEN } from 'juice-sdk-core'
import { useCallback, useContext, useMemo } from 'react'
import {
useJBChainId,
useJBContractContext,
useJBRulesetContext,
usePreparePayMetadata,
useWriteJbMultiTerminalPay,
} from 'juice-sdk-react'
import { useCallback, useContext, useMemo } from 'react'
import { Address, Hash, parseEther } from 'viem'

import { FormikHelpers } from 'formik'
import { PayProjectModalFormValues } from './usePayProjectModal'
import { ProjectPayReceipt } from 'packages/v4/views/V4ProjectDashboard/hooks/useProjectPageQueries'
import { waitForTransactionReceipt } from '@wagmi/core'
import { TxHistoryContext } from 'contexts/Transaction/TxHistoryContext'
import { V4_CURRENCY_ETH } from 'packages/v4/utils/currency'
import { buildPaymentMemo } from 'utils/buildPaymentMemo'
import { FormikHelpers } from 'formik'
import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
import { useProjectHasErc20Token } from 'packages/v4/hooks/useProjectHasErc20Token'
import { useProjectPaymentTokens } from '../useProjectPaymentTokens'
import { useWallet } from 'hooks/Wallet'
import { useProjectSelector } from 'packages/v4/components/ProjectDashboard/redux/hooks'
import { useV4NftRewards } from 'packages/v4/contexts/V4NftRewards/V4NftRewardsProvider'
import { useV4UserNftCredits } from 'packages/v4/contexts/V4UserNftCreditsProvider'
import { useWallet } from 'hooks/Wallet'
import { useProjectHasErc20Token } from 'packages/v4/hooks/useProjectHasErc20Token'
import { V4_CURRENCY_ETH } from 'packages/v4/utils/currency'
import { ProjectPayReceipt } from 'packages/v4/views/V4ProjectDashboard/hooks/useProjectPageQueries'
import { wagmiConfig } from 'packages/v4/wagmiConfig'
import { waitForTransactionReceipt } from '@wagmi/core'
import { buildPaymentMemo } from 'utils/buildPaymentMemo'
import { useProjectPaymentTokens } from '../useProjectPaymentTokens'
import { PayProjectModalFormValues } from './usePayProjectModal'

export const usePayProjectTx = ({
onTransactionPending: onTransactionPendingCallback,
Expand Down Expand Up @@ -141,7 +141,7 @@ export const usePayProjectTx = ({
})
const beneficiary = (values.beneficiaryAddress ?? userAddress) as Address
const chainId = values.chainId || defaultChainId

const args = [
projectId,
NATIVE_TOKEN,
Expand Down Expand Up @@ -197,6 +197,7 @@ export const usePayProjectTx = ({
onTransactionConfirmedCallback,
buildPayReceipt,
onTransactionErrorCallback,
defaultChainId,
],
)
}

0 comments on commit f4cd13c

Please sign in to comment.