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

Donate by simply sending to an address with a standard transaction fee #478

Closed
GriffGreen opened this issue Sep 21, 2018 · 25 comments
Closed
Assignees
Labels
feature request All issues that require new implementations funded help wanted Issues that are clear and can be picked by contributors.

Comments

@GriffGreen
Copy link
Member

The goal is to make donating as easy as possible.

Right now every donation to any DAC, Campaign, or Milestone requires a user to include Data and the transaction fee is higher then a standard transaction.

The end goal of this issue would be an easy user experience for donating using simply an ENS (or RSK equivalent) name.... and ideally it would use the same gas as a normal transaction.

For instance, what if you could donate directly to graceaid.campaign.eth without having to include any data in the transaction, or pay more then 21000 gas and the information would all be passed to the contract as needed to trace the donation so that if they ever wanted to come back and use the platform, they could see EXACTLY where their donation went.

This would mean, if Andreas was on a podcast, he could just say "Support us by donating to graceaid.campaign.eth" and then anyone with any wallet and any level of technical expertise could donate to his campaign with ease!

I will make a video explaining a possible solution, but this is just my design on how this end goal could be achieved... its a bit of a rant and for sure is a serious undertaking... but it could be done in stages :-D

@GriffGreen GriffGreen added the feature request All issues that require new implementations label Sep 21, 2018
@GriffGreen
Copy link
Member Author

@GriffGreen
Copy link
Member Author

GriffGreen commented Oct 4, 2018

The first task is just to write up the smart contract, and the tests for the smart contract that can receive funds and the only thing it can do is donate to the Giveth DApp to a specific DAC (For now it will be the Giveth DAC).

The factory doesn't need to be written, this is only a proof of concept, but it should also be seen as a learning exercise in writing SAFE smart contracts that start off with centralizing security features, that can be removed once the code is trusted (Start off safe with a path to decentralization).

The video above gives the general design pretty well. To add to it I would say start with the Bridge contract as a base so you can have the owned, escapable, pausable, and ERC20 standard contracts in place as these are best practices.

Also it is the contract that must receive the funds from the contract that you create:
https://etherscan.io/address/0x30f938fed5de6e06a9a7cd2ac3517131c317b1e7#code

Bridge Contracts: https://github.com/Giveth/giveth-bridge/tree/master/contracts
And: https://github.com/Giveth/common-contract-deps/tree/master/contracts

This will be a fun, simple contract. Great for someone who has been working with solidity for over 2 months, but under 6 months.

To complete this bounty it will have to be deployed to Ropsten and work for donating to our Ropsten-Rinkeby bridge.

Completing this bounty will probably require a couple conversations, please message me on riot: @GriffGreen:matrix.org or give me another method to reach out.

Suggested reward 1 ETH (and developing skills)

@GriffGreen
Copy link
Member Author

(requested from gitcoin)

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to it as part of the Ethereum Community Fund via ECF Web 3.0 Infrastructure Fund fund__.__

@gitcoinbot
Copy link

gitcoinbot commented Oct 4, 2018

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 6 months, 4 weeks from now.
Please review their action plans below:

1) sameer2800 has been approved to start work.

I would like to take this task.I have been reading giveETH docs as well as bridge smart contracts.

Learn more on the Gitcoin Issue Details page.

2) vimalanand has applied to start work (Funders only: approve worker | reject worker).

Hello,

I am front-end developer. I would like to make things easier for the end-user.

I have only worked for e-Commerce applications so far.

Would like to get an opportunity to learn and implement a solution for Web 3.0 payments.

Learn more on the Gitcoin Issue Details page.

@gitcoinbot
Copy link

@sameer2800 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@sameer2800
Copy link

@gitcoinbot , here it is : Giveth/collection-box#1

@ewingrj
Copy link
Contributor

ewingrj commented Oct 10, 2018

fyi this needs some thought of how to handle when the bridge is replaced. You'll need to either freeze the contract, or be able to update the pointer to the bridge.

But the campaign/dac owner should not be able to update the bridge address as then they could take the funds w/o ever going through the dapp.

It probably makes sense to use the upgreadability of aragonOS (or maybe there is a more lightweight upgreadability solution (zepplin?)), or possibly just point to another contract to fetch the current bridge address, so that the giveth multisig can update the bridge location w/o breaking these deployed contracts.

@mkosowsk
Copy link

Hi @GriffGreen, is it good to pay out bounty to @sameer2800 or is there a bit more work to be done on this repo? Thanks!

@GriffGreen
Copy link
Member Author

Nope! We are still working on it!

@GriffGreen
Copy link
Member Author

@perissology I agree very much. The Aragon App will be the way forward in the long run. I am just looking to whip out a fast POC that i can play with so we can discover the unknown needs :D

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 200.0 DAI (200.0 USD @ $1.0/DAI) has been submitted by:

  1. @sameer2800

@mkosowsk please take a look at the submitted work:


@GriffGreen
Copy link
Member Author

yep its done now @mkosowsk :-D

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to this issue has been approved & issued to @sameer2800.

@GriffGreen
Copy link
Member Author

#433 is similar

@GriffGreen
Copy link
Member Author

We NEED this! So bad!
@ewingrj what do you think? able to work on it?

@GriffGreen GriffGreen added the help wanted Issues that are clear and can be picked by contributors. label Apr 8, 2019
@MorganGR
Copy link

MorganGR commented May 6, 2019

Since this issue is still open, keep in mind that graceaid.eth is now registered!

@sepu85
Copy link

sepu85 commented May 21, 2019

just passing here to create (more ?) awareness about the need of this feature to be deployed!!

I would like to create a payment from an smart contract (e.g an Aragon DAO finance app) directly to a milestone, so there's no passing through the UI here.

let's take this milestone as an example. When looking for its ethereum address I discover by attempting to make the donation via UI the sollowing addres: https://etherscan.io/address/0x30f938fed5de6e06a9a7cd2ac3517131c317b1e7 but it doen't has correspondency to the status of the milestone funds

@GriffGreen
Copy link
Member Author

a couple background links Giveth/giveth-bridge#9
ethereum/solidity#526

@GriffGreen
Copy link
Member Author

Working on it!!

@GriffGreen
Copy link
Member Author

@dapplion @arbreton and @aminlatifi are looking into integrating it now :-D

@GriffGreen
Copy link
Member Author

@arbreton
Copy link
Contributor

Generate funds forwarder, person send money to an address, created funds forwarder sends money to the bridge

@GriffGreen
Copy link
Member Author

1.Someone needs to trigger the generation of the fund forwarder from the campaign page... so the address is known.
2. Anyone can send money to that address
3. When the Campaign page is loaded, the balance of the FF address must be shown (For DAI and ETH)
4. If there are funds anyone on that page should be able to send the funds to the campaign (call the function in the FF that forwards the funds to the bridge).

@papermache
Copy link

Is this implemented?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request All issues that require new implementations funded help wanted Issues that are clear and can be picked by contributors.
Projects
None yet
Development

No branches or pull requests