Less Footguns
WETH9
does not have a permit method but implements a silent fallback method meaning it'll silently accept a call to all methods,
even ones it hasn't implemented. This often leads to unforseen vulnerabilities when developers expect their contracts to interact with ERC20
tokens that implement certain methods or at the very least to revert if they do not implement the methods. Plase read this article for more information: PHANTOM FUNCTIONS AND THE BILLION-DOLLAR NO-OP
.
Nativo does not have a silent fallback method and will revert if it's called for a method it hasn't implemented.
Nativo does however implement a payable receive fallback method. Allowing you to wrap ETH if you explicitly send ETH to the contract along with no calldata.
Remove deprecated transfer
WETH9
implements the transfer
method which is deprecated and should not be used.
The use of the deprecated transfer()
function for an address will inevitably make the transaction fail when:
- The claimer smart contract does not implement a payable function.
- The claimer smart contract does implement a payable fallback which uses more than 2300 gas unit.
- The claimer smart contract implements a payable fallback function that needs less than 2300 gas units but is called through proxy, raising the call's gas usage above 2300.
- Additionally, using higher than 2300 gas might be mandatory for some multisig wallets.