Skip to content

Instantly share code, notes, and snippets.

View AnthonyAkentiev's full-sized avatar
🙂

Anthony Akentiev AnthonyAkentiev

🙂
View GitHub Profile
8546a048fbe531517ee251ae21976cab796fe16a

PhoenixToken Ethereum Backend

Описание

Модуль PhoenixToken Ethereum Backend позволяет работать с валютой Ethereum и умными контрактами: подключаться к сети Ethereum, обменивать валюты, создавать свои собственные токены, вести кошельки пользователей, управлять ключами от аккаунтов. Модуль представляет собой отдельное решение, которое можно использовать через API с любого "сайта" или программы. Весь исходный код будет доступен после завершения проекта.

Functional Requirements

  • Exchange currency
  • Create custom tokens
  • Create new ETH/token wallets for a user
  • Control user ETH/token wallets

Aira DAO creation framework tutorial

logo

Please upvote this topic! All rewards will be transferred to the AiraLab team in order to improve the framework and tools

Who am I

My name is Anton and I am proud to present to you the Aira framework (created by AiraLab) tutorial, translated into English (from Russian) by myself. I am a blockchain enthusiast and currently developing my own Distributed Autonomous Organization (DAO). More on this in my future posts.

Who is on the AiraLab team

// 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);

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
}
@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){
// this is a Solidity pseudocode
string[] actionsByBoss = [
"issueTokens",
"manageGroups",
"modifyMoneyflow",
"upgradeDaoContract",
"withdrawDonations",
"flushReserveFundTo",
"flushDividendsFundTo"
];
////////////////////////////////////////////////
// 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);

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