ERC-721 Tokens คืออะไร มาทำความรู้จักกัน
ERC-721 คือมาตราฐานอันนึงของ token ที่อยู่บน Ethereum หรือทรัพย์สินดิจิทัลบน Blockchain ซึ่งจะแสดงความเป็นเจ้าของกับสิ่งของนั้นแต่เพียงผู้เดียว (Non-Fungible)
หากเปรียบเทียบความแตกต่างระหว่างโทเคน ERC-721 กับ ERC-20 กล่าวคือ
ERC-20 เปรียบเสมือนสกุลเงินดิจิทัลที่ไว้ใช้ได้เหมือนกันหมด
ERC-721 เปรียบเสมือนแมวแต่ละตัวที่มีสีต่างกัน และแต่ละตัวเราจะขายไม่เท่ากัน แล้วแต่ความสวยของแมว ซึ่งหากเราไปซื้อแมวจากร้านที่ขาย สิทธิ์การเป็นเจ้าของแมวจะเปลี่ยนมาเป็นของเราทันที
ทีนี้เรามาลองสร้างเหรียญ ERC-721 กันเถอะ
จากบทเรียนใน Zombie Crypto Lesson 5 ERC721 จะมีฟังก์ชันให้ใช้อยู่ 5 ฟังก์ชัน ซึ่งแต่ละฟังก์ชันจะใช้แตกต่างกันดังนี้
function balanceOf(address _owner) public view returns (uint256 _balance) ฟังก์ชั่นนี้จะเป็นการรับ address เข้ามาและ return จำนวน ทรัพย์สิน ที่ address ของเราครองอยู่ว่ามีกี่อัน ตัวอย่างเช่น เรามีแมวอยู่ 5 ตัว
function ownerOf(uint256 _tokenId) public view returns (address _owner) ฟังก์ชันนี้จะบ่งบอก ID ของทรัพย์สินแต่ละตัวของเราว่ามีอะไรบ้าง ตัวอย่างเช่น แมว 5 ตัวชื่อ แสนดี แสนซน แสนรัก แสนสุข แสนหวาน เป็นต้น
function transfer(address _to, uint256 _tokenId) public ฟังก์ชันที่ใช้ในการโอนสิทธิ์การเป็นเจ้าของทรัพย์สิน
function approve(address _to, uint256 _tokenId) public ฟังก์ชันยันก่อนจะโอนสิทธิ์การเป็นเจ้าของทรัพย์สิน
function takeOwnership(uint256 _tokenId) public ฟังก์ชันเพื่อตรวจสอบว่าได้รับการยืนยันการโอนสิทธิ์แล้วหรือยัง
การใช้งาน ERC-721 Solidity
เราจะทำการ Import ไฟล์ erc721.sol จากนั้นประกาศ inherit ใน contract ของ ZombieOwnership เช่นเดียวกับ ZombieAttact
จากรูป จะมีการใช้ using SafeMath for uint256 ซึ่งเป็น library พิเศษใน Solidity โดยตัวอย่างจะใช้อยู่ 4 ฟังก์ชั่น ได้แก่ add, sub, mul, และ div
mapping (uint => address) zombieApprovals เป็นการเรียกใช้ Address ของเราเอง
📑หากต้องการศึกษาเกี่ยวกับ ERC-721 หรือ ต้องการศึกษาเกี่ยวกับ Solidity แนะนำ
Reference :