Skip to content

Instantly share code, notes, and snippets.

View AnthonyAkentiev's full-sized avatar
🙂

Anthony Akentiev AnthonyAkentiev

🙂
View GitHub Profile

Podcast DAO scheme ("Patreon" with tokens)

Tokens

  1. DevZen tokens give power to add new ads;
  2. Reputation tokens are used to govern the DAO, to become a next radio show guest, to moderate the list.

DevZen tokens are minted each week:

  1. kX tokens for X ads slots
  2. F free floating tokens,
@AnthonyAkentiev
AnthonyAkentiev / podcast_scheme1.md
Last active June 27, 2018 12:23
DAO Scheme for Podcast

Podcast DAO scheme1 ("Patreon" with tokens)

Tokens

  1. Tokens give power to govern the DAO, to add new ads, to become a next radio show guest.

Users

  1. Listener
  2. Patron (i.e. token holder)
  3. Moderator
  4. Next radio show host (selected from Moderators)

Decentralized Crypto Fund scheme with Dividends

User stories:

  1. I pay X % wei fee to put money into the fund (to buy tokens)

  2. ??? - I pay Y % wei fee to convert tokens -> ETH (withdraw money out of the fund)

  3. I can buy N tokens for K wei by sending Wei to the fund

  4. I get M% dividends each month for 1 token

Use Cases

  1. У меня есть компания, которая продает майки. Каждая майка стоит $1. На вход посылаются каждый раз деньги по $1. В месяц текущие траты компании составляют $3000.
  2. У меня есть компания, бюджет которой составляет 12 эфиров в месяц.... TODO
  3. У меня есть roadmap. Если мы собираем 100 ETH -> делаем базовую версию backend. Если мы собираем 500 ETH -> делаем базовую версию backend + мобильное приложение. Все что собрано больше - бонусы команде.
  4. Если мы собираем 100 ETH -> делаем базовую версию backend. Если мы собираем 500 ETH -> делаем базовую версию backend + мобильное приложение. Все что собрано больше - возвращаем или не берем.

Requirements

////////////////////////////////////////////////
// Moneyflow 1
Moneyflow mf;
uint idRoot = mf.addSplitter(0);
// serial - abs expense
uint absExp1 = mf.addAbsExpense(idRoot, 1ETH);
uint absExp2 = mf.addAbsExpense(absExp1, 2ETH);
uint absExp3 = mf.addAbsExpense(absExp2, 5ETH);
// this is a Solidity pseudocode
string[] actionsByBoss = [
"issueTokens",
"manageGroups",
"modifyMoneyflow",
"upgradeDaoContract",
"withdrawDonations",
"flushReserveFundTo",
"flushDividendsFundTo"
];
@AnthonyAkentiev
AnthonyAkentiev / pass_string.sol
Created December 20, 2017 10:06
Pass variable length var. between contracts. Metropolis added support for that, but solc still does not support that directly.
pragma solidity ^0.4.19;
contract One {
string public s = "two";
function returnString() public constant returns(string) {
return "one";
}
function stringToBytes32(string s) constant returns(bytes32){

Keybase proof

I hereby claim:

  • I am anthonyakentiev on github.
  • I am tonykent (https://keybase.io/tonykent) on keybase.
  • I have a public key whose fingerprint is 2697 DB90 2760 AE4F 1694 7FB2 7939 C473 9DBF 764D

To claim this, I am signing this object:

// Transaction makes payment of X units from A to B
func (t *ChaincodeExample) MakePayment(stub shim.ChaincodeStubInterface, param *example02.PaymentParams) error {
var err error
// Get the state from the ledger
src, err := t.GetState(stub, param.PartySrc)
if err != nil {
return err
}
// Mixing safe math (that throws) with return true/false is not a good coding style
// This is your version:
function transfer(address _to, uint _value) returns (bool success) {
if ((msg.sender == owner) || (tradeable == true)) {
balances[msg.sender] = safeSub(balances[msg.sender], _value);
balances[_to] = safeAdd(balances[_to], _value);
// calling an event
Transfer(msg.sender, _to, _value);