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

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

## สรุป

จำลองลำดับของการเรียกหรือธุรกรรมตามสถานะของบล็อกโดยไม่ต้องบรอดแคสต์ ([เอกสารทางการ](https://ethereum.github.io/execution-apis/api/methods/eth_simulateV1))

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

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

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

| พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย |
| --- | --- | --- |
| `payload` | `object` | ออบเจกต์เพย์โหลดการจำลอง: blockStateCalls (จำเป็น) เป็นอาร์เรย์ของบล็อกจำลอง โดยแต่ละบล็อกมีฟิลด์ที่ไม่บังคับ ได้แก่ blockOverrides (การแทนที่ฟิลด์ส่วนหัวของบล็อก), stateOverrides (การแทนที่สถานะบัญชี) และ calls (การเรียกหรือธุรกรรมที่จะดำเนินการในบล็อกนั้น); validation (boolean, ค่าเริ่มต้น false) จะทำการตรวจสอบส่วนใหญ่เหมือน EVM ทั่วไปเมื่อเป็น true และทำงานเหมือน eth_call เมื่อเป็น false; traceTransfers (boolean, ค่าเริ่มต้น false) จะเพิ่มการโอน ETH ลงในบันทึก Log ในฐานะเหตุการณ์ Transfer ของ ERC-20; returnFullTransactions (boolean) จะส่งคืนออบเจกต์ธุรกรรมแบบเต็มเมื่อเป็น true ไม่เช่นนั้นจะส่งคืนเฉพาะแฮช |
| `block` | `QUANTITY\|TAG\|HASH` | หมายเลขบล็อก (จำนวนเลขฐานสิบหกที่มีคำนำหน้า 0x), แฮชของบล็อก หรือแท็กบล็อกที่ใช้รันการจำลอง (ไม่บังคับ); ค่าเริ่มต้นคือ 'latest' |

## ค่าส่งคืน

- **ชนิดข้อมูล**: `ARRAY`
- **คำอธิบาย**: EthSimulateResult: อาร์เรย์ของออบเจกต์บล็อกจำลอง ซึ่งแต่ละบล็อกจะมีฟิลด์ส่วนหัว เช่น number, hash, parentHash, timestamp, gasLimit, gasUsed, baseFeePerGas และ feeRecipient รวมทั้งอาร์เรย์ calls; แต่ละการเรียกจะมี status (0x1 สำเร็จ, 0x0 ล้มเหลว), returnData, gasUsed และ maxUsedGas พร้อมด้วยบันทึก Log เมื่อสำเร็จ หรือ error เมื่อล้มเหลว

## หมายเหตุ

ความพร้อมใช้งานขึ้นอยู่กับนโยบายเมธอดของเชน (methods.allow) เชนที่ไม่ได้เปิดใช้งานเมธอดนี้จะส่งคืน -32601 method not available (ไม่คิดค่าบริการ)

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

```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": "eth_simulateV1",
    "params": [
      {
        "blockStateCalls": [
          {
            "calls": [
              {
                "to": "<toAddress>",
                "data": "<callData>"
              }
            ]
          }
        ]
      },
      "latest"
    ],
    "id": 1
  }'
```

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

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