Skip to content

Commit

Permalink
added op working project
Browse files Browse the repository at this point in the history
  • Loading branch information
Pfed-prog committed Nov 21, 2024
1 parent 2f6293a commit cc5c129
Show file tree
Hide file tree
Showing 19 changed files with 17,964 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/packages/hardhat/" # Location of package manifests
schedule:
interval: "weekly"
- package-ecosystem: "npm" # See documentation for possible values
directory: "/packages/frontend/" # Location of package manifests
schedule:
interval: "daily"
72 changes: 72 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
packages/hardhat/*.txt
**/aws.json
fe/
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
**/node_modules

packages/hardhat/artifacts*
packages/hardhat/deployments
!packages/frontend/contracts/external_contracts.js
packages/hardhat/cache*
packages/**/data
!packages/frontend/contracts/contracts.js


# ts
packages/hardhat-ts/cache
# secrets
.secret

packages/subgraph/config/config.json
tenderly.yaml

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
coverage

# production
build
# yarn / eslint
.yarn/cache
.yarn/install-state.gz
.yarn/build-state.yml
.eslintcache
# testing
coverage

# production
build

# Hardhat files
cache
artifacts

# misc
.DS_Store
.env*

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

.idea

# Local Netlify folder
.netlify
*.tsbuildinfo
*.stackdump

# doc directory
/doc
cypress/videos/*
cypress/screenshots/*

# sitemap
*robots.txt
*sitemap.xml
*sitemap-0.xml
10 changes: 10 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[submodule "packages/foundry/lib/openzeppelin-contracts"]
path = packages/foundry/lib/openzeppelin-contracts
url = https://github.com/OpenZeppelin/openzeppelin-contracts
[submodule "lib/openzeppelin-contracts"]
branch = v4.5.0
[submodule "packages/foundry/lib/forge-std"]
path = packages/foundry/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/forge-std"]
branch = v1.3.0
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) Austin Griffith 2021

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
128 changes: 128 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Pin Save - decentralized Pinterest

<p align="center">
<img src="https://raw.githubusercontent.com/Pfed-prog/Dspyt-NFTs-EVM/master/packages/frontend/public/PinSaveL.png" alt="Size Limit CLI" width="738" >
</p>

<p align="center">
<a href="https://twitter.com/intent/follow?screen_name=pinsav3">
<img src="https://img.shields.io/twitter/follow/pinsav3?style=social"
alt="follow on Twitter"></a>
</p>

<div align="center">

[Features](#features)
[Setup](#setup)
[Resources](#further-resources)

</div>

Pin Save is a decentralized image, video sharing and content aggregation platform where community controls the platform.

1. The decentralized feed reinforces the discovery of content and feedback.
2. Decentralized Identity provides anonymity and data protection.
3. Upgradeable, resilient decentralized storage.
4. Smart contracts to securely serve web experiences directly to users.

## Features

- Decentralized feed of NFTs on Optimism chain with decentralized storage on IPFS with NFTPort, Estuary and Nft.storage:

![decentralized feed](https://raw.githubusercontent.com/PinSaveDAO/PinSave-EVM/evm/assets/feed.png)

- Decentralized comments section on orbis, ceramic and ipfs connected to a decentralized Pin Save identity, decentralized Pin Save post and ENS:

![decentralized comments](https://raw.githubusercontent.com/PinSaveDAO/PinSave-EVM/evm/assets/comments.png)

- Decentralized Profile:

![decentralized Profile](https://raw.githubusercontent.com/PinSaveDAO/PinSave-EVM/evm/assets/profile.png)

- Decentralized Profile ENS resolution:

![Pin Save ENS resolution Profile](https://raw.githubusercontent.com/PinSaveDAO/PinSave-EVM/evm/assets/ensProfile.png)

- Pin Save update your profile page:

![Pin Save update your profile page](https://raw.githubusercontent.com/PinSaveDAO/PinSave-EVM/evm/assets/updateProfile.png)

- Video and Image posting:

![Pin Save Upload](https://bafybeiaj46fxgxax6z3nd45n7p42rh7dbyweyssi3dunr3wfewh7ys2d7y.ipfs.nftstorage.link/)

- Livepeer Video Player:

![Video Player](https://bafybeiacg6yoxvxvk2ayugwlcfnnjpm5kcchvy3t2fl7mu64ft4zt4fs6m.ipfs.nftstorage.link/)

### Optimism Smart contracts

[Optimism Smart contract Etherscan](https://optimistic.etherscan.io/address/0x40F320CD3Cd616E59599568c4eA011E2eE49a175#code)

[PinSave on EVM Explorer](https://evmexplorer.com/contracts/optimism/0x40F320CD3Cd616E59599568c4eA011E2eE49a175)

### Ceramic Orbis Context

[More information about Orbis Contexts](https://docs.useorbis.com/docs/primitives/contexts)

[Ceramic Scan Indexer Stream Data](https://cerscan.com/mainnet/stream/kjzl6cwe1jw147hcck185xfdlrxq9zv0y0hoa6shzskqfnio56lhf8190yaei7w)

## Setup

To run this project and start the project in development mode, install it locally using `yarn` and run `yarn dev`:

```bash
yarn
yarn dev
```

## Latest Updates

- Integrated ENS Name and Avatar resolver on Profile Display. [luc.eth profile](https://evm.pinsave.app/profile/0x225f137127d9067788314bc7fcc1f36746a3c3B5).
- Integrated ENS useEnsAddress hook from wagmi on upload page.
- Built API route and React-Query for Pin Save Comments.
- Built React Context for Orbis Client.
- Enhanced page to update your Profile.
- Refactoring Orbis types.
- Removed faulty Lit Orbis encryption.
- Connected Vercel Analytics.
- Built SEO Component and connected on every page.
- Fixed NFTPort as ipfs provider.

## Further Resources

- [PinSave Figma Resources](https://www.figma.com/community/file/1102944149244783025)
- [Zk Ok Pin Save](https://zkok.io/mina/pin-save/)
- [EthBucharest 2024: Zero Knowledge proofs on Mina, zkPassport and SoulBound NFTs](https://docs.google.com/presentation/d/1OmJJgzk4iFbKexqBw87oU7oh4H9lXlFFh3eas0EF9y8/edit?usp=sharing)
- [PinSave.app DR](https://ahrefs.com/website-authority-checker/?input=pinsave.app)
- [Npm Pin Save mina package](https://www.npmjs.com/package/pin-mina)
- [Pin Save on Dspyt](https://dspyt.com/PinSave)
- [Pin Save retroPGF3](https://round3.optimism.io/projects/0xc613e2a991ce0dbcf8fae1d6128e67543da9710e14831112fba654cc8fe8c389)

## RoadMap

We are at the stage where we need to improve read and write speeds for the content on PinSave.

Our Roadmap includes:

- Further enhancing SEO
- Fixing faulty Dweb ipfs provider
- Adding more Ipfs providers
- Researching further erc 725 contract and available registry contracts
- Deploying erc 725 contract once again and syncing orbis profiles
- Improving Upload page with batch mint
- Improving Upload page UX and UI
- Improving posts contract to contain function to display metadata
- Deploying PinSavePosts Contract V2 that contains function:
- metadata function supported by marketplaces such as OpenSea
- add new function similar to `tokenIdsOf` return uint instead of bytes
- add a function to query posts by `bytes` `tokenId`

Some interesting links for developers:

- [Practical React Query](https://tkdodo.eu/blog/practical-react-query)
- [next/image](https://nextjs.org/docs/api-reference/next/image)
- [Next Js ISG](https://nextjs.org/docs/basic-features/data-fetching/incremental-static-regeneration)
- [Universal Profiles](https://docs.lukso.tech/standards/universal-profile/introduction)
- [Working with Lit Access Control](https://litproject.substack.com/p/working-with-access-control)
- [Lit Supported Blockchains](https://developer.litprotocol.com/support/supportedchains/)
Binary file added assets/comments.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/ensProfile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/feed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/profile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/updateProfile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 changes: 49 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"name": "@pinsav3/monorepo",
"version": "1.0.0",
"keywords": [
"ethereum",
"react",
"workspaces",
"yarn"
],
"private": true,
"scripts": {
"frontend:build": "yarn workspace @pinsav3/frontend build",
"frontend:eject": "yarn workspace @pinsav3/frontend eject",
"frontend:dev": "yarn workspace @pinsav3/frontend dev",
"frontend:test": "yarn workspace @pinsav3/frontend test",
"frontend:prettier": "yarn workspace @pinsav3/frontend prettier:write",
"prettier": "yarn workspace @pinsav3/frontend prettier:write",
"dev": "yarn workspace @pinsav3/frontend dev",
"build": "yarn workspace @pinsav3/frontend build",
"install": "yarn workspace @pinsav3/frontend install",
"chain": "yarn workspace @pinsav3/hardhat chain",
"fork": "yarn workspace @pinsav3/hardhat fork",
"node": "yarn workspace @pinsav3/hardhat chain",
"test": "yarn workspace @pinsav3/hardhat test",
"start": "yarn workspace @pinsav3/frontend dev",
"compile": "yarn workspace @pinsav3/hardhat compile",
"deploy": "yarn workspace @pinsav3/hardhat deploy",
"verify": "yarn workspace @pinsav3/hardhat verify",
"watch": "yarn workspace @pinsav3/hardhat watch",
"accounts": "yarn workspace @pinsav3/hardhat accounts",
"balance": "yarn workspace @pinsav3/hardhat balance",
"send": "yarn workspace @pinsav3/hardhat send",
"generate": "yarn workspace @pinsav3/hardhat generate",
"account": "yarn workspace @pinsav3/hardhat account",
"mineContractAddress": "cd packages/hardhat && npx hardhat mineContractAddress",
"wallet": "cd packages/hardhat && npx hardhat wallet",
"fundedwallet": "cd packages/hardhat && npx hardhat fundedwallet",
"flatten": "cd packages/hardhat && npx hardhat flatten",
"clean": "cd packages/hardhat && npx hardhat clean"
},
"workspaces": {
"packages": [
"packages/hardhat",
"packages/frontend"
]
},
"dependencies": {},
"devDependencies": {}
}
Loading

0 comments on commit cc5c129

Please sign in to comment.