CCIP Bootcamp
CCIP Bootcamp Aug 2024
CCIP Bootcamp Aug 2024
  • 💻Setup Instructions
  • 1️⃣Day 1
    • Welcome to CCIP Bootcamp!
    • SmartCon
    • Tokenizated RWA Bootcamp
    • Meet Our Instructors
    • Transporter, powered by CCIP
    • Introduction to Interoperability Problem and Chainlink CCIP
      • How CCIP Programmable Token Transfers Unlock Cross-Chain Innovation
      • CCIP Programmable Token Transfers in TradFi
      • CCIP Programmable Token Transfers in DeFi
    • How to Use Chainlink CCIP
    • Exercise 1: Programmable Token Transfers using the Defensive Example Pattern
      • Defensive Example Pattern
    • Day 1 Homework
    • A talk with the Interport team
  • 2️⃣Day 2
    • CCIP Architecture and Message Processing
    • Building Cross-Chain NFTs
    • Exercise 2: Build Your First Cross-Chain NFT
    • Exercise 3: Testing Cross-Chain contracts using Chainlink Local
    • Debugging Tips and Tricks
    • Day 2 Homework
    • A talk with the Celo team
  • 3️⃣Day 3
    • 5 Levels of Cross-Chain Security with Chainlink CCIP
    • Exercise 4: Sending USDC Cross-Chain
    • Day 3 Homework
  • 🛣️Next Steps
Powered by GitBook
On this page
Export as PDF
  1. Day 2

Day 2 Homework

Please note, only participants who finish their homework for all three days will be eligible for the Certificate of Completion.

PreviousDebugging Tips and TricksNextA talk with the Celo team

Last updated 9 months ago

Submit your public GitHub repo for the exercise below via

Using chainlink-local write a test for the project. You can use for help.

During the Exercise #3 we used Chainlink Local's Forked Mode with Foundry. For this homework you should use Chainlink Local's Local Mode with Hardhat.

In the test you must:

  • Create an instance of CCIPLocalSimulator.sol smart contract.

  • Call the configuration() function to get Router contract address.

  • Create instances of CrossChainNameServiceRegister.sol, CrossChainNameServiceReceiver.sol and CrossChainNameServiceLookup.sol smart contracts and call the enableChain() function where needed.

  • Call the setCrossChainNameServiceAddress function of the CrossChainNameServiceLookup.sol smart contract "source" instance and provide the address of the CrossChainNameServiceRegister.sol smart contract instance. Repeat the process for the CrossChainNameServiceLookup.sol smart contract "receiver" instance and provide the address of the CrossChainNameServiceReceiver.sol smart contract instance.

  • Call the register() function and provide “alice.ccns” and Alice’s EOA address as function arguments.

  • Call the lookup() function and provide “alice.ccns” as a function argument. Assert that the returned address is Alice’s EOA address.

  • Send a url pointing to the public Github repository.

DO NOT PROVIDE PRIVATE KEY OR TESTNET RPC DETAILS, USE HARDHAT NETWORK ONLY! npx hardhat test --network hardhat

2️⃣
this form
https://github.com/smartcontractkit/ccip-cross-chain-name-service
https://cll-devrel.gitbook.io/chainlink-local-documentation