From 6e2f41342afd1ba82bb2f26482b8d4de848b8ce1 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Mon, 2 Jan 2023 13:35:06 +0300 Subject: [PATCH 1/8] Updated names for 1/1 minting tabs --- components/collections/creation/BaseMinterDetails.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/collections/creation/BaseMinterDetails.tsx b/components/collections/creation/BaseMinterDetails.tsx index e111577..ad41461 100644 --- a/components/collections/creation/BaseMinterDetails.tsx +++ b/components/collections/creation/BaseMinterDetails.tsx @@ -151,7 +151,7 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro className="inline-block py-1 px-2 text-gray peer-checked:text-white hover:text-white peer-checked:bg-black peer-checked:border-b-2 hover:border-b-2 peer-checked:border-plumbus hover:border-plumbus cursor-pointer form-check-label" htmlFor="inlineRadio5" > - Create a New Base Minter Contract + Create a New 1/1 Collection
@@ -170,7 +170,7 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro className="inline-block py-1 px-2 text-gray peer-checked:text-white hover:text-white peer-checked:bg-black peer-checked:border-b-2 hover:border-b-2 peer-checked:border-plumbus hover:border-plumbus cursor-pointer form-check-label" htmlFor="inlineRadio6" > - Use an Existing Base Minter Contract + Append a New Token to an Existing 1/1 Collection
From 2ad0d893c685d2363d561cb40a4ee5bac384f5ba Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Thu, 5 Jan 2023 13:00:10 +0300 Subject: [PATCH 2/8] Append a new token UI update --- .../creation/BaseMinterDetails.tsx | 57 ++++++++++++------- contracts/baseMinter/contract.ts | 8 ++- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/components/collections/creation/BaseMinterDetails.tsx b/components/collections/creation/BaseMinterDetails.tsx index ad41461..54ad9e1 100644 --- a/components/collections/creation/BaseMinterDetails.tsx +++ b/components/collections/creation/BaseMinterDetails.tsx @@ -4,6 +4,9 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { toUtf8 } from '@cosmjs/encoding' import axios from 'axios' +import clsx from 'clsx' +import { Alert } from 'components/Alert' +import { Conditional } from 'components/Conditional' import { useInputState } from 'components/forms/FormInput.hooks' import { useWallet } from 'contexts/wallet' import React, { useCallback, useEffect, useState } from 'react' @@ -73,7 +76,6 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro } const filterBaseMinterContracts = async () => { - setMyBaseMinterContracts([]) await fetchMinterContracts() .then((minterContracts) => minterContracts.map(async (minterContract: any) => { @@ -107,18 +109,20 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro }) }, [debouncedMyBaseMinterContracts]) - const debouncedWalletAddress = useDebounce(wallet.address, 500) + const debouncedWalletAddress = useDebounce(wallet.address, 300) const displayToast = async () => { await toast.promise(filterBaseMinterContracts(), { - loading: 'Fetching Base Minter contracts...', - success: 'Base Minter contracts retrieved.', - error: 'Unable to retrieve Base Minter contracts.', + loading: 'Retrieving previous 1/1 collections...', + success: 'Collection retrieval finalized.', + error: 'Unable to retrieve any 1/1 collections.', }) } useEffect(() => { if (debouncedWalletAddress && baseMinterAcquisitionMethod === 'existing') { + setMyBaseMinterContracts([]) + existingBaseMinterState.onChange('') void displayToast() } }, [debouncedWalletAddress, baseMinterAcquisitionMethod]) @@ -177,20 +181,35 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro {baseMinterAcquisitionMethod === 'existing' && (
-
- - +
+ + + + +
+ + No previous 1/1 collections were found. You may create a new 1/1 collection or fill in the minter + contract address manually. + + +
+
)} diff --git a/contracts/baseMinter/contract.ts b/contracts/baseMinter/contract.ts index 7ebfcd4..ac5d3c6 100644 --- a/contracts/baseMinter/contract.ts +++ b/contracts/baseMinter/contract.ts @@ -141,8 +141,12 @@ export const baseMinter = (client: SigningCosmWasmClient, txSigner: string): Bas }) console.log(factoryParameters.params.mint_fee_bps) - const price = (await getConfig()).config.mint_price.amount - console.log(price) + const price = (await getConfig()).config?.mint_price.amount + if (!price) { + throw new Error( + 'Unable to retrieve a valid mint price. It may be that the given contract address does not belong to a Base Minter contract.', + ) + } console.log((Number(price) * Number(factoryParameters.params.mint_fee_bps)) / 100) const res = await client.execute( senderAddress, From 950d5d46c81ce74bc5de2c79c5a6c4d144f65566 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Thu, 5 Jan 2023 13:31:48 +0300 Subject: [PATCH 3/8] Add wallet connection check for collection retrieval --- .../creation/BaseMinterDetails.tsx | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/components/collections/creation/BaseMinterDetails.tsx b/components/collections/creation/BaseMinterDetails.tsx index 54ad9e1..71d163e 100644 --- a/components/collections/creation/BaseMinterDetails.tsx +++ b/components/collections/creation/BaseMinterDetails.tsx @@ -124,6 +124,9 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro setMyBaseMinterContracts([]) existingBaseMinterState.onChange('') void displayToast() + } else if (baseMinterAcquisitionMethod === 'new' || !wallet.initialized) { + setMyBaseMinterContracts([]) + existingBaseMinterState.onChange('') } }, [debouncedWalletAddress, baseMinterAcquisitionMethod]) @@ -134,7 +137,7 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro } onChange(data) // eslint-disable-next-line react-hooks/exhaustive-deps - }, [existingBaseMinterState.value, baseMinterAcquisitionMethod]) + }, [existingBaseMinterState.value, baseMinterAcquisitionMethod, wallet.initialized]) return (
@@ -184,7 +187,7 @@ export const BaseMinterDetails = ({ onChange, minterType }: BaseMinterDetailsPro