มาตรฐาน ERC (ERC-20, ERC-721)
ศึกษา มาตรฐาน Ethereum Request for Comments (ERC) ที่ใช้ทั่วไป เช่น ERC-20 สำหรับโทเคนที่ทดแทนกันได้ และ ERC-721 สำหรับโทเคนที่ทดแทนกันไม่ได้ (NFT)
มาตรฐาน ERC (ERC-20, ERC-721) เป็นบทเรียน Web3 & DApp Development Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Web3 & DApp Development Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 3 บทเรียน
มาตรฐาน ERC คืออะไร
ERC ย่อมาจาก ข้อเสนอเพื่อขอความคิดเห็นของเอเธอเรียม เป็นข้อเสนออย่างเป็นทางการที่กำหนดกฎและความสามารถเฉพาะสำหรับสัญญาอัจฉริยะบนบล็อกเชนเอเธอเรียม
ลองนึกภาพว่าเป็นแบบแปลนหรือข้อตกลงร่วมกัน ซึ่งช่วยให้สัญญาและแอปพลิเคชันต่าง ๆ “พูดภาษาเดียวกัน” และโต้ตอบกันได้อย่างราบรื่น
ทำความเข้าใจโทเค็น ERC-20
โทเค็น ERC-20 คือมาตรฐานสำหรับโทเค็นที่ทดแทนกันได้ คำว่า “ทดแทนกันได้” หมายความว่าแต่ละหน่วยมีลักษณะเหมือนกันและสามารถแลกเปลี่ยนแทนกันได้ เช่นเดียวกับเงินทั่วไป
หากคุณมีเงินหนึ่งดอลลาร์ เงินนั้นก็เหมือนกับเงินหนึ่งดอลลาร์ใบอื่น ๆ โทเค็น ERC-20 ใช้กับสกุลเงินดิจิทัล เหรียญมูลค่าคงที่ และโทเค็นอรรถประโยชน์
ERC-20: การดำเนินการพื้นฐาน
มาตรฐาน ERC-20 กำหนดชุดฟังก์ชันและเหตุการณ์ที่โทเค็นซึ่งเป็นไปตามมาตรฐานทั้งหมดต้องนำไปใช้ ฟังก์ชันสำคัญได้แก่:
totalSupply(): ส่งคืนจำนวนโทเค็นทั้งหมดbalanceOf(address account): รับยอดคงเหลือของที่อยู่transfer(address recipient, uint256 amount): ส่งโทเค็นจากผู้เรียกไปยังผู้รับ
ERC-20: การโอนอย่างง่าย
นี่คือตัวอย่างสัญญาแบบง่ายที่สาธิตแนวคิดหลักของฟังก์ชัน transfer ของโทเค็น ERC-20 โดยจัดการยอดคงเหลือและอนุญาตให้ส่งโทเค็นได้
ลองนำสัญญานี้ไปใช้งานใน Remix และโอนโทเค็นดูครับ
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleToken {
string public name = "MySimpleToken";
string public symbol = "MST";
uint8 public decimals = 18;
uint256 public totalSupply = 1000000 * (10 ** decimals);
mapping(address => uint256) public balances;
constructor() {
balances[msg.sender] = totalSupply;
}
function transfer(address recipient, uint256 amount)
public returns (bool)
{
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[recipient] += amount;
return true;
}
function balanceOf(address account)
public view returns (uint256)
{
return balances[account];
}
}ERC-20: อนุมัติและ TransferFrom
หากต้องการอนุญาตให้สัญญาอื่น (เช่น ตลาดซื้อขายแบบกระจายศูนย์) ใช้จ่ายโทเค็นแทนคุณ ERC-20 จะใช้วงเงินที่อนุญาต:
approve(address spender, uint256 amount): อนุญาตให้spenderถอนเงินได้สูงสุดตามจำนวนamountจากบัญชีของคุณtransferFrom(address sender, address recipient, uint256 amount): โอนโทเค็นจากsenderไปยังrecipientโดยทั่วไปจะเรียกใช้โดยspenderที่มีวงเงินได้รับอนุญาต
แนะนำโทเค็น NFT ERC-721
โทเค็น ERC-721 ใช้สำหรับโทเค็นที่ทดแทนกันไม่ได้ (NFT) คำว่า “ทดแทนกันไม่ได้” หมายความว่าโทเค็นแต่ละรายการมีเอกลักษณ์เฉพาะตัวและไม่สามารถใช้รายการอื่นมาแทนได้
ลองนึกถึงงานศิลปะที่มีเอกลักษณ์หรือการ์ดสะสมเฉพาะใบ NFT ใช้กับงานศิลปะดิจิทัล ไอเท็มเฉพาะในเกม ที่ดินในโลกเสมือน และอื่น ๆ
ERC-721: ความเป็นเจ้าของและการโอน
มาตรฐาน ERC-721 ยังระบุฟังก์ชันเฉพาะไว้ดังนี้:
ownerOf(uint256 tokenId): ส่งคืนเจ้าของโทเค็นที่ระบุbalanceOf(address owner): ส่งคืนจำนวน NFT ที่เจ้าของมีsafeTransferFrom(address from, address to, uint256 tokenId): โอน NFT ที่ระบุจากที่อยู่หนึ่งไปยังอีกที่อยู่อย่างปลอดภัย
ERC-721: การสร้าง NFT อย่างง่าย
สัญญานี้แสดงวิธีพื้นฐานในการ 'สร้าง' NFT ที่ไม่ซ้ำกัน และติดตามความเป็นเจ้าของ NFT แต่ละรายการมี tokenId ที่ไม่ซ้ำกัน
หลังจากปรับใช้แล้ว ลองเรียกใช้ฟังก์ชัน mint หลายครั้งดูนะครับ
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleNFT {
string public name = "MySimpleNFT";
string public symbol = "SNFT";
uint256 private _nextTokenId;
mapping(uint256 => address) public ownerOf;
mapping(address => uint256) public balanceOf;
constructor() {
_nextTokenId = 0;
}
function mint(address recipient)
public returns (uint256)
{
_nextTokenId++;
uint256 newTokenId = _nextTokenId;
ownerOf[newTokenId] = recipient;
balanceOf[recipient]++;
return newTokenId;
}
}ERC-20 เทียบกับ ERC-721: ความแตกต่างสำคัญ
ต่อไปนี้คือการเปรียบเทียบโดยสรุป:
- ความสามารถในการทดแทนกัน: โทเค็น ERC-20 สามารถทดแทนกันได้ ส่วนโทเค็น ERC-721 ไม่สามารถทดแทนกันได้และมีเอกลักษณ์เฉพาะตัว
- ความไม่ซ้ำกัน: โทเค็น ERC-20 ติดตามด้วยจำนวน ส่วนโทเค็น ERC-721 ติดตามด้วยรหัสที่ไม่ซ้ำกัน
- กรณีการใช้งาน: ERC-20 ใช้สำหรับสกุลเงินและสิทธิ์ในการลงคะแนน ส่วน ERC-721 ใช้สำหรับงานศิลปะดิจิทัล ของสะสม และโฉนด
ระบุมาตรฐาน
ข้อความใดต่อไปนี้อธิบายคุณลักษณะหรือกรณีการใช้งานของโทเค็น ERC-20 และ ERC-721 ได้อย่างถูกต้อง
สรุป: มาตรฐาน ERC
เราได้ศึกษาเกี่ยวกับมาตรฐานพื้นฐานของ Ethereum สองมาตรฐาน:
- ERC-20 สำหรับ โทเค็นที่ทดแทนกันได้ เหมาะสำหรับสกุลเงินและโทเค็นใช้งาน
- ERC-721 สำหรับ โทเค็นที่ทดแทนกันไม่ได้ (NFT) เหมาะสำหรับสินทรัพย์ดิจิทัลที่ไม่ซ้ำกัน เช่น งานศิลปะและของสะสม
มาตรฐานเหล่านี้มีความสำคัญอย่างยิ่งต่อการทำงานร่วมกันและการสร้างแอปพลิเคชันแบบกระจายศูนย์หลากหลายรูปแบบบน Ethereum
เรียนรู้ Web3 & DApp Development Fundamentals ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 29
- บทเรียน
- 105
คำถามที่พบบ่อย
บทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “มาตรฐาน ERC (ERC-20, ERC-721)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Web3 & DApp Development Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)”
ศึกษา มาตรฐาน Ethereum Request for Comments (ERC) ที่ใช้ทั่วไป เช่น ERC-20 สำหรับโทเคนที่ทดแทนกันได้ และ ERC-721 สำหรับโทเคนที่ทดแทนกันไม่ได้ (NFT) คุณปฏิบัติ Web3 & DApp Development Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Web3 & DApp Development Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Web3 & DApp Development Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Web3 & DApp Development Fundamentals นี้ได้ไหม
ได้ บทเรียน Web3 & DApp Development Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- มาตรฐาน ERC (ERC-20, ERC-721)
- แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของสัญญา
- สัญญาที่อัปเกรดได้