debug_traceTransaction

이미 처리된 Transaction의 처리 과정을 노드 레벨에서 replay하면서 트랜잭션의 실행 과정에서 각각의 단계와 관련된 상세한 정보를 확인할 수 있는 디버깅 메소드입니다. 트랜잭션의 호출 스택, 가스 사용량, 상태 변경, 로그 이벤트 등 다양한 정보를 반환합니다. 이를 통해 컨트랙트의 함수 호출 흐름, 변수 변경, 이벤트 발생 등을 추적하고 디버깅할 수 있습니다.

Log in to see full request history

사용 가능한 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_traceTransaction
json
required
Defaults to ["0xa7e5d2161323ed6eaa2dfb5c97805439fd4304f8b76da16829671a8c93e71cb9", {"tracer": "callTracer", "timeout":"1s"}]

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

1. transactionHash : debug 대상 트랜잭션 지정을 위해 트랜잭션의 해시값을 입력합니다.

2. trace 옵션 설정을 위한 object입니다. 다음과 같은 필드를 포함해야 합니다.
tracer : "callTracer" 또는 "prestateTracer" 값 중 하나로 지정합니다. 각 Tracer 옵션에 대한 설명은 API 문서 본문을 참고해주세요.
timeout : 추적 timeout을 값을 설정할 수 있습니다. 기본 값은 "5s"로 5초이며 최대 10초까지 설정할 수 있습니다. "ns", "us", "ms", "s"의 시간 단위를 사용할 수 있으며 10진수 뒤에 시간 단위를 붙인 문자열 형식으로 입력합니다.
tracerConfig : tracer 설정을 위한 Object입니다. Boolean 타입의 "onlyTopCall" 옵션을 사용할 수 있으며, true로 설정하는 경우 main call에 대한 이력만 trace합니다. false로 설정하는 경우 sub-call 레벨까지 trace합니다.

Response

Language
Click Try It! to start a request and see the response here! Or choose an example:
application/json
English
Powered by Localize
한국어