โดยเริ่มจากส่วนของ Smart contract ของเราก่อน เราได้เพิ่มฟังก์ชั่น " transfer " ซึ่งฟังก์ชั่นนี้จะรับพารามิเตอร์ 2 ตัวคือ
- uint _amount ที่จะรับค่า "จำนวนที่ต้องชำระ" ( เป็น unsigned integer )
- address _to จะรับ address ของผู้รับ ( เป็นตัวแปรประเภท address )
1 2 3 4 5 6 7 8 9 10 11 12 13 | function transfer(uint _amount, address _to) public { require (balanceOf[msg.sender] >= _amount, "You don't have enough amount."); balanceOf[_to] += _amount; balanceOf[msg.sender] -= _amount; if(_amount == 1000){ check = 1; }else{ check = 0; } } |
ฟังก์ชั่นนี้เมื่อรับค่าพารามิเตอร์มาแล้ว จะตรวจสอบจำนวนเหรียญที่เรามีก่อนถ้าไม่พอจะส่งข้อความแจ้งว่า "You don't have enough amount." ถ้ามีจำนวนพอจะทำการ transfer เหรียญไปให้ผู้รับตาม address
โดยเราจะ deploy จากนั้น ให้เราไปเอา ABI เพราะเราได้แก้ contract ไป
ต่อมาเราจะไปแก้ Code ส่วนของ Client
1 2 3 4 5 6 7 8 9 10 11 12 13 | function transfer(){ var _amount = 1000; var _to = 'address receiver' SimpleContract.transfer(_amount, _to,function(error,result){ if(error){ addStatusLine(error); return; } // addStatusLine(""); addStatusLine("calling transfer("+result+")"); }); } |
ฟังก์ชั่น ที่เราเพิ่มเข้าไปคือ "transfer" ฟังก์ชั่นนี้เราต้องใส่ค่า address ลงไป และจำนวนเหรียญที่ต้องชำระ โดยฟังก์ชั่นนี้จะเรียกตามเวลาที่เรากำหนดเอาไว้ จะทำการหักเงินตามที่เรากำหนดไว้
Pic: Code Client
Pic: Code Client การเรียกใช้ฟังก์ชั่น transfer
สุดท้ายเราจะมาทดสอบ DApp ของเรา
Pic: DApp transferเรียบร้อย
Pic: ตรวจสอบยอดเงิน และสถานะการล็อคห้องเป็น 1 หรือ "true"
ไม่มีความคิดเห็น:
แสดงความคิดเห็น