티스토리 뷰
728x90
send: 2300 gas 소모, 성공 시 true, 실패 시 false 리턴transfer: 2300 gas 소모, 실패 시 에러 리턴call: gas양 지정 가능, 지정하지 않으면 자동으로 들어감. 성공 시 true, 실패 시 false 리턴. 재진입 공격에 취약. 하지만 가스비가 상승한 이후로 gas가 동적을 설정되는 call 함수 사용을 권장
event spendLog(uint256 _value);
function sendNow(address payable _to) public payable {
bool sent = _to.send(msg.value);
require(sent, 'Failed');
emit spendLog(msg.value);
}
function transfetNow(address payable _to) public payable {
_to.transfer(msg.value);
emit spendLog(msg.value);
}
// v0.7 ~
function callNow(address payable _to) public payable {
(bool sent, ) = _to.call{value: msg.value, gas: 10000 }(""); // gas 생략 가능
require(sent, 'Failed');
emit spendLog(msg.value);
}
// ~ v0.7
function callNow2(address payable _to) public payable {
(bool sent, ) = _to.call.gas(10000).value(msg.value)("");
require(sent, "Failed");
emit spendLog(msg.value);
}'블록체인 개발 > Solidity' 카테고리의 다른 글
| call (0) | 2022.01.02 |
|---|---|
| fallback, receive (0) | 2022.01.02 |
| 에러 핸들링(require, revert, assert) (0) | 2022.01.01 |
| 문자열 비교 (0) | 2022.01.01 |
| Array (0) | 2022.01.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ganache
- JWT
- ethers.js
- Truffle
- avalanchego
- ERC721
- 스마트 컨트랙트
- 앱 아이콘
- interface
- 블록 탐색기
- erc20
- nft
- Flutter
- Upgradeable Contracts
- web3-token
- metamask-extension
- caver.js
- web3
- Call
- eslint
- class
- Proxy Pattern
- web3.js
- typescript
- 이더리움
- 블록체인
- swr
- caver-js
- Android
- Hardhat
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함