Post
Topic
Board Альтернативные криптовалюты
Re: [ETH] Ethereum - мировой компьютер
by
zolotce11
on 23/06/2016, 23:28:53 UTC
То-есть этот call.value вызывает функцию из чужого контракта?
Да, именно.

Пролистал еще исходник. Да там кишит этих рекурсивных и не только багов. Вообще не понимаю, почему этот дао не был сломан сразу

Вот еще один интересный
Code:
function retrieveDAOReward(bool _toMembers) external noEther returns (bool _success) {
        DAO dao = DAO(msg.sender);
...
Прямо на первой строчке. Как можно создавать обьект, заданного типа, но с привязкой к адресу отправителя транзакции?
Тут подразумевается, что отправителем будет являться контракт именно DAO, именно написанный разработчиком. Хотя на самом деле эту функцию может вызвать любой другой контракт, выдав себя за "легитимный".

Ну а дальше все та же рекурсия, все те же гонки:
Code:
        uint reward =
            (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) /
            totalRewardToken - DAOpaidOut[msg.sender];
       if(_toMembers) {
            if (!DAOrewardAccount.payOut(dao.rewardAccount(), reward))
                throw;
            }
        else {
            if (!DAOrewardAccount.payOut(dao, reward))
                throw;
        }
        DAOpaidOut[msg.sender] += reward;

Эх, жаль, что вычистили уже DAO од 0, а то я бы сейчас стырил оттуда пару десятков тыщ эфиров, при чем на свой контракт, а не на сплит с заморозкой на 27 дней Smiley


Страшный ты человек для DAO)))  Grin  Меня даже под угрозой перекрашивания не заставить уже выучить все эти "языки".Китайский не легче изучить (ну как по мне)  Huh  Одно реально порадовало,что хоть увидел в ветке человека способного написать контракт.Можешь ведь? Не "ламерский". (ламерский - это матюк какой-то,я так понял? - "редискин" контракт)