본문 바로가기
BlockChain/solidity

[Solidity] address와 address payable

by BEJM 2022. 5. 19.

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

댓글