debug_traceBlockByNumber

특정 블록에 대해 tracer를 설정하여 해당 tracer가 제공하는 정보들을 통해 트랜잭션으로 인한 체인의 상태 변화 및 실제 call의 발생 이력들을 Debug할 수 있는 도구입니다.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

사용 가능한 Tracer 타입

1. callTracer

callTracer는 실행된 트랜잭션의 실행 경로와 결과를 확인하는 데 사용됩니다. 트랜잭션의 호출 스택, 반환 값, 가스 소비량, Revert 사유 등의 정보를 제공하며, 스마트 계약의 함수 호출과 상호작용하는 과정을 추적할 수 있습니다. 실행 옵션(onlyTopCall)에 따라 특정 call의 nested call들을 모두 조회하여 추적할 수 있습니다. 반환된 calls 배열 내의 각 call 객체들은 다음과 같은 정보를 포함합니다.

필드 명타입설명
typeStringCALL 또는 CREATE
fromString트랜잭션의 from 주소
toString트랜잭션의 to 주소
valueString트랜잭션의 value
gasString트랜잭션의 gas
gasUsedString실제 트랜잭션에 소모된 gas
inputStringCall 데이터
outputString반환된 데이터
errorString에러로 처리된 트랜잭션의 경우 에러 내용
revertReasonStringRevert된 트랜잭션의 경우 Revert된 사유
callsArraySub-calls의 목록 (배열)

2. prestateTracer

prestateTracer는 특정 트랜잭션이나 블록이 실행되기 전의 상태(pre-state)를 추적하는 도구입니다. 트랜잭션이 실행되기 전의 계정 상태와 계약 코드를 기록하며, 트랜잭션의 실행 전과 후의 상태 변화를 분석할 수 있습니다. prestateTracer는 스마트 계약의 상태 변경 및 계정 간 상호작용을 추적하는 데 사용됩니다. 반환되는 필드는 다음과 같습니다.

필드 명타입설명
balanceString잔고(단위: Wei)
nonceUint64Nonce
codeString실행대상 코드 (hex-encoded)
storageMap[String]해당 컨트랙트의 Storage Slot 정보
Path Params
string
required

생성한 노드 환경에 부여되는 ID. 19자리 숫자형식입니다.

Body Params
int32
required
Defaults to 1
string
required
Defaults to 2.0
string
required
Defaults to debug_traceBlockByNumber
json
required
Defaults to ["0x10774B8", {"tracer": "callTracer"}]

다음 파라미터들을 타입에 맞게 배열로 입력합니다.

1. blockNumber : 기준 블록 지정을 위해 블록의 Number값을 hex 형식의 문자열로 입력합니다.

2. trace 옵션 설정을 위한 object입니다. 다음과 같은 필드를 포함해야 합니다.
tracer : "callTracer" 또는 "prestateTracer" 값 중 하나로 지정합니다. 각 Tracer 옵션에 대한 설명은 API 문서 본문을 참고해주세요.
tracerConfig : tracer 설정을 위한 Object입니다. Boolean 타입의 "onlyTopCall" 옵션을 사용할 수 있으며, true로 설정하는 경우 main call에 대한 이력만 trace합니다. false로 설정하는 경우 sub-call 레벨까지 trace합니다..

Response

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json