강의

멘토링

커뮤니티

Inflearn Community Q&A

impatrick972466's profile image
impatrick972466

asked

ERC20 Breaking (+ truffle, frontend)

call

솔리디티

Written on

·

421

1

callWhoIsMsgSender 와 whoIsMsgSender 함수 두개 모두 호출한건 lec13의 컨트랙 주소인건가요?
블록체인blockchaintrufflesoliditySmart Contract

Answer 1

0

done님의 프로필 이미지
done
Instructor

안녕하세요 제원님 :)

먼저, lec13_1whoIsMsgSender 라는 함수를 갖고 있습니다.

whoIsMsgSender msg.sender를 반환을 합니다.

msg.sender는 트랜잭션을 보낸 주소 입니다,

즉 여기에서는, whoIsMsgSender 를 실행한 (트랜잭션을 보낸) 주소라고 생각하시면 됩니다.

 

자 그러면,

lec13의 함수 callWhoIsMsgSenderlec13_1의 함수 whoIsMsgSender 를 실행하고 (트랜잭션을 보내고) 있습니다.

lec13_1의 함수 whoIsMsgSender의 입장에서 생각을 하면, lec13의 함수 callWhoIsMsgSender가 실행한것이기에, whoIsMsgSender의 msg.sender는 lec13주소가 됩니다.

자 그러면, lec13의 함수 callWhoIsMsgSenderlec13_1의 함수 whoIsMsgSender 를 실행을 시키려면, 누군가 lec13의 함수 callWhoIsMsgSender를 실행해야겠죠?

예를 들어서, Alicelec13의 함수 callWhoIsMsgSender 를 실행시켰다고 가정했을때,

lec13의 함수 callWhoIsMsgSender msg.senderAlice의 주소가 되겠죠.

 

자 그러면, 정리해서 한번 볼까요?

Alice ---트랜잭션 보냄---> lec13의 함수 callWhoIsMsgSender ---트랜잭션 보냄---> lec13_1의 함수 whoIsMsgSender

입니다.

즉, lec13의 함수 callWhoIsMsgSender 입장에서는 Alice가 자신을 실행시켰으니, lec13의 함수 callWhoIsMsgSender msg.senderAlice 의 주소가 되겠죠.

반면에,

lec13_1의 함수 whoIsMsgSender lec13의 함수 callWhoIsMsgSender 가 자신을 실행 시켰으니, lec13의 함수 callWhoIsMsgSender msg.senderlec13의 주소가 되겠죠.

 

혹시 궁금한점 있으시면, 질문 남겨주세요 :))

감사합니다 :)

 

 

 

 

impatrick972466's profile image
impatrick972466

asked

Ask a question