대체 기능에 가스 환불이 적용 되나요? 일치하지 않는 함수 식별자에 대한 제한은 무엇입니까?

Nov 14 2020

a .transferonly로 호출 된 fallback 함수의 가스 제한이 2300 이라는 것을 알고 있습니다. fallback 함수 가 fallback 함수에서 일부 저장 변수를 삭제하면 어떻게됩니까? 일부 가스가 환불되기 때문에 폴백 기능이 2300 가스 한도 이상을 사용할 수 있습니까? 하나의 변수를 0으로 설정하면 가스 환불이 10000입니다. 그러면 fallback 함수의 가스 제한이 12300일까요? 즉, 5000 가스의 비용을 갖는 각 작업에 2 개의 변수를 설정할 수 있습니까?

또한, 나는 읽었습니다 .transfer, .send2300 가스의 제한이되고 call.value거래에서 가스를 전송합니다. 그러나 일치하지 않는 함수는 어떻습니까? 문서에 따르면 일치하지 않는 함수 식별자가 대체 함수를 트리거합니다. 누군가 내 계약을으로 호출 "thisMethodDoesntExist()"하면 대체 제한이 2300으로 제한됩니까?

답변

1 goodvibration Nov 14 2020 at 16:27

일부 가스가 환불되기 때문에 폴백 기능이 2300 가스 한도 이상을 사용할 수 있습니까?

우선, 환불되는 가스의 양은 사용 된 가스의 최대 절반이므로 폴백 함수의 이론적 인 가스 한계는 최대 2300 + 1150 = 3450 가스입니다.

둘째, 가스 환급 자체는 거래 종료시에만 제공되며, 이는 실행중인 기능이 자체 가스 환급을 사용할 수 없음을 의미합니다.

즉, 추가 량의 1150 가스조차도 폴백 기능에 사용할 수 없으므로 가스 제한은 2300 가스로 유지됩니다.