Skip to content

Commit

Permalink
add educational example disclaimer to all CCIP guides
Browse files Browse the repository at this point in the history
  • Loading branch information
gfletcher-cll committed Feb 5, 2025
1 parent f3ccedb commit 8801507
Show file tree
Hide file tree
Showing 24 changed files with 169 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/content/ccip/ccip-javascript-sdk.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,12 @@ You can use `pnpm build` to build both packages together. If you're building eac
"@chainlink/ccip-js": "workspace:*"
```
1. Update the `examples/nextjs` app to use both local `ccip-js` and `ccip-react-components` versions by modifying the `examples/nextjs/package.json` file. Replace the `@chainlink/ccip-js` and `@chainlink/ccip-react-components` dependencies with these relative paths:
```
"@chainlink/ccip-js": "link:../../packages/ccip-js",
` "@chainlink/ccip-js": "link:../../packages/ccip-js",
"@chainlink/ccip-react-components": "link:../../packages/ccip-react-components",
```
`
<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/ccipreceive-gaslimit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -540,3 +540,10 @@ As we have explored various methods for estimating gas for the `ccipReceive` fun
1. **Comprehensive Testing:** Emphasize testing under diverse scenarios to ensure your gas estimations are robust. Different conditions can significantly affect gas usage, so covering as many cases as possible in your tests is crucial.
1. **Preliminary Local Estimates:** Local testing is a critical first step for estimating gas and ensuring your contracts function correctly under various scenarios. While Hardhat and Foundry facilitate development and testing, it's key to remember that these environments may not perfectly mirror your target blockchain's conditions. These initial estimates serve as valuable insights, guiding you toward more accurate gas limit settings when you proceed to testnet validations. Incorporating a buffer based on these preliminary results can help mitigate the risks of underestimating gas requirements due to environmental differences.
1. **Efficiency with Offchain Methods:** Since testing across different blockchains can be resource-intensive, leaning on offchain methods for gas estimation is invaluable. Tools such as Tenderly not only facilitate rapid and accurate gas usage insights on your target blockchains but also enable you to simulate the execution of the `ccipReceive` function on actual contracts deployed on mainnets. If Tenderly doesn't support a particular blockchain, a practical alternative is to use a Web3 provider that does support that chain, as illustrated in the [Estimate gas using a Web3 provider](#estimate-gas-using-a-web3-provider) section. This is particularly helpful when considering the diversity in gas metering rules across blockchains. This approach saves time and enhances the precision of your gas limit estimations, allowing for more cost-effective transactions from your dApp.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/cross-chain-tokens/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,10 @@ The tutorials will implement the logic of this process, which involves deploying

- [Register from a Safe (Burn & Mint)](/ccip/tutorials/cross-chain-tokens/register-from-safe-burn-mint-hardhat): Learn how to register a cross-chain token with the **Burn & Mint** mechanism using a Safe Smart Account.
- [Hardhat version](/ccip/tutorials/cross-chain-tokens/register-from-safe-burn-mint-hardhat)

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -424,3 +424,10 @@ Check status of the message at https://ccip.chain.link/msg/2895eae406f09dd2a9997
```

You can check the status of the message on the [Chainlink CCIP Explorer](https://ccip.chain.link/) using the message ID provided in the output.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -499,3 +499,10 @@ Example output:
2024-12-02T20:57:45.288Z info: ✅ Transferred 100 of 0x16F6b0f41b9217857551e29F38F99975a2fc9add to 0x9d087fC03ae39b088326b67fA3C788236645b717 on chain arbitrumSepolia. Transaction hash: 0xa68375fc560f8910b1c6dda8d6765d0bebd02e2de91f763188e529b5eb007ab4 - CCIP message id: 0xdbf8a93ed33c726d866478ef9c492b5dbba65eb62192a42b63743ce3af86e443
2024-12-02T20:57:45.288Z info: Check status of message on https://ccip.chain.link/msg/0xdbf8a93ed33c726d866478ef9c492b5dbba65eb62192a42b63743ce3af86e443
```

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -427,3 +427,10 @@ You can check the status of the message on the [Chainlink CCIP Explorer](https:/
Your tokens have been locked on the token pool on Avalanche Fuji, the corresponding tokens have been minted on Arbitrum Sepolia and sent to your receiver address.

Note: Since your Lock & Release token pool on Avalanche Fuji has locked some tokens, you can transfer tokens from Arbitrum Sepolia to Avalanche Fuji using CCIP as an exercise. Your tokens will be burned on Arbitrum Sepolia, and the corresponding tokens will be released on Avalanche Fuji. Make sure not to transfer more tokens than the amount of tokens locked in the token pool on Avalanche Fuji.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -508,3 +508,10 @@ Example output:
Your tokens have been locked on the token pool on Avalanche Fuji, the corresponding tokens have been minted on Arbitrum Sepolia and sent to your receiver address.
Note: Since your Lock & Release token pool on Avalanche Fuji has locked some tokens, you can transfer tokens from Arbitrum Sepolia to Avalanche Fuji using CCIP as an exercise. Your tokens will be burned on Arbitrum Sepolia, and the corresponding tokens will be released on Avalanche Fuji. Make sure not to transfer more tokens than the amount of tokens locked in the token pool on Avalanche Fuji.
<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,10 @@ Any modern web browser
<ChainUpdateBuilderWrapper chain="destination" client:load />

<PoolConfigVerification chain="destination" client:load />

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -864,3 +864,10 @@ $ npx hardhat transferTokens --tokenaddress 0xee78C4D525Df5591ba1F3e697A28a84b83
```

You can check the status of the message on the [Chainlink CCIP Explorer](https://ccip.chain.link) by visiting the provided URL. In this example, the message ID is `0x5cd29ba4c7e4517d5a5c9df49fb03c59020a2163a4dc7617101eb682fd63f44b`.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -460,3 +460,10 @@ In the example below, we use a token pool at address `0x50b9a80719A2348D3a2d91f1
```

Notice in the logs that the transfer failed because the rate limit was exceeded: `TokenRateLimitReached`.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -547,3 +547,10 @@ In the example below, we use a token pool at address `0xa6aca9013b111228433da2ae
```

Notice in the logs that the transfer failed because the rate limit was exceeded: `TokenRateLimitReached`.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/get-status-offchain.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,10 @@ To query the status of the provided CCIP message ID, the script completes the fo
4. Query each matching OffRamp contract for an event related to the message ID

If an event is found, the script reads the status from the arguments. It translates the numeric status into a human-readable status and logs this information.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,10 @@ You can explore several comprehensive guides to learn about cross-chain interope
- [Manual Execution](/ccip/tutorials/manual-execution)
- [Optimizing Gas Limit Settings in CCIP Messages](/ccip/tutorials/ccipreceive-gaslimit)
- [Acquire Test Tokens](/ccip/test-tokens)

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/manual-execution.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -243,3 +243,10 @@ Client.EVMExtraArgsV2({
```

<CcipCommon callout="senderContractCallout" />

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
7 changes: 7 additions & 0 deletions src/content/ccip/tutorials/offchain.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,10 @@ These tutorials focus on direct interaction between Externally Owned Accounts (E

- [Transfer Tokens between EOAs](/ccip/tutorials/transfer-tokens-from-eoa): Learn how to transfer tokens between Externally Owned Accounts (EOAs) across different blockchains, using Chainlink CCIP.
- [Checking CCIP Message Status Off-Chain](/ccip/tutorials/get-status-offchain): Learn how to verify the status of Chainlink CCIP messages offchain using JavaScript.

<Aside type="caution" title="Educational Example Disclaimer">
This page includes an educational example to use a Chainlink system, product, or service and is provided to demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be missing key checks or error handling to make the usage of the system, product or service more clear.

Do not use the code in this example in a production environment without completing your own audits and application of best practices. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs that are generated due to errors in code.

</Aside>
Loading

0 comments on commit 8801507

Please sign in to comment.