GithubHelp home page GithubHelp logo

daco's Introduction

DACO ๐Ÿ’š Decentralized Autonomous Charity Organization

"charity with benefits, charity in a new blockchain way"

Our platform unites charity organizations, businesses and donators in new way. Charity organizations creates new social project that needs to be financed. Open heart people donate money for project that they like Socially responsible businesses that also want to take part in charity project offer donators discounts for their services or products. Charity organization get needed money, businesses expands their client base, donators receives discounts and a plus in their karma that is much more important.

Workflow Demo

DACO Workflow Demo

How to use

We use Rinkeby Test Network

๐Ÿ”— DACO smart contract address - 0xc19D435E84B921f268B465d36651AC6CB82888bB
๐Ÿ”— DACO Token smart contract address - 0x0fa0ff095762aa1c612797a6a49f576ae677944c

DACO API

contract DACOMain is Ownable:

Improved congress contract by Ethereum Foundation.

function DACOMain(
    address congressLeader
) public { ... }
  • congressLeader - wallet address of DACO Creator

methods:

Append new congress member:

function addMember(
    address targetMember, 
    string memberName
) public onlyOwner { ... }
  • targetMember - member account address
  • memberName - member full name

Proposal voting:

function vote(
    uint256 id
) public onlyMembers { ... }
  • id - proposal identifier

Create a new campaign:

function newCampaign(
    address _wallet, 
    uint256 _amount, 
    string  _description
) public onlyMembers { ... }
  • _wallet - beneficiary wallet address
  • _amount - hardCap value in Wei
  • _description - campaign description string

Change rules of voting:

function changeVotingRules(
    uint256 minimumQuorumForProposals,
    uint256 minutesForDebate,
    uint256 marginOfVotesForMajority
) public onlyOwner { ... }
  • minimumQuorumForProposals - minimal count of votes
  • minutesForDebate - debate deadline in minutes
  • marginOfVotesForMajority - majority margin value

Remove congress member:

function removeMember(
    address targetMember
) public onlyOwner { ... }
  • targetMember - member account address

Create a new proposal:

function newProposal(
    address wallet,
    uint256 amount,
    string  description
) public returns (uint256 id) { ... }
  • wallet - beneficiary account address
  • amount - transaction value in Eth
  • description - job description string

Set new rate value:

function setRate(
    uint256 _rate
) public onlyOwner returns (bool) { ... }
  • _rate - factor of convertion wei -> daco token

contract DACOTokenCrowdsale is Ownable:

Contract that allows to donate funds to compaign and to close compaign.

function DACOTokenCrowdsale(
    uint256 _mainSaleWeiCap, 
    uint256 _rate, 
    address _token, 
    address _wallet, 
    string _description
) public { ... }
  • _mainSaleWeiCap the amount required to be collected under this company
  • _rate - wei to token rate
  • _token - DACO token address
  • _wallet - wallet where to the donate should be translated

methods:

Low level token purchase function:

function donate(
   address investor
) payable { ... }
  • investor - donator account address

Campaign finalization:

function setFinalized() public onlyOwner { ... }

contract KARMAToken is MintableToken:

Special kind of token that used for user reputation managing. It is generated when donator makes a donation. It's equivalent to donate money amount.

methods:

function transfer(
    address _to, 
    uint256 _value
) public returns (bool) {
    // Transfering is prohobited
    return false;
}

contract DACOToken is MintableToken:

Kind of token that is used for getting a discount.

methods:

Create compaign for fund-raising:

function addCampaign(
   address _campaign
) onlyOwner public { ... }
  • _campaign - campaign organization account address

Remove compaign:

function removeCampaign(
   address _campaign
) public onlyOwner { ... }
  • _campaign - campaign organization account address

Send funds for company maker:

function transfer(
    address _to, 
    uint256 _value
) public returns (bool) { ... }
  • _to - campaign organization account address
  • _value - amount of wies to send

daco's People

Contributors

sleshjdev avatar krivov avatar korozhan avatar

Stargazers

Csaba Halasz avatar

Watchers

James Cloos avatar Csaba Halasz avatar

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.