Chainlink Local은 설치 가능한 종속성입니다. 개발자가 Foundry, Hardhat 또는 Remix 프로젝트로 가져올 수 있는 도구(Chainlink Local Simulator)를 제공합니다. 이 도구는 Chainlink CCIP를 로컬에서 실행합니다. 즉, 개발자는 로컬 환경에서 오프체인 CCIP dApp을 신속하게 탐색, 프로토타입 및 반복할 수 있으며 실제 환경에서 테스트할 준비가 된 경우에만 테스트넷으로 이동할 수 있습니다.
이 패키지는 로컬 Remix, Hardhat 또는 Anvil(Foundry) 개발 노드에서 CCIP 토큰 전송 및 임의 메시지를 구축, 배포 및 실행하는 데 사용되는 스마트 계약 및 스크립트 세트를 노출합니다. Chainlink Local은 포크된 노드도 지원합니다.
Chainlink Local로 테스트된 사용자 계약은 수정 없이 테스트 네트워크에 배포될 수 있습니다(라우터 계약 및 LINK 토큰 주소와 같은 네트워크 특정 계약 주소가 생성자를 통해 전달된다고 가정).
더 자세한 문서와 더 많은 예시를 보려면 체인링크 로컬 문서를 방문하세요.
다음을 실행하여 패키지를 설치합니다.
forge install smartcontractkit/chainlink-local
그런 다음 remappings.txt
또는 foundry.toml
파일에서 @chainlink/local/=lib/chainlink-local/
로 리매핑을 설정합니다.
npm install @chainlink/local
"https://github.com/smartcontractkit/chainlink-local/blob/main/src/ccip/CCIPLocalSimulator.sol" 가져오기;
CCIP Local을 설치하고 나면 이제 프로젝트에서 CCIP Local을 사용할 준비가 된 것입니다.
테스트 또는 스크립트 내에서 CCIPLocalSimulator.sol
가져옵니다. 예를 들면 다음과 같습니다.
// test/demo.t.solpragma solidity ^0.8.19;import {Test, console2} from "forge-std/Test.sol";import {IRouterClient, WETH9, LinkToken, BurnMintERC677Helper} from "@chainlink/local/src /ccip/CCIPLocalSimulator.sol";에서 {CCIPLocalSimulator} 가져오기 "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";계약 데모는 테스트입니다. { CCIPLocalSimulator 공개 ccipLocalSimulator;함수 setUp() 공개 { ccipLocalSimulator = 새로운 CCIPLocalSimulator(); (uint64 체인선택기, IRouter클라이언트 소스라우터, IRouter클라이언트 대상Router, WETH9 포장네이티브, 링크토큰 링크토큰, BurnMintERC677도우미 ccipBnM, BurnMintERC677Helper ccipLnM) = ccipLocalSimulator.configuration(); ccipLocalSimulator.requestLinkFromFaucet(수신자, 금액); } }
자세한 문서와 더 많은 예시를 보려면 체인링크 로컬 문서를 방문하세요.
메모
이 튜토리얼은 Chainlink 시스템, 제품 또는 서비스를 사용하는 교육적 사례를 나타내며 Chainlink의 시스템, 제품 및 서비스와 상호 작용하여 이를 자신의 시스템에 통합하는 방법을 보여주기 위해 제공됩니다. 이 템플릿은 어떠한 종류의 보증도 없이 "있는 그대로" 및 "사용 가능한 대로" 제공되며 감사를 받지 않았으며 시스템, 제품 또는 서비스의 사용을 보다 명확하게 하기 위한 주요 점검 또는 오류 처리가 누락될 수 있습니다. 자체 감사 및 모범 사례 적용을 완료하지 않고 프로덕션 환경에서 이 예제의 코드를 사용하지 마십시오. Chainlink Labs, Chainlink Foundation, Chainlink 노드 운영자 모두 코드 오류로 인해 생성된 의도하지 않은 출력에 대해 책임을 지지 않습니다.