คลาสสัญญา 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
จะตรวจสอบว่าเฉพาะผู้ดูแลระบบปัจจุบันเท่านั้นที่สามารถเรียกใช้ฟังก์ชันนี้ได้ หากการตรวจสอบล้มเหลว การดำเนินการจะถูกปฏิเสธ หากผ่าน ฟังก์ชันจะดำเนินการมอบหมายผู้ดูแลระบบคนใหม่
คลาสสัญญาหยุด 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
จะตรวจสอบก่อนว่าผู้ดูแลระบบเป็นผู้ดำเนินการหรือไม่ หากผ่านการตรวจสอบ ระบบจะอัปเดตสถานะการหยุดชั่วคราวของสัญญา
คลาสสัญญา 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
จะตรวจสอบก่อนว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะเพิ่มอุปทานทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุ
คลาสสัญญา 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).รัน(ผู้ส่ง=ผู้ดูแลระบบ)
คลาสสัญญา 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
เราจะเรียนรู้ว่าสัญญานี้สืบทอดมาจากคลาสทั้งหมดที่เราพูดคุยกันในวันนี้อย่างไร และคลาสทั้งหมดมีส่วนสนับสนุนการทำงานของโทเค็นอย่างไร คอยติดตาม!
คลาสสัญญา 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
จะตรวจสอบว่าเฉพาะผู้ดูแลระบบปัจจุบันเท่านั้นที่สามารถเรียกใช้ฟังก์ชันนี้ได้ หากการตรวจสอบล้มเหลว การดำเนินการจะถูกปฏิเสธ หากผ่าน ฟังก์ชันจะดำเนินการมอบหมายผู้ดูแลระบบคนใหม่
คลาสสัญญาหยุด 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
จะตรวจสอบก่อนว่าผู้ดูแลระบบเป็นผู้ดำเนินการหรือไม่ หากผ่านการตรวจสอบ ระบบจะอัปเดตสถานะการหยุดชั่วคราวของสัญญา
คลาสสัญญา 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
จะตรวจสอบก่อนว่าผู้ส่งเป็นผู้ดูแลระบบ จากนั้นจะเพิ่มอุปทานทั้งหมดและยอดคงเหลือของที่อยู่ที่ระบุ
คลาสสัญญา 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).รัน(ผู้ส่ง=ผู้ดูแลระบบ)
คลาสสัญญา 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
เราจะเรียนรู้ว่าสัญญานี้สืบทอดมาจากคลาสทั้งหมดที่เราพูดคุยกันในวันนี้อย่างไร และคลาสทั้งหมดมีส่วนสนับสนุนการทำงานของโทเค็นอย่างไร คอยติดตาม!