항상 OZ의 ECDSA라이브러리를 사용하라는 얘기만 들었고 코드를 볼때마다 항상 뭔가가 조금 아리송 해서, 이번 기회에 싹 정리를 해보려고 한다.역시 OZ라그런지... CustomError로 정의하지를 않고 enum으로 정의하는 새로운 패턴을 알게되었다.기본적으로 tr
: ERC-191은 이더리움에서 signed data를 어떻게 다룰 것인지에 대한 표준 정의이다.(2016년 기준) Presigned transaction을 accept하는 Multisignature wallet의 implementation들이 나오게 되었다.이러한 s
: EIP-712는 단순한 바이트스트링이 아닌 형식화된 구조물을 해싱하고 서명하기 위한 표준입니다.인코딩 함수의 정확성을 위한 이론적인 프레임워크Solidity 구조체와 유사하고 호환 가능한 구조화된 데이터의 명세이러한 구조체 인스턴스를 위한 안전한 해싱 알고리즘서명
Uniswap V2의 ERC20Permit과 같은 함수들에 대한 표준이 있어서, 한번 정리해본다.ERC-20 20에 대한 성공 요인을 approve와 transferFrom이라고 하고 있다.이를통해 msg.sender를 추상화해서 (msg.sender가 직접 콜하지 않
출처: https://book.getfoundry.sh/tutorials/testing-eip712Replay Attack에 대해 알아보다가, 정말 많은 것을 찾아보았다.혹 EIP-712나 Off-Chain 서명에 대해 낯설다면 아래의 글들을 쭉 정독해보기 바
https://www.rareskills.io/post/eip-150-and-the-63-64-rule-for-gasexternal call이 발생하면 (CALL, STATICCALL, DELEGATECALL) 해당 externall call에서 사용되기 위한
원래는 ethers.js의 getStorageAt()을 사용하는 방법만 알고 있었는데, foundry의 cast를 사용하면 훨씬 간편하게 deploy된 contract의 storage를 읽어올 수 있다. https://book.getfoundry.sh/referenc
출처 - https://www.adrianhetman.com/unboxing-erc20-approve-issues/Openzeppelin의 SafeERC20 라이브러리를 읽어보다가 아래 코멘트를 읽고 해당 issue에 대해 조사해 보았다.ERC20 standa
Intro d