โอนส่งเหรียญ Ethereum

1.เมื่อเราใส่ Password เพื่อที่จะล็อกอินเข้ามาใน Metamask แล้ว จะพบกับหน้านี้ โดยใน Address นี้จะมีเงินอยู่ 0.0511 ETH ในขั้นตอนนี้เราจะมาสอนการส่งเหรียญ ETH กัน กดไปที่ปุ่ม SEND เลย
2.ในหน้าส่งเหรียญนี้ ในช่อง To : เราก็ทำการเอา Address ปลายทางมาใส่  , ช่อง Amount : ก็ให้ใส่จำนวนเงินที่เราต้องการส่ง โดยสามารถกด Max ได้แต่มันก็จะถูกหักค่า Gas ตอนส่งด้วยนะ  , Transaction Fees ในขั้นนี้ Metamask จะมีให้เราเลือกโหมด 3 โหมดในการส่งโดย Metamask จะคำนวณค่า Gas ในขณะนั้นๆมาให้เราแล้ว  แอดแนะนำว่าให้ส่งแบบ Average (ปานกลาง) ก็เพียงพอแล้ว  แต่ถ้าใครอยากรูดปรี๊ดไปไวๆแซงทุกคนก็เลือก Fast   อยากรถหวานเย็นถึงเมื่อไรก็ได้ก็เลือก Slow  จะอธิบายเรื่องโหมดนี้ในข้อถัดไป Advance Option นะ
3.หน้านี้จะเป็น Advance Options สำหรับคนที่อยากตั้งค่าเอง  โดยจะแบ่งเป็น 2 ส่วนหลัก คือ 1. Gas Price (Gwei) เป็นราคา Gas ที่จะเสีย อย่างตอนนี้ถ้าส่งแบบ Average ก็จะประมาณ 10 Gwei ตามภาพ แต่ถ้าเราอยากส่งเร็วๆอาจใส่ 50 Gwei แทน   2.Gas Limit คือ ปริมาณ Gas ที่จะใช้ในการส่งในครั้งนี้ โดยปกติถ้าเราส่ง ETH ไปหากันจะใช้แค่ 21000 ในการทำธุรกรรมก็เพียงพอแล้ว แต่ถ้าเป็นการส่งเหรียญ ERC-20 หรือทำธุรกรรมอื่นๆที่อาจมี Smart Contract แฝงอาจต้องใช้ปริมาณ Gas มากกว่านี้ หรือถ้าเราขี้เหนียวไปใส่ Gas Price แค่ 1 บางทีปริมาณ Gas 21000 ก็อาจไม่เพียงพอ  Gas อาจจะหมดระหว่างทางได้กลายเป็นธุรกรรมไม่สำเร็จในการลง Block

*เรื่อง Gas Price และ Gas Limit ของ ETH นี้ จะขอยกตัวอย่างเหมือนรถยนต์ โดย Gas Price คือ ราคาน้ำมันยิ่งเราใส่แพงรถก็จะวิ่งไว  ส่วน Gas Limit คือปริมาณน้ำมันที่รถเรามีสามารถใส่ได้ไม่จำกัดตราบเท่าที่ ETH เรามีเราสามารถใส่เท่าไรก็ได้ โดยที่ธุรกรรมนั้นๆใช้ไปเท่าไรส่วนเกินมันก็จะคืนกลับมาหาเราเหมือนเดิม เช่น ค่าตั้งต้นตามภาพใส่ไว้ 21000 เราอาจเปลี่ยนเป็น 200000 ก็ยังได้   โดยสูตรคำนวณค่าส่ง คือ  (Gas Price คูณ Gas Limit) หาร 10 กำลัง 9  เช่น Gas Price 10  Gas Limit 21000 ก็จะเป็นค่าส่งสูงสุด (10*21000)/10 กำลัง 9 = 0.00021 ETH   แต่ถ้าเราใส่ Gas Price 10  Gas Limit 200000 ก็จะเป็นค่าส่งสูงสุด (10*200000)/10 กำลัง 9 = 0.002 ETH แต่สุดท้ายแล้วมันก็จะถูกใช้ไป 0.00021 ETH อยู่ดี ไม่ได้ถูกใช้ไป 0.002 ETH ตามการคำนวณสูงสุด    สรุปคือ ถ้าเราขี้เหนียวใส่ราคา Gas Price น้อยรถมันก็วิ่งช้าต้องไปวนรถรอไปเรื่อยๆจนกว่ารถจะว่าง  คนจ่ายแพงกว่าก็ได้เข้าบล็อคก่อน  วิ่งไปนานๆบางที Gas Limit น้ำมันที่เรามีก็อาจไม่พอหมดก่อน  จากที่แอดเคยทดลอง Gas Price 1 , Gas Limit 21000 นี้กว่าจะวิ่งหมดเกือบๆ 3 ชั่วโมงนะ  พูดมาเยิ่นยาวใครอ่านไม่เข้าใจ  ก็ใช้การส่งแบบ Average เลยครับ ไม่ต้องคิดมาก*

4.หน้านี้จะเป็นการคอนเฟิร์มว่าเราจะส่งไปที่คนๆนี้แล้วนะ โดยจะส่งเหรียญเป็นจำนวน 0.01 ETH และค่าส่งสูงสุดที่เป็นไปได้คือ 0.00021 ETH รวมเป็นเงินที่เสียสูงสุดคือ 0.01021 ETH ถ้ามั่นใจแล้วก็กด Confirm เพื่อส่งได้เลย (คำแนะนำก่อนจะส่งทุกครั้ง ควรจำ 4 หลักสุดท้ายของ Address ที่เราจะส่งว่าตรงกันไหม เผื่อเครื่องเราโดนไวรัสทำให้เปลี่ยน Address ที่จะส่งเป็นของ Hacker ควรจะคอยมองทุกครั้งที่ทำการส่งว่าตรงกัน)
5.เมื่อเรากดส่งแล้วสถานะการส่งของเราจะเริ่มต้นที่ Pending ก็ให้รอซักพักเพื่อให้ธุรกรรมการส่งของเรานี้เข้าไปอยู่ในบล็อค และ Chain หลักของ ETH
6.สามารถกดที่ธุรกรรมนั้นเพื่อดูรายละเอียดธุรกรรมนี้ได้  หรือกดที่ไอคอนลูกศรชี้ขวาบนเพื่อไปดูที่เวป Etherscan เพื่อดูว่าธุรกรรมนี้ของเราส่งไปเรียบร้อยแน่นะ มีบล็อคลงแล้วหรือยัง
7.พอกดมาดูถ้าเผอิญธุรกรรมเราส่งสำเร็จพอดีก็จะเป็นดังภาพ คือขึ้นคำว่า Success แสดงว่าส่งสำเร็จ ในหน้านี้จะบอกอะไรบ้าง คือ Transaction Hash หรือจะเรียกว่า Txid ก็ได้เป็นเหมือนหมายเลขใบสัญญาของธุรกรรมนี้ ,  Block จะเป็นตัวเลขที่บอกว่า Txid ของเรานี้อยู่ในบล็อคที่เท่าไรของเชนหลัก , Time Stamp คือระยะเวลาในการทำธุรกรรมนี้ และส่วนอื่นๆเช่น From คือ Address ที่ส่ง , To คือ Address ปลายทางที่รับเหรียญ  จากภาพก็จะเห็นได้ว่าส่งไป 0.01 ETH โดยค่าส่งเป็น 0.00021 ETH พอดิบพอดี
8.พอกลับมาดูที่ Metamask ก็จะแสดงจำนวน ETH และขึ้นสถานะของธุรกรรมนี้ว่า ส่งสำเร็จเรียบร้อย  ส่วนทางด้านขวาล่างก็จะมี POP แจ้งโดยตามภาพคือบอกว่ามีอย่างน้อย 61 Nodes ที่รับรู้ธุรกรรมการโอนนี้ของเราแล้วนะ

โอนส่งเหรียญ ERC-20

ใน Chain ของ ETH นั้นจะอนุญาตให้คนอื่นสามารถสร้างเหรียญของตัวเองได้  ซึ่งมาตราฐานหลักๆที่คนส่วนใหญ่รู้จักคือ ERC-20 โดยจะเหรียญมากมายสารพัดชื่อทั้งเหรียญของจริงและของปลอมซึ่งบางทีเราอาจต้องตรวจสอบด้วยตัวเองก่อนว่าเหรียญที่เราได้มาเป็นของจริงหรือไม่ โดยดูได้จาก Contract

1.เมื่อมาที่ Address ของเราเอง สามารถไปดูว่า Address ของเรามีธุรกรรมของเหรียญ ERC-20 ได้โดยกดที่แท็ป ERC20 Token Txns
2.จากตัวอย่างตามภาพก็จะเห็นได้ว่าธุรกรรมที่เพิ่งเกิดขึ้นหมาดๆของ Address นี้คือเหรียญ ชื่อ Bolt ซึ่งเป็นเหรียญมาตราฐาน ERC-20
3.ที่นี้จะขอยกตัวอย่างการส่งเหรียญชื่อ COS แทน ซึ่งเราต้องการกดเพื่อไปดูว่า Contract ของเหรียญนี้คืออะไร
4.เมื่อเรากดที่ชื่อเหรียญนั้นๆแล้วมันจะลิงค์เข้ามาสู่หน้าเหรียญนั้นๆ ให้สังเกตุที่มุมซ้ายบนก่อนว่าชื่อเหรียญตรงกับที่เราจะส่งหรือไม่ โดย ณ ที่นี้เหรียญนี้ชื่อ Contenttos *ให้สังเหตุที่ไอคอนด้วยตามภาพเป็นไอคอนตัว C เห็นเด่นชัดซึ่งหมายความว่า Contract นี้ทาง Etherscan ยอมรับว่าเป็น contract ของเหรียญจริง ถ้ารูปไอคอนไม่ตรงกับที่เรารู้มาขอให้คิดว่ามันอาจเป็นเหรียญปลอมไว้ก่อน  ที่นี้เราก็ก็ให้มา copy ชุดตัวเลขอักษรทางด้านขวาบน หัวข้อ Contract  (ถ้าขึ้นรูปไอคอนแบบนี้  แสดงว่า Contract นี้ทาง Etherscan ยังไม่รับรองนะครับ สัญลักษณ์จะคล้ายเกล็ดหิมะ )
5.ให้เข้ามาที่ Metamask โดยกดที่ Add Token ทางด้านมุมซ้ายล่าง
6.จะปรากฎ pop up ตามภาพโดยมีหัวข้อ Search ให้ใส่ชื่อเหรียญแต่จากที่แอดเคยลองเซิจแล้วมักหาไม่เจอเลย  ทั้งนี้เลยขอให้มาที่แท็ปหัวข้อ Custom Token
7.ทำการ paste ชื่อ Contract ที่ได้มาจากข้อ 4 ในช่อง Token Contract Address แล้วรอซักแปปจะปรากฎชื่อย่อเหรียญขึ้นมา ส่วนเลข 18 นั้นคือมาตราฐานจำนวนหลักที่เหรียญนั้นมี ไม่ต้องทำอะไร ให้กด next เพื่อไปต่อ
8.เมื่อมาถึงหน้านี้ มันจะแสดงให้เห็นว่าใน Address นี้ของเรามีเหรียญที่ชื่อ COS จำนวน 200 เหรียญนะ ก็ให้กดปุ่ม Add Token
9.จะกลับเข้าสู่หน้าหลัก โดยตอนนี้จะบอกว่าเรามีเหรียญอยู่ 2 เหรียญแล้วนะ ETH และ COS โดยตอนนี้เราจะอยู่ในหัวข้อเหรียญ COS ให้กดปุ่ม SEND
10.เมื่อเข้าสู่หน้าส่งก็ให้ทำเหมือนกับตอนส่ง ETH เลย เพียงแต่ตอนนี้การส่งมันจะบอกว่าส่งเป็นเหรียญ COS แทนนะ  บางครั้งการส่งเหรียญERC-20 ทาง Metamask อาจจะไม่สามารถคำนวณปริมาณ Gas (Gas Limit) ได้ ซึ่งตามภาพ บังเอิญขึ้นตัวแดงเลยแจ้งว่า Insufficiend Funds บอกว่าเราไม่มีเงินเพียงพอจ่ายค่าส่ง เพราะเรามี 0.0409 ETH แต่ค่าส่งแบบปานกลางยังตั้ง 0.076 ETH ให้ลองกดไปดูที่ Advance Option เลย ขอดูหน่อยแฮะว่าตั้งค่าไว้เท่าไร
11.เมื่อเข้ามาดูแล้วปรากฎว่าค่า Gas Price 10 ก็พอรับได้  แต่พอมาดูค่า Gas Limit 7,600,000 จะใช้ปริมาณ gas เยอะไปไหน  ค่าส่ง ETH ปกติยังใช้แค่ 21,000 เอง  สาเหตุที่บางทีอาจเจอแบบนี้เพราะ Metamask ไม่รู้จักเหรียญเหล่านั้นดีพอจึงประมาณการไม่ได้ว่าเหรียญนั้นๆเขียน Smart Contract มาดีพอแค่ไหน ถ้าเขียนมาไม่ดีบางทีมันก็ใช้ Gas สิ้นเปลืองมาก  ทาง Metamsk ก็เลยใส่มาเผื่อให้แบบเหลือล้น เพราะมันก็คืนอยู่แล้วถ้าใช้ไม่หมด
12.เอาใหม่เราเปลี่ยนค่าเองไปเลยใส่แค่ 200,000 พอ เชื่อแอดค่าแค่นี้เพียงพอแล้วสำหรับ ERC-20 ถ้ามากกว่านี้ก็แสดงว่าเหรียญนั้นเขียน Smart Contract ห่วยมาก ไม่ต้องใส่เป็นล้าน เดียวเผื่อ smart contract มีปัญหาหรือตอนนั้นมีคนส่งเยอะๆจะกลายเป็นว่าส่งวนรอไป 1 อาทิตย์ Gas ก็ไม่หมดซะที ซึ่งจากการคำนวณก็จะบอกว่าค่าส่งสูงสุดที่เป็นไปได้คือ 0.002 ETH นะ
13.เมื่อตั้งค่า Gas เรียบร้อยแล้วก็มากด next เพื่อส่งเหมือนปกติได้เลย
14.ถึงหน้ายืนยันการส่งก็กด Confirm เพื่อส่งไปเลย แต่ก็ระวังดูชุดอักษร 4 หลักสุดท้ายเพื่อให้แน่ใจด้วยนะ
15.ก็จะกลับมาสู่หน้าหลักแสดงสถานะการส่งว่า กำลังอยู่ระหว่างส่งนะ
16.ถ้าเราเข้ามาดูใน Etherscan ก็จะเห็นว่าตอนนี้กำลังส่งนะ มี Txid หรือเลขที่ธุรกรรมเรียบร้อยละ แต่ยังไม่มีบล็อคที่ลง ให้รอไปซักพักจนกว่าจะส่งสำเร็จ
17.ถ้าส่งสำเร็จก็จะขึ้นโชว์ successe โดยจะบอกว่ามีการส่ง 200 COS ไปเรียบร้อยแล้ว และมีการค่าในการส่งคือ 0.00024336 ETH นะ  ซึ่งค่าสูงสุดที่ตอนแรกมันแจ้ง คือ 0.002 ETH เราใช้ไปแค่นิดเดียวเอง  แต่ก็แค่ตั้งค่า Gas limit ไว้เผื่อๆตั้ง 200,000
18.เมื่อกลับมาดูที่ Metamask ก็จะเห็นว่าธุรกรรมนี้ส่งสำเร็จเรียบร้อย

 

หมายเหตุ ถ้าเราส่งผิดเช่น ใส่ค่า Gas Price ไปแค่ 1 แล้วไม่อยากรอ Pending นาน ต้องการยกเลิกจะทำได้ไหม  ตอบคือ อาจจะทำได้หรือทำไม่ได้เพราะไม่ 100% ในการส่งธุรกรรมไปเพื่อยกเลิก Txid ที่กำลัง Pending อยู่ได้  แต่ก็ขออธิบายวิธีทำไว้ดังนี้

1.เมื่อเข้ามาที่ธุรกรรมนั้นจะเห็นปุ่มว่า Cancle ให้กดไป (อันนี้เฉพาะคนที่ต้องการยกเลิกการส่งนี้นะ ให้ดูเป็นความรู้ไว้)

2.เมื่อกดเข้ามาแล้วจะเห็นว่าถ้าต้องการยกเลิกธุรกรรมนี้แต่ไม่การันตีความสำเร็จต้องเสีย 0.000231 ETH จะยอมรับไหม ถ้ายอมรับก็กด Yes ได้เลย แล้วก็ยกถ้ามันขึ้นสถานะ Fail ก็แสดงว่าเรายกเลิกได้สำเร็จ