I deployed the following contracts where one of the low level functions writes to a state variable and the other does not.
''' //SPDX-License-Identifier: MIT
pragma solidity <0.9.0;
contract lowlevel_w{
uint public balanceReceived;
receive() external payable{
balanceReceived += address(this).balance; }
}
contract lowlevel{
receive() external payable{}
} '''
I then sent 2 ETH to each of the contracts and the gas costs were as following-
Why does the second contract (lowlevel{}) have three different types of fee whereas the first contract (lowlevel_w{}) have only one? Is there any default gas limit for low-level interactions?
balanceReceived()