Dapp for donating ether without losing ownership
Welcome to the code for Giveth's dapp. This is an open source effort to realize the potential of ethereum smart contracts. More specifically, the Giveth dapp provides an alternative to traditional donation.
- Getting Started
- Build
- Port
- Dependencies
- Where are the config files?
- You don't use Redux?
- Local Development with TestRPC
- Help
- Click Star on this repo near the top-right corner of this web page.
- Join our slack if you haven't already.
- Fork this repo by clicking Fork button in top-right corner of this web page. Continue to follow instruction steps from your own giveth-dapp repo.
- The rest of these steps must be done from your machine's command line. Copy the link from the "Clone or download" button near the top right of this repo's home page.
git clone {paste your own repo link here}
- Change directories to giveth-dapp:
cd giveth-dapp
- Make sure you have NodeJS (v8.4.0 or higher) and npm (5.4.1 or higher) installed.
- Install dependencies from within giveth-dapp directory:
npm install
-
The Giveth dapp will need to connect to a feathers-giveth server. Follow the feathers-giveth readme instructions to install and run server before proceeding further.
-
From the giveth-dapp directory, create a filed called
.env.local
with these configs.PORT=3010 REACT_APP_FEATHERJS_CONNECTION_URL=http://localhost:3030 REACT_APP_ETH_NODE_CONNECTION_URL=ws://localhost:8546
-
Start the dapp.
npm start
-
Once the dapp is up in your browser, click "Sign In" from the main menu.
-
For testing locally, choose any of the wallet files found in the
giveth-dapp/keystores/
folder using the wallet password:password
. DO NOT USE THESE ON MAINNET ETHEREUM.
npm run build
- Don't like port 3010? Change it in
.env
All dependencies can be found in package.json, however here are the most important ones:
- React Router
- Bootstrap 4 (via CDN)
- Font Awesome (via CDN)
- Sass
This project is setup using Create React App. It can do almost everything (config via package.json) and best, it just works! :-)
If required you can 'eject' the project by running npm run eject
. Note that there's no way back!
Nope. We use container architecture instead. So persistent data is loaded in containers, for example Application.js
, and passed on as props to its children.
As long as a container is rendered the data is persistent.
When running testrpc
locally and in deterministic
mode, you can use any of the keystores in the keystores
when loading your wallet.
This will provide you access to the testrpc accounts for local development. Each keystore uses the same password: password
. DO NOT USE
THESE ON MAINNET ETHEREUM.
Reach out to us on slack for any help or to share ideas.