Size: a a a

2021 June 07

AZ

Alexey Zhdanov in Ethereum Russia
А как это решение поможет против вызова из конструктора, когда кода еще нет?
источник

SM

Sergey Mironov in Ethereum Russia
Тут надо больше вводных данных. Если конструктор вызывается при деплое, то смысла в этой проверке нет. Если же это factory, то нужно видеть код
источник

AZ

Alexey Zhdanov in Ethereum Russia
Был еще tx.origin == msg.sender, но это для проверки вызывающего
источник

N

Nikita in Ethereum Russia
она как раз уязвима
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
++
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
Вроде видел в 8 версии
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
Уже готовое решение
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
Найду скину
источник

N

Nikita in Ethereum Russia
источник

N

Nikita in Ethereum Russia
можно пробовать проверять на наличие баланса
источник

MD

Microwave Dev in Ethereum Russia
а как она уязвима?
источник

AZ

Alexey Zhdanov in Ethereum Russia
источник

AZ

Alexey Zhdanov in Ethereum Russia
В треде код
источник

AZ

Alexey Zhdanov in Ethereum Russia
Типа вот

pragma solidity 0.4.25;

contract Victim {

   function isContract() public view returns(bool){
     uint32 size;
     address a = msg.sender;
     assembly {
       size := extcodesize(a)
     }
     return (size > 0);
   }

}

contract Attacker {

   bool public iTrickedIt;
   Victim v;

   constructor(address _v) public {
       v = Victim(_v);
       // addrss(this) doesn't have code, yet
       iTrickedIt = !v.isContract();
   }
}
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
Бдыыыщ
источник

N

Nikita in Ethereum Russia
Ага и это логично
источник

RP

Roman P in Ethereum Russia
Так вам что надо проверять на контракт, вызывающего или произвольный адрес?
Если и то и другое то поставьте оба способа
msg.sender == tx.origin
проверит для вызывающего
и следом extcodesize если что
источник

MD

Microwave Dev in Ethereum Russia
понятно, спасибо
источник

𓄋

𓄋𓂭𓃇 in Ethereum Russia
Топ
источник

MD

Microwave Dev in Ethereum Russia
ну да, если нулевой баланс и не контракт - идёшь нахер))
источник