ข้ามไปยังเนื้อหา
มุมมองระดับโลกต่อสินทรัพย์ดิจิทัลมุมมองระดับโลก · บริบทในพื้นที่
ChainView BTC866CHAIN VIEW
เรียนรู้

ธุรกรรมล้มเหลวต้องแยกสถานะ gas และ revert

ล้มก่อนส่งออก ค้างบนเครือข่าย และรวมในบล็อกแต่ทำงานไม่สำเร็จเป็นคนละสถานะ ข้อความแอปอาจไม่บอกว่าถึงขั้นไหน ต้องเริ่มจากเครือข่ายและ hash เพื่อไม่ตีความปัญหาหน้าจอเป็นการสูญสินทรัพย์

อ่านในภาษาไทย简体中文繁體中文English한국어РусскийالعربيةEspañol (México)Tiếng Việt
ธุรกรรมล้มเหลวต้องแยกสถานะ gas และ revert

ภาพประกอบต้นฉบับตามหัวข้อ: แผนภาพต้นฉบับตามหัวข้อโดย ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0

สามสถานะต่างกัน

ล้มก่อนส่งออก ค้างบนเครือข่าย และรวมในบล็อกแต่ทำงานไม่สำเร็จเป็นคนละสถานะ ข้อความแอปอาจไม่บอกว่าถึงขั้นไหน ต้องเริ่มจากเครือข่ายและ hash เพื่อไม่ตีความปัญหาหน้าจอเป็นการสูญสินทรัพย์

Revert กับค่า gas

Revert ที่ถูกนำเข้าบล็อกอาจใช้ gas แม้ย้อนการเปลี่ยนสถานะของการทำงานนั้น หลักขึ้นกับเครือข่ายและชนิดรายการ จึงไม่ควรถือว่าเสียค่าธรรมเนียมแปลว่าโทเคนถูกส่ง หรือไม่เปลี่ยนยอดแปลว่าไม่เสียค่าอะไร

อ่านใบรับและพารามิเตอร์

ดู receipt status gas ที่ใช้ สัญญาและพารามิเตอร์ ถ้ามีข้อความผิดพลาดถอดรหัสให้เทียบเอกสารทางการ การจำลองก่อนหน้าอาจใช้สถานะต่างจากตอนจริง จึงไม่รับรองว่าการดำเนินงานจะผ่านเสมอ

จำลองคนละเวลา

เช่นยอดหรือเงื่อนไขสัญญาเปลี่ยนหลังจำลองอาจทำให้ไม่ผ่าน เพิ่ม gas สุ่มไม่แก้สิทธิที่ขาดหรือข้อมูลผิด และการอนุมัติก่อนหน้าสำเร็จไม่ได้หมายความว่าขั้นโอนถัดไปสำเร็จ ต้องเก็บ hash แยกแต่ละขั้น

แก้สาเหตุที่ยืนยัน

แก้ทีละสาเหตุที่ยืนยัน ถ้าแอปหมดเวลารอให้ตรวจใบรับก่อนส่งมูลค่าใหม่ อย่าวางความลับในเครื่องมือ debug ภายนอกเพื่ออ่านข้อผิดพลาด ใช้ ABI จากแหล่งทางการและหลีกเลี่ยงลองคำขอแพงซ้ำโดยไม่มีสมมติฐานตรวจสอบ

แยกขั้นตอนวินิจฉัย

เริ่มจากเครือข่ายและ hash แล้วแยกสถานะแอปจาก receipt สาธารณะ Explorer อาจแปลคำสั่งภายในหรือสัญญาใหม่ต่างกัน หากถอดรหัสไม่ได้ใช้ ABI ที่มาจากแหล่งจริง ไม่ใส่คำลับในเครื่องมือคนอื่น Gas limit เป็นเพดาน ต่างจาก gas ใช้จริงและราคาต่อหน่วย การแยกสามค่าช่วยอ่านค่าใช้จ่าย ไม่มองทุกข้อผิดพลาดเป็นเครือข่ายหยุด ถ้ากระบวนการมีอนุมัติแล้วค่อยทำงานให้ตรวจทั้งสอง hash ไม่ใช้ผลสำเร็จของขั้นแรกแทนขั้นสอง การลองรายการแพงหลายครั้งโดยไม่รู้สาเหตุเพิ่มค่าใช้จ่ายไม่เพิ่มความเข้าใจเสมอ

แหล่งข้อมูล

  1. Ethereum transactions (เปิดในแท็บใหม่)
  2. Solidity revert (เปิดในแท็บใหม่)