บทเรียนที่ 3

เขียนสัญญาฉลาดพื้นฐาน

ตัวแปร ฟังก์ชัน และตัวปรับเปลี่ยนเป็นส่วนประกอบที่สำคัญในสมาร์ทคอนแทร็ค Solidity Solidity มี 2 ประเภทของตัวแปร: ตัวแปรสถานะ และ ตัวแปรท้องถิ่น

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

ตัวแปร ฟังก์ชัน และตัวปรับเปลี่ยน

  • ตัวแปรใน Solidity มี 2 ประเภทของตัวแปร - ตัวแปรสถานะ และตัวแปรท้องถิ่น ตัวแปรสถานะจะถูกเก็บไว้บนบล็อกเชนอย่างถาวร ในขณะที่ตัวแปรท้องถิ่นเป็นชั่วคราวและมีอยู่เฉพาะภายในขอบเขตของฟังก์ชัน
  • ฟังก์ชัน: ฟังก์ชันเป็นบล็อกสำคัญของสมาร์ทคอนแทร็กต์ พวกเขาใช้ในการปฏิบัติงานที่เฉพาะเจาะจง เช่น การสร้างธุรกรรมและการดำเนินตรรกะแบบกำหนดเอง ฟังก์ชันสามารถมีพารามิเตอร์ข้อมูลข้อมูลข้อมูลและคืนค่าได้ ซึ่งช่วยให้การปรับแต่งและความยืดหยุ่นมากขึ้น
  • ตัวดัดแปร: Modifiers are unique to Solidity and are used to modify the behavior of a function. They can improve the readability and manageability of the code and can be used to authenticate incoming values or conditionally execute a called function.

ตัวอย่าง 1: การนำและสร้างสัญญาณโทเค็นอย่างง่าย

มาสร้างสัญญาโทเค็นง่ายๆ โดยใช้ Solidity กันเถอะ สัญญานี้จะอนุญาตให้ผู้ใช้โอนโทเค็นระหว่างบัญชีและตรวจสอบยอดโทเค็นของบัญชีใดก็ได้

ประเภทสคริปต์ TypeScriptpragma solidity ^0.8.0; สัญญา SimpleToken { // ประกาศตัวแปรสถานะ ที่อยู่เจ้าของสาธารณะ; การทำการจับคู่ (ที่อยู่ => uint256) ยอดคงเหลือสาธารณะ; // กำหนดค่าเริ่มต้นสัญญาโทเคน ผู้ก่อตั้ง (uint256 จำนวนมูลค่าเริ่มต้น) { เจ้าของ = msg.sender; ยอดคงเหลือ [เจ้าของ] = จำนวนมูลค่าเริ่มต้น; } // ฟังก์ชันในการโอนโทเคน ฟังก์ชันในการโอนโทเคน (ที่อยู่ ถึง, uint256 จำนวน) สาธารณะ { ต้องการ (ยอดคงเหลือ [msg.sender] >= จำนวน, "ยอดย่อยไม่พอ") ; ยอดคงเหลือ [msg.sender] -= จำนวน; ยอดคงเหลือ [ถึง] += จำนวน; } // ฟังก์ชันในการตรวจสอบยอดคงเหลือโทเคนของบัญชี ฟังก์ชันในการตรวจสอบยอดคงเหลือโทเคนของบัญชี (บัญชีที่อยู่) สาธารณะมุมมองคืน (uint256) { return ยอดคงเหลือ [บัญชีที่อยู่]; }

ในสัญญานี้ เรามี:

  • ตัวแปรสถานะเจ้าของและยอดคงเหลือ เพื่อจัดเก็บที่อยู่ของเจ้าของสัญญาและยอดคงเหลือโทเค็นของที่อยู่ทั้งหมดตามลําดับ
  • หนึ่ง โปรแกรมสร้างฟังก์ชันที่กำหนดจำนวนเบี้ยสูงสุดเริ่มต้นของโทเค็นและมอบหมายให้เจ้าของสัญญา
  • A โอนฟังก์ชันที่อนุญาตให้ผู้ใช้โอนโทเค็นไปยังบัญชีอื่น ๆ โดยใช้ต้องการการยืนยันให้แน่ใจว่าผู้ส่งมีโทเคนเพียงพอในการโอน
  • หนึ่ง จำนวนเงินฟังก์ชันที่คืนยอดคงเหลือของโทเค็นของบัญชีที่ระบุ
  • สัญญาโทเค็นพื้นฐานนี้สาธิตวิธีใช้ตัวแปร ฟังก์ชัน และตัวดัดแปลงใน Solidity เพื่อสร้างสัญญาสมาร์ทที่เรียบง่ายและมีประสิทธิภาพ

ตัวอย่าง 2: การนำระบบลงคะแนนโหวตง่าย

TypeScriptpragma solidity ^0.8.0;contract VotingSystem {    mapping (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        require(validCandidate(candidate), "Invalid candidate.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        require(validCandidate(candidate), "Invalid candidate.");        return votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                return true;            }        }        return false;    }}

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

ไฮไลท์
ตัวแปร ฟังก์ชัน และตัวดัดแปลง เป็นส่วนประกอบที่สำคัญในสมาร์ทคอนแทร็ค Solidity
Solidity มีตัวแปร 2 ประเภท: ตัวแปรสถานะ และ ตัวแปรท้องถิ่น
ฟังก์ชันถูกใช้ในการดำเนินงานและสามารถมีพารามิเตอร์ข้อมูลนำเข้าและค่าคืนได้
Modifiers ใช้เพื่อปรับเปลี่ยนพฤติกรรมของฟังก์ชันและเพิ่มความอ่านง่ายและการบริหารจัดการโค้ด
สัญญา SimpleToken ช่วยให้ผู้ใช้สามารถโอนโทเค็นและตรวจสอบยอดคงเหลือของโทเค็นได้
สัญญา SimpleToken สาธิตการใช้ตัวแปรสถานะ ฟังก์ชันคอนสตรักเตอร์ และฟังก์ชันเช่นการโอนและการตรวจสอบยอดคงเหลือ
สัญญา VotingSystem ช่วยให้ผู้ใช้สามารถลงคะแนนเสียงเพื่อผู้สมัครและติดตามจำนวนคะแนนที่ลง
สัญญา VotingSystem แสดงถึงการใช้ mappings, arrays, และฟังก์ชัน เช่น voteForCandidate, totalVotesFor, และ validCandidate

ข้อจำกัดความรับผิด
* การลงทุนคริปโตมีความเสี่ยงสูง โปรดดำเนินการด้วยความระมัดระวัง หลักสูตรนี้ไม่ได้มีไว้เพื่อเป็นคำแนะนำในการลงทุน
* หลักสูตรนี้สร้างขึ้นโดยผู้เขียนที่ได้เข้าร่วม Gate Learn ความคิดเห็นของผู้เขียนไม่ได้มาจาก Gate Learn
แคตตาล็อก
บทเรียนที่ 3

เขียนสัญญาฉลาดพื้นฐาน

ตัวแปร ฟังก์ชัน และตัวปรับเปลี่ยนเป็นส่วนประกอบที่สำคัญในสมาร์ทคอนแทร็ค Solidity Solidity มี 2 ประเภทของตัวแปร: ตัวแปรสถานะ และ ตัวแปรท้องถิ่น

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

ตัวแปร ฟังก์ชัน และตัวปรับเปลี่ยน

  • ตัวแปรใน Solidity มี 2 ประเภทของตัวแปร - ตัวแปรสถานะ และตัวแปรท้องถิ่น ตัวแปรสถานะจะถูกเก็บไว้บนบล็อกเชนอย่างถาวร ในขณะที่ตัวแปรท้องถิ่นเป็นชั่วคราวและมีอยู่เฉพาะภายในขอบเขตของฟังก์ชัน
  • ฟังก์ชัน: ฟังก์ชันเป็นบล็อกสำคัญของสมาร์ทคอนแทร็กต์ พวกเขาใช้ในการปฏิบัติงานที่เฉพาะเจาะจง เช่น การสร้างธุรกรรมและการดำเนินตรรกะแบบกำหนดเอง ฟังก์ชันสามารถมีพารามิเตอร์ข้อมูลข้อมูลข้อมูลและคืนค่าได้ ซึ่งช่วยให้การปรับแต่งและความยืดหยุ่นมากขึ้น
  • ตัวดัดแปร: Modifiers are unique to Solidity and are used to modify the behavior of a function. They can improve the readability and manageability of the code and can be used to authenticate incoming values or conditionally execute a called function.

ตัวอย่าง 1: การนำและสร้างสัญญาณโทเค็นอย่างง่าย

มาสร้างสัญญาโทเค็นง่ายๆ โดยใช้ Solidity กันเถอะ สัญญานี้จะอนุญาตให้ผู้ใช้โอนโทเค็นระหว่างบัญชีและตรวจสอบยอดโทเค็นของบัญชีใดก็ได้

ประเภทสคริปต์ TypeScriptpragma solidity ^0.8.0; สัญญา SimpleToken { // ประกาศตัวแปรสถานะ ที่อยู่เจ้าของสาธารณะ; การทำการจับคู่ (ที่อยู่ => uint256) ยอดคงเหลือสาธารณะ; // กำหนดค่าเริ่มต้นสัญญาโทเคน ผู้ก่อตั้ง (uint256 จำนวนมูลค่าเริ่มต้น) { เจ้าของ = msg.sender; ยอดคงเหลือ [เจ้าของ] = จำนวนมูลค่าเริ่มต้น; } // ฟังก์ชันในการโอนโทเคน ฟังก์ชันในการโอนโทเคน (ที่อยู่ ถึง, uint256 จำนวน) สาธารณะ { ต้องการ (ยอดคงเหลือ [msg.sender] >= จำนวน, "ยอดย่อยไม่พอ") ; ยอดคงเหลือ [msg.sender] -= จำนวน; ยอดคงเหลือ [ถึง] += จำนวน; } // ฟังก์ชันในการตรวจสอบยอดคงเหลือโทเคนของบัญชี ฟังก์ชันในการตรวจสอบยอดคงเหลือโทเคนของบัญชี (บัญชีที่อยู่) สาธารณะมุมมองคืน (uint256) { return ยอดคงเหลือ [บัญชีที่อยู่]; }

ในสัญญานี้ เรามี:

  • ตัวแปรสถานะเจ้าของและยอดคงเหลือ เพื่อจัดเก็บที่อยู่ของเจ้าของสัญญาและยอดคงเหลือโทเค็นของที่อยู่ทั้งหมดตามลําดับ
  • หนึ่ง โปรแกรมสร้างฟังก์ชันที่กำหนดจำนวนเบี้ยสูงสุดเริ่มต้นของโทเค็นและมอบหมายให้เจ้าของสัญญา
  • A โอนฟังก์ชันที่อนุญาตให้ผู้ใช้โอนโทเค็นไปยังบัญชีอื่น ๆ โดยใช้ต้องการการยืนยันให้แน่ใจว่าผู้ส่งมีโทเคนเพียงพอในการโอน
  • หนึ่ง จำนวนเงินฟังก์ชันที่คืนยอดคงเหลือของโทเค็นของบัญชีที่ระบุ
  • สัญญาโทเค็นพื้นฐานนี้สาธิตวิธีใช้ตัวแปร ฟังก์ชัน และตัวดัดแปลงใน Solidity เพื่อสร้างสัญญาสมาร์ทที่เรียบง่ายและมีประสิทธิภาพ

ตัวอย่าง 2: การนำระบบลงคะแนนโหวตง่าย

TypeScriptpragma solidity ^0.8.0;contract VotingSystem {    mapping (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        require(validCandidate(candidate), "Invalid candidate.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        require(validCandidate(candidate), "Invalid candidate.");        return votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                return true;            }        }        return false;    }}

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

ไฮไลท์
ตัวแปร ฟังก์ชัน และตัวดัดแปลง เป็นส่วนประกอบที่สำคัญในสมาร์ทคอนแทร็ค Solidity
Solidity มีตัวแปร 2 ประเภท: ตัวแปรสถานะ และ ตัวแปรท้องถิ่น
ฟังก์ชันถูกใช้ในการดำเนินงานและสามารถมีพารามิเตอร์ข้อมูลนำเข้าและค่าคืนได้
Modifiers ใช้เพื่อปรับเปลี่ยนพฤติกรรมของฟังก์ชันและเพิ่มความอ่านง่ายและการบริหารจัดการโค้ด
สัญญา SimpleToken ช่วยให้ผู้ใช้สามารถโอนโทเค็นและตรวจสอบยอดคงเหลือของโทเค็นได้
สัญญา SimpleToken สาธิตการใช้ตัวแปรสถานะ ฟังก์ชันคอนสตรักเตอร์ และฟังก์ชันเช่นการโอนและการตรวจสอบยอดคงเหลือ
สัญญา VotingSystem ช่วยให้ผู้ใช้สามารถลงคะแนนเสียงเพื่อผู้สมัครและติดตามจำนวนคะแนนที่ลง
สัญญา VotingSystem แสดงถึงการใช้ mappings, arrays, และฟังก์ชัน เช่น voteForCandidate, totalVotesFor, และ validCandidate

ข้อจำกัดความรับผิด
* การลงทุนคริปโตมีความเสี่ยงสูง โปรดดำเนินการด้วยความระมัดระวัง หลักสูตรนี้ไม่ได้มีไว้เพื่อเป็นคำแนะนำในการลงทุน
* หลักสูตรนี้สร้างขึ้นโดยผู้เขียนที่ได้เข้าร่วม Gate Learn ความคิดเห็นของผู้เขียนไม่ได้มาจาก Gate Learn