Pages:
Author

Topic: [ANN] Uther – Make Ethereum Better, based on Ethereum - page 25. (Read 44960 times)

newbie
Activity: 47
Merit: 0
QT does not happen
GUI wallet - 30000 uther bounty

QT or web wallet will all be OK.
full member
Activity: 236
Merit: 100
newbie
Activity: 7
Merit: 0

Quote from: uthercoin
ROADMAP FOR FIRST MONTH:


3.test of contract to ensure integrity 8000,8000  (two people)
I want to test
full member
Activity: 236
Merit: 100
Quote from: uthercoin
ROADMAP FOR FIRST MONTH:

3.test of contract to ensure integrity 8000,8000  (two people)


how to test Foundation contract

1. foundation.sol
   create foundation contract in Mix, or deploy into Uther blockchain
2. addDelegator
   add a member to foundation, only contract founder can add
3. newBudget
   member can submit a new budget
4. voteBudget
   member vote or veto the budget
5. passBudget
   anyone can run this function to see the budget passed or vetoed.
6. confirmBudget
   after confirmd the budget, the recipient will do work of the budget.
7. tickBudget
   after recipient finish the work, member confirm to pay
8. budgetPayment
   anyone can check the payment, after over 1/2 members tick the budget, the recipient will receive the money.
legendary
Activity: 924
Merit: 1000
Quote from: uthercoin
ROADMAP FOR FIRST MONTH:

2. Foundation contract, will prove transparency. Will enable all uther community to check premine not abused - 50000 uther bounty (Claimed)

just fixed 2 bugs in foundation contract, and found a bug in Mix. After double check i will submit a issue to the github.com/ethereum/mix

https://github.com/ethereum/mix/issues/291

Foundation Contract nearly OK.

Thanks!
full member
Activity: 236
Merit: 100
Quote from: uthercoin
ROADMAP FOR FIRST MONTH:

2. Foundation contract, will prove transparency. Will enable all uther community to check premine not abused - 50000 uther bounty (Claimed)

just fixed 2 bugs in foundation contract, and found a bug in Mix. After double check i will submit a issue to the github.com/ethereum/mix

https://github.com/ethereum/mix/issues/291

Foundation Contract nearly OK.

Code:
contract Foundation {

uint8 public maxDelegators;
uint8 public totalDelegators;
    address public founder;
uint public debatingDays;
    uint public numBudgets;
    Budget[] public budgets;
Delegator[] public delegators;

   struct Delegator {
    address addr;
    uint amount;
    bytes32 bitcointalkId;
  }

struct Budget {
        address recipient;
        uint amount;
        bytes32 data;
        string description;
        uint creationDate;
uint confirmDate;
uint executeDays;
        uint8 createdBy; //delegator id;
State  state;
        bytes votes; // byte0: vote of delegator 0
        //mapping (address => uint8) voted;
    }

    /*
Created : member create a budget
Active: a member pro or con the bugdet within debatingDays( default =10 days)
Vetoed: over half of members against the budget, so budget was vetoed
Passed: over half pro the budget, passed th budget
Pending: after the recipient of the budget confirm the budget
Success: after the recipient has finished the job, over half of members agree a payment
Failed: recipient didnt finished the work in setting time
*/
enum State { Created, Active, Vetoed, Passed, Pending, Success, Failed }

    event BudgetAdded(uint budgetID, address recipient, uint amount, bytes32 data, string description);
    event BudgetVoted(uint budgetID, address voter, byte position);
    event BudgetTallied(uint budgetID, uint8 reult, State state);
    event BudgetConfirmed(uint budgetID, address recipient, State state);
    event BudgetTicked(uint budgetID, address delegator, byte position);
    event BudgetPaid(uint budgetID, uint8 tickDelegatorNum, uint amount);

    struct Vote {
        uint8 position;
        address voter;
    }

    function Foundation(uint8 _maxDelegators, uint _debatingDays, bytes32 _bitcointalkId) {
        founder = msg.sender; 
        maxDelegators = _maxDelegators;// || 5;
        debatingDays = _debatingDays * 1 days;// || 10 days;
numBudgets = 0;
totalDelegators =0;
addDelegator(msg.sender, _bitcointalkId);
    }

/* in the beginning, Creator adds the delegator
in the future, user will select delegators
*/
function addDelegator(address _addr, bytes32 _bitcointalkId) returns (uint8 )
{
if ( msg.sender == founder && totalDelegators < maxDelegators) {
delegators.push(Delegator(_addr,_addr.balance,_bitcointalkId));
return ++totalDelegators;
}
}

function getDelegator(uint8 _delegatorId) returns (address addr)
{
if ( _delegatorId < totalDelegators) {
addr = delegators[_delegatorId].addr;
}
return addr;
}

    modifier onlyDelegator()
    {
        bool founded =false;
for (uint8 i = 0; i < delegators.length; ++i) {
if (msg.sender == delegators[i].addr) {
founded = true;
break;
}
        }               

if (!founded) throw;
_
    }

    function getDelegatorId(address _addr) internal returns (uint8)
    {
        uint8 delegatorId = maxDelegators;
        for (uint8 i = 0; i < delegators.length; ++i) {
if (_addr == delegators[i].addr) {
    delegatorId = i;
    return delegatorId;
}
        }
    }

function newBudget(address _recipient, uint _amount, bytes32 _data, string _description, uint _executeDays)
onlyDelegator returns (uint )
    {   
            uint budgetID = budgets.length;
            //bytes memory v ;
            //v[0] =0x0;
budgets.push(Budget({recipient: _recipient, amount: _amount, data: _data, description: _description, creationDate: now, state: State.Created, executeDays: _executeDays,confirmDate: 0, createdBy: 0, votes: '' }));
//budgets.push(Budget({recipient: _recipient, amount: _amount, data: _data, description: _description, creationDate: now, state: State.Created, executeDays: _executeDays,confirmDate: 0, createdBy: 0, votes: v }));
            numBudgets = budgetID+1;
            BudgetAdded(budgetID, _recipient, _amount, _data, _description);
            return budgetID;
    }

    /* 0x01= con , 0x02 =pro */       
function voteBudget(uint _budgetID, byte _position)
onlyDelegator returns (uint voteID)
{
        Budget b = budgets[_budgetID];
        uint8 delegatorId;
if ( (_position ==1 || _position ==2) && (b.state == State.Active || b.state == State.Created ) ) {
            delegatorId = getDelegatorId(msg.sender);
            if (delegatorId >= maxDelegators ) return;

/* have first vote, budget active*/
if ( b.state != State.Active ) {
b.state = State.Active;
b.votes.length = 32;
b.votes[delegatorId] = b.votes[delegatorId] & 0x0;
}
            b.votes[delegatorId] = _position;
            BudgetVoted(_budgetID, msg.sender,  _position);
}
}


    function passBudget(uint _budgetID) returns (uint8 proDelegatorNum, State state)
{
        Budget b = budgets[_budgetID];
        /* Check if debating period is over */
        if (now > (b.creationDate + debatingDays) && b.state == State.Active ){   
        proDelegatorNum = 0;
/* tally the votes */
            for (uint i = 0; i <  b.votes.length; ++i) {
                if (b.votes[i] == 2) ++proDelegatorNum;
            }
            /* execute result */
            if (proDelegatorNum >= (totalDelegators+1)/2 ) {
                b.state = State.Passed;
            } else  {
                b.state = State.Vetoed;
            }
            BudgetTallied(_budgetID, proDelegatorNum, b.state);
        }
    }

    function confirmBudget(uint _budgetID) returns (State result)
{
        Budget b = budgets[_budgetID];
        if ( msg.sender == b.recipient && b.state == State.Passed ){   
            b.state = State.Pending;
b.confirmDate = now;
            BudgetConfirmed(_budgetID, b.recipient, b.state);
            result = b.state;
        }
//result = b.state
    }

    /* 1= pro, 2 = con,
5= tick, delegators who voted the budget can tick it  ,then payment will happen
*/       
function tickBudget(uint _budgetID, byte _position)
onlyDelegator returns (byte)
{
        Budget b = budgets[_budgetID];
        uint8 delegatorId;       
if ( b.state ==  State.Pending && _position == 5 ) {
            delegatorId = getDelegatorId(msg.sender);           
            if (delegatorId >= maxDelegators ) return byte(delegatorId);
            if (b.votes[delegatorId] >=5) return b.votes[delegatorId] ;           
            b.votes[delegatorId] = b.votes[delegatorId] | _position;
/* have a vote, budget active*/
            BudgetTicked(_budgetID, msg.sender, _position);
}
}

    function budgetPayment(uint _budgetID) returns (uint8 tickDelegatorNum, uint8 result)
{
        Budget b = budgets[_budgetID];
        /* Check if executeDays is not overtime */
if ( b.state == State.Pending) {
if ( now <= b.confirmDate + b.executeDays ){   
tickDelegatorNum = 0;
/* how many delegator agreed the payment */
        for (uint i = 0; i <  b.votes.length; ++i) {
    if ( b.votes[i] > 5) ++tickDelegatorNum;
            }
        /* total of agreed is bigger than 1/2 delegators, will pay to recipient */
    if (tickDelegatorNum >= totalDelegators/2 ) {
    b.state = State.Success;
b.recipient.send(b.amount);
            }
        BudgetPaid(_budgetID, tickDelegatorNum, b.amount);
} else
b.state = State.Failed;
}
    }
}


sr. member
Activity: 939
Merit: 261
Data HDD Repair - Recovery of lost information
QT does not happen
GUI wallet - 30000 uther bounty
brand new
Activity: 0
Merit: 0
please qt wallet
legendary
Activity: 3108
Merit: 3199
Yes please qt wallet
full member
Activity: 236
Merit: 100
Quote from: uthercoin
ROADMAP FOR FIRST MONTH:

2. Foundation contract, will prove transparency. Will enable all uther community to check premine not abused - 50000 uther bounty (Claimed)

just fixed 2 bugs in foundation contract, and found a bug in Mix. After double check i will submit a issue to the github.com/ethereum/mix
full member
Activity: 236
Merit: 100

compiled with a rootkit i presume

op should update the original post with the source and the win wallet, those shady member that post after it, are terrible

should be careful, in this crypto-world. every NXTers know my reputation.
newbie
Activity: 47
Merit: 0
please see roadmap and bounties:

Quote from: uthercoin
ROADMAP FOR FIRST MONTH:

1. Official logo and website - coming soon
2. Windows binary: here now.
2. Foundation contract, will prove transparency. Will enable all uther community to check premine not abused - 50000 uther bounty (Claimed)
3.test of contract to ensure integrity 8000,8000  (two people)
4. Block explorer - 50000 (Claimed)
5. GUI wallet - 30000 uther bounty

now in first post.
legendary
Activity: 924
Merit: 1000
The more we all contribute to the ethereum networks, the more Uther popular. the more Uther popular,  the higher the price.

Yes, you're right.

Quote from: craslovell
The "Uther team" has a lot of work ahead of them.

So it seems...
legendary
Activity: 1339
Merit: 1002
where is the portfolio because you have to remove the coins from the pool are maximum 20 coins .....
legendary
Activity: 3248
Merit: 1070
https://uther.suprnova.cc
thinks ocminer.

github updated to the newest genesis, so no need the genesis.json file.

new Windows 64bit release
https://github.com/uthercoin/geth-builds/releases/download/1.3.5/geth_Win_X64.exe

compiled with a rootkit i presume

op should update the original post with the source and the win wallet, those shady member that post after it, are terrible
legendary
Activity: 1470
Merit: 1021
I am not 100% why, but I am mining this for a few days just for fun. The "Uther team" has a lot of work ahead of them.
full member
Activity: 236
Merit: 100
newbie
Activity: 47
Merit: 0
Hello.

Generally I find the ETHERCoin and its offshoots interesting.
But what is your further plans?
Have you ever written Exchanges?
As you wanted to make your Coin Popoulär?

greeting
Uther is not my coin, not the dev’s coin either. It is contributors' coin, and i am only temporary keeper of the premine coins. When the foundation contract is finished, all premine coins will be transferred to the contract.


Good Night

what you think is going to be the inicial price of the coin?
is going to be in some exchange?
The more we all contribute to the ethereum networks, the more Uther popular. the more Uther popular,  the higher the price.
newbie
Activity: 47
Merit: 0
https://uther.suprnova.cc
thinks ocminer.

github updated to the newest genesis, so no need the genesis.json file.
Pages:
Jump to: