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.)