다양한 개발도구

스크린샷 2022-12-01 오후 6.09.56.png

trasferFrom : spender가 거래할 수 있도록 양도받은 토큰을 전송

ERC-20에서는 토큰의 owner가 직접 토큰을 다른사람에게 전송할 수도 있지만, 토큰을 양도할 만큼 등록해두고, 필요할 때 제삼자를 통해 토큰을 양도할 수 있다.

직접 토큰을 다른사람에게 전송할 때는 transfer 함수를 사용하고, 토큰을 등록하는 방식을 사용하는 경우 approve, allowance, transferFrom 함수를 사용한다.

스크린샷 2022-12-01 오후 5.59.12.png

스크린샷 2022-12-01 오후 6.20.03.png

ERC-20에서는 토큰의 owner가 직접 토큰을 다른사람에게 전송할 수도 있지만, 토큰을 양도할 만큼 등록해두고, 필요할 때 제3자를 통해 토큰을 양도할 수 있다.

⇒ 쉽게 말하면, A(송금자), B(나, msg.sender), C(수신자) 이렇게 있을 때, A와 B(나)의 allowance에 기반한 토큰만큼 C에게 보내는 것이다. 즉, 내가 C에게 줄 돈을 A에게로부터 인출가능한 만큼 꺼내서 주는 것이다.

여기서 의문인 점은 transferFrom 함수에서 require 전에 transfer를 실행해 버리면, 이미 송금 되고 나서 allowance를 확인하는것이니까 문제가 되지 않을까 인 점이다…