Пожалуйста, обратите внимание, что пользователь заблокирован
Вот пример когда люди зажали денег на нормального разраба и привлекли какого то школьника.
Полный контракт здесь - https://bscscan.com/address/0x3928a3dd66d142f312e638deee055540fe332d1a#code
Посмотрите внимательно. ничего не замечаете?
Не видите суслика а он есть)
Ну немного теории для тех кто не знал.
Переместить токены можно тремя способами:
1. transfer - сразу напрямую перемещаешь токены
2. approve + transferFrom - две транзакции. одной ты разрешаешь определенное количество токенов переместить другому адресу. и тот вызовом TransferFrom перемещает токены.
3. через permit (но он тут даже не реализован, так что не суть)
Так вот например, разрешил ты 1000 токенов переместить через approve какому нибудь dex например.
Тот переместил 1000, а потом снова переместил 1000 и снова переместил 1000....
Потому что забыли
добавить в TransferFrom!
Да, сложно это эксплуатировать. ведь нам надо обязательно approve от жертвы получить и желательно на полный максимум. но это будет вечный approve, навсегда.
И зачем вообще лезут писать эти контракты если ничего не понимают.
Вообще, есть замечательные реализации от openzeppelin - https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
Почему не взять готовое, газа сэкономить на 0.00001$?
Короче горит не могу. Наступило время когда клепают просто токены бесполезные без какого-либо продукта. Да даже просто токены уже не могут сделать нормально. Зато шуму то сколько BloggerCoin. Смех один.
Полный контракт здесь - https://bscscan.com/address/0x3928a3dd66d142f312e638deee055540fe332d1a#code
Посмотрите внимательно. ничего не замечаете?
Код:
function transferFrom(address from, address to, uint value) public returns(bool) {
require(balanceOf(from) >= value, 'balance too low');
require(allowance[from][msg.sender] >= value, 'allowance too low');
balances[to] += value;
balances[from] -= value;
emit Transfer(from, to, value);
return true;
}
function approve(address spender, uint value) public returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
Не видите суслика а он есть)
Ну немного теории для тех кто не знал.
Переместить токены можно тремя способами:
1. transfer - сразу напрямую перемещаешь токены
2. approve + transferFrom - две транзакции. одной ты разрешаешь определенное количество токенов переместить другому адресу. и тот вызовом TransferFrom перемещает токены.
3. через permit (но он тут даже не реализован, так что не суть)
Так вот например, разрешил ты 1000 токенов переместить через approve какому нибудь dex например.
Тот переместил 1000, а потом снова переместил 1000 и снова переместил 1000....
Потому что забыли
Код:
allowance[from][msg.sender] -= value;
Да, сложно это эксплуатировать. ведь нам надо обязательно approve от жертвы получить и желательно на полный максимум. но это будет вечный approve, навсегда.
И зачем вообще лезут писать эти контракты если ничего не понимают.
Вообще, есть замечательные реализации от openzeppelin - https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
Почему не взять готовое, газа сэкономить на 0.00001$?
Короче горит не могу. Наступило время когда клепают просто токены бесполезные без какого-либо продукта. Да даже просто токены уже не могут сделать нормально. Зато шуму то сколько BloggerCoin. Смех один.