debug_traceCall

eth_call을 디버깅 모드로 실행하면서 trace 기능을 제공합니다. 현재 블록의 상태를 기반으로 특정 call을 수행하였을 때 발생하는 모든 스택 변화를 추적할 수 있습니다.

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_traceCall
json
required
Defaults to [{"from": "0xc90d3Ac75D1D36dF0b0a229E73D8409FB7F3c4ab","to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value": "0x186a0"}, "finalized",{"tracer":"callTracer"}]

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

1. callObject는 다음과 같은 필드를 포함하는 object입니다.
from: 트랜잭션의 from 주소를 문자열 형식으로 입력합니다. Optional 필드입니다.
to : 트랜잭션의 to 주소를 문자열 형식으로 입력합니다.
gas : 해당 트랜잭션을 처리하기 위해 필요한 가스의 소모량을 hex형식의 문자열로 입력합니다. Optional 필드입니다. 스마트 컨트랙트 call을 수행하는 경우 소모되는 가스가 없으므로 0x0로 입력할 수 있습니다.
gasPrice : 설정하고자 하는 가스당 비용을 hex 형식의 문자열로 입력합니다.
value : 트랜잭션의 value 값입니다.
data : 실행하고자 하는 트랜잭션의 method signature 해시값입니다. ABI에서 참고할 수 있습니다.

2. blockIdentifier : 기준 블록 지정을 위해 블록의 해시값, Number 값(hex형식), 또는 다음 태그 중 하나를 사용할 수 있습니다 - "pending", "latest", "earliest", "safe", "finalized".

3. trace 옵션 설정을 위한 object입니다. 다음과 같은 필드를 포함해야 합니다.
tracer : "callTracer" 또는 "prestateTracer" 값 중 하나로 지정합니다. 각 Tracer 옵션에 대한 설명은 API 문서 본문을 참고해주세요.
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
한국어