안녕하세요.
solidity 코드 관하여 질문 드립니다.
저희 klaytn의 go package를 사용하여 구성한 테스트 환경과 리믹스에서 연결한 테스트 넷 환경에서는 정상 동작하는 부분이 실제 클레이튼 네트워크 (바오밥) 에서는 동작하지 않는 것을 확인하였습니다.
사용한 코드는 openzepplin의 isContract 검사이며
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
해당 코드에서 address(0)를 입력하면 revert가 나야하나 사이드 체인에서는 address(0)도 검사를 통과합니다. 확인 부탁드립니다.