Skip to content
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
wants to merge 337 commits into
base: main
Choose a base branch
from
Draft

Conversation

hthieu1110
Copy link
Collaborator

@hthieu1110 hthieu1110 commented Mar 4, 2024

1. Contract

2. Service

2.a. Collections/Projects Status

2.a.1. INCOMPLETE

(DB) The collection_data from launchpad_project doesn't have a metadatas_merkle_root.
The user has to Complete the collection (See UploadMetadatas endpoint) that he can found on my-collections page (See CollectionsByCreator endpoint)

2.a.2. COMPLETE

(DB) The collection_data from launchpad_project has a metadatas_merkle_root and doesn't have a deployed_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 from launchpad_project has a deployed_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 of collectionData, can filter by status, can sort

2.b.5. LaunchpadProjects

2.b.6. LaunchpadProjectById

2.b.7. LaunchpadProjectsCount

3. Front-end

Access from here :
image

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 :
image
The user has to type a valid datetime
image
The hours/minutes/seconds can be empty
image

3.a.2. Fields control at form submission

The button is at the step 6
image
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.
image

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 :
image

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)
image

The CSV must be something like this :
image

TODO: Handle attributes

3.a.4.2. The user can see the valid assets

==> He can see manually all assets metadata
image

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
image

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
image

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
image

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
image

3.b. User's My Collections

3.c. Admin

Copy link

netlify bot commented Mar 4, 2024

Deploy Preview for testitori ready!

Name Link
🔨 Latest commit 2a5d101
🔍 Latest deploy log https://app.netlify.com/sites/testitori/deploys/67100b7ba681e900082ae0bd
😎 Deploy Preview https://deploy-preview-1024--testitori.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented Mar 4, 2024

Deploy Preview for teritori-dapp ready!

Name Link
🔨 Latest commit 2a5d101
🔍 Latest deploy log https://app.netlify.com/sites/teritori-dapp/deploys/67100b7b4ebc9c00086988ea
😎 Deploy Preview https://deploy-preview-1024--teritori-dapp.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@n0izn0iz n0izn0iz changed the title wi: init cosmwasm contract feat: on-chain permissioned launchpad Mar 4, 2024
Makefile Outdated Show resolved Hide resolved
Comment on lines 114 to 118
uint64 whitelist_unit_price = 36;
string whitelist_limit_per_address = 37;
uint32 whitelist_member_limit = 38;
uint64 whitelist_start_time = 39;
uint64 whitelist_end_time = 40;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be an array of whitelist periods, we already have this in some collections

WaDadidou and others added 30 commits October 13, 2024 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants