From b300a182e6bd6da2b8c8f9d456918643e12fba6b Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:45:22 -0500 Subject: [PATCH 1/9] test --- astro.config.ts | 9 ++++++--- src/scripts/link-check/linkcheck.ts | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/astro.config.ts b/astro.config.ts index 14499141024..c5c45d457c6 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -10,7 +10,9 @@ import sitemap from "@astrojs/sitemap" import { RehypePlugins } from "@astrojs/markdown-remark" import yaml from "@rollup/plugin-yaml" -// https://astro.build/config +// Determine if we're building for link checking (static) or deployment (Vercel) +const isStaticBuild = process.env.BUILD_MODE === "static" + export default defineConfig({ site: "https://docs.chain.link", redirects: { @@ -44,8 +46,9 @@ export default defineConfig({ syntaxHighlight: "prism", smartypants: false, }, - output: "hybrid", - adapter: vercel(), + // Conditionally set output mode and adapter + output: isStaticBuild ? "static" : "hybrid", + adapter: isStaticBuild ? undefined : vercel(), vite: { plugins: [yaml()], }, diff --git a/src/scripts/link-check/linkcheck.ts b/src/scripts/link-check/linkcheck.ts index 4e6e963bd2e..b95cebbdb5d 100644 --- a/src/scripts/link-check/linkcheck.ts +++ b/src/scripts/link-check/linkcheck.ts @@ -3,6 +3,10 @@ import { existsSync, readFileSync, writeFileSync, createWriteStream, statSync, m import { Readable } from "node:stream" import { exit, cwd, stdout } from "process" +process.env.BUILD_MODE = "static" +process.env.GRAPHQL_SERVER_URL = "dummy" +process.env.GRAPHQL_API_TOKEN = "dummy" + const tempDir = `${cwd()}/temp` if (!existsSync(tempDir)) { mkdirSync(tempDir) From 58c62cbde3627b002cfd6bbfc865ba6092ef73a3 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:03:12 -0500 Subject: [PATCH 2/9] link fix --- src/content/chainlink-nodes/v1/node-config.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/chainlink-nodes/v1/node-config.mdx b/src/content/chainlink-nodes/v1/node-config.mdx index 9388cfd0820..23f7b52e213 100644 --- a/src/content/chainlink-nodes/v1/node-config.mdx +++ b/src/content/chainlink-nodes/v1/node-config.mdx @@ -9257,7 +9257,7 @@ Finality for a block is solely defined by the finality related tags provided by FlagsContractAddress = '0xae4E781a6218A8031764928E88d457937A954fC3' # Example ``` -FlagsContractAddress can optionally point to a [Flags contract](../contracts/src/v0.8/Flags.sol). If set, the node will lookup that contract for each job that supports flags contracts (currently OCR and FM jobs are supported). If the job's contractAddress is set as hibernating in the FlagsContractAddress address, it overrides the standard update parameters (such as heartbeat/threshold). +FlagsContractAddress can optionally point to a [Flags contract](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.8/Flags.sol). If set, the node will lookup that contract for each job that supports flags contracts (currently OCR and FM jobs are supported). If the job's contractAddress is set as hibernating in the FlagsContractAddress address, it overrides the standard update parameters (such as heartbeat/threshold). ### LinkContractAddress From 83c60b59e4d5d00f215daaef2a2e6d53d4b5ce81 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:15:01 -0500 Subject: [PATCH 3/9] exclude ccip directory from internal link checking --- src/scripts/link-check/ignoredfiles.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/scripts/link-check/ignoredfiles.txt b/src/scripts/link-check/ignoredfiles.txt index bde15fcc5c2..a9eeb85f6ee 100644 --- a/src/scripts/link-check/ignoredfiles.txt +++ b/src/scripts/link-check/ignoredfiles.txt @@ -1,3 +1,6 @@ # TODO: linkcheck is not playing well with some css files generated at build time assets\/.*.css$ -_astro\/.*.css$ \ No newline at end of file +_astro\/.*.css$ + +# Exclude /ccip/directory/* URLs from internal link checking +\/ccip\/directory\/.* \ No newline at end of file From 65451f969fa26591ece0943dbcf8df71ae12fcd8 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:28:10 -0500 Subject: [PATCH 4/9] fix internal links --- src/components/QuickLinks/data/productChainLinks.ts | 4 ++-- src/content/chainlink-nodes/v1/node-config.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/QuickLinks/data/productChainLinks.ts b/src/components/QuickLinks/data/productChainLinks.ts index 852672b1f8f..de97c1870f3 100644 --- a/src/components/QuickLinks/data/productChainLinks.ts +++ b/src/components/QuickLinks/data/productChainLinks.ts @@ -99,12 +99,12 @@ export const productChainLinks: ProductChainLinks = { logo: automationLogo, chains: { arbitrum: "/chainlink-automation/overview/supported-networks#arbitrum", - avalanche: "/chainlink-automation/overview/supported-networks#avalanche-mainnet", + avalanche: "/chainlink-automation/overview/supported-networks#avalanche", base: "/chainlink-automation/overview/supported-networks#base", "bnb-chain": "/chainlink-automation/overview/supported-networks#bnb-chain", ethereum: "/chainlink-automation/overview/supported-networks#ethereum", fantom: "/chainlink-automation/overview/supported-networks#fantom", - "gnosis-chain": "/chainlink-automation/overview/supported-networks#gnosis-chain-xdai", + "gnosis-chain": "/chainlink-automation/overview/supported-networks#gnosis", optimism: "/chainlink-automation/overview/supported-networks#optimism", polygon: "/chainlink-automation/overview/supported-networks#polygon", }, diff --git a/src/content/chainlink-nodes/v1/node-config.mdx b/src/content/chainlink-nodes/v1/node-config.mdx index 23f7b52e213..57d2cdbdedc 100644 --- a/src/content/chainlink-nodes/v1/node-config.mdx +++ b/src/content/chainlink-nodes/v1/node-config.mdx @@ -640,7 +640,7 @@ HTTPWriteTimeout controls how long the Chainlink node's API server can hold a so HTTPPort = 6688 # Default ``` -HTTPPort is the port used for the Chainlink Node API, [CLI](/docs/configuration-variables/#cli-client), and GUI. +HTTPPort is the port used for the Chainlink Node API, CLI, and GUI. ### SecureCookies From 2ea2db4480f7f2095bc7a56ae5a230c2dec03063 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:27:54 -0500 Subject: [PATCH 5/9] use dev server --- astro.config.ts | 9 +++------ src/scripts/link-check/ignoredfiles.txt | 5 ++++- src/scripts/link-check/linkcheck.ts | 6 +----- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/astro.config.ts b/astro.config.ts index c5c45d457c6..14499141024 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -10,9 +10,7 @@ import sitemap from "@astrojs/sitemap" import { RehypePlugins } from "@astrojs/markdown-remark" import yaml from "@rollup/plugin-yaml" -// Determine if we're building for link checking (static) or deployment (Vercel) -const isStaticBuild = process.env.BUILD_MODE === "static" - +// https://astro.build/config export default defineConfig({ site: "https://docs.chain.link", redirects: { @@ -46,9 +44,8 @@ export default defineConfig({ syntaxHighlight: "prism", smartypants: false, }, - // Conditionally set output mode and adapter - output: isStaticBuild ? "static" : "hybrid", - adapter: isStaticBuild ? undefined : vercel(), + output: "hybrid", + adapter: vercel(), vite: { plugins: [yaml()], }, diff --git a/src/scripts/link-check/ignoredfiles.txt b/src/scripts/link-check/ignoredfiles.txt index a9eeb85f6ee..736e34c88a3 100644 --- a/src/scripts/link-check/ignoredfiles.txt +++ b/src/scripts/link-check/ignoredfiles.txt @@ -3,4 +3,7 @@ assets\/.*.css$ _astro\/.*.css$ # Exclude /ccip/directory/* URLs from internal link checking -\/ccip\/directory\/.* \ No newline at end of file +\/ccip\/directory\/.* + +sitemap-index.xml +@vite/client \ No newline at end of file diff --git a/src/scripts/link-check/linkcheck.ts b/src/scripts/link-check/linkcheck.ts index b95cebbdb5d..abb6c4d548a 100644 --- a/src/scripts/link-check/linkcheck.ts +++ b/src/scripts/link-check/linkcheck.ts @@ -3,10 +3,6 @@ import { existsSync, readFileSync, writeFileSync, createWriteStream, statSync, m import { Readable } from "node:stream" import { exit, cwd, stdout } from "process" -process.env.BUILD_MODE = "static" -process.env.GRAPHQL_SERVER_URL = "dummy" -process.env.GRAPHQL_API_TOKEN = "dummy" - const tempDir = `${cwd()}/temp` if (!existsSync(tempDir)) { mkdirSync(tempDir) @@ -95,7 +91,7 @@ try { exit(1) } -server = spawn("npm", ["run", "preview"], { +server = spawn("npm", ["run", "dev"], { stdio: ["ignore", "pipe", "pipe"], }) From 358b9d740ed0e786777a3183e82763415958f29c Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:19:56 -0500 Subject: [PATCH 6/9] parallel jobs --- .github/workflows/test.yml | 90 ++++++++++++++++++++++++++++++++------ 1 file changed, 76 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 797b6bff108..57fc5ef3655 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,27 +2,89 @@ name: Test on: [push, pull_request] jobs: - test: - name: Test + # Job 1: Check Solidity Compilation and Solhint + solidity: runs-on: ubuntu-latest - defaults: - run: - working-directory: ./ steps: - name: Checkout Repo - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@v4 + + - name: Cache NPM dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Install Dependencies - run: npm i + run: npm ci + - name: Check Solidity Compilation run: npm run sol:compile + - name: Check Solidity Solhint run: npm run lint-solc - - name: Check Eslint + + # Job 2: Check ESLint + eslint: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Cache NPM dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Check ESLint run: npm run lint - - name: Build - run: npm run build - # TODO: fix css files throwing 404 errors - - name: Check internal links + + # Job 3: Check Internal Links + linkcheck-internal: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Cache NPM dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Check Internal Links run: npm run linkcheck-internal - - name: Check types - run: npm run typecheck \ No newline at end of file + + # Job 4: Check Types + typecheck: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Cache NPM dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Check Types + run: npm run typecheck From 616267e7f7ba03ccdf6379db91676159edd61ec2 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:25:40 -0500 Subject: [PATCH 7/9] Trigger Vercel deployment From 7cd28292219cc1a0c4cf99e39fb8781f5e9b5612 Mon Sep 17 00:00:00 2001 From: aelmanaa Date: Tue, 10 Dec 2024 17:19:22 +0100 Subject: [PATCH 8/9] update urls --- .../ccip/api-reference/v1.5.1/client.mdx | 6 ++-- src/content/ccip/architecture.mdx | 2 +- .../ccip/concepts/cross-chain-tokens.mdx | 14 ++++++---- src/content/ccip/service-limits.mdx | 28 +++++++++---------- .../tutorials/cross-chain-tokens/index.mdx | 2 +- src/features/ccip/GasLimitPool.mdx | 2 +- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/content/ccip/api-reference/v1.5.1/client.mdx b/src/content/ccip/api-reference/v1.5.1/client.mdx index 38b0136acdf..e019394285c 100644 --- a/src/content/ccip/api-reference/v1.5.1/client.mdx +++ b/src/content/ccip/api-reference/v1.5.1/client.mdx @@ -79,7 +79,9 @@ struct EVM2AnyMessage { | feeToken | address | Address of feeToken. address(0) means you will send msg.value. | | extraArgs | bytes | Populate this with \_argsToBytes(EVMExtraArgsV2). | -### EVMExtraArgsV1 +### EVMExtraArgs + +#### EVMExtraArgsV1 ```solidity bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9; @@ -89,7 +91,7 @@ struct EVMExtraArgsV1 { } ``` -### EVMExtraArgsV2 +#### EVMExtraArgsV2 ```solidity bytes4 public constant EVM_EXTRA_ARGS_V2_TAG = 0x181dcf10; diff --git a/src/content/ccip/architecture.mdx b/src/content/ccip/architecture.mdx index b800d8a2636..0e288373da7 100644 --- a/src/content/ccip/architecture.mdx +++ b/src/content/ccip/architecture.mdx @@ -181,7 +181,7 @@ Chainlink CCIP token transfers benefit from rate limits for additional security. You can find the complete list of lanes and their rate limits on the [CCIP Directory](/ccip/directory) page. -The rate limits are enforced at both the source and destination blockchains for maximum security. If these rate limits are reached, descriptive errors with detailed information are generated and returned to the sender. This enables CCIP users to gracefully handle these errors within their dApps to preserve the end-user experience. A comprehensive list of errors and their descriptions is available on the [errors API reference](/ccip/api-reference/v1.5.1/errors#ratelimiter) page. +The rate limits are enforced at both the source and destination blockchains for maximum security. If these rate limits are reached, descriptive errors with detailed information are generated and returned to the sender. This enables CCIP users to gracefully handle these errors within their dApps to preserve the end-user experience. A comprehensive list of errors and their descriptions is available on the [errors API reference](/ccip/api-reference/v1.5.1/errors#rate-limiter-errors) page. ### Token pool rate limit diff --git a/src/content/ccip/concepts/cross-chain-tokens.mdx b/src/content/ccip/concepts/cross-chain-tokens.mdx index 444bf17c418..ea23b44a9a4 100644 --- a/src/content/ccip/concepts/cross-chain-tokens.mdx +++ b/src/content/ccip/concepts/cross-chain-tokens.mdx @@ -450,7 +450,7 @@ The **Token Pool contract** is responsible for executing the cross-chain token t - **BurnMintTokenPool**: Handles the burning, or minting of tokens depending whether it is the source or destination blockchain. - **LockReleaseTokenPool**: Handles the locking or releasing of tokens depending on whether it is the source or destination blockchain. -For more information on the token pool contracts and their functionalities, refer to the [Requirement for Token Pools](#requirement-for-token-pools) section. +For more information on the token pool contracts and their functionalities, refer to the [Requirement for Token Pools](#requirements-for-token-pools) section. ### Registration @@ -548,13 +548,15 @@ The configuration of token pools includes adding new blockchains, setting remote - **Usage**: - To add a new blockchain, the pool owner provides the remote chain selector, pool address, token address, and rate limiter configurations. - To remove a blockchain, the `allowed` flag is set to `false`, and the chain is removed from the list of supported chains. -1. [`setRemotePool`](/ccip/api-reference/v1.5.1/token-pool#setremotepool): +1. [`addRemotePool`](/ccip/api-reference/v1.5.1/token-pool#addremotepool): - - **Purpose**: Set the remote pool's address to link the current token pool to a corresponding pool on a remote blockchain. + - **Purpose**: Adds a new remote pool address for a specific blockchain, enabling support for multiple pools per chain. - **Details**: - - This function is used to establish the connection between token pools on different blockchains. - - It validates the provided chain selector and updates the remote pool address for the selected chain. - - **Usage**: This function sets or updates the remote pool address for a specific blockchain. + - Allows adding multiple pools for a single chain selector, which is crucial during pool upgrades + - Maintains support for in-flight messages from existing pools while adding new ones + - Validates chain selector support and prevents duplicate pool additions + - Each pool address is hashed and stored for efficient lookup + - **Usage**: This function is particularly useful during pool upgrades, allowing seamless transitions between pool versions while maintaining transaction support. 1. [`setChainRateLimiterConfig`](/ccip/api-reference/v1.5.1/token-pool#setchainratelimiterconfig): diff --git a/src/content/ccip/service-limits.mdx b/src/content/ccip/service-limits.mdx index ff397bd72f8..ea5a737b31a 100644 --- a/src/content/ccip/service-limits.mdx +++ b/src/content/ccip/service-limits.mdx @@ -21,20 +21,20 @@ import CcipCommon from "@features/ccip/CcipCommon.astro" use this [contact form](https://chain.link/ccip-contact?v=Tokens:%20Gas%20limit%20update) to request assistance. -| Item | Description | Limit | -| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| Maximum message `data` length | `data` payload sent within the [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 30 kilobytes | -| Message Gas Limit | User specified [gas limit](/ccip/api-reference/v1.5.1/client#evmextraargsv1) | 3,000,000 | -| Maximum number of tokens | Maximum number of distinct tokens a user can transfer in a single transaction | 1 | -| Smart Execution time window | Maximum duration for the execution of a [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 8 hours | -| Token Pool Execution Gas Limit | Maximum gas for executing the combined steps in token pools during cross-chain transfers, including: (1) `balanceOf` check before minting/releasing, (2) `releaseOrMint` function, and (3) `balanceOf` check after minting/releasing. For more details on building custom token pools and handling gas constraints, refer to the [Token Pools documentation](/ccip/concepts/cross-chain-tokens#requirement-for-token-pools). | 90,000 | +| Item | Description | Limit | +| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | +| Maximum message `data` length | `data` payload sent within the [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 30 kilobytes | +| Message Gas Limit | User specified [gas limit](/ccip/api-reference/v1.5.1/client#evmextraargsv1) | 3,000,000 | +| Maximum number of tokens | Maximum number of distinct tokens a user can transfer in a single transaction | 1 | +| Smart Execution time window | Maximum duration for the execution of a [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 8 hours | +| Token Pool Execution Gas Limit | Maximum gas for executing the combined steps in token pools during cross-chain transfers, including: (1) `balanceOf` check before minting/releasing, (2) `releaseOrMint` function, and (3) `balanceOf` check after minting/releasing. For more details on building custom token pools and handling gas constraints, refer to the [Token Pools documentation](/ccip/concepts/cross-chain-tokens#requirements-for-token-pools). | 90,000 | ## Testnet -| Item | Description | Limit | -| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| Maximum message `data` length | `data` payload sent within the [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 30 kilobytes | -| Message Gas Limit | User specified [gas limit](/ccip/api-reference/v1.5.1/client#evmextraargsv1) | 3,000,000 | -| Maximum number of tokens | Maximum number of distinct tokens a user can transfer in a single transaction | 1 | -| Smart Execution timeframe | Maximum duration for the execution of a [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 8 hours | -| Token Pool Execution Gas Limit | Maximum gas for executing the combined steps in token pools during cross-chain transfers, including: (1) `balanceOf` check before minting/releasing, (2) `releaseOrMint` function, and (3) `balanceOf` check after minting/releasing. For more details on building custom token pools and handling gas constraints, refer to the [Token Pools documentation](/ccip/concepts/cross-chain-tokens#requirement-for-token-pools). | 90,000 | +| Item | Description | Limit | +| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | +| Maximum message `data` length | `data` payload sent within the [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 30 kilobytes | +| Message Gas Limit | User specified [gas limit](/ccip/api-reference/v1.5.1/client#evmextraargsv1) | 3,000,000 | +| Maximum number of tokens | Maximum number of distinct tokens a user can transfer in a single transaction | 1 | +| Smart Execution timeframe | Maximum duration for the execution of a [CCIP message](/ccip/api-reference/v1.5.1/client#evm2anymessage) | 8 hours | +| Token Pool Execution Gas Limit | Maximum gas for executing the combined steps in token pools during cross-chain transfers, including: (1) `balanceOf` check before minting/releasing, (2) `releaseOrMint` function, and (3) `balanceOf` check after minting/releasing. For more details on building custom token pools and handling gas constraints, refer to the [Token Pools documentation](/ccip/concepts/cross-chain-tokens#requirements-for-token-pools). | 90,000 | diff --git a/src/content/ccip/tutorials/cross-chain-tokens/index.mdx b/src/content/ccip/tutorials/cross-chain-tokens/index.mdx index 5bd2de0711f..cd17d7739fe 100644 --- a/src/content/ccip/tutorials/cross-chain-tokens/index.mdx +++ b/src/content/ccip/tutorials/cross-chain-tokens/index.mdx @@ -31,7 +31,7 @@ In the following tutorials, we will walk through each step of the process to giv 1. **Token Deployment**: If the token is not yet deployed, you'll deploy an [ERC20-compatible token](/ccip/concepts/cross-chain-tokens#requirements-for-cross-chain-tokens). 2. **Admin Registration**: The token administrator must be registered in the [`TokenAdminRegistry`](/ccip/api-reference/v1.5.1/token-admin-registry) via self-service. -3. **Pool Deployment and Configuration**: [Token pools](/ccip/concepts/cross-chain-tokens#requirement-for-token-pools) are deployed, linked to tokens, and configured to manage cross-chain token transfers. +3. **Pool Deployment and Configuration**: [Token pools](/ccip/concepts/cross-chain-tokens#requirements-for-token-pools) are deployed, linked to tokens, and configured to manage cross-chain token transfers. The tutorials will implement the logic of this process, which involves deploying and configuring token pools and registering administrative roles, step-by-step. diff --git a/src/features/ccip/GasLimitPool.mdx b/src/features/ccip/GasLimitPool.mdx index 3558172cf0f..9b78656cf36 100644 --- a/src/features/ccip/GasLimitPool.mdx +++ b/src/features/ccip/GasLimitPool.mdx @@ -5,5 +5,5 @@ import { Aside } from "@components" limit restrictions. The `releaseOrMint` function and other operations (e.g., balance checks) must not exceed the **90,000** gas limit on the destination blockchain. Failure to meet these requirements can lead to [manual execution](/ccip/concepts/manual-execution). For more details, refer to the [Requirements for Token - Pools](/ccip/concepts/cross-chain-tokens#requirement-for-token-pools). + Pools](/ccip/concepts/cross-chain-tokens#requirements-for-token-pools). From d5ebfc34e730c211ed1c5107eed267d7dce51bd1 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:50:21 -0500 Subject: [PATCH 9/9] fix ignored files --- ...redfiles.txt => ignoredfiles-internal.txt} | 0 src/scripts/link-check/linkcheck.ts | 20 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) rename src/scripts/link-check/{ignoredfiles.txt => ignoredfiles-internal.txt} (100%) diff --git a/src/scripts/link-check/ignoredfiles.txt b/src/scripts/link-check/ignoredfiles-internal.txt similarity index 100% rename from src/scripts/link-check/ignoredfiles.txt rename to src/scripts/link-check/ignoredfiles-internal.txt diff --git a/src/scripts/link-check/linkcheck.ts b/src/scripts/link-check/linkcheck.ts index abb6c4d548a..395ce4657ee 100644 --- a/src/scripts/link-check/linkcheck.ts +++ b/src/scripts/link-check/linkcheck.ts @@ -63,10 +63,26 @@ const processSiteMap = (baseUrl: string): string => { const regex = /(?.*?)<\/loc>/gm const links: string[] = [] + // Use the appropriate ignore file based on mode + const ignoredPatternsFile = + mode === "external" + ? `${cwd()}/src/scripts/link-check/ignoredfiles-external.txt` + : `${cwd()}/src/scripts/link-check/ignoredfiles-internal.txt` + + const ignoredPatterns = readFileSync(ignoredPatternsFile, "utf8") + .split("\n") + .filter((line) => line && !line.startsWith("#")) + .map((pattern) => new RegExp(pattern)) + for (const loc of data.matchAll(regex)) { const link = loc.groups?.link if (link) { - links.push(link.replace("https://docs.chain.link", baseUrl)) + const normalizedLink = link.replace("https://docs.chain.link", baseUrl) + // Only add the link if it doesn't match any of the ignored patterns + const shouldInclude = !ignoredPatterns.some((pattern) => pattern.test(normalizedLink)) + if (shouldInclude) { + links.push(normalizedLink) + } } } @@ -121,7 +137,7 @@ server.stdout.on("data", (data) => { "--input-file", linksFile, "--skip-file", - `${cwd()}/src/scripts/link-check/ignoredfiles.txt`, + `${cwd()}/src/scripts/link-check/ignoredfiles-internal.txt`, "--hosts", baseUrl, ]