วันอาทิตย์ที่ 17 พฤศจิกายน พ.ศ. 2562

Code Client Smart Contract auto transfer

ในครั้งนี้เราจะมาทำให้ Smart Contract ของเรา transfer auto กันครับ

โดยเริ่มจากส่วนของ Smart contract ของเราก่อน เราได้เพิ่มฟังก์ชั่น " transfer " ซึ่งฟังก์ชั่นนี้จะรับพารามิเตอร์ 2 ตัวคือ

  1.  uint _amount ที่จะรับค่า "จำนวนที่ต้องชำระ" ( เป็น unsigned integer )
  2.  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"


ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Code Client Smart Contract auto transfer

ในครั้งนี้เราจะมาทำให้ Smart Contract ของเรา transfer auto กันครับ โดยเริ่มจากส่วนของ Smart contract ของเราก่อน เราได้เพิ่มฟังก์ชั่น ...