Skip to content

Commit

Permalink
Merge branch 'main' into ds-rust-sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
khadni authored Jan 14, 2025
2 parents faff1bb + e8283dd commit d76d3d5
Show file tree
Hide file tree
Showing 14 changed files with 31 additions and 14 deletions.
7 changes: 6 additions & 1 deletion src/components/HeadSEO.astro
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const formattedContentTitle = metadata?.title
? `${metadata.title} | ${SITE.title}`
: `${PAGE.titleFallback} | ${SITE.title}`
const description = metadata?.description ?? SITE.description
const excerpt = metadata?.excerpt ?? description
// Check that the metadata image property exists, else use OPEN_GRAPH.image.src
var canonicalImageSrc = OPEN_GRAPH.image.src
Expand Down Expand Up @@ -41,14 +42,18 @@ const { isApiReference, product, isVersioned } = detectApiReference(currentPage)
<!-- Page Metadata -->
<link rel="canonical" href={canonicalURL} />

<!-- Primary Meta Tags -->
<meta name="description" content={description} />
<meta name="keywords" content={excerpt} />

<!-- OpenGraph Tags -->
<meta property="og:title" content={formattedContentTitle} />
<meta property="og:type" content="article" />
<meta property="og:url" content={canonicalURL} />
<meta property="og:locale" content={SITE.defaultLanguage} />
<meta property="og:image" content={canonicalImageSrc} />
<meta property="og:image:alt" content={OPEN_GRAPH.image.alt} />
<meta name="description" property="og:description" content={description} />
<meta property="og:description" content={description} />
<meta property="og:site_name" content={SITE.title} />

<!-- Twitter Tags -->
Expand Down
2 changes: 1 addition & 1 deletion src/content/any-api/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
section: nodeOperator
date: Last Modified
title: "Getting Started with Any API"
excerpt: "Calling APIs from Smart Contracts"
whatsnext:
{ "Learn how to bring data onchain and do offchain computation using Chainlink Functions": "/chainlink-functions" }
metadata:
excerpt: "Calling APIs from Smart Contracts"
image: "/files/04b8e56-cl.png"
---

Expand Down
7 changes: 5 additions & 2 deletions src/content/ccip/concepts/cross-chain-tokens.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ section: ccip
date: Last Modified
title: "Cross-Chain Token (CCT) standard"
whatsnext: { "CCT Guides": "/ccip/tutorials/cross-chain-tokens" }
metadata:
description: "Chainlink's Cross-Chain Token (CCT) standard enables permissionless listing of tokens in CCIP. Learn how to make your tokens cross-chain compatible or deploy new cross-chain tokens using this self-service standard. Token developers can deploy and configure their own token pools without third-party intervention, streamlining the process of enabling ERC20-compatible tokens for cross-chain operations."
excerpt: "create cct create cross chain token create cross-chain token deploy cross chain token enable token for ccip make token cross chain compatible cross chain token tutorial"
---

import { Aside, ClickToZoom } from "@components"
Expand Down Expand Up @@ -507,7 +510,7 @@ Once the administrator has been proposed and is in a pending state, the final st

The `transferAdminRole` function allows the current token administrator to initiate the transfer of their role to a new administrator. The transfer process is a secure two-step procedure, requiring the new administrator to explicitly accept the role before the transfer is finalized.

1. **Initiate Role Transfer**: The current administrator calls the `transferAdminRole()` function on the **TokenAdminRegistry**, specifying the token address and the new administrators address.
1. **Initiate Role Transfer**: The current administrator calls the `transferAdminRole()` function on the **TokenAdminRegistry**, specifying the token address and the new administrator's address.
1. **Set Pending Administrator**: The **TokenAdminRegistry** contract verifies that the caller is the current administrator of the token and sets the new administrator as **pending**. The role will remain in this pending state until it is accepted.
1. **Accept the Role**: The new administrator must call the `acceptAdminRole()` function to finalize the transfer and assume the administrator role.

Expand All @@ -525,7 +528,7 @@ The `setPool` function allows the token administrator to assign or update the to

1. **Set Token Pool**: The current administrator calls the `setPool()` function on the **TokenAdminRegistry**, providing the token address and the new pool address.
1. **Validate Pool**: If the new pool address is not `address(0)`, the contract validates that the provided pool supports the token by calling `isSupportedToken()` on the pool contract.
1. **Update or Remove Pool**: If validation succeeds, the tokens pool is updated in the registry. Setting the pool to `address(0)` effectively delists the token from cross-chain operations.
1. **Update or Remove Pool**: If validation succeeds, the token's pool is updated in the registry. Setting the pool to `address(0)` effectively delists the token from cross-chain operations.

The sequence diagram below shows how the token administrator sets or updates the pool for a token. If the pool is set to `address(0)`, the token is delisted from cross-chain operations.

Expand Down
6 changes: 6 additions & 0 deletions src/content/ccip/service-responsibility.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ Token Developers may enable token transfers on CCIP for the tokens that they adm
- **Best Practices**: Token Developers are responsible for following the appropriate best practices for creating, managing, and enabling transfers of their tokens on Chainlink CCIP.
- **Risk Management Network coverage**: Token Developers must check the deployment status of the Risk Management Network on the chains they build on, which can be found on the [CCIP Directory](/ccip/directory) page. If the Risk Management Network is not yet active on a chain, Token Developers must validate that its absence conforms to their requirements.
- **Token Developer Attestation**: Token Developers are responsible for ensuring the quality, reliability, and security of their associated attestation endpoint(s). Token Developers are responsible for adhering to specifications as defined by Chainlink Labs and maintaining an up-to-date implementation. Neither Chainlink Labs nor the Chainlink Foundation are responsible for the development, maintenance, or operation of Token Developer Attestation endpoints.
- **Liquidity Management**: Token Developers who choose the **Lock and Mint** or **Lock and Unlock** mechanism must ensure their token pools have sufficient liquidity when releasing tokens. Failure to maintain adequate liquidity can result in stalled or failed cross-chain transfers, causing a degraded user experience. Token Developers are responsible for:

- **Ensuring sufficient liquidity**: Continuously monitor transaction volumes and add liquidity to the pool before it is depleted to avoid having user funds stuck in transit.
- **Avoiding fragmented liquidity**: Where possible, minimize the use of **Lock and Unlock** across multiple blockchains to reduce operational complexity and prevent liquidity from being split across multiple pools.
- **Monitoring liquidity health and automating alerts**: Implement monitoring and alerting systems that notify Token Developers when liquidity drops below certain thresholds, allowing for proactive liquidity management before user transfers fail.
- **Proper use of provideLiquidity and withdrawLiquidity**: Only authorized entities (such as a trusted liquidity manager) should manage liquidity. Ensure all access controls are in place to prevent unauthorized manipulation of the token pool.

Although Token Developers may request that their tokens be added to Transporter, tokens may be added to Transporter at any time even if it has not been explicitly requested.

Expand Down
3 changes: 2 additions & 1 deletion src/content/ccip/tutorials/cross-chain-tokens/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ date: Last Modified
title: "Cross-Chain Token (CCT) Tutorials"
isIndex: true
metadata:
description: "Learn how to deploy and configure cross-chain tokens using CCIP. Step-by-step guides for different deployment methods including Remix IDE, Hardhat, and Foundry."
description: "Complete guide to make your tokens cross-chain compatible using Chainlink's CCT standard. Learn how to deploy new cross-chain tokens or enable existing tokens for CCIP by implementing the Cross-Chain Token (CCT) standard. Step-by-step tutorials using Remix IDE, Hardhat, or Foundry, covering both EOA and Safe Smart Account deployments with Burn & Mint and Lock & Mint mechanisms."
excerpt: "create cct create cross chain token create cross-chain token deploy cross chain token enable token for ccip make token cross chain compatible cross chain token tutorial"
---

import { Aside, ClickToZoom } from "@components"
Expand Down
2 changes: 1 addition & 1 deletion src/content/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const metadata = z
image: z.string().optional(),
linkToWallet: z.boolean().optional(),
canonical: z.string().optional(),
excerpt: z.string().optional(),
})
.optional()

Expand All @@ -56,7 +57,6 @@ const baseFrontmatter = z
isMdx: z.boolean().optional(),
isIndex: z.boolean().optional(),
metadata,
excerpt: z.string().optional(),
datafeedtype: z.string().optional(),
fileExtension: z.string().optional(),
})
Expand Down
3 changes: 2 additions & 1 deletion src/content/data-feeds/ens.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
section: dataFeeds
date: Last Modified
title: "Using ENS with Data Feeds"
excerpt: "Ethereum Name Service"
metadata:
excerpt: "Ethereum Name Service"
---

import { EnsLookupForm } from "../../features/ens/components/EnsLookupForm.tsx"
Expand Down
2 changes: 1 addition & 1 deletion src/content/data-feeds/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
section: dataFeeds
date: Last Modified
title: "Consuming Data Feeds"
excerpt: "Smart Contracts and Chainlink"
whatsnext:
{
"See examples for how to read feeds onchain and offchain": "/data-feeds/using-data-feeds",
Expand All @@ -12,6 +11,7 @@ whatsnext:
metadata:
title: "Consuming Data Feeds"
description: "Learn how to consume Chainlink Data Feeds in your smart contracts."
excerpt: "Smart Contracts and Chainlink"
image: "/files/1a63254-link.png"
---

Expand Down
3 changes: 2 additions & 1 deletion src/content/data-feeds/selecting-data-feeds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
section: dataFeeds
date: Last Modified
title: "Selecting Quality Data Feeds"
excerpt: "Learn how to assess data feeds that you use in your smart contracts."
metadata:
excerpt: "Learn how to assess data feeds that you use in your smart contracts."
---

import { Aside } from "@components"
Expand Down
2 changes: 1 addition & 1 deletion src/content/data-streams/getting-started-hardhat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ date: Last Modified
title: "Getting Started with Chainlink Data Streams (Hardhat CLI)"
metadata:
linkToWallet: true
excerpt: "Learn the basics for how to get data from Chainlink Data Streams."
excerpt: "Learn the basics for how to get data from Chainlink Data Streams."
whatsnext: {
"Find the list of available Stream IDs": "/data-streams/crypto-streams",
"Find the schema of data to expect from Data Streams reports.": "/data-streams/reference/report-schema",
Expand Down
2 changes: 1 addition & 1 deletion src/content/data-streams/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ date: Last Modified
title: "Getting Started with Chainlink Data Streams (Remix)"
metadata:
linkToWallet: true
excerpt: "Learn the basics for how to get data from Chainlink Data Streams."
excerpt: "Learn the basics for how to get data from Chainlink Data Streams."
whatsnext: {
"Find the list of available Stream IDs": "/data-streams/crypto-streams",
"Find the schema of data to expect from Data Streams reports": "/data-streams/reference/report-schema",
Expand Down
2 changes: 1 addition & 1 deletion src/content/getting-started/conceptual-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
section: global
date: Last Modified
title: "Smart Contract Overview"
excerpt: "Smart Contracts and Chainlink"
whatsnext:
{
"Deploy Your First Smart Contract": "/quickstarts/deploy-your-first-contract",
Expand All @@ -11,6 +10,7 @@ whatsnext:
metadata:
title: "Conceptual Overview"
description: "Learn the basic concepts about what smart contracts are and, how to write them, and how Chainlink oracles work with smart contracts."
excerpt: "Smart Contracts and Chainlink"
image: "/files/1a63254-link.png"
---

Expand Down
2 changes: 1 addition & 1 deletion src/content/vrf/v2-5/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
section: vrf
date: Last Modified
title: "Getting Started with Chainlink VRF V2.5"
excerpt: "Using Chainlink VRF"
whatsnext:
{
"Security Considerations": "/vrf/v2-5/security",
Expand All @@ -12,6 +11,7 @@ whatsnext:
metadata:
title: "Getting Started with Chainlink VRF V2.5"
description: "Learn how to use randomness in your smart contracts using Chainlink VRF."
excerpt: "Using Chainlink VRF"
image: "/files/2a242f1-link.png"
---

Expand Down
2 changes: 1 addition & 1 deletion src/content/vrf/v2/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
section: legacy
date: Last Modified
title: "Getting Started with Chainlink VRF"
excerpt: "Using Chainlink VRF"
whatsnext:
{
"Get a Random Number": "/vrf/v2/subscription/examples/get-a-random-number",
Expand All @@ -14,6 +13,7 @@ whatsnext:
metadata:
title: "Getting Started with Chainlink VRF V2"
description: "Learn how to use randomness in your smart contracts using Chainlink VRF."
excerpt: "Using Chainlink VRF"
image: "/files/2a242f1-link.png"
---

Expand Down

0 comments on commit d76d3d5

Please sign in to comment.