diff --git a/.env.example b/.env.example index 75fd4b54..dacee0f3 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,6 @@ +ALGOLIA_APPLICATION_ID=YOUR_ALGOLIA_APPLICATION_ID +ALGOLIA_API_KEY=YOUR_ALGOLIA_API_KEY + # dev envs not needed in production YATA_API_TOKEN=YOUR_YATA_API_TOKEN # yata api token for fetching translations diff --git a/pages/settings/missing-assets/[assetAddress]/add.vue b/pages/settings/missing-assets/[assetAddress]/add.vue index 4774b529..2a64010e 100644 --- a/pages/settings/missing-assets/[assetAddress]/add.vue +++ b/pages/settings/missing-assets/[assetAddress]/add.vue @@ -5,6 +5,8 @@ import type { UniversalProfile } from '@/contracts' import type { AbiItem } from 'web3-utils' const connectedProfile = useProfile().connectedProfile() +const address = computed(() => connectedProfile.value?.address) +const assetsData = useProfileAssets()(address.value) const assetAddress = useRouter().currentRoute.value.params?.assetAddress const isPending = ref(false) const { providerWeb3Instance } = useBaseProvider() @@ -27,11 +29,16 @@ const handleAddAsset = async () => { ).filter(([, value]) => value)[0]?.[0] const profileAddress = connectedProfile.value?.address + const filteredAssetsAddresses = assetsData.value + ?.filter(asset => asset.isOwned) + .map(asset => asset.address) + .filter(asset => !!asset) + const { keys, values } = generateAddReceivedAssetKeys( assetAddress, interfaceId, profileAddress, - connectedProfile.value?.receivedAssets + filteredAssetsAddresses ) const { contract } = providerWeb3Instance.value const profileContract = contract( diff --git a/pages/settings/missing-assets/index.vue b/pages/settings/missing-assets/index.vue index 343a6327..1c04d238 100644 --- a/pages/settings/missing-assets/index.vue +++ b/pages/settings/missing-assets/index.vue @@ -6,6 +6,8 @@ import { balanceOfABI } from '@/shared/abis/balanceOfABI' import type { LSP7DigitalAsset as LSP7DigitalAssetInterface } from '@/contracts' const connectedProfile = useProfile().connectedProfile() +const address = computed(() => connectedProfile.value?.address) +const assetsData = useProfileAssets()(address.value) const { formatMessage } = useIntl() const checkError = ref('') const assetAddress = ref('') @@ -60,7 +62,11 @@ const handleInput = async (customEvent: CustomEvent) => { assertAddress(assetAddress.value) // check if user doesn't already have the asset - if (connectedProfile.value?.receivedAssets?.includes(assetAddress.value)) { + const filteredAssetsAddresses = assetsData.value + ?.filter(asset => asset.isOwned) + .map(asset => asset.address) + .filter(asset => !!asset) + if (filteredAssetsAddresses?.includes(assetAddress.value)) { checkError.value = formatMessage('errors_already_owned') return }