Note
ทำ smart contract การกู้เงินโดยมี
- ผู้กู้
- ผู้ให้ยืม
- การชำระหนี้
- การยึดทรัพย์เมื่อไม่ชำระหนี้ให้ทันเวลา
ระบบมี 2 ฝั่งคือผู้ปล่อยกู้กับผู้กู้ โดยผู้กู้จะกู้เงิน (ETH) จากกองกลางที่มาจากผู้ปล่อยกู้ทั้งหมด และต้องค้ำประกันโดยใช้โทเคน MarginToken (MGT) ในอัตราทำกำหนดไว้ (MarginRate) หากผู้กู้ไม่ชำระในระยะเวลาที่กำหนด (BorrowPeriod) จะถูกยึดหลักทรัพย์ค้ำประกันไป | ผู้กู้แต่ละบัญชีสามารถกู้ทบกันได้หลายครั้ง โดยแยกเวลาที่ต้องชำระคืนเป็นต่างหาก
Note
จากนี้จะเรียกหลักค้ำประกันเป็น Token แทน MarginToken
หากเพิ่ม Token ใน Metamask จะขึ้นเป็นหน่วยเต็ม ซึ่งเป็นทศนิยม 18 หลัก แต่ในการใช้งาน Smart contract จะเป็นหน่วยเดียวกันทั้งหมดไม่มีทศนิยม (เพราะไม่ได้ตั้งค่าอะไรนอกจากชื่อ MGT)
- การยึดหลักทรัพย์ค้ำประกันอัตโนมัติเมื่อเลยเวลาชำระหนี้ (ปัจจุบันเมื่อชำระหนี้แม้ไม่เรียกฟังก์ชัน Margin_call มาก่อนก็ยังสามารถป้องกันการชำระหนี้ที่เลยกำหนดได้ เนื่องจากบล็อคนั้นจะถือว่าล้มเหลวไป) => สถานการณ์จริงต้องใช้โปรแกรมภายนอกในภาษาโปรแกรมอื่นคอยเรียกใช้ฟังก์ชัน Margin_call ทุกครั้งก่อนที่จะเรียกดูข้อมูลหรือชำระหนี้เพื่อให้แสดงข้อมูลเป็นล่าสุด
- การที่ฟังก์ชันต่างๆรับหรือแสดงค่าเป็นคนละหน่วยกันระหว่าง Ether และ Wei => สถานการณ์จริงควรมีหน้าเว็บไซต์ แล้วเมื่อใช้งานตัวเว็บไซต์ค่อยเรียกใช้งานฟังก์ชัน Smart contract อีกที ซึ่งจะทำให้สามารถแปลงหน่วยได้บนเว็บไซต์ที่เป็นตัวเชื่อมระหว่างผู้ใช้กับ Smart contract
- เสก {Token} ขึ้นมาให้กับบัญชีตัวเอง
- ตรวจสอบ Token ที่มีในบัญชี {ใส่เป็น Public address}
- ฝากเป็น ETH {ใส่เป็นหน่วย Ether}
- ถอนเป็น ETH {ใส่เป็นหน่วย Wei}
- ตรวจสอบยอดเงินในบัญชี (เป็นหน่วย Wei) {ใส่เป็น Public address}
- กู้เงินเป็น ETH {ใส่เป็นหน่วย Wei} โดยใช้ Token ค้ำประกัน
- ชำระหนี้เป็น ETH {ใส่เป็นหน่วย Ether} และได้รับ Token คืน
- ตรวจสอบยอดหนี้ที่ค้างชำระ (เป็นหน่วย Wei) {ใส่เป็น Public address}
- ตั้งค่าอัตราค้ำประกันในหน่วยเปอร์เซ็นต์ {ใส่เป็นเลขจำนวนเต็มไม่ใส่ %} เช่น ตั้งเป็น 150 หากกู้ 100 ETH ต้องค้ำประกันด้วย Token จำนวน 150 เหรียญ (150% ของ เงินที่กู้)
- ตั้งค่าระยะเวลาที่ต้องชำระหนี้ก่อนจะถูกยึดทรัพย์ (Token) {หน่วยเป็นวินาที}
- ตรวจสอบอัตราค้ำประกัน (%)
- ตรวจสอบระยะเวลาชำระหนี้ (วินาที)
- ตรวจสอบจำนวนหนี้ทั้งหมดในระบบ (ETH เป็นหน่วย Wei)
- ตรวจสอบจำนวนหลักทรัพย์ค้ำประกันทั้งหมดที่ยึดมาได้ (Token)
- ตั้งค่าลิงก์ไปหา Smart contract ของ Token {ใส่เป็น Public address}
- สำหรับการใช้โปรแกรมอื่นคอยยิง api มาให้ทำงาน หรือใช้งานเองก่อนดูข้อมูลหนี้และชำระหนี้
- ตรวจสอบยอดค้างชำระทั้งหมด หากส่วนไหนเกินระยะเวลาชำระหนี้จะยึดหลักทรัพย์และลบประวัติการกู้ครั้งนั้น (หากบัญชีไหนจะชำระหนี้จะใช้ฟังก์ชันนี้ตรวจสอบประวัติก่อนอัตโนมัติ แต่ไม่สามารถอัพเดตข้อมูลได้)