주소.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 배포한다.
3. 함수 실행
Deploy했으면
Deployed Contracts 가 생성될거다.
함수에 값넣어서 이더송금할 수 있다.
sendEther는 송금받을 주소를 넣는 곳이다.
Account에서 보낼 주소를 골라서 복사해서 sendEther에 넣는다.
그리고 Account에서 다시 내 계정주소로 와있는지 확인한 다음에
보낼 이더 값을 Value에 넣는다. Ether로 되어있는지 확인한다.
그리고 sendEther를 눌러 송금함수를 실행한다.
잘보내졌으면 저렇게 내역이 뜬다.
ACCOUNT 눌러서 남은 잔고와 받은 잔고를 맨위에 사진처럼 확인할 수 있다.
현재계정 잔고확인하기
checkValueNow함수 사용
특정계정의 잔고 확인하기
checkUserValue함수
에 _to 확인할 계정주소 넣고
원래 보낼 주소로 되어있는지 ACCOUNT확인하고
함수 실행하면
_msgSender 주체
_to 확인한 계정
_value 잔고
'블록체인 > 솔리디티' 카테고리의 다른 글
ParserError: Expected primary expression 오류 (0) | 2022.02.28 |
---|---|
call 로우레벨 함수, Delegate call개념 (0) | 2022.02.28 |
payable (생성자에 넣기, 특정계정 권한주기, 함수수정modifier) (0) | 2022.02.27 |
vscode에서 solidity 솔리디티 사용하기 (환경설정,버전오류) (0) | 2022.02.10 |
크립토좀비 복습(컨트랙트,상태 변수,수학 연산,구조체,배열) 레슨1 챕터10까지 적음 (0) | 2022.02.10 |