Строку не нужно убирать, а следует писать: balances[msg.sender] = balances[msg.sender] - _value;
а в sub происходит еще одна дополнительная проверка которая в нашем случае лишняя.
sub в данном случае не нужен, так как проверка на необходимое значение балансу уже описано в require(_value <= balances[msg.sender]);
скажете неважный момент, представьте сколько таких контрактов и сколько было этих transfer и сколько газа система потратила на эту проверку)
Таких статей скорее всего нету потому что у каждого свои требования к контрактам. А такие вот «за 5 минут» нередко потом выходят боком, который к тому же не всегда можно пофиксить)
Вы путаете теплое с мягким. Ваш ноут кипел не от флеша, а от того что этим флешом делали. Как правило это были баннеры. От джс баннеров у меня ноут кипит точно так же. Насчет безопасности стоит отметить что флеш был самым популярным способом отображать медиа контент, от этого он хорошо изучен и там искались дыры. Сейчас дыры ищут в джс и браузерах и так-же их находят. Следите? www.cvedetails.com/vulnerability-list/vendor_id-1224/product_id-15031/opec-1/Google-Chrome.html
В данный момент все технологии лишь чуть приближаются к тому что умел флеш 5 лет назад)
Ну плюс ко всему нормальный ООП.
ну так и для чего нужен блокчейн? если всё зависит от доверенного лица. сам смарт контракт не может проверить выполнилось ли условие во внешнем мире или нет.
Давайте рассмотрим очень простой пример. Он поможет приблизиться к пониманию функциональных возможностей смарт-контрактов, а также лучше ориентироваться, в каких случаях их стоит применять.
Его можно реализовать также с использованием Биткоина, хотя сейчас Биткоин еще сложно назвать полноценной платформой для смарт-контрактов. Итак, у нас есть некоторый покупатель и есть интернет-магазин. Покупатель хочет купить монитор в этом магазине. В самом простом случае покупатель оформляет и отправляет платеж, а интернет-магазин принимает его, подтверждает, после чего отправляет товар. Однако в этой ситуации присутствует необходимость большого доверия — покупатель должен на всю стоимость монитора доверять интернет-магазину. Поскольку интернет-магазин может иметь низкую репутацию в глазах покупателя, то существует риск, что по каким-то причинам после приема платежа магазин откажет в обслуживании и не отправит товар покупателю. Поэтому покупатель задается вопросом (соответственно, и интернет-магазин задается этим вопросом), что можно в этом случае применить, для того чтобы минимизировать такие риски и сделать более надежными подобные сделки.
В случае с Биткоином можно предоставить возможность покупателю и продавцу независимо друг от друга выбрать медиатора. Есть множество людей, которые занимаются решением спорных вопросов.
А вы вот сами понимаете что нет никакой разницы, от слова совсем? Что в первом и что во втором случае покупка происходит на доверии. В первом случае магазину, во втором случае медиатору. Блокчейн ничего сам по себе не гарантирует потому что он сам не умеет проверять выполнение условий контракта во внешнем от блокчейна мире.
Ценность блокчейна в этой ситуации нулевая.
Брался несколько раз писать комментарий, но удалял. А вы вот написали в такой очень мягкой форме!
(пока писал из -4 стало +2, удивительно кому может нравиться такой пустой, рекламный контент)
Существует куча рабочих техник осознания сна и управление им, но они же «Причем речь вовсе не о «трансерфинге реальности» или других эзотерических сказках, а о реальности.». Взять и натренировать такую способность упражнениями это эзотерика и нереальность, а электроды подключить куда-нить это реальность)
balances[msg.sender] = balances[msg.sender] - _value;
а в sub происходит еще одна дополнительная проверка которая в нашем случае лишняя.
github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC20/BasicToken.sol
Основной метод, transfer (31 строка):
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
скажете неважный момент, представьте сколько таких контрактов и сколько было этих transfer и сколько газа система потратила на эту проверку)
В данный момент все технологии лишь чуть приближаются к тому что умел флеш 5 лет назад)
Ну плюс ко всему нормальный ООП.
Нет никаких более эффективных технологий, не обманывайтесь.
Ну как что, что вот таким товарищам, как авторы поста, будет работа)))
А вы вот сами понимаете что нет никакой разницы, от слова совсем? Что в первом и что во втором случае покупка происходит на доверии. В первом случае магазину, во втором случае медиатору. Блокчейн ничего сам по себе не гарантирует потому что он сам не умеет проверять выполнение условий контракта во внешнем от блокчейна мире.
Ценность блокчейна в этой ситуации нулевая.
Та и не говорите, открываю холодильник а там смарт контракт сидит. В душе и тот один спрятался. Вот так эпоха!
(пока писал из -4 стало +2, удивительно кому может нравиться такой пустой, рекламный контент)