สวัสดีคร๊าบบบบ~!! ห่างหายจากการเขียน Blog ไปนาน อยากจะบอกว่า ยังเขียนอยู่นะ ถึงจะหายไปเป็นปีก็เถอะ >_<
เนื่องจากผมโดดเข้าสู่วงการ Blockchain และ Cryptocurrency มาราว 3 ปีแล้ว และ Blog นี้เป็น Blog แรกที่เขียนเกี่ยวกับ Blockchain และ Cryptocurrency ครับ

เรื่องมีอยู่ว่า เมื่อวานผมต้องการโอน ETH จำนวนหนึ่ง ซึ่งอย่างที่รู้กันว่า ค่าโอน หรือ Gas ในช่วงนี้ แพงมาก ๆ ก็เลยอยากลองดูว่า ถ้ากำหนดค่า Gas ต่ำ ๆ จะเกิดอะไรขึ้น เนื่องจากการโอนครั้งนี้ ไม่ได้รีบอะไร รอนานแค่ไหนก็ได้
เมื่อเช้าตื่นมาก็พบว่า Transaction ที่สั่งโอน ก็ยังไม่ถูกนำไปใส่ Block ซักที และในเว็บ Etherscan ขึ้นคำแนะนำเกี่ยวกับการแก้ไข/ยกเลิก Pending Transaction ก็เลยลองอ่านและทำตามดู และคิดว่าน่าจะมีประโยชน์ เลยเป็นที่มาของบทความนี้ ที่จะสรุปมาให้ได้อ่านกัน
จากรูปด้านบน Transaction (Txns) ที่สั่งโอนเมื่อวาน โดยกำหนดค่า Gas ไป 100 Gwei ผ่านไป 16 ชั่วโมงกว่า ก็ยังไม่ถูก Miner จับเข้า Block (ใช่ซี๊ ค่าโอนมันน้อย ไม่น่าสนใจนี่ T-T)
ซึ่งถ้าตรวจสอบจาก Gas Tracker จะพบว่า ช่วงนี้ค่า Gas ในเรต Average จะอยู่แถว ๆ 140-200 Gwei (จะแพงไปไหน)
Nonce
จากการหาข้อมูลเพิ่ม จึงรู้ว่า เราสามารถยกเลิกหรือแก้ไข Pending Transaction ได้ โดยสิ่งที่ต้องสนใจก็คือ Nonce ใน Pending Transaction
การยกเลิกหรือแก้ไข Pending Transaction การทำ Transaction ใหม่ ที่จ่าย Gas สูงกว่า และต้องใช้ Nonce (a number or bit string used only once) เดิม ซึ่งจากรูปด้านบน Nonce ของผมคือ 2
Ethereum จะกำหนด Nonce ในการทำ Txns ครั้งแรกเป็น 0 ครั้งต่อ ๆ ไป จะเพิ่มขึ้น 1 และ Txns ที่มี Nonce น้อยกว่า จะต้องดำเนินการให้เสร็จสิ้นก่อนเสมอ
Replacing / Canceling Pending Transaction
หลังจากที่เราทราบค่า Nonce ของ Pending Txns แล้ว ก็ถึงเวลาทำการแก้ไข/ยกเลิก Txns แล้ว
ในตัวอย่างต่อไปนี้ ผมได้ทำ Txns ผ่านฟีเจอร์ของ MyEtherWallet (MEW) นะครับ หากทำผ่านเครื่องมืออื่น ให้ลองเทียบขั้นตอนดูนะ หรือดูใน Link อ้างอิงท้ายบทความนะครับ
บน MEW ให้ไปที่เมนู Send Offline แล้วใส่รายละเอียดของการทำ Txns ใหม่ หากต้องการยกเลิก ให้ส่ง 0 ETH ไปยัง Address ตัวเอง แต่หากต้องการแก้ไข สามารถใส่จำนวน ETH และ Address ปลายทางใหม่ได้เลย
สำคัญที่สุด! ต้องระบุช่อง Nonce เป็นเลขเดียวกับ Pending Txns ที่ต้องการแก้ไข/ยกเลิก และกำหนดค่า Gas ใหม่ให้สูงกว่าเดิม แล้วกดปุ่ม Generate Transaction
เมื่อกดสร้าง Txns แล้ว MEW จะนำ Private Key ของเรา ไป Sign และแสดง Signed Transaction Dialog ขึ้นมา ให้ทำการ Copy Signed Transaction ไว้ก่อน
เลื่อนไปด้านล่างสุดของ MEW และเข้าไปที่เมนู Send Offline Helper
ในเมนู Send Offline Helper จะมี 5 Step
Step 1 Select Network จะเป็นการเลือก Network ซึ่ง Default เป็น ETH อยู่แล้ว
Step 2 Generate Information เราจะต้องเลือก Address ของเรา ตรวจสอบ Nonce ซ้ำอีกครั้ง
Step 3 Signed Transaction ให้นำ Signed Transaction ที่สร้างไว้ มาวาง เราสามารถกดดู Raw Transaction เพื่อตรวจสอบ Nonce และค่า Gas ได้อีก
Step 4 Transaction Details จะเป็น Step สุดท้ายก่อนทำการส่งคำสั่งจริง ให้ทำการตรวจสอบรายละเอียดซ้ำอีกครั้ง โดยเฉพาะค่า Nonce
เมื่อถูกต้องแล้ว กดปุ่ม Send ได้เลย Txns เราจะถูกส่งไปรอให้ Miner ขุดแล้ว
Step 5 Transaction Status ใน Step นี้ จะแสดง Transaction Hash ให้เราตรวจสอบ สามารถกด Link เพื่อตรวจสอบได้เลย แต่ในส่วนของ Transaction Receipt ยังไม่ขึ้น ตรงนี้อย่าเพิ่งตกใจ รอ Miner เค้าขุดก่อนนะ
ใน Transaction ใหม่ เมื่อตรวจสอบที่ Etherscan จะพบ Status ว่า Duplicate Nonce และที่ Nonce ก็จะเป็นค่าเดิมของ Pending Transaction ที่เราต้องการแก้ไขหรือยกเลิก
ผ่านไป 6 นาทีกว่า ๆ Miner ก็หยิบไปขุดแล้ว เย่~!!
ในส่วนของ Nonce แสดงค่าเดิม และมีข้อความในวงเล็บ แจ้งให้ทราบว่า Txns เดิมได้ถูกยกเลิกแล้ววววว
และเมื่อตามไปดู Txns เดิม จะเห็น Status เป็น Dropped & Replaced แล้ว และ Gas Used ไม่มี (ไม่เสียค่า Gas ฟรี ๆ นั่นเอง) ^q^
และถ้ากลับไปดูที่ Step 5 ของ Send Offline Helper ใน MEW จะเห็นข้อมูลในส่วนของ Transaction Receipt
สรุป
การแก้ไข/ยกเลิก Pending Transaction ก็คือการทำ Transaction ใหม่ โดยใช้ Nonce เดิม ด้วยค่า Gas ที่สูงขึ้น นั่นเอง
หวังว่าบทความนี้จะมีประโยชน์กับชาว ETH (หรือ ERC-20 Token บน ETH) นะครับ
และสำหรับผู้อ่าน ที่ชอบบทความนี้ และอยากสนับสนุนค่า Gas ให้กับผม สามารถโอน Crypto มาได้ทาง Binance Pay ด้านล่าง (ดูวิธีใช้งาน)
แล้วพบกันใหม่บทความหน้า ในปีถัดไป (หยอก ๆๆๆ)
Permalink
สวัสดีครับ
รบกวนสอบถามครับถ้าเกิดว่าสถานะหน้า etherscan ขึ้นว่า dropped สีแดง มี Note: This Pending TxnHash was seen previously, but was dropped from our connected node Pending TxnPool.
แบบนี้แปลว่ารายการถูกยกเลิกให้อัตโนมัติรึเปล่าครับ แบบนี้สามารถทำรายการใหม่ได้เป็นปกติเลยรึเปล่า หรือว่าต้องทำวิธีการตามข้างบนครับผม
ขอบคุณมากครับ
Permalink
ขอ Link transaction นั้นมาตรวจสอบหน่อยครับ
Permalink
เจอปัญหานี้เหมือนกันครับ ไม่ททร่บต้องแก้ยังไงดีครับ https://etherscan.io/tx/0xc6d2fc565e4244495644e8e796fea7e5986af3a99fb4df44f1f8a73b6eb72488
Permalink
สอบถามครับ เงินหายตอนทำ ธุรกรรมแก้อย่างไรครับ
Permalink
สวัสดีค่ะ ตอนนี้ยังสามารถทำวิธีนี้ได้ไหมค่ะ
กำลังเจอปัญหานี้เลยค่ะ