# debug_traceCall: พารามิเตอร์ ค่าส่งคืน และ CU

> Source: https://docs.blockvectra.com/th/api/json-rpc/methods/debug_traceCall/

## สรุป

รัน eth_call ตามสถานะของบล็อกที่กำหนดและสร้าง trace การประมวลผล ([เอกสารทางการ](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall))

## Compute Units (CU) และราคา

- CU ต่อการเรียก: 100 CU
- ราคาต่อ 1M การเรียก (USD): $10.00

## พารามิเตอร์

| พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย |
| --- | --- | --- |
| `call` | `object` | ออบเจกต์การเรียกธุรกรรม ประกอบด้วย from, to, data, gas, gasPrice, value |
| `block` | `QUANTITY\|TAG\|HASH` | หมายเลขบล็อก (จำนวนเลขฐานสิบหกที่มีคำนำหน้า 0x), แฮชของบล็อก หรือแท็ก 'latest' / 'pending' ที่จะใช้ trace; safe, finalized และ earliest จะส่งคืน -32011 |
| `options` | `object` | ออบเจกต์ตัวเลือกการ trace (ไม่บังคับ): tracer สามารถเป็น callTracer, flatCallTracer, prestateTracer, 4byteTracer หรือ noopTracer หากละเว้นจะใช้ struct logger เริ่มต้น และค่าอื่นๆ จะส่งคืน -32602 tracer not allowed; tracerConfig ใช้ส่งตัวเลือกเฉพาะของ tracer (เช่น onlyTopCall และ withLog สำหรับ callTracer, diffMode สำหรับ prestateTracer); timeout สูงสุด 30s; reexec กำหนดหมายเลขบล็อกที่จะรันธุรกรรมซ้ำ; นอกจากนี้ยังรองรับ stateOverrides, blockOverrides และ txIndex |

## ค่าส่งคืน

- **ชนิดข้อมูล**: `OBJECT`
- **คำอธิบาย**: ออบเจกต์ผลลัพธ์การ trace การประมวลผลที่ตรงกับ tracer ที่ร้องขอ (โครงสร้างต้นไม้ CallFrame สำหรับ callTracer)

## หมายเหตุ

บล็อกเป้าหมายต้องอยู่ภายในหน้าต่างสถานะของเชน (state_window_blocks); คำขอที่อยู่นอกหน้าต่างสถานะจะส่งคืน -32011 (ไม่คิดค่าบริการ)

## ตัวอย่างคำขอ

```bash
export BLOCKVECTRA_API_KEY=rgw_your_api_key

curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H 'Content-Type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "method": "debug_traceCall",
    "params": [
      {
        "to": "<toAddress>",
        "data": "<callData>"
      },
      "latest",
      {
        "tracer": "callTracer"
      }
    ],
    "id": 1
  }'
```

## เชนที่รองรับ

พร้อมใช้งานบนเชนที่รองรับทั้งหมดยกเว้น: Base (base_mainnet), BNB Smart Chain (bsc_mainnet), Ethereum Sepolia (eth_sepolia), HyperEVM (hyperevm_mainnet)
