https://github.com/raid-guild/open-grants
Funding public goods on ethereum using open grants.
https://github.com/raid-guild/open-grants
Last synced: 10 months ago
JSON representation
Funding public goods on ethereum using open grants.
- Host: GitHub
- URL: https://github.com/raid-guild/open-grants
- Owner: raid-guild
- Created: 2020-08-25T18:43:53.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-27T02:21:53.000Z (over 3 years ago)
- Last Synced: 2025-04-06T05:41:51.179Z (about 1 year ago)
- Language: TypeScript
- Homepage: https://opengrants.com
- Size: 27 MB
- Stars: 13
- Watchers: 6
- Forks: 5
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-dao-zh - Open Grants - Raid Guild 开发的 EVM 公共物品筹资合约与网站框架 (合约开发)
README
# open-grants mono repo
Together we empower developers to build the next generation of ethereum.
Come fund public goods on ethereum using open grants.
## Project Structure
This project is a monorepo created with [Yarn Workspaces](https://classic.yarnpkg.com/en/docs/workspaces/).
[comment]: # 'git ls-tree -r --name-only HEAD | tree --fromfile'
```
open-grants
├── .firebaserc
├── .github
│ ├── ISSUE_TEMPLATE
│ │ └── add-featured-grant.md
│ └── workflows
│ ├── check.yml
│ ├── deploy-kovan.yml
│ └── deploy-mainnet.yml
├── .gitignore
├── .prettierrc.json
├── README.md
├── firebase.json
├── package.json
├── packages
│ ├── contracts
│ │ ├── AUDIT_SCOPE.md
│ │ ├── LICENSE
│ │ ├── QUESTIONS.md
│ │ ├── README.md
│ │ ├── _archive_test
│ │ │ ├── ManagedCapped
│ │ │ │ ├── Grant-Cancel.spec.ts
│ │ │ │ ├── Grant-Factory.spec.ts
│ │ │ │ ├── Grant-Funding.spec.ts
│ │ │ │ ├── Grant-Payout.spec.ts
│ │ │ │ ├── Grant-Refunds-MultipleDonors.spec.ts
│ │ │ │ ├── Grant-Refunds.spec.ts
│ │ │ │ └── Grant.spec.ts
│ │ │ └── helpers
│ │ │ └── helpers.ts
│ │ ├── buidler-env.d.ts
│ │ ├── buidler.config.ts
│ │ ├── circle_waffle.js
│ │ ├── contracts
│ │ │ ├── D24nGrant._sol
│ │ │ ├── EtherVesting.sol
│ │ │ ├── ManagedCappedGrant._sol
│ │ │ ├── UnmanagedGrant.sol
│ │ │ ├── shared
│ │ │ │ ├── WIP
│ │ │ │ │ ├── CancelableRefundable._sol
│ │ │ │ │ ├── FundGrant._sol
│ │ │ │ │ ├── GranteeAllocation._sol
│ │ │ │ │ ├── ManagedAllocation._sol
│ │ │ │ │ ├── ManagedPayout._sol
│ │ │ │ │ ├── ManagedRefund._sol
│ │ │ │ │ ├── PullPaymentGrant._sol
│ │ │ │ │ ├── Refundable._sol
│ │ │ │ │ └── Signal._sol
│ │ │ │ ├── factory
│ │ │ │ │ ├── EtherVestingFactory.sol
│ │ │ │ │ ├── IFactory.sol
│ │ │ │ │ ├── MasterFactory.sol
│ │ │ │ │ └── UnmanagedGrantFactory.sol
│ │ │ │ ├── interfaces
│ │ │ │ │ ├── IBaseGrant.sol
│ │ │ │ │ ├── IDonorFund.sol
│ │ │ │ │ ├── IDonorRefund.sol
│ │ │ │ │ ├── IFunding.sol
│ │ │ │ │ ├── IGrantee.sol
│ │ │ │ │ ├── IGranteeAllocation.sol
│ │ │ │ │ ├── IManager.sol
│ │ │ │ │ ├── ISignal.sol
│ │ │ │ │ └── ITrustedToken.sol
│ │ │ │ ├── libraries
│ │ │ │ │ ├── Percentages.sol
│ │ │ │ │ └── abdk-libraries
│ │ │ │ │ ├── ABDKMath64x64.md
│ │ │ │ │ ├── ABDKMath64x64.sol
│ │ │ │ │ ├── ABDKMathQuad.md
│ │ │ │ │ ├── ABDKMathQuad.sol
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ └── README.md
│ │ │ │ ├── modules
│ │ │ │ │ └── GranteeConstructor.sol
│ │ │ │ └── storage
│ │ │ │ ├── AbstractDonorFund.sol
│ │ │ │ ├── AbstractManager.sol
│ │ │ │ ├── BaseGrant.sol
│ │ │ │ ├── Funding.sol
│ │ │ │ └── Grantee.sol
│ │ │ └── test
│ │ │ └── GrantToken._sol
│ │ ├── deployments.json
│ │ ├── package.json
│ │ ├── scripts
│ │ │ ├── grantFactory.ts
│ │ │ └── vestingFactory.ts
│ │ ├── test
│ │ │ ├── GranteeConstructor.spec.ts
│ │ │ ├── UnmanagedStream.spec.ts
│ │ │ └── shared
│ │ │ ├── BaseGrantConstructor.ts
│ │ │ ├── Funding.ts
│ │ │ ├── GranteeConstructor.ts
│ │ │ └── helpers.ts
│ │ ├── truffle-config.js
│ │ ├── tsconfig.json
│ │ └── waffle.js
│ ├── dapp
│ │ ├── @types
│ │ │ ├── base-58
│ │ │ │ └── index.d.ts
│ │ │ ├── fake-tag
│ │ │ │ └── index.d.ts
│ │ │ ├── ipfs-http-client
│ │ │ │ └── index.d.ts
│ │ │ └── react-vis
│ │ │ └── index.d.ts
│ │ ├── README.md
│ │ ├── codegen.yml
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-256x256.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── browserconfig.xml
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── favicon.ico
│ │ │ ├── index.html
│ │ │ ├── manifest.json
│ │ │ ├── mstile-150x150.png
│ │ │ ├── robots.txt
│ │ │ └── safari-pinned-tab.svg
│ │ ├── src
│ │ │ ├── App.tsx
│ │ │ ├── Routes.tsx
│ │ │ ├── assets
│ │ │ │ ├── chest.svg
│ │ │ │ ├── discord.svg
│ │ │ │ ├── done.svg
│ │ │ │ ├── eth-crystal-wave.png
│ │ │ │ ├── eth-icon.png
│ │ │ │ ├── github.svg
│ │ │ │ ├── header.jpg
│ │ │ │ ├── loading.svg
│ │ │ │ ├── navbar.jpg
│ │ │ │ ├── success.svg
│ │ │ │ ├── tile-background.svg
│ │ │ │ ├── twitter.svg
│ │ │ │ ├── waves.svg
│ │ │ │ ├── whale.svg
│ │ │ │ └── whaleLoader__data.json
│ │ │ ├── components
│ │ │ │ ├── AmountDisplay.tsx
│ │ │ │ ├── ChartHint.tsx
│ │ │ │ ├── CreateGrantForm.tsx
│ │ │ │ ├── CreateGrantModal.tsx
│ │ │ │ ├── DistributeFunds.tsx
│ │ │ │ ├── DurationSelector.tsx
│ │ │ │ ├── ErrorAlert.tsx
│ │ │ │ ├── ErrorBoundary.tsx
│ │ │ │ ├── ExploreHeader.tsx
│ │ │ │ ├── FAQContent.tsx
│ │ │ │ ├── FAQHeader.tsx
│ │ │ │ ├── FundGrantModal.tsx
│ │ │ │ ├── GrantChart.tsx
│ │ │ │ ├── GrantChartPlot.tsx
│ │ │ │ ├── GrantContent.tsx
│ │ │ │ ├── GrantDetails.tsx
│ │ │ │ ├── GrantFunder.tsx
│ │ │ │ ├── GrantFunders.tsx
│ │ │ │ ├── GrantHeader.tsx
│ │ │ │ ├── GrantRecipient.tsx
│ │ │ │ ├── GrantRecipients.tsx
│ │ │ │ ├── GrantStream.tsx
│ │ │ │ ├── GrantTextInput.tsx
│ │ │ │ ├── GrantTile.tsx
│ │ │ │ ├── GranteesInput.tsx
│ │ │ │ ├── GrantsSorter.tsx
│ │ │ │ ├── Header.tsx
│ │ │ │ ├── InProgressStream.tsx
│ │ │ │ ├── Layout.tsx
│ │ │ │ ├── Leader.tsx
│ │ │ │ ├── Leaderboard.tsx
│ │ │ │ ├── Link.tsx
│ │ │ │ ├── Loader.tsx
│ │ │ │ ├── LoadingModal.tsx
│ │ │ │ ├── LoadingPage.tsx
│ │ │ │ ├── MethodSelector.tsx
│ │ │ │ ├── NavBar.tsx
│ │ │ │ ├── ProfileContent.tsx
│ │ │ │ ├── ProfileHeader.tsx
│ │ │ │ ├── ProfileImage.tsx
│ │ │ │ ├── SearchBar.tsx
│ │ │ │ ├── StopStreamModal.tsx
│ │ │ │ ├── StreamTile.tsx
│ │ │ │ └── SuccessModal.tsx
│ │ │ ├── config.ts
│ │ │ ├── contexts
│ │ │ │ ├── SearchContext.tsx
│ │ │ │ └── Web3Context.tsx
│ │ │ ├── graphql
│ │ │ │ ├── client.ts
│ │ │ │ ├── fragments.ts
│ │ │ │ ├── getGrant.ts
│ │ │ │ ├── getGrants.ts
│ │ │ │ ├── getLeaders.ts
│ │ │ │ ├── getProfile.ts
│ │ │ │ ├── getRank.ts
│ │ │ │ ├── search.ts
│ │ │ │ └── utils.ts
│ │ │ ├── hooks
│ │ │ │ └── useGraphHealth.ts
│ │ │ ├── icons
│ │ │ │ ├── ArrowDownIcon.tsx
│ │ │ │ ├── CloseIcon.tsx
│ │ │ │ ├── CopyIcon.tsx
│ │ │ │ ├── FeaturedIcon.tsx
│ │ │ │ ├── InNeedIcon.tsx
│ │ │ │ ├── InfoIcon.tsx
│ │ │ │ ├── LatestIcon.tsx
│ │ │ │ ├── QuestionIcon.tsx
│ │ │ │ ├── SearchIcon.tsx
│ │ │ │ └── TrendingIcon.tsx
│ │ │ ├── index.tsx
│ │ │ ├── pages
│ │ │ │ ├── create.tsx
│ │ │ │ ├── explore.tsx
│ │ │ │ ├── faq.tsx
│ │ │ │ ├── grant
│ │ │ │ │ ├── address.tsx
│ │ │ │ │ ├── funders.tsx
│ │ │ │ │ ├── recipients.tsx
│ │ │ │ │ └── streams.tsx
│ │ │ │ ├── leaderboard.tsx
│ │ │ │ └── profile
│ │ │ │ └── address.tsx
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── theme.ts
│ │ │ └── utils
│ │ │ ├── 3box.ts
│ │ │ ├── chart.ts
│ │ │ ├── constants.ts
│ │ │ ├── grants.ts
│ │ │ ├── graphHealth.ts
│ │ │ ├── helpers.ts
│ │ │ ├── ipfs.ts
│ │ │ ├── streams.ts
│ │ │ └── types.ts
│ │ └── tsconfig.json
│ └── subgraph
│ ├── README.md
│ ├── abis
│ │ ├── EtherVesting.json
│ │ ├── EtherVestingFactory.json
│ │ ├── UnmanagedGrant.json
│ │ └── UnmanagedGrantFactory.json
│ ├── config
│ │ ├── kovan.json
│ │ └── mainnet.json
│ ├── package.json
│ ├── schema.graphql
│ ├── src
│ │ ├── grants.ts
│ │ ├── helpers.ts
│ │ └── stream.ts
│ └── subgraph.template.yaml
├── tsconfig.base.json
├── tsconfig.json
└── yarn.lock
```
Owing to this dependency on Yarn Workspaces, open-grants can't be used with npm.
## Available Scripts
In the project directory, you can run:
### React App
#### `yarn dapp:start`
Runs the React app in development mode.
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will automatically reload if you make changes to the code.
You will see the build errors and lint warnings in the console.
#### `yarn dapp:test`
Runs the React test watcher in an interactive mode.
By default, runs tests related to files changed since the last commit.
#### `yarn dapp:build`
Builds the React app for production to the `build` folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
### Subgraph
#### `yarn subgraph:auth`
```sh
GRAPH_ACCESS_TOKEN=your-access-token-here yarn subgraph:auth
```
#### `yarn subgraph:codegen`
Generates AssemblyScript types for smart contract ABIs and the subgraph schema.
#### `yarn subgraph:build`
Compiles the subgraph to WebAssembly.
#### `yarn subgraph:deploy-`
Deploys the subgraph for particular network to the official Graph Node.
### Contracts
#### `yarn contracts:build`
Compiles the smart contracts for deployment.
#### `yarn contracts:deploy-`
Deploys the smart contracts for particular network.