일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- web3.js
- 블록체인
- 프레임워크
- Geth
- 이더리움
- 프론트엔드
- Solidity
- 서비스체인
- 솔리디티
- vue
- frontend
- Web
- 블록체인 구조와 이론
- Klaytn API Service
- nodejs
- API
- 제어자
- javascript
- SCN
- 클레이튼
- web3
- ethereum
- 웹
- 접근제어자
- blockchain
- vue.js
- Klaytn
- kas
- geth구현
- 앵커링
Archives
- Today
- Total
BloCCat
payable 제어자 본문
payable
- 가상화폐로 접근하기 위한 키워드, 이더 코인을 전송하는 smart contract를 작성하기 위해서 반드시 사용
* payable을 작성한 함수에서만 이더를 보낼 수 있기 때문에 smart contract 외부에서 해당 함수들 중에 코인을 전송 시키는 함수를 사용하려 한다면, 해당 함수는 반드시 payable 키워드가 함께 작성된 함수이어야 한다.
contract OnlineStore {
function buySomething() external payable {
// 함수 실행에 0.001이더가 보내졌는지 확실히 하기 위해 확인:
require(msg.value == 0.001 ether);
// 보내졌다면, 함수를 호출한 자에게 디지털 아이템을 전달하기 위한 내용 구성:
transferThing(msg.sender);
}
}
address payable
- address 타입의 확장판
- 이더를 전송할 수 있는 함수인 send(), transfer() 함수 내장 (transfer함수는 예외처리를 하지만 send는 안함)
- 멤버변수로 쓰일 경우에는 storage, 매개변수로 쓰일 경우에는 memory와 함께 사용
- address() : address 타입을 address payable로 형변환
- msg.sender : 스마트 컨트랙트 함수를 실행한 사용자의 주소를 사용하는 경우
- 4bytes
payable 활용 패턴 정리
https://solidity-kr.readthedocs.io/ko/latest/common-patterns.html
'Study > Solidity' 카테고리의 다른 글
vscode solidity 버전 에러 해결 (0) | 2021.09.05 |
---|---|
solidity 제어자 정리 (0) | 2021.09.03 |
solidity - 함수 제어자 활용 (0) | 2021.08.30 |
효율적인 Contract 작성법 (2) - 가스 절약 (0) | 2021.08.30 |
효율적인 Contract 작성법 (1) (0) | 2021.08.29 |