댑에서 ERC20토큰의 approve함수 호출
유저가 트랜잭션을 승인함으로써 함수 실행
댑에서 권한을 가져감
댑에 따라서 최종 스왑 컨트랙트가 실행되기 전에 approve에 대한 시그니쳐를 요청할 수도 있고 안할 수도 있음(유니스왑 요청, 클레이스왑 요청안함)
댑과 ERC20토큰 둘 다 permit을 지원한다면 "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"의 사인을 요청
사용자는 해당 내용에 사인을 하고 시그니쳐는 댑이 보관
댑에서는 시그니쳐를 가지고 최종 스왑 컨트랙트가 실행되기 전에 permit함수를 요청하고 사용자의 시그니처를 파라미터로 넘겨 해당 시그니처가 함수 호출자임을 확인하면 approve함수를 실행하고 스왑컨트랙트를 실행하게 됨
3-1. 오픈재플린의 permit컨트랙에서 permit 함수 안에 시그니처에 대한 검증과정이 끝나면 approve함수를 실행하게 되어있음