> ## Documentation Index
> Fetch the complete documentation index at: https://daehan-base.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 지원되지 않는 호출

> Base Account에서 지원되지 않는 호출과 제한 사항을 설명합니다.

Base Account는 이더리움 Provider JavaScript API([EIP-1193](https://eips.ethereum.org/EIPS/eip-1193)에 상세히 설명)를 구현하고
계정 추상화를 위한 [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) 표준을 따릅니다.

이는 Base Account와 상호작용하는 앱이 일반적인 이더리움 가상 머신(EVM) 계정처럼 동작할 것으로 기대할 수 있음을 의미합니다.
그러나 비호환성 또는 보안상의 이유로 Base Account에서 지원되지 않는 일부 호출이 있습니다.
다음은 지원되지 않는 호출 목록입니다:

* [셀프 호출](#셀프-호출): 앱이 사용자의 계정을 사용하여 자기 자신을 호출하는 기능을 말합니다.
* [CREATE](#create): 앱이 `CREATE` OPCODE를 사용하여 새로운 컨트랙트를 생성하는 기능을 말합니다.

## 셀프 호출

보안상의 이유로, 제3자 앱이 사용자 자신의 Base Account 주소에 호출하는 것을 허용하지 않습니다.
이는 앱이 소유자를 변경하거나, 사용자 계정을 업그레이드하거나, 기타 문제를 일으킬 수 있습니다.

## CREATE

이것은 ERC-4337 표준 및 스마트 계정의 제한 사항입니다.
현재 스마트 컨트랙트 배포를 위한 `CREATE` opcode를 지원하지 않습니다.
Base Account의 향후 버전에서는 이를 지원할 수 있습니다.

<Tip>
  팩토리 컨트랙트나 `CREATE2` opcode를 사용하는 트랜잭션을 사용하여 스마트 컨트랙트를 배포할 수 있습니다.
</Tip>

## Solidity의 내장 `transfer` 함수

`transfer` 함수는 ETH를 주소로 전송하는 데 사용할 수 있는 Solidity의 `address` 타입의 내장 멤버입니다. Base Account 지갑은 이 함수를 사용하여 ETH를 받을 수 없습니다.
이 함수는 Solidity 커뮤니티에서 오래 전부터 `call`을 선호하여 더 이상 사용하지 않는 것으로 간주되었지만, 일부 오래된 컨트랙트에서는 여전히 사용하고 있습니다.

이유는 `transfer`가 `transfer` 호출에 단 2300 가스만 전달하기 때문인데, 이는 재진입 공격을 방지하기 위해 콜러에게 재진입할 수 있는 스마트 컨트랙트에서 사용 가능한 가스량을 제한하도록 설계된 보호 메커니즘입니다.
현대의 스마트 컨트랙트 지갑(Base Account 포함)에서는 이것이 스마트 컨트랙트의 `receive` 또는 `fallback` 함수가 작업을 완료하기에 충분하지 않은 경우가 많아 트랜잭션이 되돌아갑니다.

### 영향받는 알려진 컨트랙트

* [WETH9 컨트랙트](https://basescan.org/token/0x4200000000000000000000000000000000000006)는 `transfer`를 사용하여 사용자 지갑에 ETH를 전송하므로 Base Account는 해당 컨트랙트에서 직접 ETH를 언래핑할 수 없습니다.
