Skip to main content

Documentation Index

Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

트랜잭션이 포함되지 않는 경우

트랜잭션이 예상보다 오래 대기 중인 경우 다음을 확인하세요:

최대 수수료가 너무 낮음

maxFeePerGas가 현재 기본 수수료보다 낮으면 기본 수수료가 지정된 수준으로 떨어질 때까지 트랜잭션은 대기 상태로 유지됩니다. 해결책: maxFeePerGas는 기본 수수료와 우선순위 수수료 모두를 포함해야 합니다. 기본 수수료는 각 블록마다 변경될 수 있으므로, 트랜잭션이 대기 중인 동안 기본 수수료가 상승하더라도 유효하게 유지될 만큼 충분히 높게 maxFeePerGas를 설정하세요. 일반적인 접근 방식은 다음과 같습니다:
maxFeePerGas = baseFee * 2 + maxPriorityFeePerGas
이 공식(ethers.js에서 사용)은 트랜잭션이 실행 불가능해지기 전에 기본 수수료가 두 배로 늘어날 수 있는 여유를 제공합니다. 최대 수수료가 아닌 포함 시점의 실제 기본 수수료만 지불합니다.
Base는 최소 기본 수수료를 가지고 있습니다. 이 값보다 낮은 maxFeePerGas를 가진 트랜잭션은 기본 수수료가 최솟값 아래로 떨어질 수 없으므로 포함되지 않습니다.

우선순위 수수료가 너무 낮음

높은 수요 기간에 트랜잭션은 우선순위 수수료를 통해 블록 공간을 경쟁합니다. 우선순위 수수료가 다른 트랜잭션에 비해 너무 낮으면 지연될 수 있습니다. 해결책: 대부분의 사용자는 단순히 혼잡이 가라앉기를 기다립니다. 시간이 중요한 트랜잭션의 경우 eth_maxPriorityFeePerGas를 사용하여 최근 트랜잭션 중 충분히 많은 수를 능가할 수 있는 우선순위 수수료 추정값을 얻으세요.
DA 스로틀링이 현재 적용 중인 경우, 스로틀링을 고려한 우선순위 수수료 추정을 계산하는 RPC 엔드포인트가 없습니다. DA 스로틀링 중에는 높은 우선순위 수수료를 가진 트랜잭션조차도 시퀀서가 L1 데이터 가용성 처리량을 관리하기 위해 L2 트랜잭션을 제한하므로 지연될 수 있습니다.

논스 갭

논스 N의 대기 중인 트랜잭션이 있으면 논스 N+1 이상의 모든 트랜잭션은 수수료에 관계없이 뒤에 줄을 서게 됩니다. 해결책: 대기 중인 트랜잭션이 포함될 때까지 기다리거나, 동일한 논스와 더 높은 수수료(최소 10% 높은 maxPriorityFeePerGasmaxFeePerGas)로 새 트랜잭션을 제출하여 대체하세요.

논스가 너무 낮음

이미 사용된 논스로 트랜잭션을 제출하면 거부됩니다. 해결책: pending 태그와 함께 eth_getTransactionCount를 사용하여 현재 논스를 조회하여 다음 사용 가능한 논스를 얻으세요.

트랜잭션 거부

가스 한도가 최대값을 초과함

Base는 트랜잭션당 가스 최대값인 25,000,000 가스적용합니다. 더 높은 가스 한도를 지정하는 트랜잭션은 포함 전에 멤풀에서 거부됩니다. 오류: exceeds maximum per-transaction gas limit 해결책: 가스 한도를 25,000,000 이하로 줄이세요. 트랜잭션이 실제로 더 많은 가스가 필요한 경우 여러 트랜잭션으로 나눠야 합니다.

트랜잭션이 포함되었지만 실패한 경우

트랜잭션이 블록에 포함되었지만 실패 상태를 보이는 경우:

가스 부족

트랜잭션이 실행 중에 가스가 소진되었습니다. 해결책: 가스 한도를 늘리세요. eth_estimateGas를 사용하여 가스 추정값을 얻은 다음 변동성을 고려하여 버퍼(예: 20%)를 추가하세요.

컨트랙트에 의해 되돌림

컨트랙트 실행 중에 되돌림 조건이 발생했습니다. 해결책: Basescan에서 트랜잭션을 확인하여 되돌림 이유를 확인하세요. 일반적인 원인으로는 실패한 require 문, 산술 오류 또는 유효하지 않은 상태 전환이 있습니다.

느린 확인

확인 시간 이해

Base는 2초마다 블록을 생성하지만 플래시블록은 200ms마다 사전 확인을 제공합니다.
확인 수준시간설명
플래시블록 사전 확인~200ms사전 확인에 트랜잭션 포함
L2 블록 포함~2s봉인된 L2 블록에 트랜잭션 포함
L1 배치 포함~2m이더리움에 트랜잭션 게시
L1 최종성~20m이더리움 배치 최종 확정
자세한 내용은 트랜잭션 최종성을 참조하세요.

더 빠른 확인을 위한 플래시블록 사용

가장 빠른 확인을 받으려면 플래시블록 인식 RPC 엔드포인트를 사용하세요:
네트워크Flashblocks RPC
메인넷https://mainnet-preconf.base.org
Sepoliahttps://sepolia-preconf.base.org
이 엔드포인트는 전체 L2 블록을 기다리지 않고 트랜잭션이 플래시블록에 포함되는 즉시 트랜잭션 영수증을 반환합니다.

디버깅 도구

  • Basescan: 트랜잭션 상태, 로그 및 되돌림 이유 확인
  • Tenderly: 트랜잭션 시뮬레이션 및 디버그
  • eth_call: 트랜잭션을 제출하지 않고 컨트랙트 호출 테스트
  • eth_estimateGas: 제출 전 가스 사용량 추정

도움 받기

아직 문제가 해결되지 않는다면 Base Discord#developer-chat 채널에서 문의하세요.