address와 address payable
두 유형 모두 160비트 이더리움 주소를 저장합니다. 0.8버전 address 유형은 송금이 불가능하게 되었습니다. 이후 스마트 컨트랙트에서 특정 주소로 송금을 하기 위해서는 address payable 유형을 사용해야합니다.
형 변환
address와 address payable은 다른 유형이기 때문에 형 변환이 필요할 때가 있습니다.
address payable to address
address payable val1 = msg.sender; // address 형태의 값
address val2 = val1; // address payable 형태의 값을 바로 변환 가능
address val3 = address(val1) // 명시적으로 형변환 가능
address payable에서 address로의 형 변환은 매우 쉽습니다.
address to address payable
address val1 = msg.sender; // address payable 형태의 값
address payable val2 = val1; // error
address payable val3 = address(uint160(val1)) // 0.5.0 버전 이후 가능
address payable val4 = payable(val1) // 0.6.0 버전 이후 가능
address to address payable로의 형변환은 바로 변환이 불가능하고, 명시적으로 변환해야 합니다.
'BlockChain > solidity' 카테고리의 다른 글
[Solidity] require 알아보기 (0) | 2022.05.20 |
---|---|
[Solidity] 매핑(mapping) 알아보기 (0) | 2022.05.20 |
[Solidity] import 하는 방법 (1) | 2022.05.19 |
[Solidity] Pragma 알아보기 (0) | 2022.05.19 |
[Solidity] SPDX 알아보기 (0) | 2022.05.19 |
댓글