Skip to content

Commit 8b96b93

Browse files
CLA deprecation banner (#1984)
* CLA deprecation banner * Edit 2.1 into migration page title --------- Co-authored-by: Dwight Lyle <[email protected]>
1 parent 0482703 commit 8b96b93

File tree

10 files changed

+42
-15
lines changed

10 files changed

+42
-15
lines changed

src/config/sidebar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ export const SIDEBAR: Partial<Record<Sections, SectionEntry[]>> = {
405405
url: "chainlink-automation/overview/automation-release-notes",
406406
},
407407
{
408-
title: "Migrate to Automation V2",
408+
title: "Migrate to Automation v2.1",
409409
url: "chainlink-automation/guides/migrate-to-v2",
410410
},
411411
],

src/content/chainlink-automation/concepts/best-practice.mdx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,19 @@ whatsnext:
1010
}
1111
---
1212

13+
import { Aside } from "@components"
14+
1315
This guide outlines the best practices when using Chainlink Automation. These best practices are important for using Chainlink Automation securely and reliably when you [create Automation-compatible contracts](/chainlink-automation/guides/compatible-contracts).
1416

1517
### Use the latest version of Chainlink Automation
1618

17-
To get the best reliability and security guarantees for your upkeep, use the latest version of Chainlink Automation and [migrate existing upkeeps](/chainlink-automation/guides/migrate-to-v2). Versions earlier than 2.1 are no longer supported, and existing upkeeps on versions earlier than 2.1 will stop being performed on August 29, 2024.
19+
To get the best reliability and security guarantees for your upkeep, use the latest version of Chainlink Automation.
20+
21+
<Aside type="caution" title="Deprecation of older upkeeps">
22+
[Migrate existing upkeeps](/chainlink-automation/guides/migrate-to-v2) before **August 29, 2024**. Versions earlier
23+
than 2.1 are no longer supported, and existing upkeeps on versions earlier than 2.1 will stop being performed on
24+
August 29, 2024.
25+
</Aside>
1826

1927
### Make registry and registrar addresses configurable
2028

src/content/chainlink-automation/guides/forwarder.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This tutorial explains how to use the `Forwarder` to add additional security to
1616

1717
## What is a Forwarder? When is it used?
1818

19-
Starting with Automation 2.0, each registered upkeep under the Chainlink Automation network will have its own unique `Forwarder` contract. The `Forwarder` address will only be known after registration, as we deploy a new forwarder for each upkeep. The `Forwarder` contract is the intermediary between the Automation Registry and your Upkeep contract. The `Forwarder` will always be the `msg.Sender` for your upkeep.
19+
Each registered upkeep under the Chainlink Automation network has its own unique `Forwarder` contract. The `Forwarder` address will only be known after registration, as we deploy a new forwarder for each upkeep. The `Forwarder` contract is the intermediary between the Automation Registry and your Upkeep contract. The `Forwarder` is always the `msg.Sender` for your upkeep.
2020

2121
If your `performUpkeep` function is open and callable by anyone without risk of accepting unintentional external data, you don't need to use the `Forwarder`.
2222

@@ -27,7 +27,7 @@ If your upkeep's perform function needs to be permissioned, please consider addi
2727
To make this work you will need to:
2828

2929
- Create `forwarder` as a mutable address variable on your contract that only _you_ can update. `forwarder` is a unique value that cannot change for your upkeep.
30-
- Create `setForwarder` function so you can update the `forwarder` address
30+
- Create `setForwarder` function so you can update the `forwarder` address.
3131
- After registration run `setForwarder` with the forwarder address in your UI, or programmatically fetch it using `registry.getForwarder(upkeepID)` using the Registry interface.
3232

3333
## Code example

src/content/chainlink-automation/guides/manage-upkeeps.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ whatsnext:
1111
---
1212

1313
import { Aside } from "@components"
14+
import ChainlinkAutomation from "@features/chainlink-automation/common/ChainlinkAutomation.astro"
15+
16+
<ChainlinkAutomation callout="deprecation" />
1417

1518
Manage your Upkeeps to get the best performance.
1619

src/content/chainlink-automation/guides/migrate-to-v2.mdx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
22
section: automation
33
date: Last Modified
4-
title: "Migrate to v2"
4+
title: "Migrate to v2.1"
55
---
66

77
import { Aside, ClickToZoom } from "@components"
88

9-
Chainlink Automation 2.0 is a consensus-driven Automation solution that allows you to cut onchain gas costs by using cryptographically verified offchain compute. Automation 2.0 provides 10M gas worth of offchain compute, which is significantly more than previous versions. Additionally, Automation 2.0 provides increased reliability, performance, log trigger capability, and the ability to use `StreamsLookup` to retrieve Data Streams.
9+
Chainlink Automation 2.1 is a consensus-driven Automation solution that allows you to cut onchain gas costs by using cryptographically verified offchain compute. Automation 2.1 provides 10M gas worth of offchain compute, which is significantly more than previous versions. Additionally, Automation 2.1 provides increased reliability, performance, log trigger capability, and the ability to use `StreamsLookup` to retrieve Data Streams.
1010

11-
You can migrate most upkeeps that use Automation version 1.2 and later in the [Chainlink Automation App](https://automation.chain.link/) or [in the block scanner](#migrating-upkeeps-using-block-scanner). When you migrate upkeeps through the registry, you retain the Upkeep ID. Before you migrate, read the [migration checklist](#migration-checklist) to maximize your benefits from Automation 2.0.
11+
You can migrate most upkeeps that use Automation version 1.2 and later in the [Chainlink Automation App](https://automation.chain.link/) or [in the block scanner](#migrating-upkeeps-using-block-scanner). When you migrate upkeeps through the registry, you retain the Upkeep ID. Before you migrate, read the [migration checklist](#migration-checklist) to maximize your benefits from Automation 2.1.
1212

1313
For upkeeps on older registry versions 1.0 (Ethereum Mainnet), and 1.1 (BNB Mainnet and Polygon Mainnet), you must migrate manually by cancelling and re-registering your upkeep in the [Chainlink Automation App](https://automation.chain.link/). After you do this manual migration, future migrations will be easier because your new upkeeps will be eligible for the simpler migration process.
1414

@@ -29,8 +29,6 @@ The Chainlink Automation App offers a streamlined migration process for upkeeps
2929
<a href="https://automation.chain.link">Open the Chainlink Automation App</a>
3030
</div>
3131

32-
Note: Automation 2.0 runs on registry version 2.1. This discrepancy will be reconciled in a future version.
33-
3432
<ClickToZoom src="/images/automation/v2-migration/landing-page.png" />
3533

3634
1. To start migrating a specific upkeep, select the upkeep. In the **Details** page, expand the **Actions** menu and select **Migrate upkeep**.
@@ -95,7 +93,7 @@ For upkeeps on registry versions 1.0 and 1.1, you must migrate upkeeps manually:
9593
1. Return to the main [Chainlink Automation App](https://automation.chain.link/) landing page. Register a new upkeep, providing the **Upkeep address** of your old upkeep.
9694
1. If your upkeep restricts `msg.sender` to the previous registry address, [update your contract](#update-permissions) to use the new forwarder address.
9795

98-
After migration, you have a new upkeep on Automation 2.0 with the same interface as your old upkeep. Future migrations are eligible for the simpler migration process.
96+
After migration, you have a new upkeep on Automation 2.1 with the same interface as your old upkeep. Future migrations are eligible for the simpler migration process.
9997

10098
After the migration is complete:
10199

@@ -115,7 +113,7 @@ Your new upkeep has a new [unique forwarder](#unique-forwarder) to increase secu
115113

116114
### Forwarders by upkeep type
117115

118-
This diagram shows the flow of different contracts that Automation 2.0 deploys for new and migrated upkeeps. Compared to custom logic and log trigger upkeeps, time-based upkeeps have an additional contract:
116+
This diagram shows the flow of different contracts that Automation 2.1 deploys for new and migrated upkeeps. Compared to custom logic and log trigger upkeeps, time-based upkeeps have an additional contract:
119117

120118
<ClickToZoom src="/images/automation/v2-migration/v2-upkeeps-by-type.png" />
121119

@@ -128,7 +126,7 @@ Before you migrate, be aware of several important changes listed here.
128126

129127
### Unique forwarder
130128

131-
Automation 2.0 Upkeeps are called from a unique forwarder per upkeep and not from the registry. If your upkeep restricts `msg.sender` to the previous registry address, you must update it to the newly created [forwarder address](/chainlink-automation/guides/forwarder). The forwarder address becomes available only after the upkeep has been migrated. This forwarder address will remain constant in future migrations.
129+
Automation 2.1 upkeeps are called from a unique forwarder per upkeep and not from the registry. If your upkeep restricts `msg.sender` to the previous registry address, you must update it to the newly created [forwarder address](/chainlink-automation/guides/forwarder). The forwarder address becomes available only after the upkeep has been migrated. This forwarder address will remain constant in future migrations.
132130

133131
### Update programmatic upkeeps
134132

@@ -139,7 +137,7 @@ Note that migration moves upkeeps from one registry to another. If you interact
139137

140138
#### Get the latest ABI
141139

142-
The latest ABI for Automation 2.0 is in the [@chainlink npm package](https://www.npmjs.com/package/@chainlink/contracts?activeTab=code):
140+
The latest ABI for Automation 2.1 is in the [@chainlink npm package](https://www.npmjs.com/package/@chainlink/contracts?activeTab=code):
143141

144142
- Registry ABI: `@chainlink/contracts/abi/v0.8/IKeeperRegistryMaster.json`
145143
- Registrar ABI: `@chainlink/contracts/abi/v0.8/AutomationRegistrar2_1.json`

src/content/chainlink-automation/index.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ whatsnext:
1515

1616
import { Aside } from "@components"
1717
import { ClickToZoom } from "@components"
18+
import ChainlinkAutomation from "@features/chainlink-automation/common/ChainlinkAutomation.astro"
1819

1920
<Aside type="note" title="Get Started">
2021
Try Chainlink Automation in the [Getting Started](/chainlink-automation/overview/getting-started) guide.
2122
</Aside>
2223

24+
<ChainlinkAutomation callout="deprecation" />
25+
2326
Automate your smart contracts using a secure and hyper-reliable decentralized network that uses the same external network of node operators that secures billions in value. Building on Chainlink Automation will accelerate your innovation, save you time and money, and help you get to market faster so you don't have to deal with the setup cost, ongoing maintenance, and risks associated with a centralized automation stack.
2427

2528
To learn more about how the Chainlink Automation Network automates your smart contracts, visit the [Concepts](/chainlink-automation/concepts/automation-concepts) and [Architecture](/chainlink-automation/concepts/automation-architecture) pages. You can also learn more through our [additional Automation resources](https://chain.link/automation#masterclass).

src/content/chainlink-automation/overview/automation-economics.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ whatsnext: { "Automation Architecture": "/chainlink-automation/concepts/automati
1111

1212
Chainlink Automation only requires an execution fee for transactions onchain. This fee includes the transaction cost, a node operator percentage fee (refer to the formula below), and a small fixed gas overhead accounting for gas between the network and the registry. The percentage fee compensates the Automation Network for monitoring and performing your upkeep. The Automation percentage fee varies by chain and is listed on our [Supported Networks](/chainlink-automation/overview/supported-networks) page.
1313

14-
**Formula for Registry v1.2**
14+
**Formula for Registry v2.1**
1515

1616
Fee<sub>LINK</sub> = [tx.gasPrice<sub>Native WEI</sub> * (gasUsed + gasOverhead) * (1 + premium%)]/[LINK/Native<sub>Rate in WEI</sub>]
1717

src/content/chainlink-automation/overview/supported-networks.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ whatsnext:
1616
import { AutomationConfigList } from "@features/chainlink-automation"
1717
import ResourcesCallout from "@features/resources/callouts/ResourcesCallout.astro"
1818
import CcipCommon from "@features/ccip/CcipCommon.astro"
19+
import ChainlinkAutomation from "@features/chainlink-automation/common/ChainlinkAutomation.astro"
20+
21+
<ChainlinkAutomation callout="deprecation" />
1922

2023
To use Chainlink Automation on certain networks, you may need to conduct token transfers. You can transfer tokens by using [Chainlink CCIP](/ccip/tutorials/cross-chain-tokens) or third-party applications such as [XSwap](https://xswap.link/).
2124

src/features/chainlink-automation/common/ChainlinkAutomation.astro

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@ const StreamsLookupInterfaceComponent = StreamsLookupInterface[0].Content
55
const iLogAutomation = await Astro.glob("./iLogAutomation.mdx")
66
const ILogAutomationComponent = iLogAutomation[0].Content
77
8+
const deprecationCallout = await Astro.glob("./deprecation.mdx")
9+
const DeprecationCalloutComponent = deprecationCallout[0].Content
10+
811
export type Props = {
912
section?: "ilogautomation" | "streamslookup"
13+
callout?: "deprecation"
1014
}
11-
const { section } = Astro.props as Props
15+
const { section, callout } = Astro.props as Props
1216
---
1317

1418
{section === "ilogautomation" && <ILogAutomationComponent />}
1519

1620
{section === "streamslookup" && <StreamsLookupInterfaceComponent />}
21+
22+
{callout === "deprecation" && <DeprecationCalloutComponent />}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { Aside } from "@components"
2+
3+
<Aside type="caution" title="Deprecation of older upkeeps">
4+
Existing upkeeps on versions earlier than v2.1 will stop being performed on **August 29, 2024**. [Migrate your older
5+
upkeeps to the latest version of Automation](/chainlink-automation/guides/migrate-to-v2).
6+
</Aside>

0 commit comments

Comments
 (0)