728x90

주소.balance    주소의 현재 갖고 있는 이더의 잔액

( msg.value       송금액을 의미한다 달라! )

msg.sender      스마트컨트랙을 사용하는 주체, 보내는 자

주고 받는거 해봄

 

 

이더보내는 스마트컨트랙트 코드  (출처: https://github.com/D-One0914/BreakingSolidityBasic/blob/main/lec33.sol

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0 < 0.9.0;

//주소.balance
//주소의 현재 갖고 있는 이더의 잔액을 의미함.  //  msg.value는 송금액을 의미한다 달라!

// msg.sender
// msg.sender는 스마트컨트랙을 사용하는 주체라고 볼 수 있다 
// 앞으로 설명할 call 과 delegate call에서 주요 내용이니 관심잇게 봐라

contract MobileBanking{
    event SendInfo(address _msgSender, uint256 _currentValue);
    event MyCurrentValue(address _msgSender,uint256 _value);
    event CurrentValueOfSomeone(address _msgSender, address _to, uint256 _value);


   //이더를 보낼라면 
   //을 넣을 줄 알았지만!!! 보내는 주소, 받을 사람 주소만 있음 되는구나.. 이더를 받아야되기때문에 payable써준다 //함수전체도 이더보는거라 payable써줌
    function sendEther(address payable _to) public payable {
        require (msg.sender.balance >= msg.value , "your balance is not enough");
        //트랜스퍼 함수를 통해 이더 송금
        _to.transfer(msg.value);
        //보낸 나의 주소, 내 잔고
         emit SendInfo(msg.sender, (msg.sender).balance);
    }
    //그냥 현재 잔고확인 함수인듯?
    function checkValueNow() public{
        emit MyCurrentValue(msg.sender, (msg.sender).balance);
    }
    //어떤 계정의 잔고 확인하고 싶을때, 확인하고 싶은 주소 넣기
    function checkUserValue(address _to) public{
       emit CurrentValueOfSomeone(msg.sender, _to, _to.balance);
    }

}

 

 

이더송금하기 

sendEther함수 사용

 

1. 코드를 컴파일한다

또는 우클릭해서 원하는 코드 컴파일.

 

2. ACCOUNT 에서 현재 내 계정주소 확인하고  Deploy 배포한다.

 

1로 표시한거 &gt;&nbsp; 계정주소 넣을 부분 2로 표시한거 &gt; 이더금액 넣는 부분 3로 표시한거 &gt;&nbsp; Deploy 배포 4로 표시한거 &gt; 함수사용하는 부분 5로 표시한거 &gt;&nbsp; 내역&nbsp; &nbsp; &nbsp; &nbsp;(숫자 이거 순서 아님주의!!!)

3. 함수 실행

 

Deploy했으면

Deployed Contracts 가 생성될거다.

함수에 값넣어서 이더송금할 수 있다.

 

sendEther는 송금받을 주소를 넣는 곳이다.

 

Account에서 보낼 주소를 골라서 복사해서 sendEther에 넣는다.

그리고 Account에서 다시 내 계정주소로 와있는지 확인한 다음에

보낼 이더 값을 Value에 넣는다. Ether로 되어있는지 확인한다.

그리고 sendEther를 눌러 송금함수를 실행한다. 

 

잘보내졌으면 저렇게 내역이 뜬다.

ACCOUNT 눌러서 남은 잔고와 받은 잔고를 맨위에 사진처럼 확인할 수 있다. 

 

 

 

 

현재계정 잔고확인하기

checkValueNow함수 사용

 

 

 

 

 

 

특정계정의 잔고 확인하기 

checkUserValue함수

에 _to 확인할 계정주소 넣고

원래 보낼 주소로 되어있는지 ACCOUNT확인하고

 

함수 실행하면

_msgSender 주체

_to 확인한 계정

_value 잔고

 

 

 

 

 

728x90

+ Recent posts