Blockchain/Solidity

msg.sender 사용 - 공부하는 도비

DOVISH WISDOM 2023. 1. 2. 14:29  
728x90
반응형

2022.12.29 - [블록체인] - [블록체인] (Solidity).balance(uint256) 사용 - 공부하는 도비

 

[블록체인] (Solidity) <address>.balance(uint256) 사용 - 공부하는 도비

오늘은 특정 주소를 셋팅한 후, 그 주소의 잔고를 출력 또는 리턴 받아보겠습니다. Remix - Ethereum IDE Solidity 0.8.1 (버전이 높을 수록 다 좋은 것은 아닙니다. 0.8.1버전은 아마 글 쓰는 시점 가장 최신

yang-wistory1009.tistory.com

 

 

저번 피드에서 특정 주소의 잔고를 리턴/출력하는 방법을 알아보았습니다.

 

오늘은 constructor() 생성자를 사용하여 계약 배포자의 주소를 설정하고, 그 주소의 잔고를 리턴 받아보겠습니다. 

 

Remix - Ethereum IDE 

Solidity 0.8.1 

 

(버전이 높을 수록 다 좋은 것은 아닙니다. 0.8.1버전은 아마 글 쓰는 시점 가장 최신버전이나 각자가 생각하는 가장 stable한 버전을 쓰시면 됩니다.)

 

pragma solidity ^0.8.1;

contract test {

    address public owner; // contract deployer
    
    constructor () public {
        owner = msg.sender; // sender of the message (current call)
    }

    function viewBalance() public view returns(uint256) {
        return owner.balance;
    }    
}

owner라는 변수를 계약 배포자로 가정하고 시작해보겠습니다. 

 

constructor에서 msg.sender를 사용하여, 이 계약을 배포한 사람을 owner이 되도록 합니다. 

msg.sende을 사용하면, 현재 호출된 메시지의 송신자를 알 수 있습니다. 

 

그럼 자연스럽게 owner라는 변수를 클릭하면 계약 배포자의 주소가 설정됩니다.

그리고 함수 viewBalance에서 .balance를 사용하여 특정 주소의 잔고를 리턴 받습니다.