From cd11aadc7e4f08ce0330da63082cbe06ff136f10 Mon Sep 17 00:00:00 2001 From: knows <99597038+evmKnows@users.noreply.github.com> Date: Thu, 28 Aug 2025 04:08:46 +0400 Subject: [PATCH] Update unsupported-calls.mdx --- .../usage-details/unsupported-calls.mdx | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/docs/base-account/more/troubleshooting/usage-details/unsupported-calls.mdx b/docs/base-account/more/troubleshooting/usage-details/unsupported-calls.mdx index 0a55f501..79776903 100644 --- a/docs/base-account/more/troubleshooting/usage-details/unsupported-calls.mdx +++ b/docs/base-account/more/troubleshooting/usage-details/unsupported-calls.mdx @@ -27,17 +27,3 @@ Future versions of Base Account may support it. You can use a factory contract or a transaction with the `CREATE2` opcode to deploy a smart contract. -## Solidity's Builtin `transfer` function - -The `transfer` function is a built-in member of the `address` type in Solidity that can be used to send ETH to an address. Base Account wallets cannot receive ETH using this function. -This function has long been considered deprecated in favor of `call` by the Solidity community, but some older contracts still use it. - -The reason for this is that `transfer` only forwards 2300 gas to the `transfer` call, a protective mechanism that was designed to prevent reentrancy attacks by limiting the amount of -gas available to a smart contract that might reenter the caller. -In the modern world of smart contract wallets (including for Base Account), this is often not enough gas for the smart contract's `receive` or `fallback` functions to complete their work, -causing the transaction to revert. - -### Known affected contracts - -- The [WETH9 contract](https://basescan.org/token/0x4200000000000000000000000000000000000006) uses `transfer` to send ETH to the user's wallet and therefore Base Accounts cannot directly unwrap ETH from it. -