블록체인 학습
0 XP

실습: Ether 수신하기

Ether 를 받는 컨트랙트를 직접 만들어 봅시다. 필요한 도구는 두 가지입니다. 함수가 Ether 를 받으려면 payable 키워드가 있어야 하고, 컨트랙트가 보유한 총 잔액은 address(this).balance 로 읽습니다. 이번 실습에서는 이 둘을 조합해, Ether 를 받아 보관하고 자신의 잔액을 조회할 수 있는 작은 금고(Vault)를 완성합니다.

payable 함수로 들어온 Ether 는 별도 코드 없이 자동으로 컨트랙트 잔액에 더해집니다. 따라서 입금 함수 안에 잔액을 더하는 코드를 직접 쓸 필요는 없습니다. 잔액 숫자는 EVM 이 알아서 갱신해 주므로, 그 값을 address(this).balance 로 읽어 반환하기만 하면 됩니다.

해야 할 일:

  1. Vault 컨트랙트를 선언하세요.
  2. deposit 이라는 이름의 payable 함수를 만들어 Ether 를 받을 수 있게 하세요.
  3. getBalance 함수를 만들어 컨트랙트 자신의 잔액(address(this).balance)을 uint256 으로 반환하세요.

getBalance 는 상태를 바꾸지 않고 값만 읽으므로 view 함수로 선언하는 것이 자연스럽습니다.

완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.