diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 6a2076cf5d..a2ddd3504e 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -12,7 +12,7 @@ "@0xsquid/squid-types": "^0.1.29", "@covalenthq/client-sdk": "^0.6.4", "@dcl/crypto": "^3.0.0", - "@dcl/schemas": "^11.10.5", + "@dcl/schemas": "^12.0.0", "@dcl/single-sign-on-client": "^0.1.0", "@dcl/ui-env": "^1.5.0", "@ethersproject/providers": "^5.6.2", @@ -1743,9 +1743,9 @@ "integrity": "sha512-Cg+MoIOn+BYmQV2q8zSFnNYY+GldlnUazwBnfgrq3i66ZxOaZ65h01btd8OUtSAlfWG4VTNIOHDjtKqmuwJNBg==" }, "node_modules/@dcl/schemas": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/@dcl/schemas/-/schemas-11.10.5.tgz", - "integrity": "sha512-/SqtrVh68lQF4iwe0HIU/egR076PPFpmp6NF6HpikKcHywS6xSi+IdMyI6uYdbT2jV3C9QmIB9foVBI0qsIsSA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@dcl/schemas/-/schemas-12.0.0.tgz", + "integrity": "sha512-wQ5acIFHRsian6HPuYpFxJxNyhAW30iobInoo3vR5RCTyKa6XJR+dafaSYuj+CwOihwl5BWV9mp9oZ5c6XOG3Q==", "dependencies": { "ajv": "^8.11.0", "ajv-errors": "^3.0.0", @@ -9110,6 +9110,17 @@ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" }, + "node_modules/decentraland-connect/node_modules/@dcl/schemas": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@dcl/schemas/-/schemas-11.12.0.tgz", + "integrity": "sha512-L04KTucvxSnrHDAl3/rnkzhjfZ785dSSPeKarBVfzyuw41uyQ0Mh4HVFWjX9hC+f/nMpM5Adg5udlT5efmepcA==", + "dependencies": { + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-keywords": "^5.1.0", + "mitt": "^3.0.1" + } + }, "node_modules/decentraland-connect/node_modules/@noble/curves": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", @@ -9258,6 +9269,17 @@ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" }, + "node_modules/decentraland-dapps/node_modules/@dcl/schemas": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@dcl/schemas/-/schemas-11.12.0.tgz", + "integrity": "sha512-L04KTucvxSnrHDAl3/rnkzhjfZ785dSSPeKarBVfzyuw41uyQ0Mh4HVFWjX9hC+f/nMpM5Adg5udlT5efmepcA==", + "dependencies": { + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-keywords": "^5.1.0", + "mitt": "^3.0.1" + } + }, "node_modules/decentraland-dapps/node_modules/@formatjs/intl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", @@ -9514,6 +9536,17 @@ } } }, + "node_modules/decentraland-ui/node_modules/@dcl/schemas": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@dcl/schemas/-/schemas-11.12.0.tgz", + "integrity": "sha512-L04KTucvxSnrHDAl3/rnkzhjfZ785dSSPeKarBVfzyuw41uyQ0Mh4HVFWjX9hC+f/nMpM5Adg5udlT5efmepcA==", + "dependencies": { + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-keywords": "^5.1.0", + "mitt": "^3.0.1" + } + }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", diff --git a/webapp/package.json b/webapp/package.json index 564c66e337..93c15a9fff 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -7,7 +7,7 @@ "@0xsquid/squid-types": "^0.1.29", "@covalenthq/client-sdk": "^0.6.4", "@dcl/crypto": "^3.0.0", - "@dcl/schemas": "^11.10.5", + "@dcl/schemas": "^12.0.0", "@dcl/single-sign-on-client": "^0.1.0", "@dcl/ui-env": "^1.5.0", "@ethersproject/providers": "^5.6.2", diff --git a/webapp/src/components/AssetPage/YourOffer/YourOffer.tsx b/webapp/src/components/AssetPage/YourOffer/YourOffer.tsx index 77f4d6a655..763802776a 100644 --- a/webapp/src/components/AssetPage/YourOffer/YourOffer.tsx +++ b/webapp/src/components/AssetPage/YourOffer/YourOffer.tsx @@ -127,7 +127,12 @@ const YourOffer = (props: Props) => { - diff --git a/webapp/src/components/Bid/AcceptButton/AcceptButton.tsx b/webapp/src/components/Bid/AcceptButton/AcceptButton.tsx index 75f93f618d..7ce5d53efe 100644 --- a/webapp/src/components/Bid/AcceptButton/AcceptButton.tsx +++ b/webapp/src/components/Bid/AcceptButton/AcceptButton.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useState } from 'react' import { t } from 'decentraland-dapps/dist/modules/translation/utils' import { Button, Popup } from 'decentraland-ui' +import { isNFT } from '../../../modules/asset/utils' import { isInsufficientMANA, checkFingerprint } from '../../../modules/bid/utils' import { useFingerprint } from '../../../modules/nft/hooks' import { isLandLocked } from '../../../modules/rental/utils' @@ -8,11 +9,11 @@ import { LandLockedPopup } from '../../LandLockedPopup' import { Props } from './AcceptButton.types' const AcceptButton = (props: Props) => { - const { nft, bid, onClick, rental, userAddress } = props + const { asset, bid, onClick, rental, userAddress } = props - const [fingerprint, isLoadingFingerprint] = useFingerprint(nft) + const [fingerprint, isLoadingFingerprint] = useFingerprint(asset && isNFT(asset) ? asset : null) const [hasInsufficientMANA, setHasInsufficientMANA] = useState(false) - const isCurrentlyLocked = rental && nft && isLandLocked(userAddress, rental, nft) + const isCurrentlyLocked = rental && asset && isLandLocked(userAddress, rental, asset) useEffect(() => { isInsufficientMANA(bid) @@ -21,9 +22,10 @@ const AcceptButton = (props: Props) => { }, [bid]) const isValidFingerprint = checkFingerprint(bid, fingerprint) - const isValidSeller = !!nft && nft.owner === bid.seller + const assetOwner = !!asset && (isNFT(asset) ? asset.owner : asset?.creator) + const isValidSeller = assetOwner && assetOwner === userAddress - const isDisabled = isCurrentlyLocked || !nft || isLoadingFingerprint || hasInsufficientMANA || !isValidFingerprint || !isValidSeller + const isDisabled = isCurrentlyLocked || !asset || isLoadingFingerprint || hasInsufficientMANA || !isValidFingerprint || !isValidSeller let button = (