Chainlink Local เป็นแบบพึ่งพาที่สามารถติดตั้งได้ โดยจะมีเครื่องมือ (Chainlink Local Simulator) ที่นักพัฒนานำเข้าไปยังโปรเจ็กต์ Foundry, Hardhat หรือ Remix เครื่องมือนี้รัน Chainlink CCIP ภายในเครื่อง ซึ่งหมายความว่านักพัฒนาสามารถสำรวจ สร้างต้นแบบ และทำซ้ำ CCIP dApps แบบออฟไลน์ในสภาพแวดล้อมท้องถิ่นได้อย่างรวดเร็ว และย้ายไปยัง testnet เมื่อพร้อมที่จะทดสอบในสภาพแวดล้อมจริงเท่านั้น
แพ็คเกจเปิดเผยชุดของสัญญาอัจฉริยะและสคริปต์ที่คุณสร้าง ปรับใช้ และดำเนินการถ่ายโอนโทเค็น CCIP และข้อความที่กำหนดเองบนโหนดการพัฒนา Remix, Hardhat หรือ Anvil (Foundry) ในเครื่อง Chainlink Local ยังรองรับโหนดแบบแยกอีกด้วย
สัญญาผู้ใช้ที่ทดสอบกับ Chainlink Local สามารถนำไปใช้ทดสอบเครือข่ายได้โดยไม่ต้องแก้ไขใดๆ (สมมติว่าที่อยู่สัญญาเฉพาะเครือข่าย เช่น สัญญาเราเตอร์และที่อยู่โทเค็น LINK ถูกส่งผ่านเข้ามาผ่านตัวสร้าง)
หากต้องการดูเอกสารโดยละเอียดเพิ่มเติมและตัวอย่างเพิ่มเติม โปรดไปที่เอกสารประกอบภายในของ Chainlink
ติดตั้งแพ็คเกจโดยการรัน:
forge install smartcontractkit/chainlink-local
จากนั้นตั้งค่าการแมปใหม่เป็น: @chainlink/local/=lib/chainlink-local/
ในไฟล์ remappings.txt
หรือ foundry.toml
npm install @chainlink/local
นำเข้า "https://github.com/smartcontractkit/chainlink-local/blob/main/src/ccip/CCIPLocalSimulator.sol";
เมื่อคุณติดตั้ง CCIP Local แล้ว คุณก็พร้อมที่จะเริ่มใช้งานกับโปรเจ็กต์ของคุณแล้ว
นำเข้า CCIPLocalSimulator.sol
ภายในการทดสอบหรือสคริปต์ของคุณ ตัวอย่างเช่น:
// test/demo.t.solpragma solidity ^0.8.19;นำเข้า {Test, console2} จาก "forge-std/Test.sol";นำเข้า {IRouterClient, WETH9, LinkToken, BurnMintERC677Helper} จาก "@chainlink/local/src /ccip/CCIPLocalSimulator.sol";นำเข้า {CCIPLocalSimulator} จาก "@chainlink/local/src/ccip/CCIPLocalSimulator.sol"; การสาธิตสัญญาคือการทดสอบ { CCIPLocalSimulator สาธารณะ ccipLocalSimulator; ฟังก์ชั่นการตั้งค่า () สาธารณะ { ccipLocalSimulator = CCIPLocalSimulator ใหม่ (); (ตัวเลือกโซ่ uint64, IRouterไคลเอนต์แหล่งที่มาเราเตอร์ IRouterไคลเอนต์ปลายทางเราเตอร์ WETH9 ห่อพื้นเมือง ลิงค์โทเค็น ลิงค์โทเค็น, BurnMintERC677ผู้ช่วยccipBnM, BurnMintERC677Helper ccipLnM) = ccipLocalSimulator.configuration(); ccipLocalSimulator.requestLinkFromFaucet(ตัวรับ, จำนวน); - -
หากต้องการดูเอกสารประกอบโดยละเอียดและตัวอย่างเพิ่มเติม โปรดไปที่เอกสารประกอบท้องถิ่นของ Chainlink
บันทึก
บทช่วยสอนนี้เป็นตัวอย่างการศึกษาเกี่ยวกับการใช้ระบบ ผลิตภัณฑ์ หรือบริการของ Chainlink และมีไว้เพื่อสาธิตวิธีโต้ตอบกับระบบ ผลิตภัณฑ์ และบริการของ Chainlink เพื่อรวมเข้ากับระบบของคุณเอง เทมเพลตนี้จัดทำขึ้น "ตามสภาพ" และ "ตามที่มี" โดยไม่มีการรับประกันใดๆ ไม่ได้รับการตรวจสอบ และอาจขาดการตรวจสอบคีย์หรือการจัดการข้อผิดพลาด เพื่อให้การใช้งานระบบ ผลิตภัณฑ์ หรือบริการมีความชัดเจนมากขึ้น อย่าใช้โค้ดในตัวอย่างนี้ในสภาพแวดล้อมการใช้งานจริงโดยไม่ได้ตรวจสอบและนำแนวทางปฏิบัติที่ดีที่สุดไปใช้ ทั้ง Chainlink Labs, Chainlink Foundation หรือผู้ดำเนินการโหนด Chainlink จะไม่รับผิดชอบต่อเอาต์พุตที่ไม่ได้ตั้งใจซึ่งสร้างขึ้นเนื่องจากข้อผิดพลาดในโค้ด