일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- html #js #parsing
- 블록체인 #layer2 #레이어2 #이더리움스케일링
- #국제채권시장 #유로본드 #유로커런시 #유로달러 #외국채 #금융중개기관 #간접금융 #거래비용#다우존스공업평균지수 #나스닥종합지수 #FTSE100 #DAX #CAC40 #straittimes #항생지수 #거래비용 #유동성 #위
- vp #vc #did #신원인증 #블록체인
- 미쉬킨의화폐와금융 #미쉬킨 #화폐금융론 #화폐와금융 #경제학 #교양 #경제지식 #경제공부
- #경제상식 #화폐 #금융 #화폐금융론 #경제학 #경제기본 #경제지식 #경제근육 #투자지식 #경제공부 #경제학전공 #금융이란 #화폐란 #금융시장 #금융시장역할 #화폐역할 #화폐역기능 #금융역기능 #
- 페이스북유니버시티 #마케팅교육 #마케팅캠프
- 자료구조 #알고리즘
Archives
- Today
- Total
평행우주 : world 1
[Solidity] Faucet을 구현하는 솔리디티 컨트랙트 분석 본문
contract Faucet {
//요청하는 사람에게 이더 주기
function withdraw(uint withdraw_amount) public {
//출금 액수 제한
require(withdraw_amount <= 1000000000000000000);
//요청한 주소로 금액 보내기
msg.sender.transfer(withdraw_amount);
}
//입금 금액 수락
function () public payable {
}
}
withdraw
이 함수는 다른 함수에 의해 호출될 수 있는 공개(public) 함수로 선언된다
함수 정의는 중괄호 사이에 온다
함수의 첫 번째 부분은 출금에 대한 제한을 설정한다
require
전제조건을 테스트 하기 위해 내장된 솔리디티 함수 require을 사용한다
해당 금액보다 큰 amount로 withdraw함수가 호출되면,
require함수는 컨트랙트 실행을 중지하고 예외로 실패처리한다
msg
이 객체는 모든 컨트랙트에서 접근할 수 있는 입력 중 하나로
이 컨트랙트의 실행을 시작한 트랜잭션을 나타낸다
sender
이 속성은 해당 트랜잭션의 발신자 주소다
transfer
이더를 현재 컨트랙트에서 발신자의 주소로 전송하는 내장함수
유일한 인수로서 amount를 받는다
앞에 선언된 withdraw함수의 파라미터인 withdraw_amount 값을 전달한다
function() public payable {}
이 함수는 소위 풀백 또는 기본 함수로
컨트랙트를 실행한 트랜잭션이 컨트랙트에 선언된 함수 또는
어떠한 함수도 지정하지 않았거나
데이터를 포함하지 않은 경우에 호출된다
이런 이유로 기본함수는 public이고 payable 함수로 정의되며,
이는 이더를 컨트랙트에 받아들일 수 있음을 의미한다
{} 안의 비어있는 정의는 이더를 받는 일 외에 아무것도 하지 않음을 의미한다
이더를 지갑같은 컨트랙트 주소로 보내는 트랜잭션을 발생시키면 이 함수가 처리한다
'텃밭 1 : BlockChain > Solidity' 카테고리의 다른 글
[Solidity] 이더리움 토큰과 ERC20 필수함수 + 이벤트 (0) | 2022.03.28 |
---|---|
[Solidity] 컨트랙트 정의와 함수 (0) | 2022.03.28 |
[Solidity] Data type (0) | 2022.03.25 |
[실습 | 블록체인] Mnemonic Wallet 개발하기 (0) | 2022.03.17 |
[크립토좀비] Solidity Path : 3. 고급 솔리디티 개념 (0) | 2022.02.22 |
Comments