-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: on-chain permissioned launchpad #1024
Draft
hthieu1110
wants to merge
494
commits into
main
Choose a base branch
from
feat/cosmwasm-launchpad
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
✅ Deploy Preview for testitori ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for teritori-dapp ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
n0izn0iz
reviewed
Mar 19, 2024
c396913
to
8c933dd
Compare
n0izn0iz
requested changes
May 26, 2024
f1444e7
to
12cdc6b
Compare
n0izn0iz
reviewed
Jul 3, 2024
7bf96bc
to
855c047
Compare
3f83213
to
3490614
Compare
…thub.com/TERITORI/teritori-dapp into feat-contract-nft-launchpad-dao-proposal
Ensure proposal_id from dao-proposal-single execute_propose is got Ensure it's emitted in wasm attributes Enhance multitest (Could be more enhanced)
1b49191
to
fa800f7
Compare
# Conflicts: # api/launchpad/v1/launchpad.proto # go.mod # go/cmd/teritori-launchpad-backend/main.go # go/cmd/teritori-launchpad-backend/models.go # go/internal/indexerdb/launchpad.go # go/internal/indexerhandler/launchpad.go # go/pkg/launchpad/helpers.go # go/pkg/launchpad/ipfs.go # go/pkg/launchpad/service.go # go/pkg/launchpad/utils.go # go/pkg/launchpadpb/launchpad.pb.go # go/pkg/launchpadpb/launchpad_grpc.pb.go # go/pkg/merkletree/merkletree.go # packages/api/launchpad/v1/launchpad.ts
…proposal' into feat/cosmwasm-launchpad
…-front' into feat/cosmwasm-launchpad # Conflicts: # packages/components/FilePreview/SelectedFilesPreview/ItemView.tsx # packages/components/FilePreview/SelectedFilesPreview/SelectedFilesPreview.tsx # packages/components/NetworkSelector/NetworkSelectorWithLabel.tsx # packages/components/navigation/getNormalModeScreens.tsx # packages/hooks/launchpad/useCreateCollection.ts # packages/screens/Launchpad/LaunchpadApply/LaunchpadApplyScreen.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/LaunchpadCreateScreen.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/LaunchpadStepper.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadAssetsAndMetadata/AssetModal.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadAssetsAndMetadata/AssetsAndMetadataIssue.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadAssetsAndMetadata/LaunchpadAssetsAndMetadata.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadBasic.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadDetails.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/ConfigureRoyaltyDetails.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/LaunchpadMintPeriodAccordion.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/LaunchpadMintPeriodAccordionBottom.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/LaunchpadMintPeriodAccordionTop.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/LaunchpadMintPeriods.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadMinting/LaunchpadMinting.tsx # packages/screens/Launchpad/LaunchpadApply/LaunchpadCreate/components/steps/LaunchpadTeamAndInvestment.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/CurrencyInputLaunchpad/CurrencyInputLaunchpad.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/CurrencyInputLaunchpad/SelectableCurrencySmall.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/CurrencyInputLaunchpad/SelectedCurrencySmall.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/TextInputLaunchpad.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/selectInputs/MultipleSelectInput.tsx # packages/screens/Launchpad/LaunchpadApply/components/inputs/selectInputs/SelectInputLaunchpad.tsx # packages/screens/Launchpad/LaunchpadHome/LaunchpadScreen.tsx # packages/utils/navigation.ts # packages/utils/types/launchpad.ts # yarn.lock
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Contract
2. Service
2.a. Collections/Projects Status
2.a.1. INCOMPLETE
(DB) The
collection_data
fromlaunchpad_project
doesn't have ametadatas_merkle_root
.The user has to Complete the collection (See
UploadMetadatas
endpoint) that he can found on my-collections page (SeeCollectionsByCreator
endpoint)2.a.2. COMPLETE
(DB) The
collection_data
fromlaunchpad_project
has ametadatas_merkle_root
and doesn't have adeployed_address
.The admin has to review and approve/confirm the collection (See ???)
2.a.3. CONFIRMED
(DB) ???
The admin has to deploy the collection (See
deploy_collection
from the contract)2.a.4. DEPLOYED
(DB) The
collection_data
fromlaunchpad_project
has adeployed_address
Listed on the Marketplace
2.b. Endpoints
2.b.1. UploadMetadatas
2.b.2. CalculateCollectionMerkleRoot
2.b.3. TokenMetadata
2.b.4. CollectionsByCreator
Control the user's ownership with
creatorId
, returns a list ofcollectionData
, can filter by status, can sort2.b.5. LaunchpadProjects
2.b.6. LaunchpadProjectById
2.b.7. LaunchpadProjectsCount
3. Front-end
Access from here :

3.a. Collection creation form
I tried a way to make good forms : https://hackmd.io/TXt0Gz5_Q-OJIo6-OH674w?both
3.a.1. Datetime inputs
I made this :



The user has to type a valid datetime
The hours/minutes/seconds can be empty
3.a.2. Fields control at form submission
The button is at the step 6


If fields are invalid or required fields are not filled, an error is shown, and all the invalid/required fields are highlighted. The user has to navigate in the form to find the highlighted fields.
We could show a red pill or something near the steps to tell the user which step is concerned.
3.a.3. Collection minting periods
The user can add a whitelist (list of wallet addresses) that will be concerned by the period parameters. If there is no whitelist provided, the parameters will be effective for all users.

The CSV must be something like this :
3.a.4. Collection assets
3.a.4.1. The user must add a CSV file before images
==> If he add a new CSV file, all the images are removed (It was easier to implement)

The CSV must be something like this :

TODO: Handle attributes
3.a.4.2. The user can see the valid assets
==> He can see manually all assets metadata

3.a.4.3. Error if the added CSV has not the right headings
==> The first row must contains the columns names :

fileName
,name
,description
,externalURL
,youtubeURL
,attributes
3.a.4.4. Warning if the user miss adding images that are expected in the CSV
Not blocking, the expected assets are added, the wrongs are ignored

3.a.4.5. Warning if the user adds images that are not expected in the CSV
Not blocking, the unepected assets are not added

3.a.4.6. Warning if the user adds images that are missing "name" or "attributes" values in the CSV
Not blocking, the incomplete assets are not added

3.b. User's My Collections
3.c. Admin