25일 - 폴백 및 함수 수신
특사-VC / 30일의 견고함
스마트 계약 개발을 배우기 위한 30일간의 Solidity 단계별 가이드.
Solidity Series의
25
중 Day30
입니다.오늘 저는 Fallback에 대해 배웠고 Solidity에서 함수를 받습니다.
다른 함수가 함수 식별자와 일치하지 않거나 함수 호출과 함께 제공된 데이터가 없는 경우 견고성 폴백 함수가 실행됩니다. 하나의 이름 없는 기능만 계약에 할당할 수 있으며 계약이 데이터 없이 일반 Ether를 받을 때마다 실행됩니다. 이더를 받아 계약의 총 잔액에 추가하려면 폴백 기능을 지불 가능으로 표시해야 합니다. 그러한 기능이 없으면 컨트랙트는 정상적인 트랜잭션을 통해 Ether를 받을 수 없으며 예외를 발생시킵니다.
폴백 함수의 속성:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract Receiver{
mapping(address => uint) public addressToAmount;
receive() external payable {
addressToAmount[msg.sender] += msg.value;
}
}
contract Sender {
uint amount = 1 ether;
address payable _receiver = payable(0xcD6a42782d230D7c13A74ddec5dD140e55499Df9);
function sendEther() public payable {
_receiver.transfer(amount);
}
}
폴백()
이 기능은 일반 Ether 전송을 제외하고 이 계약으로 전송되는 모든 메시지에 대해 호출됩니다(수신 기능 외에 다른 기능은 없음). 이 계약에 대한 비어 있지 않은 호출 데이터가 있는 모든 호출이 실행됩니다.
받다()
이 함수는 일반 Ether 전송, 즉 빈 calldata가 있는 모든 호출에 대해 호출됩니다.
Reference
이 문제에 관하여(25일 - 폴백 및 함수 수신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/envoy_/day-25-fallback-and-receive-functions-4am0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)