728x90
반응형
오늘은 특정 주소를 셋팅한 후, 그 주소의 잔고를 출력 또는 리턴 받아보겠습니다.
Remix - Ethereum IDE
Solidity 0.8.1
(버전이 높을 수록 다 좋은 것은 아닙니다. 0.8.1버전은 아마 글 쓰는 시점 가장 최신버전이나 각자가 생각하는 가장 stable한 버전을 쓰시면 됩니다.)
<address>.balance (uint256)은 Wei 형태로 주소의 balance를 리턴합니다.
1ether는 10^18 wei와 동일합니다.
1. 코드에 특정 주소를 적어두고, 그 주소의 balance를 return 받기
pragma solidity ^0.8.1;
contract test {
address public myAddress = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
uint256 balance = myAddress.balance;
function getBalance() public view returns (uint256) {
return balance;
}
}
Deployed Contracts를 확인해보면, 코드에 적힌 주소의 잔고를 리턴 받은걸 확인할 수 있습니다.
2. 주소 셋팅 후, 그 주소의 balance를 return 받기 (함수 2개)
contract test {
address public myAddress;
function setAddress(address _address) public {
myAddress = _address;
}
function getBalance() public view returns (uint256) {
return myAddress.balance;
}
}
setAddress를 하지 않았을 땐, 0으로 비어있는 값이 출력됩니다.
이제 setAddress에 주소를 넣어주고, 다시 getBalance와 myAddress를 클릭해보겠습니다.
값이 정상적으로 출력되는 걸 확인할 수 있습니다.
아래는 리턴값을 변수에 담아주고, 그 값을 리턴 값으로 주는 코드입니다. 위 코드와 큰 차이는 없습니다.
contract test {
address public myAddress;
function setAddress(address _address) public {
myAddress = _address;
}
function getBalance() public view returns (uint myBalance) {
myBalance = myAddress.balance;
}
}
3. 주소를 셋팅하며, 그 주소의 balance 출력 (함수 1개)
함수의 매개변수에 주소를 입력하면, 주소가 셋팅되면서 그 주소의 balance를 알 수 있는 함수입니다.
contract test {
address public myAddress;
uint256 public balance;
function setAddress_getBalance(address _address) public {
myAddress = _address;
balance = myAddress.balance;
}
}
주소를 셋팅하고, balance와 myAddress를 확인해보겠습니다.
'Blockchain > Solidity' 카테고리의 다른 글
Send Ether to the Smart Contract (1) 및 payable 개념 - 공부하는 도비 (0) | 2023.01.04 |
---|---|
delete element of array and mapping - 공부하는 도비 (0) | 2023.01.02 |
require() 사용 - 공부하는 도비 (0) | 2023.01.02 |
msg.sender 사용 - 공부하는 도비 (0) | 2023.01.02 |
Ethereum Goerli Test Network로 테스트 이더 받기 - 공부하는 도비 (0) | 2022.12.20 |