Skip to content

Commit

Permalink
Merge fccda90 into 43d1169
Browse files Browse the repository at this point in the history
  • Loading branch information
LautaroPetaccio committed Feb 29, 2024
2 parents 43d1169 + fccda90 commit d9d67e4
Show file tree
Hide file tree
Showing 9 changed files with 604 additions and 273 deletions.
8 changes: 7 additions & 1 deletion webapp/src/components/AssetImage/AssetImage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,13 @@ const AssetImageWrapper = (props: Props) => {
} = props

useEffect(() => {
if (!item && isNFT(asset) && asset.itemId) {
if (
!item &&
isNFT(asset) &&
asset.itemId &&
(asset.category === NFTCategory.WEARABLE ||
asset.category === NFTCategory.EMOTE)
) {
onFetchItem(asset.contractAddress, asset.itemId)
}
}, [asset, item, onFetchItem])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,8 @@ const BuyNftWithCryptoModalHOC = (props: Props) => {
[order]
)
const onGetGasCost: OnGetGasCost = useCallback(
(selectedToken, selectedChain, wallet, providerTokens) =>
useBuyNftGasCost(
nft,
order,
selectedToken,
selectedChain,
wallet,
providerTokens
),
(selectedToken, chainNativeToken, wallet) =>
useBuyNftGasCost(nft, order, selectedToken, chainNativeToken, wallet),
[nft, order]
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import { ManaToFiat } from '../../ManaToFiat'
import { config } from '../../../config'
import ChainAndTokenSelector from './ChainAndTokenSelector/ChainAndTokenSelector'
import {
DEFAULT_CHAINS,
getDefaultChains,
getMANAToken,
getShouldUseMetaTx,
Expand Down Expand Up @@ -111,11 +110,24 @@ export const BuyWithCryptoModal = (props: Props) => {
)
}, [providerTokens, manaAddressOnAssetChain])

const selectedProviderChain = useMemo(() => {
return providerChains.find(
c => c.chainId.toString() === selectedChain.toString()
)
}, [providerChains, selectedChain])

const chainNativeToken = useMemo(() => {
return providerTokens.find(
t =>
+t.chainId === selectedChain &&
t.symbol === selectedProviderChain?.nativeCurrency.symbol
)
}, [selectedChain, selectedProviderChain, providerTokens])

const { gasCost, isFetchingGasCost } = onGetGasCost(
selectedToken,
selectedChain,
wallet,
providerTokens
chainNativeToken,
wallet
)

const {
Expand Down Expand Up @@ -147,7 +159,6 @@ export const BuyWithCryptoModal = (props: Props) => {
// if the tx should be done through the provider
const shouldUseCrossChainProvider = useShouldUseCrossChainProvider(
selectedToken,
selectedChain,
asset.network
)

Expand All @@ -166,15 +177,9 @@ export const BuyWithCryptoModal = (props: Props) => {
)
}, [asset, manaAddressOnAssetChain, selectedChain, selectedToken, wallet])

const selectedProviderChain = useMemo(() => {
return providerChains.find(
c => c.chainId.toString() === selectedChain.toString()
)
}, [providerChains, selectedChain])

// Compute if the price is too low for meta tx
const hasLowPriceForMetaTx = useMemo(
() => wallet?.chainId !== ChainId.MATIC_MAINNET && isPriceTooLow(price), // not connected to polygon AND has price < minimun for meta tx
() => wallet?.chainId !== ChainId.MATIC_MAINNET && isPriceTooLow(price), // not connected to polygon AND has price < minimum for meta tx
[price, wallet?.chainId]
)

Expand All @@ -186,18 +191,19 @@ export const BuyWithCryptoModal = (props: Props) => {
if (!crossChainProvider.isLibInitialized()) {
await crossChainProvider.init()
}
const defaultChains = getDefaultChains()
const supportedTokens = crossChainProvider.getSupportedTokens()
const supportedChains = [
...DEFAULT_CHAINS,
...defaultChains,
...crossChainProvider
.getSupportedChains()
.filter(c => DEFAULT_CHAINS.every(dc => dc.chainId !== c.chainId))
.filter(c => defaultChains.every(dc => dc.chainId !== c.chainId))
] // keep the defaults since we support MANA on them natively
setProviderChains(
supportedChains.filter(
c =>
CROSS_CHAIN_SUPPORTED_CHAINS.includes(+c.chainId) &&
getDefaultChains().find(t => t.chainId === c.chainId)
defaultChains.find(t => t.chainId === c.chainId)
)
)
setProviderTokens(
Expand Down Expand Up @@ -344,14 +350,17 @@ export const BuyWithCryptoModal = (props: Props) => {
</>
) : (
t('buy_with_crypto_modal.switch_network', {
chain: providerChains.find(
c => c.chainId === selectedChain.toString()
)?.networkName
chain: selectedProviderChain?.networkName
})
)}
</Button>
)
}, [isSwitchingNetwork, onSwitchNetwork, providerChains, selectedChain])
}, [
isSwitchingNetwork,
onSwitchNetwork,
selectedProviderChain,
selectedChain
])

const handleBuyWithCard = useCallback(() => {
if (onBuyWithCard) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ export type MapStateProps = Pick<
export type MapDispatchProps = Pick<Props, 'onGetMana' | 'onSwitchNetwork'>
export type OnGetGasCost = (
selectedToken: Token,
selectedChain: ChainId,
wallet: Wallet | null,
providerTokens: Token[]
nativeChainToken: Token | undefined,
wallet: Wallet | null
) => GasCost
export type OnGetCrossChainRoute = (
selectedToken: Token,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,8 @@ const MintNameWithCryptoModalHOC = (props: Props) => {
)

const onGetGasCost: OnGetGasCost = useCallback(
(selectedToken, selectedChain, wallet, providerTokens) =>
useNameMintingGasCost(
name,
selectedToken,
selectedChain,
wallet,
providerTokens
),
(selectedToken, chainNativeToken, wallet) =>
useNameMintingGasCost(name, selectedToken, chainNativeToken, wallet),
[name]
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,8 @@ const MintNftWithCryptoModalHOC = (props: Props) => {
[item]
)
const onGetGasCost: OnGetGasCost = useCallback(
(selectedToken, selectedChain, wallet, providerTokens) =>
useMintingNftGasCost(
item,
selectedToken,
selectedChain,
wallet,
providerTokens
),
(selectedToken, chainNativeToken, wallet) =>
useMintingNftGasCost(item, selectedToken, chainNativeToken, wallet),
[item]
)

Expand Down
Loading

0 comments on commit d9d67e4

Please sign in to comment.