วันศุกร์, สิงหาคม 23

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 – Hello world

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3

สวัสดีปีใหม่ครับ มาแล้วครับ กลับมาและ ห่างหายไปนานนิดนึง เนื่องจากปีใหม่ไปเที่ยวต่างจังหวัดมาเลยไม่ได้มีเวลามาเขียนต่อเลย แหะๆ แล้วทุกท่านเป็นอย่างไรบ้างครับไปเที่ยวไหนมาหรือเปล่า ^^

ส่วนเนื้อหาในบทนี้ จากบทก่อน ๆ ที่เรารู้เรื่องพื้นฐานของการจะเขียน Smart Contract แล้วนั้น เรามาลงมือเขียน code กันเลย โดย code ที่เราจะเขียนกันนั้น จะเริ่มด้วย function พื้นฐานสามัญประจำโลกเลย นั่นก็คืออ function HelloWorld ที่แสน classic ที่ผมคิดว่าท่านที่เรียนการ Programming มาก็ต้องรู้จักเป็นอย่างดี (ฮา) ซึ่งหน้าตาของ code เป็นดังนี้

 

โดยจาก source code ที่ผมแปะไว้ข้างบนนั้น จะขออธิบายเป็นส่วน ๆ ดังนี้ครับ

 

อันนี้เป็นตัวที่กำหนด version ของ compiler เพื่อให้ compiler รู้ว่ามันควรทำงานกับ source code นี้มั๊ย เผื่อในอนาคต compiler มีการ update แล้วมันไม่สามารถ compile ได้ จะได้ไม่ต้องทำงานให้มัน error ครับ

 

Source code ส่วนนี้ ก็แค่ประกาศ contract ครับ เอาง่ายๆ แบบในภาษา OOP อื่น ก็คือการประกาศ class นั้นแหล่ะ โดย Smart Contract ของผม ขอตั้งชื่อว่า MyFirstContract ครับ

 

อันนี้เป็นการประกาศ event ขึ้นมาครับ โดยตั้งชื่อให้มันว่า print_string และรับ parameter แบบ string 1 ตัว โดยเจ้า event นี้มันถูกสร้างมาเพื่อให้ Smart contract สามารถติดต่อกับโลกภายนอกได้ ฟังดูอาจจะงง ๆ จะขอยกตัวอย่างให้เห็นภาพ เช่น เราจะเขียนหน้า UI สำหรับใช้งาน Smart contract มาซึ่งจะเขียนด้วยภาษา HTML + Javascript (ในภาษา Javascript มี library สำหรับใช้งานกับ Ethereum ได้อยู่ครับ ชื่อว่า web3.js) ซึ่งเรามีปุ่มนึงในหน้าเว็บที่พอกดแล้วจะขอค่ามาจาก Smart contract ซึ่งค่าที่จะได้มาเนี่ย เราจะต้องเขียนสิ่งที่เรียกว่า filter สำหรับดักจับ event ที่จะเกิดขึ้นครับ

สำหรับ function HelloWorld ของผมนี้ ผมตั้งใจจะให้แสดงคำว่า “Hello world” ออกไปที่หน้าจอ ก็เลยต้องเขียน event แบบนี้ครับ ส่วนตอนจะแสดงผลที่หน้าจออย่างไรนั้น ขอติดไว้ก่อน ตอนนี้ขอ focus ที่แค่ Smart contract ก่อนนะครับ ^^

 

สุดท้าย ประกาศ function ครับ ซึ่ง function นี้ไม่ได้ทำงานอะไรเลยนอกจากเรียก event พร้อมส่งค่า string คำว่า “Hello world” ไป

 

เสร็จแล้วครับ กับการเขียน code เพื่อให้ได้ function Hello world สุด classic ตามแบบฉบับ programmer ไม่ยากเลยใช่ไหมครับ คราวหน้าเดี๋ยวจะมาต่อเรื่องการ deploy และลองเรียกดูนะครับ ^___^