Lição 3

การทำความเข้าใจสัญญา FA1.2

ยินดีต้อนรับสู่บทที่สามของหลักสูตรโทเค็นของเรา หลังจากปรับใช้สัญญาโทเค็นแบบเต็มแล้ว เรามาแจกแจงรหัสสัญญาและทำความเข้าใจองค์ประกอบต่างๆ กัน บทเรียนนี้มีจุดมุ่งหมายเพื่อให้คุณเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการสร้างสัญญาโทเค็น FA1.2

1. สัญญาผู้ดูแลระบบ

คลาสสัญญา Admin ระบบในสัญญาโทเค็นของเรามีหน้าที่รับผิดชอบในการกำหนดสิทธิ์ของผู้ดูแลระบบ โดยมีจุดเริ่มต้นเดียว: setAdministrator จุดเริ่มต้นนี้อนุญาตให้ผู้ดูแลระบบปัจจุบันสามารถกำหนดผู้ดูแลระบบคนใหม่ได้

Python 
 class Admin(sp.Contract): 
 def __init__(ตนเอง, ผู้ดูแลระบบ): 
 self.init(administrator=administrator)

    @ sp.entrypointdef setAdministrator (ตนเอง, พารามิเตอร์): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.administrator = พารามิเตอร์

ฟังก์ชัน setAdministrator จะตรวจสอบว่าเฉพาะผู้ดูแลระบบปัจจุบันเท่านั้นที่สามารถเรียกใช้ฟังก์ชันนี้ได้ หากการตรวจสอบล้มเหลว การดำเนินการจะถูกปฏิเสธ หากผ่าน ฟังก์ชันจะดำเนินการมอบหมายผู้ดูแลระบบคนใหม่

2. หยุดสัญญาชั่วคราว

คลาสสัญญาหยุด Pause จัดเตรียมกลไกในการหยุดชั่วคราวและยกเลิกการหยุดการดำเนินการตามสัญญาชั่วคราว ประกอบด้วยจุดเริ่มต้น setPause ที่สามารถเปลี่ยนสถานะหยุดชั่วคราวของสัญญาได้

Python 
 คลาส Pause (sp.Contract): 
 def __init__(self): 
 self.init (paused=False)

    @ sp.entrypointdef setPause (ตนเอง, พารามิเตอร์): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.paused = พารามิเตอร์

ฟังก์ชัน setPause จะตรวจสอบก่อนว่าผู้ดูแลระบบเป็นผู้ดำเนินการหรือไม่ หากผ่านการตรวจสอบ ระบบจะอัปเดตสถานะการหยุดชั่วคราวของสัญญา

3. สัญญามิ้นท์

คลาสสัญญา Mint ช่วยเพิ่มอุปทานโทเค็น มาพร้อมกับจุดเริ่ม mint ที่เพิ่มอุปทานทั้งหมดและอัปเดตยอดคงเหลือของที่อยู่เฉพาะ

Python 
 คลาส Mint (sp.Contract): 
 @sp.entrypointdef mint (self, params): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.total_supply += params.value 
 self.data.balances[params.address].balance += พารามิเตอร์ค่า

ฟังก์ชัน mint จะตรวจสอบก่อนว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะเพิ่มอุปทานทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุ

4. สัญญาเผา

คลาสสัญญา Burn มีไว้เพื่อลดอุปทานโทเค็น มีจุดเริ่ม burn ที่จะลดอุปทานทั้งหมดและความสมดุลของที่อยู่เฉพาะ

Python 
 คลาส Burn (sp.Contract): 
 @sp.entrypointdef burn (self, params): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.total_supply -= params.value 
 self.data.balances[params.address].balance -= params.value

ฟังก์ชัน burn ทำงานคล้ายกับฟังก์ชัน mint แต่จะลดปริมาณการจัดหาทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุแทน

ด้วยรหัสต่อไปนี้ ผู้ดูแลระบบจะเผาโทเค็น Bob

Python 
 sc.h2("ผู้ดูแลระบบเบิร์นโทเค็น Bob") 
 c1.burn(address=bob.address, ค่า=1).รัน(ผู้ส่ง=ผู้ดูแลระบบ)

5. สัญญา ChangeMetadata

คลาสสัญญา ChangeMetadata ใช้สำหรับอัปเดตข้อมูลเมตาของสัญญา ประกอบด้วยฟังก์ชัน update_metadata ซึ่งจะอัปเดตคู่คีย์-ค่าในข้อมูลเมตา

Python 
 คลาส ChangeMetadata (sp.Contract): 
 @sp.entrypointdef update_metadata (ตนเอง, คีย์, ค่า): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.metadata [คีย์] = ค่า

ฟังก์ชัน update_metadata คล้ายกับฟังก์ชันก่อนหน้านี้ ตรวจสอบว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะอัปเดตคู่คีย์-ค่าที่ระบุในข้อมูลเมตา

ในบทเรียนถัดไป เราจะเจาะลึกสัญญาขั้นสุดท้ายที่รวมฟังก์ชันการทำงานเหล่านี้ทั้งหมด Fa1_2TestFull เราจะเรียนรู้ว่าสัญญานี้สืบทอดมาจากคลาสทั้งหมดที่เราพูดคุยกันในวันนี้อย่างไร และคลาสทั้งหมดมีส่วนสนับสนุนการทำงานของโทเค็นอย่างไร คอยติดตาม!

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 3

การทำความเข้าใจสัญญา FA1.2

ยินดีต้อนรับสู่บทที่สามของหลักสูตรโทเค็นของเรา หลังจากปรับใช้สัญญาโทเค็นแบบเต็มแล้ว เรามาแจกแจงรหัสสัญญาและทำความเข้าใจองค์ประกอบต่างๆ กัน บทเรียนนี้มีจุดมุ่งหมายเพื่อให้คุณเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการสร้างสัญญาโทเค็น FA1.2

1. สัญญาผู้ดูแลระบบ

คลาสสัญญา Admin ระบบในสัญญาโทเค็นของเรามีหน้าที่รับผิดชอบในการกำหนดสิทธิ์ของผู้ดูแลระบบ โดยมีจุดเริ่มต้นเดียว: setAdministrator จุดเริ่มต้นนี้อนุญาตให้ผู้ดูแลระบบปัจจุบันสามารถกำหนดผู้ดูแลระบบคนใหม่ได้

Python 
 class Admin(sp.Contract): 
 def __init__(ตนเอง, ผู้ดูแลระบบ): 
 self.init(administrator=administrator)

    @ sp.entrypointdef setAdministrator (ตนเอง, พารามิเตอร์): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.administrator = พารามิเตอร์

ฟังก์ชัน setAdministrator จะตรวจสอบว่าเฉพาะผู้ดูแลระบบปัจจุบันเท่านั้นที่สามารถเรียกใช้ฟังก์ชันนี้ได้ หากการตรวจสอบล้มเหลว การดำเนินการจะถูกปฏิเสธ หากผ่าน ฟังก์ชันจะดำเนินการมอบหมายผู้ดูแลระบบคนใหม่

2. หยุดสัญญาชั่วคราว

คลาสสัญญาหยุด Pause จัดเตรียมกลไกในการหยุดชั่วคราวและยกเลิกการหยุดการดำเนินการตามสัญญาชั่วคราว ประกอบด้วยจุดเริ่มต้น setPause ที่สามารถเปลี่ยนสถานะหยุดชั่วคราวของสัญญาได้

Python 
 คลาส Pause (sp.Contract): 
 def __init__(self): 
 self.init (paused=False)

    @ sp.entrypointdef setPause (ตนเอง, พารามิเตอร์): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.paused = พารามิเตอร์

ฟังก์ชัน setPause จะตรวจสอบก่อนว่าผู้ดูแลระบบเป็นผู้ดำเนินการหรือไม่ หากผ่านการตรวจสอบ ระบบจะอัปเดตสถานะการหยุดชั่วคราวของสัญญา

3. สัญญามิ้นท์

คลาสสัญญา Mint ช่วยเพิ่มอุปทานโทเค็น มาพร้อมกับจุดเริ่ม mint ที่เพิ่มอุปทานทั้งหมดและอัปเดตยอดคงเหลือของที่อยู่เฉพาะ

Python 
 คลาส Mint (sp.Contract): 
 @sp.entrypointdef mint (self, params): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.total_supply += params.value 
 self.data.balances[params.address].balance += พารามิเตอร์ค่า

ฟังก์ชัน mint จะตรวจสอบก่อนว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะเพิ่มอุปทานทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุ

4. สัญญาเผา

คลาสสัญญา Burn มีไว้เพื่อลดอุปทานโทเค็น มีจุดเริ่ม burn ที่จะลดอุปทานทั้งหมดและความสมดุลของที่อยู่เฉพาะ

Python 
 คลาส Burn (sp.Contract): 
 @sp.entrypointdef burn (self, params): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.total_supply -= params.value 
 self.data.balances[params.address].balance -= params.value

ฟังก์ชัน burn ทำงานคล้ายกับฟังก์ชัน mint แต่จะลดปริมาณการจัดหาทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุแทน

ด้วยรหัสต่อไปนี้ ผู้ดูแลระบบจะเผาโทเค็น Bob

Python 
 sc.h2("ผู้ดูแลระบบเบิร์นโทเค็น Bob") 
 c1.burn(address=bob.address, ค่า=1).รัน(ผู้ส่ง=ผู้ดูแลระบบ)

5. สัญญา ChangeMetadata

คลาสสัญญา ChangeMetadata ใช้สำหรับอัปเดตข้อมูลเมตาของสัญญา ประกอบด้วยฟังก์ชัน update_metadata ซึ่งจะอัปเดตคู่คีย์-ค่าในข้อมูลเมตา

Python 
 คลาส ChangeMetadata (sp.Contract): 
 @sp.entrypointdef update_metadata (ตนเอง, คีย์, ค่า): 
 sp.verify (sp.sender == self.data.administrator)
        self.data.metadata [คีย์] = ค่า

ฟังก์ชัน update_metadata คล้ายกับฟังก์ชันก่อนหน้านี้ ตรวจสอบว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะอัปเดตคู่คีย์-ค่าที่ระบุในข้อมูลเมตา

ในบทเรียนถัดไป เราจะเจาะลึกสัญญาขั้นสุดท้ายที่รวมฟังก์ชันการทำงานเหล่านี้ทั้งหมด Fa1_2TestFull เราจะเรียนรู้ว่าสัญญานี้สืบทอดมาจากคลาสทั้งหมดที่เราพูดคุยกันในวันนี้อย่างไร และคลาสทั้งหมดมีส่วนสนับสนุนการทำงานของโทเค็นอย่างไร คอยติดตาม!

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.