Dev subDAO: Contract for collection boarding on Grape.art

Type: Developer DAO
Title:
Funding: Pre-Funded
Max Reward (Create): 20,000 Grape
Max Reward (Complete): 100,000 Grape (or 500 USDC) and 2000 USDC
Date Created: 10/19/2022
Date Complete: 10/27/2022
Restrictions/Implementation: https://github.com/Grape-Labs/grape-art
Language: Typescript, Rust

Submission Instructions:

contribution to Grape GitHub repo GitHub - Grape-Labs/grape-art: Grape Art | Social. Stateless. Marketplace. powered by Solana

Description:
The purpose of this bounty is to add a boarding experience for the collections that are interested to be listed in grape.art - this should be permissionless and could be achieved with a smart contract to handle the boarding process which will then be easily queryable to fetch all boarded collections for grape.art which will enhance the decentralization of this project.

  1. Smart Contract that will add the following fields as per our specifications in grape.art:
  • name
  • author
  • description (short text field up to 160-240chars)
  • vanityUrl
  • tokenType
  • enabled (approved) state flag
  • auctionHouse - publicKey
  • updateAuthority - publicKey
  • collectionAddress - publicKey
  • creatorAddress - publicKey
  • governanceAddress (realms address) - publicKey
  • metadataURI (should support any full url from providers like GenesysGo, Arweave, IPFS)

A. Smart Contract should allow the update authority to enable/disable listings and update the metadataURI if needed
B. Smart Contract should have a fee in the program that can be enabled and set at any point of time for each submission - with a proposed starting fee of 0.1 sol
C. Fees can be set to go to any address designated

  1. SDK this will be a layer on top of the smart contract deployed via NPM to make this contract composable and enable any DAPP to use the smart contract for their own UI

  2. Build a boarding UI which will have the mentioned fields (1)

  1. Viewable submission table Approved/Pending

  • actions should be also to toggle enable/disable the states via the table for the update authority or a clear way/directions on how actions can be taken to approve any submission - if this is not possible via a user interface
  • metadataURI will be unique for each collection and will leverage GenesysGo SHDW storage for the initial deployment, it is important to note here that this may require an additional step before to add the metadata, so once the metadata has been added then the submission is added on chain, so that the URL has been generated
  • important notes for edge cases, there are scenarios where updateAuthority, collectionAddress may change, here there are two things that can happen, either those fields are mutable or, those submissions are no longer enabled, and the collection will need to make a new submission

Deliverable:

  1. Smart Contract deployed on devnet with source code made publicly available in the repo
  2. SDK
  3. UI for Submissions (button and form to capture submission fields and submit to smart contract), Pending/Approved table of submissions (fetched on chain via RPC), button to enable/disable (toggle) by the update authority (updates flag value via a transaction with the smart contract)
yarn install
yarn run build
yarn start

Acceptance Criteria:
Quality is based on & Exceptional quality generally means:
Compilable/Runnable Code which will not break any existing dependencies and integrations on the existing repo, libraries may be updated and build can be updated as long as all existing functionality is compilable, code should be supported up to 30 days after submission with insight on what may be possibly future breaking

Language: Typescript, Rust

Submission Instructions:

contribution to Grape GitHub repo Grape Labs · GitHub in specific GitHub - Grape-Labs/grape-art: Grape Art | Social. Stateless. Marketplace. powered by Solana
Code should be successfully merged & accepted to the main repo

@fzzyyti has already started working on this project, and has steps 1. 2. almost finalized with deployment on devnet - the UI and remaining functionality is pending to be completed

Added to Grape Protocol | Dework.

Post reserved for future updates.

1 Like