I know that a fallback function called with a
.transfer only has gas limit of 2300. What happens if the fallback function deletes some storage variables in the fallback function? Would the fallback function be able to use more than the 2300 gas limit because some gas is being refunded? Let's say it sets one variable to 0, which the gas refund is 10000. Then would the fallback function have gas limit of 12300? I.e. be able to set 2 variables each action having a cost of 5000 gas?
Also, I've read that
.send will have a limit of 2300 gas and
call.value will transfer gas from the transaction. But what about a non matching function? According to the docs a non matching function identifier will trigger the fallback function. So what happens if someone calls my contract with
"thisMethodDoesntExist()", would the fallback have a limit of 2300?