post https://arbitrum-mainnet.luniverse.io/
특정 블록에 대해 tracer를 설정하여 해당 tracer가 제공하는 정보들을 통해 트랜잭션으로 인한 체인의 상태 변화 및 실제 call의 발생 이력들을 Debug할 수 있는 도구입니다.
사용 가능한 Tracer 타입
1. callTracer
callTracer
callTracer는 실행된 트랜잭션의 실행 경로와 결과를 확인하는 데 사용됩니다. 트랜잭션의 호출 스택, 반환 값, 가스 소비량, Revert 사유 등의 정보를 제공하며, 스마트 계약의 함수 호출과 상호작용하는 과정을 추적할 수 있습니다. 실행 옵션(onlyTopCall)에 따라 특정 call의 nested call들을 모두 조회하여 추적할 수 있습니다. 반환된 calls 배열 내의 각 call 객체들은 다음과 같은 정보를 포함합니다.
필드 명 | 타입 | 설명 |
---|---|---|
type | String | CALL 또는 CREATE |
from | String | 트랜잭션의 from 주소 |
to | String | 트랜잭션의 to 주소 |
value | String | 트랜잭션의 value |
gas | String | 트랜잭션의 gas |
gasUsed | String | 실제 트랜잭션에 소모된 gas |
input | String | Call 데이터 |
output | String | 반환된 데이터 |
error | String | 에러로 처리된 트랜잭션의 경우 에러 내용 |
revertReason | String | Revert된 트랜잭션의 경우 Revert된 사유 |
calls | Array | Sub-calls의 목록 (배열) |
2. prestateTracer
prestateTracer
prestateTracer는 특정 트랜잭션이나 블록이 실행되기 전의 상태(pre-state)를 추적하는 도구입니다. 트랜잭션이 실행되기 전의 계정 상태와 계약 코드를 기록하며, 트랜잭션의 실행 전과 후의 상태 변화를 분석할 수 있습니다. prestateTracer는 스마트 계약의 상태 변경 및 계정 간 상호작용을 추적하는 데 사용됩니다. 반환되는 필드는 다음과 같습니다.
필드 명 | 타입 | 설명 |
---|---|---|
balance | String | 잔고(단위: Wei) |
nonce | Uint64 | Nonce |
code | String | 실행대상 코드 (hex-encoded) |
storage | Map[String] | 해당 컨트랙트의 Storage Slot 정보 |