Coder Social home page Coder Social logo

giveth / giveth-dapp Goto Github PK

View Code? Open in Web Editor NEW
359.0 30.0 230.0 14.66 MB

Giveth Dapp for crowdfunding and managing donations on the ethereum blockchain.

Home Page: https://beta.giveth.io

License: GNU General Public License v3.0

HTML 0.43% JavaScript 94.39% SCSS 5.17%
dapp testrpc wallet blockchain-dapp ethereum-dapp giveth blockchain-charity ethereum-charity ether-donation json-wallet

giveth-dapp's Issues

handle refund flow

using the vault, there is a time delay before the user can actually take the money out of the vault. So when a user takes back control of a donation, it is still locked in the vault for a few days. Then they need to withdraw to their wallet.

we need to incorporate this into the donations page.

Balance is 0 ETH warning

Add pup-up warning if the ether balance is too low to make any action. This pop-up will include options how ether can be obtained.

GivethWallet will not unlock when switching wallets

If I sign in with 1 wallet after a page reload, I can unlock it and successfully make transactions. However if I try and switch wallets, for some reason the GivethWallet instance will unlock successfully, but will not remember the state, thus I can't make a transaction.

My guess is this has to do with either the animationFrame hackery or the use of WeakMap in the GivethWallet itself

fix form validation

If I want to edit my dac description, I can't save (btn disabled) unless I upload an img.

we should check all forms

If a campaign delegates to a dac, the `my-donations` page for original owner is not clear that they have committed the funds to the campaign

To reproduce...

  1. donate to a campaign
  2. campaign delegates to a dac
  3. view my-donations from the donor's profile

The status of the donation is "waiting for further delegation" and the donated to is the "dac". This is misleading as this "donation" from the user's perspective looks the exact same as if they donated to the dac (and still have control), however since they donated to a campaign first, they don't control the funds.

Either don't allow campaigns to delegate to a dac, or find a way to display this better

Wallet balance should be reactive and consider pending transactions

When user tries to donate multiple time, the wallet balance does not indicate any pending donations. For example I have 4 ETH, I donate 2 to one DAC and then I try to donate 1 to a campaign. However, the donation window still shows 4 ETH (it should at least indicate that 2 of that are pending).

call `addDonor` for user if they haven't done this

We need to call addDonor for a user before they can donate. We call this the first time a user creates their profile. However it is not mandatory to create a profile, so we need to inform the user that they need to call addDonor before they push the donate button.

fix img uploads if there is an img already attached

currently if I edit a campaign, cause, milestone, or user profile, I need to re-upload my image to get the form to validate.

If there is an image uploaded, we shouldn't have to re-upload just to edit the description for ex.

replace `currentUser` with the user's profile

currentUser is an address. However we often need information for the user's profile (ex. when donating).

replace the state.currentUser in Application.js to contain the user's profile

Implement Connect with LinkedIn on user profile

@satyavh commented on Tue Sep 26 2017

As discussed:

  1. as a method to validate someone's email address.
  2. as a way for donators to validate a campaign / DAC experience
  3. as a way for donators to have social proof of that experience (like you could literally ask connections of the DAC owner how reliable that person is).

inform user they can't donate before their "donorId" has been assigned/mined

currently we disable the donate button if the user doesn't have a donorId. This is necessary as liquidPledging will through if a donation happens w/o a noteManager.

We should inform the user that we are waiting for their "profile" to be created on-chain and they can only donate after that has happened

Implement Connect with LinkedIn on user profile

As discussed:

  1. as a method to validate someone's email address.
  2. as a way for donators to validate a campaign / DAC experience
  3. as a way for donators to have social proof of that experience (like you could literally ask connections of the DAC owner how reliable that person is).

Don't send tx first time a user makes a profile if there is no eth

The typical flow is that a user will create a wallet and then get redirected to the profile page. If we detect that the user doesn't have a giverId when saving their profile, we try and send a transaction to register the user in liquidPledging. This is problematic because most users will not have any eth since they just created a wallet and will get an error.

Need to only send the tx if they have eth

prevent donation to canceled milestones

we shouldn't be able to donate to canceled milestones in the dapp.

LiquidPledging will not throw when donating to a canceled milestone, so we need to prevent this in the dapp. With liquidPledging, if a donation is made to a canceled milestone, the tx successfully completes, but the funds end up in a note that the owner controls.

my-milestones shouldn't be able to mark complete if there are 0 donations?

If there are no donations to a milestone, we should not allow the owner to markComplete, only to cancel.

If we allow them to mark complete and it is approved by the reviewer, then the milestone will have a requestWithdraw button, but there will never be anything to withdraw.

So I guess we have 2 options.

  1. allow owner to markComplete but do not show the requestWithdraw btn if there are 0 donations.
  2. don't allow owner to markComplete if there are no donations

Maybe the 1st option is better so the campaign can show they are getting stuff done

integrate gasstation API

we currently send & sign a tx on behalf of the user.

we should show a confirmation dialog before sending the tx

Can not start campaign with locked wallet

The Start Campaign button does not work if the wallet is locked but you can still create a DAC. Except for some graphical glitches, clicking the button does nothing.

add my-milestones page

should show current state and available actions for any milestones I'm involved with. This can be as a reviewer or recipient.

  1. do we need the "maker" and "fundraiser" roles (https://drive.google.com/drive/folders/0BzJyIRYTXoqUaXh1b1RDYlplQlE & https://drive.google.com/drive/folders/0BzJyIRYTXoqUaXh1b1RDYlplQlE)
  2. do we have the accept/propose flow
  3. arbitrator?
  • set maxAmount (funding limit)
  • mark milestone complete
  • cancel milestone
  • approve completed milestone
  • reject completed milestone
  • withdraw

my-causes view should show "pending" dac

when a user creates a dac, there is a wait until the tx is mined. We should show these "pending" dacs in the my-causes view.

a cause is "pending" if cause.delegateId === 0

show "pending transaction" donations

when viewing the donations (my-donations, a dac/campaign) we should show "incoming/pending" donations.

a donation is pending if "donation.noteId === 0"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.