Skip to content

Lychee Link Checker Configuration Improvements #1244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions lychee.toml
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
############################# Display #############################

# Verbose program output
verbose = "info"

# Use error level to only show failed requests
verbose = "error"
# Don't show interactive progress bar while checking links.
no_progress = true
# Don't show the source file of links
no_show_source = false

############################# Requests ############################

# URL remapping rules.
remap = [
"file:///(.*?)/pages/img/(.*) file:///$1/public/img/$2",
"file:///(.*?)/pages/resources/(.*) file:///$1/public/resources/$2",
"file:///([^#.?]+)(#.*)?$ file:///$1.mdx$2",
"\\\\& &"
# Handle resource files without adding .mdx extension
"file:///pages/(.*?)\\.(pdf|png|jpg|jpeg|gif|svg|json)$ file:///./pages/$1.$2",
# Handle URL-encoded anchors (%23) for mdx files
"file:///([^%\\.]+)%23(.*) file:///./pages/$1.mdx#$2",
# Handle regular anchors (#) for mdx files
"file:///([^#\\.]+)#(.*) file:///./pages/$1.mdx#$2",
# Handle regular mdx files without anchors
"file:///([^#%\\.]+)$ file:///./pages/$1.mdx",
]

# Base URL or website root directory to check relative URLs.
base = "./pages"
# Base URL or website root directory to check relative URLs
base = "."

############################# Exclusions ##########################

# Exclude loopback IP address range and localhost from checking.
exclude_loopback = true

# Exclude all mail addresses from checking.
exclude_mail = true

# Exclude RPC URLs from checking.
# Exclude RPC URLs from checking
exclude = [
'https://mainnet.optimism.io',
'https://mainnet-sequencer.optimism.io',
Expand All @@ -37,8 +37,20 @@ exclude = [
'https://web.archive.org',
'https://mainnet.base.org',
'https://sepolia.base.org',
'https://optimism.easscan.org'
'https://optimism.easscan.org',
'\.(pdf|zip|png|jpg|jpeg|gif|svg|json)$'
]

# Accept all status codes except 404
accept = [
"100..=399",
"401..=403",
"405..=999"
]

# Accept these status codes
accept = ["100..=103", "200..=299", "403..=403", "502..=502"]
# Use compact format for cleaner output
format = "compact"

############################# Anchors #############################
# Enable checking for anchors in local files
check_anchors = true
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ From the block, retrieve the `baseFeePerGas` and `gasUsed` fields.
OP Mainnet adjusts the base fee based on the amount of gas used in the previous block.
If the previous block used more than 5m gas (of the 30m gas limit), then the base fee will increase by up to 10%.
If the previous block used less than 5m gas, then the base fee will decrease by up to 10%.
Refer to the [OP Mainnet EIP-1559 Parameters](/chain/differences#eip-1559-parameters) section for more details.
Refer to the [OP Mainnet EIP-1559 Parameters](/stack/differences#eip-1559-parameters) section for more details.

{<h3>Select a base fee per gas</h3>}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ We have a workaround that users and wallet operators can implement immediately,

Set the maximum fee per gas for transactions to a relatively high value, such as 0.1 gwei.
This will *not* increase the transaction cost because the same base fee, determined by a formula, is charged to all the transactions in the block.
[See here for more details](/builders/cex-wallet-developers/wallet-support#base-fee).
To save on the cost of L2 gas you want to minimize the max priority fee.

Also, if the [current base fee](https://optimistic.grafana.net/public-dashboards/c84a5a9924fe4e14b270a42a8651ceb8?orgId=1&refresh=5m) is comparable to 0.1 gwei or higher, you might want to suggest to users a higher multiple of the base fee than you would on L1 Ethereum because it can grow faster in the time interval between transaction creation and transaction signing and submission.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ An OP Stack chain that uses the custom gas token feature enables an end user to
</Callout>

* The [`v2.0.0-beta.3` release](https://github.com/ethereum-optimism/optimism/tree/op-contracts/v2.0.0-beta.3)
enables fee withdrawals to L1 and L2. For more details on these values, see the [Withdrawal Network](/builders/chain-operators/configuration/rollup.mdx#withdrawal-network)
enables fee withdrawals to L1 and L2. For more details on these values, see the [Withdrawal Network](/builders/chain-operators/configuration/rollup#withdrawal-network)
section of the docs.

* Deploy the L1 contracts from `contracts-bedrock` using the following command:
Expand Down
6 changes: 3 additions & 3 deletions pages/builders/chain-operators/self-hosted.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ There are two main steps to get started building your own self-hosted OP Chain:
* **Chain Architecture**: OP Chains use execution and consensus clients as well as the OP Stack's privileged roles. For more details, see the [Chain Architecture](/builders/chain-operators/architecture) guide.
* **Smart Contracts**: OP Chains use several smart contracts on the L1
blockchain to manage aspects of the Rollup. Each OP Stack chain has its own
set of [L1 smart contracts](/stack/smart-contracts#layer-1-contracts),
[L2 predeploy contracts](/stack/smart-contracts#layer-2-contracts-predeploys),
set of [L1 smart contracts](/stack/smart-contracts),
[L2 predeploy contracts](/stack/smart-contracts),
and [L2 preinstall contracts](/builders/chain-operators/features/preinstalls)
that are deployed when the chain is created.
* **Preinstalls**: OP Chains come with [preinstalled core contracts](/builders/chain-operators/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack.
Expand Down Expand Up @@ -56,7 +56,7 @@ OP Chains can be configured for throughput, cost, and other decentralization tra

{<h3>Set Public RPC Endpoint</h3>}

* Set the [public RPC Endpoint](/builders/chain-operators/architecture#ingress-traffic), so your OP Chain can handle large volumes of RPC requests from your users.
* Set the [public RPC Endpoint](/builders/chain-operators/architecture), so your OP Chain can handle large volumes of RPC requests from your users.

{<h3>Enable Analytics for Onchain Data</h3>}

Expand Down
4 changes: 2 additions & 2 deletions pages/builders/chain-operators/tools/chain-monitoring.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,13 @@ To enable metrics, pass the `--metrics.enabled` flag to the op-geth. You can cus

To enable metrics, pass the `--metrics.enabled` flag to the op-proposer. You can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively.

You can find more information about these flags in our [Proposer configuration doc](https://docs.optimism.io/builders/chain-operators/configuration/proposer#metricsenabled).
You can find more information about these flags in our [Proposer configuration doc](/builders/chain-operators/configuration/proposer#metricsenabled).

### `op-batcher`

To enable metrics, pass the `--metrics.enabled` flag to the op-batcher. You can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively.

You can find more information about these flags in our [Batcher configuration doc](https://docs.optimism.io/builders/chain-operators/configuration/batcher#metricsenabled).
You can find more information about these flags in our [Batcher configuration doc](/builders/chain-operators/configuration/proposer#metricsenabled).

### `op-challenger`

Expand Down
2 changes: 1 addition & 1 deletion pages/builders/chain-operators/tools/op-deployer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ op-deployer apply --workdir .deployer --l1-rpc-url <rpc-url> --private-key <priv
```

This command will deploy the OP Stack to L1. It will deploy all L2s specified in the intent file. Superchain
configuration will be set to the Superchain-wide defaults - i.e., your chain will be opted into the [Superchain pause](https://specs.optimism.io/protocol/superchain-configuration.html#pausability)
configuration will be set to the Superchain-wide defaults - i.e., your chain will be opted into the [Superchain pause](https://specs.optimism.io/protocol/superchain-config.html#pausability)
and will use the same [protocol versions](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/superchain-upgrades.md)
address as other chains on the Superchain.

Expand Down
1 change: 0 additions & 1 deletion pages/builders/tools/build/nft-tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,4 @@ These tools are available on OP Mainnet:

* [OpenSea](https://opensea.io/rankings?chain=optimism)
* [Tofu](https://tofunft.com/optimism)
* [OptiMarket](https://optimarket.io/)
* [Circular Art](https://www.circularart.xyz/)
13 changes: 6 additions & 7 deletions pages/builders/tools/build/oracles.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,15 @@ The L1 gas price, which can be volatile, is only pushed once every 5 minutes, an

* [Blocknative](https://docs.blocknative.com/gas-prediction) provides real-time gas estimation powered by predictive modeling to forecast gas price distribution for select OP Stack chains, including OP Mainnet and Base. The [API](https://docs.blocknative.com/gas-prediction) is also available on Ethereum Mainnet to estimate base fee costs.


### API3

The [API3 Market](https://market.api3.org/optimism) provides access to 200+ price feeds on [Optimism Mainnet](https://market.api3.org/optimism) and [Testnet](https://market.api3.org/optimism-sepolia-testnet). The price feeds operate as a native push oracle and can be activated instantly via the Market UI.

The price feeds are delivered by an aggregate of [first-party oracles](https://docs.api3.org/explore/airnode/why-first-party-oracles.html) using signed data and support [OEV recapture](https://docs.api3.org/explore/introduction/oracle-extractable-value.html).

Unlike traditional data feeds, reading [API3 price feeds](https://docs.api3.org/guides/dapis/) enables dApps to auction off the right to update the price feeds to searcher bots which facilitates more efficient liquidation processes for users and LPs of DeFi money markets. The OEV recaptured is returned to the dApp.
The price feeds are delivered by an aggregate of [first-party oracles](https://docs.api3.org/oev-searchers/glossary.html#first-party-oracles) using signed data and support [OEV recapture]().
[https://docs.api3.org/dapps/integration/security-considerations.html#oracle-extractable-value-oev](https://docs.api3.org/dapps/integration/security-considerations.html#oracle-extractable-value-oev)
Unlike traditional data feeds, reading [API3 price feeds](https://docs.api3.org/oev-searchers/in-depth/dapis/#dapis) enables dApps to auction off the right to update the price feeds to searcher bots which facilitates more efficient liquidation processes for users and LPs of DeFi money markets. The OEV recaptured is returned to the dApp.

API3's QRNG provides dApps with truly random numbers based on quantum mechanics at no charge. More details [here](https://api3.org/qrng/)
API3's QRNG provides dApps with truly random numbers based on quantum mechanics at no charge. More details [here](https://api3.org/)

### Chainlink

Expand Down Expand Up @@ -115,10 +114,10 @@ Ready to integrate? Head over to the [Gelato VRF Quick Start Guide](https://docs
The Pyth Network is a financial oracle network which delivers over 400 low-latency, high-fidelity price feeds across cryptocurrencies, FX pairs, equities, ETFs, and commodities.

* Pyth's price data is sourced from over [95 first-party sources](https://pyth.network/publishers) including exchanges, market makers, and financial services providers.
* Pyth [Price Feeds](https://pyth.network/price-feeds) offer both the real-time spot price of the asset as well as an accompanying confidence interval band around that price
* Pyth [Price Feeds](https://www.pyth.network/developers/price-feed-ids) offer both the real-time spot price of the asset as well as an accompanying confidence interval band around that price
* The Pyth [TradingView](https://docs.pyth.network/guides/how-to-create-tradingview-charts) integration allows users to view and display Pyth prices on their own website and UI.

You can explore the full catalog of Pyth Price Feed IDs for [OP Mainnet and Sepolia (EVM Stable)](https://pyth.network/developers/price-feed-ids#pyth-evm-stable).
You can explore the full catalog of Pyth Price Feed IDs for [OP Mainnet and Sepolia (EVM Stable)](https://www.pyth.network/developers/price-feed-ids).

* Pyth Entropy allows developers to quickly and easily generate secure random numbers on the blockchain. More details [here](https://pyth.network/blog/secure-random-numbers-for-blockchains)

Expand Down
1 change: 0 additions & 1 deletion pages/chain/identity/about-attestations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ Attestations create log entries that become part of the permanent record of the
Here are some best practices to avoid violating users' privacy:

* Obtain explicit consent from users for [personal information](https://csrc.nist.gov/glossary/term/PII), which includes a user's legal name and birthdate.
Clearly [inform users](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/personal-information-what-is-it/what-is-personal-information-a-guide/) what data is being collected, why it is being collected, and how it will be used.
* Sensitive data should not be stored onchain, in any way.
If you need a smart contract to verify it in the future, you can use the hash of the sensitive data rather than the data itself.
* Even when storing sensitive data offchain, you need to ensure it is stored securely using encryption, proper authentication and authorization, etc.
Expand Down
2 changes: 1 addition & 1 deletion pages/chain/identity/projects.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ All other project metadata is stored or referenced in the [Project Metadata Atte

## Further reading

For more information about identity in the Optimism Collective, see the [Identity Overview](/chain/identity/overview.mdx).
For more information about identity in the Optimism Collective, see the [Identity Overview](/chain/identity/overview).
2 changes: 1 addition & 1 deletion pages/chain/identity/schemas.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Used to associate metadata to an organization. Re-issued each time there is a ch
| farcasterID | The Farcaster id of the individual who published the organization metadata |
| name | The name of the organization |
| projects | The array of projects that belong to this organization |
| parentOrgUID | The attestation UID of this organization's parent, in case it has one |
| parentOrgUID | The attestation UID of this organization's parent, in case it has one |
| metadataType | How the metadata can be accessed. 1 for ipfs, 2 for http |
| metadataUrl | The storage location where the metadata can be retrieved |

Expand Down
2 changes: 1 addition & 1 deletion pages/chain/security/privileged-roles.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The L1 Proxy Admin is an address that can be used to upgrade most OP Mainnet sys

## L2 Proxy Admin

The L2 Proxy Admin is an address that can be used to upgrade most OP Mainnet system contracts on L2. The L2 Proxy Admin owner is the [aliased address](/chain/differences#address-aliasing) of the L1ProxyAdmin owner, which means the L2 ProxyAdmin Owner is equal to the L1 ProxyAdmin Owner, but due to aliasing it's a different address. Here's how that works:
The L2 Proxy Admin is an address that can be used to upgrade most OP Mainnet system contracts on L2. The L2 Proxy Admin owner is the [aliased address](/stack/differences#address-aliasing) of the L1ProxyAdmin owner, which means the L2 ProxyAdmin Owner is equal to the L1 ProxyAdmin Owner, but due to aliasing it's a different address. Here's how that works:

* Given an L1 contract address, the aliased L2 address is equal to `L1_contract_address` + `0x1111000000000000000000000000000000001111`.
* Using `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` as an example, the `0x6B` address is the L2 address that's been aliased, so to figure out the original L1 address you calculate `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` - `0x1111000000000000000000000000000000001111`.
Expand Down
Loading