# การถอดรหัสการสว็อป SCW

ด้วยกระเป๋าเงินสมาร์ทคอนแทรค (SCWs) การ swap จะเดินทางไปในเส้นทางที่ต่างจากกระเป๋าเงินแบบดั้งเดิมของ Ethereum/EVM ความแตกต่างนี้อาจทำให้สับสน โดยเฉพาะเมื่อเกิดข้อผิดพลาด แต่เมื่อคุณเข้าใจผู้มีบทบาทหลักในลำดับขั้นตอน — และวิธีอ่านสิ่งที่เกิดขึ้นทีละขั้นในแอปและบน explorers — ทุกอย่างจะเริ่มสมเหตุสมผล

เรามาเดินผ่านมันด้วยกัน

***

#### จากการแตะครั้งเดียวถึงการดำเนินการบนเชน: สิ่งที่เกิดขึ้นจริง

เมื่อคุณแตะ “Swap” ในแอป มันดูเหมือนเป็นการกระทำเดียว แต่ในความเป็นจริง คุณกำลังเริ่มกระบวนการหลายชั้นที่สร้างบนบัญชี abstraction ของ Ethereum (ERC-4337) ธุรกรรมของคุณจะไม่ส่งตรงไปยังบล็อกเชนเหมือนกับกระเป๋าธรรมดา แทนที่จะเป็นเช่นนั้น มันจะเลี้ยวไปทางอื่น:

1. เราสร้างเส้นทาง เราขอให้เครื่องยนต์กำหนดเส้นทาง (เช่น 1inch) หาเส้นทางที่ดีที่สุดสำหรับการ swap ของคุณ และจำลองมันเพื่อให้แน่ใจว่าจะทำงานได้ เราประมาณค่าแก๊ส ตรวจสอบว่าคุณมีโทเค็น และจัดแพ็กคำสั่งเป็นรูปแบบพิเศษ: `UserOperation`.
2. A `bundler` เข้ามามีบทบาท นี่คือผู้กระทำภายนอกเชนที่รับผิดชอบในการส่ง UserOperations ไปยังบล็อกเชน มันตรวจสอบ op ของคุณ ให้แน่ใจว่าสมบูรณ์ และชำระค่าแก๊สล่วงหน้าให้คุณ (มันจะได้รับการชดเชยภายหลัง)
3. UserOp ของคุณเข้าสู่บล็อกเชนผ่าน `EntryPoint` สมาร์ทคอนแทรค คิดว่า EntryPoint เป็นประตูเดียวที่ธุรกรรม SCW ทั้งหมดต้องผ่าน EntryPoint รันการตรวจสอบสุดท้าย และถ้าทุกอย่างดูโอเค…
4. EntryPoint บอกให้ Smart Contract Wallet (SCW) ของคุณดำเนินการ swap SCW ของคุณเรียก router (เช่น 1inch) router เรียกพูล โทเค็นเคลื่อนที่ และผลลัพธ์ถูกส่งกลับเข้าสู่กระเป๋าของคุณ

สรุปคือ: คุณแตะ swap → เราจำลอง → bundler ส่ง → EntryPoint ยืนยัน → SCW ของคุณดำเนินการ

***

#### มาดูตัวอย่างจริงกัน

ตอนนี้เราเข้าใจกระบวนการระดับสูงแล้ว มาดูว่าเหตุการณ์นี้เกิดขึ้นจริงในการ swap อย่างไร: แรกในแอป แล้วบนเชน:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FU1GSRk2DpRQfQX1RZwSK%2Fimage.png?alt=media&#x26;token=a86ea5fd-705e-43ce-b5a2-c30f8cfcc5ec" alt=""><figcaption></figcaption></figure>

นี่คือสิ่งที่เราเห็น:

* เราสว็อป 1 USDC เป็น 0.765 KTA
* การ swap ถูกดำเนินการบน Base (สังเกตไอคอน Base บนสัญลักษณ์เหรียญ)
* เราจ่าย:
  * $0.03 ค่าแก๊ส (เป็น ETH)
  * ค่าธรรมเนียม swap 0.22% ให้ goodcryptoX
  * ค่าธรรมเนียม router 0.05% ให้ 1inch
* เส้นทางเรียบง่าย: 100% ผ่านพูล Uniswap v4
* Bundler: Alchemy (ดูขั้นตอนที่ 2 ข้างต้นเพื่อทบทวน)
* ลิงก์ของ explorer จะปรากฏหากธุรกรรมเข้าถึงบล็อกเชนและถูกบันทึกในบล็อก (แม้จะล้มเหลวก็ตาม)

จนถึงตอนนี้ ทุกอย่างดี ต่อไป ให้คลิกลิงก์ BaseScan เพื่อดูว่าธุรกรรมนี้หน้าตาอย่างไรบนเชน:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FzZOTevTgzK4edwRl4iCw%2Fimage.png?alt=media&#x26;token=16995823-34da-4628-b17f-6fe314fbaa1f" alt=""><figcaption></figcaption></figure>

**จาก:** นี่ไม่ใช่กระเป๋าของคุณ — นั่นคือ bundler ของ Alchemy ซึ่งเป็นเรื่องปกติ เนื่องจาก bundler เป็นผู้ส่งธุรกรรม

**ถึง:** EntryPoint (v0.6.0). อีกครั้ง เป็นเรื่องที่คาดหวัง — ธุรกรรม SCW ทั้งหมดผ่านที่นี่

**Internal Transactions:** แสดงการไหลของโทเค็นเนทีฟ (ETH บน Base) ภายในธุรกรรม นี่คือสิ่งที่เราเห็น:

* กระเป๋าของเรา (…0A5) ส่ง ETH ไปยัง EntryPoint สำหรับค่าแก๊ส
* EntryPoint ชดเชยค่าแก๊สให้ bundler ด้วยค่าแก๊สจริง (เนื่องจาก bundler ชำระค่าแก๊สล่วงหน้าให้คุณ; ดูขั้นตอนที่ 2 ข้างต้น) ETH ส่วนที่เหลือคงอยู่ใน EntryPoint เป็นเงินฝากของคุณสำหรับธุรกรรมในอนาคต

**ERC-20 Transfers:** แสดงการเคลื่อนย้ายโทเค็นจริง:

กระเป๋าของเราไม่ได้ส่ง USDC โดยตรง แทนที่นั้น สัญญาโทเค็น USDC (…2A8) ประมวลผลและกระจายการโอน นี่เป็นเรื่องปกติ: บนเชน EVM การโอนโทเค็นถูกจัดการโดยสัญญาโทเค็นเองหลังจากได้รับคำสั่งจาก smart contract wallet ของคุณ

1. สัญญา USDC แบ่ง 1 USDC ของเราเป็นสามการโอน:
   * 0.0022 USDC ไปยังกระเป๋าค่าธรรมเนียมของโปรโตคอลของเรา (…608A)
   * 0.0005 USDC ไปยังกระเป๋าค่าธรรมเนียมของ 1inch (…1DE5)
   * ที่เหลือ 0.9973 USDC ไปยัง Uniswap v4 router (…Universal Router)
2. Uniswap v4 router ส่งให้ Pool Manager ของ Uniswap v4 (สัญญาเดี่ยวที่จัดการพูล v4 ทั้งหมด)
3. Pool Manager ดำเนินการ swap: USDC เข้า → KTA ออก
4. KTA ถูกส่งกลับผ่าน Aggregation Router ของ 1inch ซึ่งส่งต่อไปยังกระเป๋าของเรา (…0A5)

***

### 🧩 วิธีถอดรหัสธุรกรรม SCW ที่ล้มเหลว

ตอนนี้เราเข้าใจการทำงานของการ swap ด้วย smart-contract-wallet (SCW) — และเราได้เดินผ่านการเทรดที่ประสบความสำเร็จ — ให้เราใช้เครื่องมือเดียวกันเพื่อถอดรหัสการเทรดที่ล้มเหลว

เราจะใช้กรณีจริงอีกกรณี: การ swap จาก ETH → โทเค็นบน Ethereum ที่ล้มเหลวภายในสัญญา EntryPoint เพราะไม่มี ETH เพียงพอที่จะครอบคลุมทั้งการ swap และค่าแก๊ส

โอเค ดังนั้นคุณเห็น "Error" เป็นสถานะการ swap ในแอปหรือได้รับการแจ้งเตือนว่าการ swap ของคุณล้มเหลว คุณควรทำอย่างไร?

***

#### ขั้นตอนที่ 1 — ตรวจสอบรายละเอียดคำสั่งใน goodcryptoX

นี่คือสิ่งที่คุณเห็นในกรณีนี้:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FwrYogeeljYqmlMsWsucl%2Fimage.png?alt=media&#x26;token=a5b58912-2a41-4e26-91ad-e5f53da6d335" alt=""><figcaption></figcaption></figure>

โดยใช้กรอบงานที่เราพัฒนาขึ้นก่อนหน้านี้ คุณจะสังเกตได้อย่างรวดเร็วว่า:

* สถานะการ swap คือ `Error` *(ล้มเหลว?)*  &#x20;
* ไม่มีข้อความแสดงข้อผิดพลาดปรากฏ *(นั่นผิดปกติ)*
* มีค่าแก๊ส *(เข้าถึงบล็อกเชนแล้ว?)*
* มีเส้นทางแสดง *(การจำลองผ่านใช่ไหม?)*
* มีลิงก์ไปยัง explorers ของบล็อกเชน *(ฉันสามารถตรวจสอบ tx บนบล็อกเชนได้!).*

มาลองตรวจสอบสัญชาตญาณของคุณ:

* โทเค็น `Error` สถานะ หมายความว่าการ swap ล้มเหลว
* ควรมีทั้งข้อความข้อผิดพลาดที่อ่านได้สำหรับมนุษย์ (แปลจาก raw) และข้อความ raw หากไม่มีข้อความข้อผิดพลาด นั่นหมายความว่าเกิดสิ่งผิดปกติแน่นอน
* ค่าแก๊สหมายความว่าธุรกรรมเข้าถึงบล็อกเชนและมีกิจกรรมบนเชนบางอย่างเกิดขึ้น (ซึ่งใช้แก๊ส)
* เส้นทางยืนยันว่าการจำลองผ่านและให้เส้นทางที่ชัดเจนไปสู่การดำเนินการ
* ลิงก์ explorer ยืนยันว่าธุรกรรมเข้าถึงบล็อกเชน — แม้ว่าจะล้มเหลวก็ตาม เราควรเปิดหนึ่งในนั้นและสืบสวนเพิ่มเติม

***

**ขั้นตอนที่ 2 – เปิดธุรกรรมใน blockchain explorer**

คุณแตะลิงก์ Etherscan เพื่อดูว่าเกิดอะไรขึ้น:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FAQ6NDCTqMrDc6JkAvTVw%2Fimage.png?alt=media&#x26;token=4da84760-6804-4583-8224-2b0dea1a5cea" alt=""><figcaption></figcaption></figure>

เมื่อมองแวบแรก สิ่งต่าง ๆ ยิ่งทำให้สับสนมากขึ้น:

* สถานะบอกว่า ✅ Success *— เดี๋ยวนะ อะไรนะ?!*
* แต่เรารู้แล้วว่า swap **ไม่ได้สำเร็จ**
* ภายใต้ช่อง “To” (EntryPoint) มีข้อความสีเหลืองเล็ก ๆ:

  > *“<mark style="color:$warning;">Although one or more errors occurred \[execution reverted] Contract Execution Completed</mark>”*

แล้วสิ่งที่เกิดขึ้นจริงคืออะไร?

จำลำดับธุรกรรม SCW ที่เราอธิบายก่อนหน้านี้ได้ไหม:

* bundler ห่อการ swap ของคุณเป็น `UserOperation` (แพ็กเกจข้อมูลที่มีตรรกะการ swap ของคุณ)
* แล้วส่งไปยังสัญญา EntryPoint
* EntryPoint ตรวจสอบมัน (เช็คยอดคงเหลือ ลายเซ็น และ nonce ของคุณ)
* ถ้าทุกอย่างถูกต้อง มันจะดำเนินตามเจตนาของคุณ — เรียก routers, pools และย้ายโทเค็น

จากมุมมองของบล็อกเชน ทั้งหมดนี้ดูเหมือนแค่ “bundler ส่งข้อมูลไปยัง EntryPoint”&#x20;

ในศัพท์ของ SCW ขั้นตอนนี้เรียกว่า `outer` transaction.

และธุรกรรมนั้นประสบความสำเร็จ: ข้อมูลถูกส่งมอบ และ EntryPoint เริ่มรันตรรกะภายในของมัน ดังนั้นจึงมี ✅ Success ที่ด้านบน

***

แต่ explorer ด้วยมารยาท ก็ยังบอกคุณว่ายังมีบางอย่างล้มเหลว *ภายใน* EntryPoint ด้วยบันทึกสีเหลืองเล็ก ๆ นั้น สำหรับ explorer ความล้มเหลวภายในนั้นยังไม่เพียงพอที่จะทำให้ธุรกรรมถูกทำเครื่องหมายว่าล้มเหลว

ตอนนี้ รายละเอียดอีกอย่างโผล่ออกมาบนแท็บ Overview:

* ประมาณ **$6** มูลค่า ETH ถูกส่งจากกระเป๋าของคุณไปยัง EntryPoint (ค่าแก๊สที่ชำระล่วงหน้า)
* มีเพียง **$2.3** มูลค่า ETH ถูกชดเชยกลับไปยัง bundler
* และค่าธรรมเนียมธุรกรรมที่แสดงด้านบนยังต่ำกว่าอีก — ประมาณ **$2.15**.

เมื่อตาดูแวบแรก ตัวเลขเหล่านี้ดูเหมือนไม่ลงตัว เรามาแยกส่วนเรื่องนี้ก่อนจะสืบสวนต่อ

***

**ขั้นตอนที่ 3 – ทำความเข้าใจความแตกต่างของค่าแก๊ส**

นี่คือการแยกย่อย:

* **SCW → EntryPoint** (\~$6): นี่คือการชำระค่าแก๊สล่วงหน้า EntryPoint มักเก็บมากกว่าที่ต้องการเพื่อให้แน่ใจว่า UserOp ของคุณสามารถรันได้
* **EntryPoint → Bundler** (\~$2.3): นี่คือการชดเชยค่าแก๊สจริง เป็น **จำนวนจริงที่คุณจ่าย** สำหรับความพยายามที่ล้มเหลวนี้
* **Transaction Fee** (\~$2.15): นี่คือสิ่งที่ bundler ใช้จ่ายเพื่อส่ง UserOp ของคุณไปยัง EntryPoint มันต่ำกว่าเพราะ EntryPoint เองใช้แก๊สเพิ่มเติมในขณะที่ตรวจสอบและชดเชย bundler — ค่าใช้จ่ายเพิ่มเติมนั้นถูกเรียกเก็บกับคุณ

กฎโดยสรุป:

> 👉 ต้นทุนค่าแก๊สที่แท้จริงของคุณคือการชดเชย EntryPoint ➜ Bundler เสมอ (ไม่ใช่ “Transaction Fee” ที่แสดงด้านบน)

และความแตกต่างระหว่างสิ่งที่คุณชำระล่วงหน้า ($6) กับสิ่งที่ถูกชดเชย ($2.3) ไม่ได้หายไป มันคงอยู่ใน EntryPoint เป็นเงินฝากของคุณ ซึ่งจะถูกนำไปใช้โดยอัตโนมัติในธุรกรรมถัดไปของคุณ

***

**ขั้นตอนที่ 4 – ตรวจสอบแท็บ AA Transactions**

บน explorer คุณจะเห็นแท็บ **AA Transactions** (AA = Account Abstraction) นี่คือที่กิจกรรมของ smart contract wallet อยู่ เพราะ SCW รันบน Account Abstraction (ERC-4337)

ให้เปลี่ยนไปยังแท็บนั้นจาก Overview:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FLq4ENlLCtkNHsoErHzEO%2Fimage.png?alt=media&#x26;token=8a448a6d-9bed-43e1-a297-0d3f62e7d095" alt=""><figcaption></figcaption></figure>

ที่นี่คุณจะเห็น UserOperation ของเราแสดงเป็นรายการแยกต่างหากภายในธุรกรรม outer ของ bundler:

* ช่อง "From" ตอนนี้แสดง *ที่อยู่กระเป๋าของเรา*, ยืนยันว่านี่คือ operation ของเรา
* มี AA Txn Hash แยกต่างหาก ซึ่งแตกต่างจาก outer transaction hash ทำไม?
  * Outer Txn Hash เป็นของธุรกรรม Bundler->EntryPoint ที่บรรจุ UserOp ของคุณ (และอาจรวม UserOps หลายรายการจากผู้ใช้ต่าง ๆ)
  * AA Txn Hash เป็นตัวระบุเฉพาะสำหรับ *ของคุณ* UserOperation ภายใน bundle นั้น

นี่คือแนวคิดสำคัญของการ bundling:

* Bundler สามารถจัดแพ็ก UserOps จำนวนมากรวมกันเป็นหนึ่งธุรกรรม
* แต่ละ UserOp จะมี AA Txn Hash ของตัวเอง ดังนั้นจึงสามารถติดตามแยกภายใน bundle ได้
* ในกรณีของเรา เพราะนี่เป็นธุรกรรมเก่ากว่า (กว่า 400 วันที่ผ่านมา) SCW ยังหายากและ bundle ประกอบด้วยแค่ UserOp ของเรา — นั่นคือเหตุผลที่แท็บแสดง “AA Transactions (1)” ในธุรกรรมใหม่ ๆ คุณมักจะเห็น UserOps หลายรายการถูกรวมกันใน bundle เดียว

ในมุมมองนี้ คุณจะสังเกตด้วยว่า มี <mark style="color:ไอคอนสีแดง;">(!)</mark> ถัดไปกับ AA Txn Hash ของคุณ — การยืนยันว่าการ swap ของคุณไม่ได้ดำเนินการ

ขั้นตอนต่อไปคือคลิก AA Txn Hash นั้น ซึ่งจะเปิดหน้าที่อุทิศให้กับ UserOperation ที่คุณจะเห็นรายละเอียดเต็มของการพยายาม swap ของเรา — ค่าธรรมเนียม การโอน และจุดที่เกิดความล้มเหลว

***

#### ขั้นตอนที่ 5 – เปิดหน้ารายละเอียด AA Transaction

การคลิก AA Txn Hash จะพาคุณไปยังหน้ารายละเอียดที่อุทิศให้กับ UserOperation ของคุณ:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F2huUaBF185U2YMTYKRzI%2Fimage.png?alt=media&#x26;token=867651bc-cda8-411e-88f6-f19cb71003fe" alt=""><figcaption></figcaption></figure>

ที่นี่คุณจะเห็นการพยายาม swap ของเราแสดงอย่างชัดเจน:

* สถานะ:  <mark style="color:ไอคอนสีแดง;">x Fail</mark> (ครั้งนี้ไม่มีความกำกวม)
* From: ที่อยู่ smart contract wallet ของคุณ
* AA Transaction Fee: \~0.00231 ETH ($2.31). นี่คือต้นทุนแก๊สจริงที่คุณจ่าย — การชดเชยที่ส่งไปยัง bundler
* Internal transaction: การโอนหนึ่งรายการ \~0.00145 ETH ($6.36) จาก SCW ของคุณไปยัง EntryPoint (การชำระค่าแก๊สล่วงหน้า) ไม่มีการโอนอื่นเกิดขึ้น ซึ่งยืนยันว่าการ swap เองไม่ได้ดำเนินการ
* Bundle Txn Hash: แสดงด้วย ลิงก์กลับไปยังธุรกรรม outer ของ bundler

หน้านี้ในที่สุดตรงกับสัญชาตญาณของคุณ: นี่คือธุรกรรมจริง — UserOperation ที่เป็นตัวแทนการพยายาม swap ของคุณ

นี่เกือบจะสรุปการสืบสวนของเราแล้ว แต่เนื่องจากเรามาถึงจุดนี้แล้ว ให้เราคลิกที่ **Internal Txns**.

***

#### ขั้นตอนที่ 6 – ตรวจสอบแท็บ Internal Transactions

สลับไปยังแท็บ Internal Txns ภายในมุมมอง AA Transaction:

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FCcF9ImaaPnfejqHUaJjE%2Fimage.png?alt=media&#x26;token=35999475-ef65-4c23-bde0-799f89faedad" alt=""><figcaption></figcaption></figure>

ที่นี่คุณจะเห็นการกระทำทีละขั้นตอนที่ EntryPoint พยายามทำในนามของคุณ:

1. ✅ โอนจาก SCW ของคุณ → EntryPoint (\~0.00145 ETH, \~$6.36) = การชำระค่าแก๊สล่วงหน้า สำเร็จแล้ว
2. ❌ Execute จาก SCW ของคุณ → Uniswap Universal Router (\~0.002 ETH) = การพยายาม swap ล้มเหลว

การแยกย่อยนี้อธิบายความล้มเหลว:

* คุณส่ง ETH ไปยัง EntryPoint เป็นการชำระค่าแก๊สล่วงหน้าเรียบร้อยแล้ว
* แต่เมื่อ EntryPoint พยายามส่งต่อ ETH ไปยัง Uniswap เพื่อทำการ swap ความพยายามนั้นล้มเหลว

สำหรับการแยกย่อยที่ละเอียดที่สุด ให้เปิดแท็บ Logs

***

#### ขั้นตอนที่ 7 – ตรวจสอบแท็บ Logs

คลิกที่ Logs (3):

<figure><img src="https://1416017980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F3ltsX1it8b1PqwjZFZkk%2Fimage.png?alt=media&#x26;token=e70b7c8b-dcbb-4aa5-aa39-3a9a3e588908" alt=""><figcaption></figcaption></figure>

ที่นี่คุณจะพบเหตุการณ์สำคัญสามรายการ:

* **Deposited** → ยืนยันว่าการชำระค่าแก๊สล่วงหน้าของคุณถูก EntryPoint รับไว้แล้ว
* **BeforeExecution** → แสดงว่า EntryPoint เริ่มประมวลผล UserOperation ของคุณ
* **UserOperationEvent** → `success: False` — บันทึก canonical บนเชนว่าการ UserOp ของคุณล้มเหลว

***

**สิ่งที่เกิดขึ้นจริง (สรุปทั้งหมดเข้าด้วยกัน)**

ความล้มเหลวประเภทนี้เฉพาะกับการ swap ด้วย SCWs บน EVM เมื่ออินพุตเป็นโทเค็นเนทีฟ (ETH, BNB, MATIC… )

* ช่องว่าง: ทั้ง bundler และ EntryPoint ไม่ได้ตรวจสอบว่าคุณมี **โทเค็นเนทีฟ** เพียงพอที่จะครอบคลุมทั้งการชำระล่วงหน้าแก๊สและการ swap พร้อมกัน พวกมันตรวจสอบแยกกันเท่านั้น — “พอสำหรับแก๊สไหม?” และ “พอสำหรับการ swap ไหม?” นั่นคือเหตุผลที่การจำลองผ่าน
* เราได้สร้างกลไกป้องกันในแอปสำหรับกรณีเหล่านี้ เตือนคุณในอินเทอร์เฟซว่าค่าแก๊สอาจไม่เพียงพอ แต่เนื่องจากการจำลองดูเหมือนโอเค คุณยังสามารถคลิกผ่านได้
* เมื่อคุณยืนยัน bundler ก็ส่ง UserOperation ของคุณไปยัง EntryPoint
* EntryPoint ดึง ETH มูลค่าประมาณ $6 เป็นการชำระล่วงหน้า
* เมื่อมันพยายามดำเนินการ swap ไม่มี ETH เหลือเพียงพอที่จะครอบคลุมทั้งการ swap *และ* และการชำระล่วงหน้าในเวลาเดียวกัน
* การเรียก swap ถูก revert ภายใน EntryPoint
* คุณยังจ่ายประมาณ $2.3 เป็นค่าแก๊ส (การชดเชยให้ bundler)
* ประมาณ $3.7 ที่ไม่ได้ใช้คงอยู่ใน EntryPoint เป็นเงินฝากของคุณ เพื่อใช้โดยอัตโนมัติในธุรกรรมถัดไปของคุณ
