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

Migrate Proposal board from Vite to Next.js #25

Open
Gizmotronn opened this issue Dec 22, 2022 · 0 comments
Open

Migrate Proposal board from Vite to Next.js #25

Gizmotronn opened this issue Dec 22, 2022 · 0 comments
Assignees
Labels
truffle-ganache Truffle & ganache (npm) related issues

Comments

@Gizmotronn
Copy link
Member

I'm beginning the process of migrating from Vite to Next.js now. I will create a new linked task on Linear for commits.

Linear info:
https://linear.app/star-sailors/issue/WB3-6/migrate-proposal-board-from-vite-to-nextjs
Id: WB3-6

@Gizmotronn Gizmotronn added the truffle-ganache Truffle & ganache (npm) related issues label Dec 22, 2022
@Gizmotronn Gizmotronn self-assigned this Dec 22, 2022
Gizmotronn added a commit to Signal-K/sytizen that referenced this issue Dec 29, 2022
…th Lens Protocol

We'll eventually redesign the layout of the post form (publication) to be in-line with the proposal layout in Signal-K/Silfur#25
User inputs & signature actions will be sent to the server as desired in Signal-K/Silfur#24
And of course, the user will now be authoring publications from the frontend, Signal-K/Silfur#22
Gizmotronn added a commit to Signal-K/client that referenced this issue Jan 9, 2023
…en using it

Issue: Image files aren't being sent from the client to IFPS to Lens in the protocol post
I've created a duplicate file of `useCreatePost` called `useCreatePostProposalEdit.coffee` which showcases a proposed metadata addition for tagging candidate assets as per the flow in Signal-K/Silfur#26

Here's the console output for when the post was created on the client:
https://lenster.xyz/posts/0xa952-0x06 (comment by `u/parselay.lens`)

Other related issues:
https://github.com/Signal-K/polygon/issues#:~:text=ago%20by%20Gizmotronn-,Migrate%20Proposal%20board%20from%20Vite%20to%20Next.js,-truffle%2Dganache
Signal-K/Silfur#25
Signal-K/Silfur#24
Signal-K/Silfur#22
Signal-K/Silfur#21

Discovered this issue with the thirdweb package:
Signal-K/Silfur#12
#9
Gizmotronn added a commit to Signal-K/sytizen that referenced this issue Jan 14, 2023
Also working on building out the frontend for #16 -> see Signal-K/Silfur#28 &
Signal-K/Silfur#26 & Signal-K/Silfur#24 &
Signal-K/Silfur#25 & Signal-K/Silfur#21 &
Signal-K/Silfur#22

Frontend components are being built out on the signal-k/client repo:
Signal-K/client#12

Contract: https://thirdweb.com/0xCdc5929e1158F7f0B320e3B942528E6998D8b25c/PlanetHelper, https://www.notion.so/skinetics/Sample-Planets-Contract-4c3bdcbca4b9450382f9cc4e72e081f7#73801895fc5a421bbf57801a33a775c7

Claiming mints:
```sol
function verifyClaim(
    address _claimer,
    uint256 _tokenId,
    uint256 _quantity
) public view override {
    require (_tokenId == 0, 'Only first NFT is claimable');
    require (_quantity == 1, 'Only 1 NFT can be claimed at a time');
}
```

Multitool base documentation: https://skinetics.notion.site/Planet-Mining-multitool-8310fa1cd188440688bbcc19692b3b67

Contract README:
> # Planets
>
>
> ## Confirmed Planets Contract
>
> Documentation: [https://skinetics.notion.site/Sample-Planets-Contract-4c3bdcbca4b9450382f9cc4e72e081f7](https://www.notion.so/Sample-Planets-Contract-4c3bdcbca4b9450382f9cc4e72e081f7)
>
> - User mints an anomaly that has appeared in their UI (for now, the webapp, later it will be the game as well)
> - API searches for a token that has already been lazy minted with the TIC id of the anomaly (or the identifier of the candidate)
>     - If there is a token id that has the TIC Id, then claim a copy of that to the `msg.sender` (player’s address) so they can manipulate it in-game
>     - If the TIC ID has never been minted before, lazy mint a new one with parameters fetched from the data source and send it to `msg.sender`
>     - Return the IPFS metadata
> - Add some buttons that allow manipulations for the NFT (e.g. viewing (reading) metadata (e.g. image/video files, graphs).
>     - Graphs should be generated in a Jupyter notebook and returned in the Next app.
> - User creates post (proposal [Proposal Board → Migration from Vite](https://www.notion.so/Proposal-Board-Migration-from-Vite-2e3ef95e384d4ac1875e0dbbe9a59337)) with the NFT ID for their anomaly and some extra metadata for their discoveries and proposal, and then users can vote
>
> ## Planet/Node candidates
>
> (Where node refers to any type/class/collection of object that is part of the classification process. E.g. the TESS planets collection, mining/seismic data collection, etc)
> Simple flow: Contract for unconfirmed planet → created via Deepnote flask
> Once confirmed → lazy mint on existing goerli contract
> Mining multitool helper
>
> # PlanetContractAddress
>
> Address for the collection of planets/node candidates that have been confirmed and lazy-minted.
> The process for this in the Star Sailors wrapper is as follows:
>
> 1. Player mints an anomaly, which is an ERC1155 drop that is lazy-minted. The player requests a new planet, a random TIC id is assigned, our Flask API on Deepnote searches for an NFT in the first drop with that TIC ID. If none is found, a new NFT is lazy minted on that collection with data from the Lightkurve python module.
> 2. User/Player then has a candidate (unconfirmed node object) in their wallet and on the web application frontend, they're redirected to a special planet `{...id}` page where they can interact with and view the candidate.
> 3. Once the user has made a decision as to the status of the node candidate, they then create a Proposal (first on the [threaded comments via Supabase](https://www.notion.so/Threaded-Comments-8374255ed9314473b044db150fb13c36) and then on [Lens](https://github.com/signal-k/client)). The contents of this proposal are [outlined here](https://www.notion.so/Threaded-Comments-8374255ed9314473b044db150fb13c36).
> 4. An NFT of this proposal is minted and then a new NFT is lazy minted from [this collection](notion://www.notion.so/skinetics/0xdf35Bb26d9AAD05EeC5183c6288f13c0136A7b43) (**note -> this is a demo. Will be updated). This new lazy-minted NFT will contain a link to the candidate node the proposal was created from, the proposal, and all the traits the user has filled in for the node once they have been cross-referenced with the proposal, voters and the python module that has the dataset (in this case, Lightkurve on Deepnote). This collection is the one referenced to in this contract (`planetNftCollectionAddress`). This planet can then have actions performed on it and rewards/items generated via [the minerals contract](notion://www.notion.so/skinetics/0xE938775F4ee4913470905885c9744C7FAD482991).

Threads docs: https://skinetics.notion.site/Threaded-Comments-8374255ed9314473b044db150fb13c36
Gizmotronn added a commit to Signal-K/sytizen that referenced this issue Jan 20, 2023
…pyter for matplotlib manipulations

https://www.notion.so/skinetics/January-Week-3-8dcc344a601842959a025940a90c1cc4#6b761b8a793041e1972ad2ecba5b93f0

NFT integration:
#18
#6
#1
Signal-K/Silfur#28 -> contract calls

Frontend API interaction:
#16
Signal-K/Silfur#29 -> handled with Supabase in Gizmotronn/comments@9e70ab0
Signal-K/Silfur#26
Signal-K/Silfur#25 -> starting to implement proposals board in Next with Supabase, then will build in contract calls for web3/eth interaction
Signal-K/Silfur#24
Signal-K/Silfur#22 -> minting will now be handled by a minimal UI & the API wrapper in Server/thirdweb_handler & moralis_handler
Signal-K/Silfur#21 -> custom post types and fields are in Signal-K/client@4cff28c & Signal-K/client@5ce80a5 & Signal-K/client@c950d66, so we're starting off with building it on postgres before adding Lens interactions
Signal-K/Silfur#3
Gizmotronn added a commit to Signal-K/sytizen that referenced this issue Jan 21, 2023
…and docs around the blueprint structure

Currently we're only able to export the notebooks to graph images (to then be sent to Postgres) via Deepnote, so I've started building a simple Flask wrapper on Deepnote that will communicate with the main Flask app here: https://deepnote.com/workspace/star-sailors-49d2efda-376f-4329-9618-7f871ba16007/project/Untitled-project-dca7e16c-429d-42f1-904d-43898efb2321/%2Fmain.py

I've done some more work on the client, so the next step is getting Flask to read user interactions and prepare them to be saved into the database for their planets' stats.

#1
#16
#18

Signal-K/Silfur#26
Signal-K/Silfur#24
Signal-K/Silfur#25
Gizmotronn added a commit to Signal-K/client that referenced this issue Jan 26, 2023
…contract

This is the first step of our new attempt at fixing Signal-K/Silfur#25

I've started merging the CSS into a new `styles/Proposals` directory in the next client, converted the calculater functions to typescript, and adding the context as a wrapper around the rest of the app (inside Thirdweb -> Moralis [providers]).

We'll take the `<Sidebar />` component from https://github.com/Signal-K/sytizen/tree/main/client and have that be a persistent component on all pages INSIDE the `pages/Proposals` directory. We can remove the usage of `react-router-dom` by just putting a page inside that directory, and then creating a `[...id].tsx` file for the proposals dynamic routes, thus making it Next compatible. The context provider seems to be working fine. So we'll see how this goes.
Gizmotronn added a commit to Signal-K/client that referenced this issue Feb 20, 2023
Users can now navigate to `/planets/{$planetID}` to see information relating to their planet, including datasets, articles, a sandbox, basic stats/info, a gallery, and a generator.

Generator:
Signal-K/sytizen#18
Right now it's just the same generator script, but eventually it will take in the fields like radius from the table the page itself is generated from. We'll update the frontend fields to use a UI based on the <Card /> component we've designed for the Profile pages. users will be able to edit these fields and create a fork of the anomaly in its dataset sandbox for use in their own projects, and this can be part of the "XP" demo for "citizen science points" to mimic the behaviour of the reputation erc20 token:

Now that staking has been re-added, time to close #18

Signal-K/sytizen#16 Profile pages
Signal-K/sytizen#13
Signal-K/sytizen#6 -> Generator & staking
Signal-K/sytizen#1 -> sandbox & generator
Signal-K/Unity-Demo#28
Signal-K/Unity-Demo#5
Signal-K/starsailors#4 -> user input on anomalies
Signal-K/Silfur#26
Signal-K/Silfur#25 -> Some small changes with the Thirdweb module behaviour, still yet to commence full re-integration now though
Signal-K/Silfur#24
Signal-K/Silfur#22 -> Replacing "mint" FOR NOW with just a "claim" button that sends the planet to your supabase table inventory (array/foreign key in 'profiles' table

Signal-K/Silfur#21
Signal-K/Silfur#12 -> Keep an eye on this, but for now this is deprecated
Signal-K/Silfur#3 -> Again keep an eye on the original card game contract, but until we commence the full re-integration of the smart contracts, this is not needed

Signal-K/Silfur#30 -> This is working a treat
Signal-K/Silfur#29 -> Now need to add true threaded comments & integrate it with sandbox items

Full notes available here: https://www.notion.so/skinetics/February-Flow-Planets-8c864b66147c447f82136772336e9bc6?pvs=4#09b8260b2360412683ef5935309fd011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
truffle-ganache Truffle & ganache (npm) related issues
Projects
None yet
Development

No branches or pull requests

1 participant