Lección 4

การโต้ตอบและการใช้งานสัญญาอัจฉริยะ

สัญญาอัจฉริยะสามารถปฏิสัมพันธ์กับสัญญาอื่น ๆ บนบล็อกเชน Ethereum ทำให้สามารถเรียกใช้ฟังก์ชัน อ่านตัวแปร และโอน Ether หรือโทเค็น

การโต้ตอบกับสัญญาภายนอก

สัญญาอัจฉริยะสามารถทำงานร่วมกับสัญญาอื่นบนบล็อกเชน Ethereum ให้สามารถเรียกใช้ฟังก์ชัน อ่านตัวแปร และส่ง Ether หรือโทเค็นได้ วิธีหนึ่งในการส่งเสริมปฏิสัมพันธ์นี้คือโดยใช้ Web3j หรือไลบรารี Java ที่มีน้ำหนักเบาสำหรับการใช้งานกับ Ethereum Web3j สามารถสร้างรหัสตัวครองสัญญาอัจฉริยะโดยอัตโนมัติ ทำให้สามารถใช้งานและปฏิสัมพันธ์กับสัญญาอัจฉริยะได้อย่างไม่ลัดเลิ่งจาก JVM

เพื่อทำการโต้ตอบกับสัญญาอัจฉริยะภายนอกโดยใช้ Web3j คุณจะต้องคอมไพล์สัญญาอัจฉริยะของคุณและสร้างรหัส wrapper ก่อน จากนั้นคุณสามารถสร้างและใช้สัญญาอัจฉริยะของคุณหรือใช้สัญญาที่มีอยู่เพื่อทำธุรกรรมและเรียกเมธอดของสัญญาอัจฉริยะโดยตรงได้

เหตุการณ์และบันทึก

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

บันทึกคือบันทึกที่ปล่อยออกมาจากเหตุการณ์และถูกเก็บไว้บนบล็อกเชน สิ่งเหล่านี้เป็นส่วนสําคัญของระบบนิเวศ Ethereum เนื่องจากช่วยให้สามารถสื่อสารระหว่างสัญญาอัจฉริยะและระบบนอกเครือข่ายได้อย่างมีประสิทธิภาพ นอกจากนี้ยังมีการจัดทําดัชนีบันทึกทําให้แอปพลิเคชันสามารถกรองและค้นหาเหตุการณ์หรือจุดข้อมูลที่เฉพาะเจาะจงได้อย่างง่ายดาย

ตัวอย่าง: การใช้ Remix และ MetaMask ในการ implement smart contract

ขั้นตอนที่ 1: เปิด Remix IDE
ขั้นแรกให้เปิด Remix IDE (https://remix.ethereum.org/) ในเบราว์เซอร์ของคุณ

ขั้นตอนที่ 2: สร้างไฟล์ใหม่
คลิกที่ปุ่ม “+” ที่มุมบนซ้ายของ IDE เพื่อสร้าง Workspace ใหม่ จากนั้นคลิกที่หน้า “New File” เพื่อสร้างไฟล์ใหม่

ตั้งชื่อไฟล์เป็น “Auction.sol”

ขั้นตอนที่ 3: กำหนดสัญญา
คัดลอกและวางโค้ดต่อไปนี้ลงในไฟล์ "Auction.sol" ใหม่:

TypeScript// SPDX-License-Identifier: MIT// ระบุ Solidity versionpragma solidity ^0.8.0;// กําหนดการประมูลสัญญาการประมูล { // ประกาศตัวแปรของรัฐที่อยู่เจ้าหนี้เจ้าของสาธารณะ; // เจ้าของสัญญา (สามารถยกเลิกการประมูลได้) uint public startBlock; // หมายเลขบล็อกที่การประมูลเริ่มต้น uint public endBlock; // หมายเลขบล็อกที่การประมูลสิ้นสุดสตริงสาธารณะ ipfsHash; // แฮช IPFS สําหรับรายการที่ถูกประมูล bool สาธารณะถูกยกเลิก  ไม่ว่าการประมูลจะถูกยกเลิกหรือไม่ ไม่ว่าการประมูลจะสิ้นสุดลงหรือไม่ การเสนอราคาสูงสุดจนถึงขณะนี้อยู่ที่เจ้าหนี้สาธารณะสูงสุด Bidder; ที่อยู่ของผู้เสนอราคาสูงสุด // ประกาศกิจกรรม AuctionCanceled(); เหตุการณ์ที่ปล่อยออกมาเมื่อการประมูลถูกยกเลิกเหตุการณ์ HighestBidIncreased (ที่อยู่ผู้เสนอราคา, จํานวนเงิน uint); เหตุการณ์ที่ปล่อยออกมาเมื่อมีการกําหนดราคาเสนอสูงสุดใหม่เหตุการณ์ AuctionEnded (ผู้ชนะที่อยู่จํานวนเงิน uint); เหตุการณ์ที่ปล่อยออกมาเมื่อการประมูลสิ้นสุดลง // ประกาศการแมปแผนที่ (ที่อยู่ => uint256) ยอดคงเหลือสาธารณะ    ตัวสร้างฟังก์ชันตัวสร้าง() { owner = payable(msg.sender); // ตั้งค่าเจ้าของเป็นที่อยู่ที่ปรับใช้สัญญา startBlock = block.number; // ตั้งค่าบล็อกเริ่มต้นเป็นหมายเลขบล็อกปัจจุบัน endBlock = startBlock + 40320; // ตั้งค่าบล็อกสิ้นสุดเป็น 1 สัปดาห์ (40320 บล็อก) หลังจากบล็อกเริ่มต้น ipfsHash = ""; เริ่มต้นแฮช IPFS เป็นสตริงว่าง } // ฟังก์ชันเพื่อวางฟังก์ชันการเสนอราคา placeBid() เจ้าหนี้สาธารณะ { require(block.number >= startBlock && block.number <= endBlock, "Auction is not active."); // ตรวจสอบว่าการประมูลมีการใช้งานอยู่ (msg.value > highestBid, "มีราคาเสนอสูงกว่าอยู่แล้ว"); // ตรวจสอบว่าการเสนอราคาใหม่สูงกว่าราคาเสนอสูงสุดในปัจจุบันที่ต้องการ(!ยกเลิกการประมูล"); // ตรวจสอบว่าการประมูลยังไม่ถูกยกเลิก        หากมีผู้เสนอราคาสูงสุดก่อนหน้านี้ ให้เพิ่มจํานวนการเสนอราคาลงในยอดคงเหลือหาก (highestBidder != address(0)) { balances[highestBidder] += highestBid;    } // ตั้งค่าการเสนอราคาสูงสุดใหม่และผู้เสนอราคาสูงสุด Bid = msg.value;        highestBidder = เจ้าหนี้ (msg.sender);        ปล่อยเหตุการณ์เพื่อส่งสัญญาณการเสนอราคาสูงสุดใหม่ถูกตั้งค่า emit HighestBidIncreased (msg.sender, msg.value);    } // ฟังก์ชันการยกเลิกฟังก์ชันการประมูล cancelAuction() สาธารณะ { require(msg.sender == owner, "เฉพาะเจ้าของเท่านั้นที่สามารถยกเลิกการประมูลได้"); // ตรวจสอบว่าผู้ส่งคือเจ้าของที่ต้องการ(!สิ้นสุด"การประมูลสิ้นสุดลงแล้ว"); // ตรวจสอบว่าการประมูลยังไม่สิ้นสุด // ตั้งค่าสถานะที่ยกเลิกและปล่อยกิจกรรมเพื่อส่งสัญญาณว่าการประมูลถูกยกเลิก = จริง        ปล่อย AuctionCanceled();    } // ฟังก์ชันสิ้นสุดฟังก์ชันการประมูล endAuction() สาธารณะ { require(block.number > endBlock, "Auction is not over yet."); // ตรวจสอบว่าการประมูลเกินกําหนด (!ยกเลิก, "การประมูลถูกยกเลิก"); // ตรวจสอบว่าการประมูลยังไม่ถูกยกเลิก (!สิ้นสุดแล้ว "การประมูลสิ้นสุดลงแล้ว"); // ตรวจสอบว่าการประมูลยังไม่สิ้นสุด // ตั้งค่าสถานะที่สิ้นสุดและปล่อยเหตุการณ์เพื่อส่งสัญญาณว่าการประมูลสิ้นสุดลงแล้ว = จริง        ปล่อย AuctionEnded(highestBidder, highestBid);        โอนจํานวนการเสนอราคาสูงสุดให้กับเจ้าของโอน (highestBid);        หากมีผู้เสนอราคาสูงสุดก่อนหน้านี้ ให้เพิ่มจํานวนการเสนอราคาลงในยอดคงเหลือหาก (highestBidder != address(0)) { balances[highestBidder] += highestBid;        } } // ฟังก์ชันการตั้งค่าแฮช IPFS สําหรับรายการที่ถูกประมูลฟังก์ชัน setIpfsHash(string memory hash) public { require(msg.sender == owner, "Only the owner can set the IPFS hash."); // ตรวจสอบว่าผู้ส่งเป็นเจ้าของเป็นเจ้าของ ipfsHash = hash; // ตั้งค่าแฮช IPFS เป็นค่าที่ให้ไว้ }}

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

ขั้นตอนที่ 4: คอมไพล์สัญญา

คลิกที่แท็บ "Solidity Compiler" ในเมนูด้านซ้าย ภายใต้ "Compile Auction.sol" คลิกที่ปุ่ม "Compile" สัญญาควรถูกคอมไพล์สำเร็จและคุณควรเห็นเครื่องหมายถูกต้องสีเขียวที่ข้างๆ "Auction.sol" ในเบราว์เซอร์ไฟล์

ขั้นตอนที่ 5: สร้างสัญญา

คลิกที่แท็บ "Implement & Run Transactions" ในเมนูด้านซ้าย ในส่วน "สภาพแวดล้อม" เลือก "Injected Web3" เป็นสภาพแวดล้อม ในส่วน "สัญญา" เลือก "การประมูล" เป็นสัญญาที่ต้องการจะดำเนินการ คลิกที่ปุ่ม "ประยุกต์"

ขั้นตอนที่ 6: ติดต่อกับสัญญา
เมื่อสัญญาถูกใช้งาน คุณสามารถทำงานกับมันได้โดยใช้ฟังก์ชันต่างๆ ที่กำหนดไว้ในสัญญา ตัวอย่างเช่น คุณสามารถเรียกใช้ส่งใบเสนอราคา()ฟังก์ชันเพื่อส่งประมูลสินค้า

ด้วยการใช้ Remix และ MetaMask คุณสามารถปรับใช้และโต้ตอบกับสัญญาอัจฉริยะบนเครือข่าย Ethereum ได้อย่างง่ายดายทําให้สามารถพัฒนาและทดสอบแอปพลิเคชันแบบกระจายอํานาจในสภาพแวดล้อมที่ใช้งานง่าย

ไฮไลท์
สัญญาอัจฉริยะสามารถทำงานร่วมกับสัญญาอื่น ๆ บนบล็อกเชน Ethereum โดยทำให้การเรียกใช้ฟังก์ชัน การอ่านตัวแปร และการโอนเงิน Ether หรือโทเคนเป็นไปได้
Web3j เป็นไลบรารี Java ที่มีน้ำหนักเบาซึ่งใช้ในการประสานงานกับ Ethereum มันสามารถสร้างรหัสคลุมสัญญาอัจฉริยะโดยอัตโนมัติเพื่อการฉุกเฉินและการปฏิสัมพันธ์กับสัญญาจาก JVM อย่างไม่มีรอยต่อ
เหตุการณ์เป็นสิ่งจำเป็นสำหรับการติดตามและการตรวจสอบกิจกรรมของสัญญาบนบล็อกเชน เขาออกสู่ระบบบันทึกที่สามารถเก็บไว้และดึงข้อมูลโดยระบบออฟเชน เพื่อให้สามารถอัพเดทแบบเรียลไทม์สำหรับ dApps
บันทึกที่เป็นบันทึกที่ถูกส่งออกโดยเหตุการณ์มีบทบาทสำคัญในการสื่อสารที่มีประสิทธิภาพระหว่างสัญญาอัจฉริยะและระบบนอกเส้น พวกเขาถูกจัดทำดัชนีทำให้ง่ายต่อการกรองและค้นหาเหตุการณ์หรือจุดข้อมูลที่เฉพาะเจาะจง
ตัวอย่างที่ให้ไว้แสดงให้เห็นถึงกระบวนการปรับใช้สัญญาอัจฉริยะโดยใช้ Remix IDE และ MetaMask มันรวมถึงขั้นตอนต่างๆเช่นการสร้างไฟล์ใหม่การกําหนดสัญญาการรวบรวมการปรับใช้และการโต้ตอบกับฟังก์ชั่น

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 4

การโต้ตอบและการใช้งานสัญญาอัจฉริยะ

สัญญาอัจฉริยะสามารถปฏิสัมพันธ์กับสัญญาอื่น ๆ บนบล็อกเชน Ethereum ทำให้สามารถเรียกใช้ฟังก์ชัน อ่านตัวแปร และโอน Ether หรือโทเค็น

การโต้ตอบกับสัญญาภายนอก

สัญญาอัจฉริยะสามารถทำงานร่วมกับสัญญาอื่นบนบล็อกเชน Ethereum ให้สามารถเรียกใช้ฟังก์ชัน อ่านตัวแปร และส่ง Ether หรือโทเค็นได้ วิธีหนึ่งในการส่งเสริมปฏิสัมพันธ์นี้คือโดยใช้ Web3j หรือไลบรารี Java ที่มีน้ำหนักเบาสำหรับการใช้งานกับ Ethereum Web3j สามารถสร้างรหัสตัวครองสัญญาอัจฉริยะโดยอัตโนมัติ ทำให้สามารถใช้งานและปฏิสัมพันธ์กับสัญญาอัจฉริยะได้อย่างไม่ลัดเลิ่งจาก JVM

เพื่อทำการโต้ตอบกับสัญญาอัจฉริยะภายนอกโดยใช้ Web3j คุณจะต้องคอมไพล์สัญญาอัจฉริยะของคุณและสร้างรหัส wrapper ก่อน จากนั้นคุณสามารถสร้างและใช้สัญญาอัจฉริยะของคุณหรือใช้สัญญาที่มีอยู่เพื่อทำธุรกรรมและเรียกเมธอดของสัญญาอัจฉริยะโดยตรงได้

เหตุการณ์และบันทึก

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

บันทึกคือบันทึกที่ปล่อยออกมาจากเหตุการณ์และถูกเก็บไว้บนบล็อกเชน สิ่งเหล่านี้เป็นส่วนสําคัญของระบบนิเวศ Ethereum เนื่องจากช่วยให้สามารถสื่อสารระหว่างสัญญาอัจฉริยะและระบบนอกเครือข่ายได้อย่างมีประสิทธิภาพ นอกจากนี้ยังมีการจัดทําดัชนีบันทึกทําให้แอปพลิเคชันสามารถกรองและค้นหาเหตุการณ์หรือจุดข้อมูลที่เฉพาะเจาะจงได้อย่างง่ายดาย

ตัวอย่าง: การใช้ Remix และ MetaMask ในการ implement smart contract

ขั้นตอนที่ 1: เปิด Remix IDE
ขั้นแรกให้เปิด Remix IDE (https://remix.ethereum.org/) ในเบราว์เซอร์ของคุณ

ขั้นตอนที่ 2: สร้างไฟล์ใหม่
คลิกที่ปุ่ม “+” ที่มุมบนซ้ายของ IDE เพื่อสร้าง Workspace ใหม่ จากนั้นคลิกที่หน้า “New File” เพื่อสร้างไฟล์ใหม่

ตั้งชื่อไฟล์เป็น “Auction.sol”

ขั้นตอนที่ 3: กำหนดสัญญา
คัดลอกและวางโค้ดต่อไปนี้ลงในไฟล์ "Auction.sol" ใหม่:

TypeScript// SPDX-License-Identifier: MIT// ระบุ Solidity versionpragma solidity ^0.8.0;// กําหนดการประมูลสัญญาการประมูล { // ประกาศตัวแปรของรัฐที่อยู่เจ้าหนี้เจ้าของสาธารณะ; // เจ้าของสัญญา (สามารถยกเลิกการประมูลได้) uint public startBlock; // หมายเลขบล็อกที่การประมูลเริ่มต้น uint public endBlock; // หมายเลขบล็อกที่การประมูลสิ้นสุดสตริงสาธารณะ ipfsHash; // แฮช IPFS สําหรับรายการที่ถูกประมูล bool สาธารณะถูกยกเลิก  ไม่ว่าการประมูลจะถูกยกเลิกหรือไม่ ไม่ว่าการประมูลจะสิ้นสุดลงหรือไม่ การเสนอราคาสูงสุดจนถึงขณะนี้อยู่ที่เจ้าหนี้สาธารณะสูงสุด Bidder; ที่อยู่ของผู้เสนอราคาสูงสุด // ประกาศกิจกรรม AuctionCanceled(); เหตุการณ์ที่ปล่อยออกมาเมื่อการประมูลถูกยกเลิกเหตุการณ์ HighestBidIncreased (ที่อยู่ผู้เสนอราคา, จํานวนเงิน uint); เหตุการณ์ที่ปล่อยออกมาเมื่อมีการกําหนดราคาเสนอสูงสุดใหม่เหตุการณ์ AuctionEnded (ผู้ชนะที่อยู่จํานวนเงิน uint); เหตุการณ์ที่ปล่อยออกมาเมื่อการประมูลสิ้นสุดลง // ประกาศการแมปแผนที่ (ที่อยู่ => uint256) ยอดคงเหลือสาธารณะ    ตัวสร้างฟังก์ชันตัวสร้าง() { owner = payable(msg.sender); // ตั้งค่าเจ้าของเป็นที่อยู่ที่ปรับใช้สัญญา startBlock = block.number; // ตั้งค่าบล็อกเริ่มต้นเป็นหมายเลขบล็อกปัจจุบัน endBlock = startBlock + 40320; // ตั้งค่าบล็อกสิ้นสุดเป็น 1 สัปดาห์ (40320 บล็อก) หลังจากบล็อกเริ่มต้น ipfsHash = ""; เริ่มต้นแฮช IPFS เป็นสตริงว่าง } // ฟังก์ชันเพื่อวางฟังก์ชันการเสนอราคา placeBid() เจ้าหนี้สาธารณะ { require(block.number >= startBlock && block.number <= endBlock, "Auction is not active."); // ตรวจสอบว่าการประมูลมีการใช้งานอยู่ (msg.value > highestBid, "มีราคาเสนอสูงกว่าอยู่แล้ว"); // ตรวจสอบว่าการเสนอราคาใหม่สูงกว่าราคาเสนอสูงสุดในปัจจุบันที่ต้องการ(!ยกเลิกการประมูล"); // ตรวจสอบว่าการประมูลยังไม่ถูกยกเลิก        หากมีผู้เสนอราคาสูงสุดก่อนหน้านี้ ให้เพิ่มจํานวนการเสนอราคาลงในยอดคงเหลือหาก (highestBidder != address(0)) { balances[highestBidder] += highestBid;    } // ตั้งค่าการเสนอราคาสูงสุดใหม่และผู้เสนอราคาสูงสุด Bid = msg.value;        highestBidder = เจ้าหนี้ (msg.sender);        ปล่อยเหตุการณ์เพื่อส่งสัญญาณการเสนอราคาสูงสุดใหม่ถูกตั้งค่า emit HighestBidIncreased (msg.sender, msg.value);    } // ฟังก์ชันการยกเลิกฟังก์ชันการประมูล cancelAuction() สาธารณะ { require(msg.sender == owner, "เฉพาะเจ้าของเท่านั้นที่สามารถยกเลิกการประมูลได้"); // ตรวจสอบว่าผู้ส่งคือเจ้าของที่ต้องการ(!สิ้นสุด"การประมูลสิ้นสุดลงแล้ว"); // ตรวจสอบว่าการประมูลยังไม่สิ้นสุด // ตั้งค่าสถานะที่ยกเลิกและปล่อยกิจกรรมเพื่อส่งสัญญาณว่าการประมูลถูกยกเลิก = จริง        ปล่อย AuctionCanceled();    } // ฟังก์ชันสิ้นสุดฟังก์ชันการประมูล endAuction() สาธารณะ { require(block.number > endBlock, "Auction is not over yet."); // ตรวจสอบว่าการประมูลเกินกําหนด (!ยกเลิก, "การประมูลถูกยกเลิก"); // ตรวจสอบว่าการประมูลยังไม่ถูกยกเลิก (!สิ้นสุดแล้ว "การประมูลสิ้นสุดลงแล้ว"); // ตรวจสอบว่าการประมูลยังไม่สิ้นสุด // ตั้งค่าสถานะที่สิ้นสุดและปล่อยเหตุการณ์เพื่อส่งสัญญาณว่าการประมูลสิ้นสุดลงแล้ว = จริง        ปล่อย AuctionEnded(highestBidder, highestBid);        โอนจํานวนการเสนอราคาสูงสุดให้กับเจ้าของโอน (highestBid);        หากมีผู้เสนอราคาสูงสุดก่อนหน้านี้ ให้เพิ่มจํานวนการเสนอราคาลงในยอดคงเหลือหาก (highestBidder != address(0)) { balances[highestBidder] += highestBid;        } } // ฟังก์ชันการตั้งค่าแฮช IPFS สําหรับรายการที่ถูกประมูลฟังก์ชัน setIpfsHash(string memory hash) public { require(msg.sender == owner, "Only the owner can set the IPFS hash."); // ตรวจสอบว่าผู้ส่งเป็นเจ้าของเป็นเจ้าของ ipfsHash = hash; // ตั้งค่าแฮช IPFS เป็นค่าที่ให้ไว้ }}

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

ขั้นตอนที่ 4: คอมไพล์สัญญา

คลิกที่แท็บ "Solidity Compiler" ในเมนูด้านซ้าย ภายใต้ "Compile Auction.sol" คลิกที่ปุ่ม "Compile" สัญญาควรถูกคอมไพล์สำเร็จและคุณควรเห็นเครื่องหมายถูกต้องสีเขียวที่ข้างๆ "Auction.sol" ในเบราว์เซอร์ไฟล์

ขั้นตอนที่ 5: สร้างสัญญา

คลิกที่แท็บ "Implement & Run Transactions" ในเมนูด้านซ้าย ในส่วน "สภาพแวดล้อม" เลือก "Injected Web3" เป็นสภาพแวดล้อม ในส่วน "สัญญา" เลือก "การประมูล" เป็นสัญญาที่ต้องการจะดำเนินการ คลิกที่ปุ่ม "ประยุกต์"

ขั้นตอนที่ 6: ติดต่อกับสัญญา
เมื่อสัญญาถูกใช้งาน คุณสามารถทำงานกับมันได้โดยใช้ฟังก์ชันต่างๆ ที่กำหนดไว้ในสัญญา ตัวอย่างเช่น คุณสามารถเรียกใช้ส่งใบเสนอราคา()ฟังก์ชันเพื่อส่งประมูลสินค้า

ด้วยการใช้ Remix และ MetaMask คุณสามารถปรับใช้และโต้ตอบกับสัญญาอัจฉริยะบนเครือข่าย Ethereum ได้อย่างง่ายดายทําให้สามารถพัฒนาและทดสอบแอปพลิเคชันแบบกระจายอํานาจในสภาพแวดล้อมที่ใช้งานง่าย

ไฮไลท์
สัญญาอัจฉริยะสามารถทำงานร่วมกับสัญญาอื่น ๆ บนบล็อกเชน Ethereum โดยทำให้การเรียกใช้ฟังก์ชัน การอ่านตัวแปร และการโอนเงิน Ether หรือโทเคนเป็นไปได้
Web3j เป็นไลบรารี Java ที่มีน้ำหนักเบาซึ่งใช้ในการประสานงานกับ Ethereum มันสามารถสร้างรหัสคลุมสัญญาอัจฉริยะโดยอัตโนมัติเพื่อการฉุกเฉินและการปฏิสัมพันธ์กับสัญญาจาก JVM อย่างไม่มีรอยต่อ
เหตุการณ์เป็นสิ่งจำเป็นสำหรับการติดตามและการตรวจสอบกิจกรรมของสัญญาบนบล็อกเชน เขาออกสู่ระบบบันทึกที่สามารถเก็บไว้และดึงข้อมูลโดยระบบออฟเชน เพื่อให้สามารถอัพเดทแบบเรียลไทม์สำหรับ dApps
บันทึกที่เป็นบันทึกที่ถูกส่งออกโดยเหตุการณ์มีบทบาทสำคัญในการสื่อสารที่มีประสิทธิภาพระหว่างสัญญาอัจฉริยะและระบบนอกเส้น พวกเขาถูกจัดทำดัชนีทำให้ง่ายต่อการกรองและค้นหาเหตุการณ์หรือจุดข้อมูลที่เฉพาะเจาะจง
ตัวอย่างที่ให้ไว้แสดงให้เห็นถึงกระบวนการปรับใช้สัญญาอัจฉริยะโดยใช้ Remix IDE และ MetaMask มันรวมถึงขั้นตอนต่างๆเช่นการสร้างไฟล์ใหม่การกําหนดสัญญาการรวบรวมการปรับใช้และการโต้ตอบกับฟังก์ชั่น

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.