Skip to content
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
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@ logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*

.anima
data
build
scripts
Comment on lines +25 to +29

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Avoid ignoring a generic scripts/ directory (high risk of hiding real repo tooling).

If you meant only generated artifacts, prefer a more specific pattern (e.g., scripts/generated/), and remove the redundant build entry.

 data
-build
-scripts
+# build is already ignored above via /build and build/
+# build
+# Avoid ignoring generic scripts/; ignore only generated subpaths if needed
+# scripts/generated
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
data
build
scripts
data
# build is already ignored above via /build and build/
# build
# Avoid ignoring generic scripts/; ignore only generated subpaths if needed
# scripts/generated
🤖 Prompt for AI Agents
In .gitignore around lines 25 to 28, the current entries ignore a top-level
scripts/ directory and separately list build, which risks hiding important
tooling; update .gitignore to stop ignoring the generic scripts/ entry and
replace it with a more specific pattern (for example scripts/generated/ or
scripts/build/) to only exclude generated artifacts, and remove the redundant
build line if the new pattern already covers generated build outputs.

10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ Our decentralized sequencer design and innovative Layer 2 approach address block
1. [What is & Why Responsive Validity Proof?](https://docs.morphl2.io/docs/how-morph-works/optimistic-zkevm)


2. [How Does RVP Run in Morph?](https://medium.com/@morphlayer2/how-does-rvp-run-in-morph-6025233a21cc)
2. [How Does RVP Run in Morph?](https://medium.com/@morphlayer/how-does-rvp-run-in-morph-6025233a21cc)


3. [Morph's Origins and Aspirations](https://medium.com/@morphlayer2/morphys-origins-and-aspirations-7afc0280a8e2)
3. [Morph's Origins and Aspirations](https://medium.com/@morphlayer/morphys-origins-and-aspirations-7afc0280a8e2)

## Learn more

Website: https://www.morphl2.io/

Twitter: https://x.com/MorphLayer
Twitter: https://x.com/MorphNetwork

Medium: [Morph – Medium](https://medium.com/@morphlayer2)
Medium: [Morph – Medium](https://medium.com/@morphlayer)

Telegram: https://t.me/MorphL2official
Telegram: https://t.me/MorphGlobal

Comment on lines 21 to 28

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix markdownlint MD034: avoid bare URLs in README

-Website: https://www.morphl2.io/
+Website: [morphl2.io](https://www.morphl2.io/)
 
-Twitter: https://x.com/MorphNetwork
+Twitter: [x.com/MorphNetwork](https://x.com/MorphNetwork)
 
 Medium: [Morph – Medium](https://medium.com/@morphlayer)
 
-Telegram: https://t.me/MorphGlobal
+Telegram: [t.me/MorphGlobal](https://t.me/MorphGlobal)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Website: https://www.morphl2.io/
Twitter: https://x.com/MorphLayer
Twitter: https://x.com/MorphNetwork
Medium: [Morph – Medium](https://medium.com/@morphlayer2)
Medium: [Morph – Medium](https://medium.com/@morphlayer)
Telegram: https://t.me/MorphL2official
Telegram: https://t.me/MorphGlobal
Website: [morphl2.io](https://www.morphl2.io/)
Twitter: [x.com/MorphNetwork](https://x.com/MorphNetwork)
Medium: [Morph – Medium](https://medium.com/@morphlayer)
Telegram: [t.me/MorphGlobal](https://t.me/MorphGlobal)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

21-21: Bare URL used

(MD034, no-bare-urls)


23-23: Bare URL used

(MD034, no-bare-urls)


27-27: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In README.md around lines 21 to 28 there are bare URLs triggering markdownlint
MD034; replace each bare URL with proper Markdown links by providing descriptive
link text (e.g., "Website", "Twitter", "Medium", "Telegram") and the URL in
square-bracket/parenthesis form (or use explicit inline link text for Medium
instead of the current bracketed plain URL), ensuring no raw bare URLs remain.

Gmail: official@morphl2.io
6 changes: 3 additions & 3 deletions docs/about-morph/0-user-navigation-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ To get started:
- [**Bridge assets**](../quick-start/4-bridge.md)

Join the community and stay up to date:
𝕏: [x.com/MorphLayer](https://x.com/MorphLayer)
Discord: [discord.gg/MorphLayer](https://discord.gg/MorphLayer)
Telegram: [t.me/MorphL2official](https://t.me/MorphL2official)
𝕏: [x.com/MorphNetwork](https://x.com/MorphNetwork)
Discord: [discord.gg/morphnetwork](https://discord.gg/morphnetwork)
Telegram: [t.me/MorphGlobal](https://t.me/MorphGlobal)
Morph Builder X: [x.com/MorphDevs](https://x.com/MorphDevs)
6 changes: 1 addition & 5 deletions docs/build-on-morph/0-developer-navigation-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,18 +95,14 @@ Find detailed API methods, contract addresses, and other useful resources.
href="/docs/build-on-morph/developer-resources/dapp-examples-on-morph"
icon="/img/cards/guide.svg"
text="Dapp Examples" />
<Card
href="/docs/build-on-morph/developer-resources/morph-json-rpc-api-methods"
icon="/img/cards/tools.svg"
text="Morph JSON-RPC API" />
</CardGroup>

### Engage in Our Developer Community​

We are actively enhancing the network with more integrations and support infrastructure as we progress toward our mainnet launch.
Join our developer community:

- [Discord](https://discord.com/invite/MorphLayer)
- [Discord](https://discord.gg/invite/MorphNetwork)
- [𝕏](https://twitter.com/MorphLayer)
- [Morph Builder X](https://x.com/MorphDevs)

Comment on lines +105 to 108

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Discord invite URL format https://discord.gg/invite/MorphNetwork

💡 Result:

Your example is malformed. Valid Discord invite URLs use one of these formats:

So use either:

(Do not include "invite" after discord.gg.) [1][2]

Sources: Discord support page and invite-format documentation. [1] https://support.discord.com/hc/en-us/articles/204155938-How-do-I-invite-friends-to-my-server [2] https://qqtube.com/blog/how-to-get-your-discord-link


Fix malformed Discord invite URL.

The URL https://discord.gg/invite/MorphNetwork is invalid. Discord invite links should use either https://discord.gg/MorphNetwork or https://discord.com/invite/MorphNetwork (do not include "invite" after discord.gg).

🤖 Prompt for AI Agents
In docs/build-on-morph/0-developer-navigation-page.md around lines 105 to 108,
the Discord invite URL is malformed ("https://discord.gg/invite/MorphNetwork");
replace it with a valid invite URL such as "https://discord.gg/MorphNetwork" or
"https://discord.com/invite/MorphNetwork" so the link resolves correctly, update
the markdown link accordingly and keep the rest of the list entries unchanged.

2 changes: 1 addition & 1 deletion docs/build-on-morph/1-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ Building on morph is just like building on Ethereum. If you’re experienced in
We're actively enhancing our network with more integrations and support infrastructure, progressing towards our Mainnet release.


Join our growing developer community. You can find us on [Discord](https://discord.com/invite/MorphLayer), join our discussion forum, or follow our progress on [Twitter](https://x.com/MorphLayer).
Join our growing developer community. You can find us on [Discord](https://discord.gg/invite/MorphNetwork), join our discussion forum, or follow our progress on [Twitter](https://x.com/MorphNetwork).
8 changes: 0 additions & 8 deletions docs/build-on-morph/build-on-morph/2-development-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,6 @@ wss://rpc-hoodi.morphl2.io

:::

<!--
### Tendermint Consensus Information

Tendermint RPC: https://rpc-consensus-holesky.morphl2.io

Tendermint RPC Documentation: https://docs.tendermint.com/v0.34/rpc/#/
-->
## Step 2: Set up your development framework

### Hardhat
Expand Down Expand Up @@ -149,7 +142,6 @@ forge create ... --rpc-url= --legacy
```



### ethers.js

Setting up a Morph provider in an ethers script:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,6 @@ Once succeeded, you can check your contract and the deployment transaction on [M

## Questions and Feedback

Thank you for participating in and developing on the Morph Hoodi Testnet! If you encounter any issues, join our [Discord](https://discord.com/invite/MorphLayer) and find us at #dev-support channel.
Thank you for participating in and developing on the Morph Hoodi Testnet! If you encounter any issues, join our [Discord](https://discord.gg/invite/MorphNetwork) and find us at #dev-support channel.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Discord invite URL format discord.gg/invite vs discord.gg

💡 Result:

Short answer: Both are valid invite URLs and point to the same invite code. discord.gg/ is the short/custom invite domain; https://discord.com/invite/ is the canonical full-domain form (Discord also historically used discordapp.com/invite/). They behave the same — either opens the web flow or the app and joins the same server (custom vanity links use the same domains). [1][2][3]

Sources:
[1] Discord Support — Server Vanity / Custom Invite links.
[2] Discord Developers — invites / Social SDK docs.
[3] Guide showing both formats (discord.gg and discord.com/invite).


Fix the Discord invite URL format.
Change https://discord.gg/invite/MorphNetwork to https://discord.gg/MorphNetwork (the /invite/ path segment is not valid in Discord URLs; both discord.gg/<code> and discord.com/invite/<code> are standard formats, but discord.gg/invite/<code> is not).

🤖 Prompt for AI Agents
In docs/build-on-morph/code-examples/1-deploy-contract-on-morph.md around line
183, the Discord invite URL uses an invalid path
("https://discord.gg/invite/MorphNetwork"); update it to the correct short
invite format "https://discord.gg/MorphNetwork" (or alternatively
"https://discord.com/invite/MorphNetwork") so the link works properly.



2 changes: 1 addition & 1 deletion docs/quick-start/1-welcome-to-morph.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ Mainnet Beta Stage: Morph is currently in the mainnet beta phase, offering a bra

### Looking for help

Having issues while developing or exploring? Join our [discord channel](https://discord.com/invite/MorphLayer) and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too.
Having issues while developing or exploring? Join our [discord channel](https://discord.gg/invite/MorphNetwork) and talk to us in the right channel. We would love to hear your thoughts or feedback on how we can improve your experience, too.

2 changes: 1 addition & 1 deletion docs/quick-start/3-faucet.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Currently, each Discord user can only request tokens once every 24 hours.
You can obtain Morph’s version of USDT on Hoodi through our Discord faucet. Here’s how:


1. Join our Discord server using this [link](https://discord.com/invite/MorphLayer).
1. Join our Discord server using this [link](https://discord.gg/invite/MorphNetwork).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Check if the file exists and read the relevant section
head -n 60 docs/quick-start/3-faucet.md | tail -n 10

Repository: morph-l2/morph-doc

Length of output: 368


🌐 Web query:

MD059 markdown lint rule descriptive-link-text

💡 Result:

MD059 (descriptive-link-text) — rule: "Link text should be descriptive." It flags links whose anchor text is non‑descriptive (e.g., "click here", "here", "this", raw URLs shown as link text) and recommends using meaningful text that explains the link target. [1][2]

Quick notes:

  • Example violation: here → replace with descriptive text like Example API docs. [1][2]
  • Configure/disable: use your markdownlint config (e.g., .markdownlint.json) to set "MD059": false to disable, or set severity via "MD059": "warning" / "error". You can also disable inline with HTML comments ( ... ). [1]
  • Rationale: improves accessibility and UX (screen readers, clarity). [1][2]

Sources: markdownlint repo (rules/config/docs). [1] GitHub — DavidAnson/markdownlint; [2] GitLab issue discussing MD059 and examples.


🌐 Web query:

Discord invite URL format discord.gg/invite valid

💡 Result:

No — "discord.gg/invite" is not a valid invite. Valid invite URLs use a code after either:

The invite_code is the server’s alphanumeric code (case‑sensitive). See Discord support on invite links and invalid invites. [1][2]

Sources:
[1] Discord Support — Invalid Invite Links. (support.discord.com)
[2] Example invite format (https://discord.gg/xxxxxxxx). (english.discord-media.com)

Citations:


Fix non-descriptive link text and correct invalid Discord URL

MD059 is correct—replace "this [link]" with descriptive text. However, the Discord invite URL format is invalid. discord.gg/invite/MorphNetwork is not a valid Discord invite; valid invites use discord.gg/<code> where <code> is the server's alphanumeric invite code. The suggested rewrite should also fix the URL with the correct invite code.

-1. Join our Discord server using this [link](https://discord.gg/invite/MorphNetwork).
+1. Join our [MorphNetwork Discord server](https://discord.gg/<correct_invite_code>).

Replace <correct_invite_code> with the actual Discord server invite code.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

58-58: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
In docs/quick-start/3-faucet.md around line 58, the link text "this [link]" is
non-descriptive and the Discord invite URL uses an invalid format; replace the
anchor text with a descriptive phrase like "Morph Network Discord" and update
the href to the correct Discord invite format discord.gg/<correct_invite_code>,
substituting <correct_invite_code> with the actual alphanumeric invite code for
the server so the link is both accessible and MD059-compliant.


2. Navigate to the *#| discord-faucet* channel.

Expand Down
6 changes: 3 additions & 3 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const config = {

title: 'Morph docs – The Optimistic zkEVM Scaling Solution docs',
tagline: '',
favicon: 'https://www.morphl2.io/favicon.ico',
favicon: '/favicon.ico',

staticDirectories: ['public', 'static'],

Expand Down Expand Up @@ -178,8 +178,8 @@ const config = {
title: '',
logo: {
alt: 'Morph Doc Logo',
src: 'logo/LogoMorphGreen-summary.svg',
srcDark: 'logo/LogoMorphGreen-summary.svg',
src: 'logo/morph-docs-black.svg',
srcDark: 'logo/morph-docs-white.svg',
},
items: [
{
Expand Down
24 changes: 20 additions & 4 deletions nginx_sub_mainnet.conf
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,38 @@ server {
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;

# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;

location ~ ^/docs/(about-morph|build-on-morph|how-morph-works|quick-start)(/.*)?$ {
if ($request_uri !~ ^(.+)/$) {
rewrite ^(.*[^/])$ https://$host$1/ permanent;
}
try_files $uri $uri/ /index.html;
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
}

# HTML files with short cache (60 seconds)
location ~* \.html?$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
try_files $uri =404;
}
Comment on lines +33 to 39

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Potential SPA regression: .html? location returns 404 instead of /index.html.
location ~* \.html?$ with try_files $uri =404; will 404 any “virtual” .html route (or any deep link ending in .html) that previously would have fallen back to /index.html via Line 42. If this site is an SPA and expects client-side routing, consider falling back to /index.html here too. Also, the comment “short cache (60 seconds)” doesn’t match no-store.

-    # HTML files with short cache (60 seconds)
+    # HTML files (no-store)
     location ~* \.html?$ {
         add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
         add_header X-Frame-Options "SAMEORIGIN" always;
         charset utf-8;
-        try_files $uri =404;
+        # If SPA routing is expected for .html paths, keep the fallback:
+        try_files $uri /index.html;
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# HTML files with short cache (60 seconds)
location ~* \.html?$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
try_files $uri =404;
}
# HTML files (no-store)
location ~* \.html?$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
# If SPA routing is expected for .html paths, keep the fallback:
try_files $uri /index.html;
}
🤖 Prompt for AI Agents
In nginx_sub_mainnet.conf around lines 33 to 39, the location block for HTML
files currently uses try_files $uri =404 which will return 404 for virtual SPA
routes ending with .html instead of falling back to /index.html; change the
try_files call to try_files $uri /index.html to preserve client-side routing for
SPAs, and update the cache header or the comment so they match (either set
Cache-Control to max-age=60 for a short cache or change the comment to reflect
no-store/no-cache as currently configured).


location / {
try_files $uri $uri.html $uri/ /index.html;
expires 7d;
add_header Cache-Control "public, no-transform";
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
}

# Static assets with long cache (30 days)
location ~ ^/(assets|fonts|img|logo|lottie|share)/ {
expires 30d;
add_header Cache-Control "public, no-transform";
add_header Cache-Control "public, immutable, max-age=2592000";
add_header X-Frame-Options "SAMEORIGIN" always;
access_log off;
}

Expand Down
24 changes: 20 additions & 4 deletions nginx_sub_qanet.conf
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,38 @@ server {
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;

# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;

location ~ ^/docs/(about-morph|build-on-morph|how-morph-works|quick-start)(/.*)?$ {
if ($request_uri !~ ^(.+)/$) {
rewrite ^(.*[^/])$ https://$host$1/ permanent;
}
try_files $uri $uri/ /index.html;
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
}

# HTML files with short cache (60 seconds)
location ~* \.html?$ {
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
try_files $uri =404;
}
Comment on lines +33 to 39

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Same SPA risk as mainnet: .html? location may break deep links by returning 404.
If QANet docs are also an SPA, consider try_files $uri /index.html; and fix the “60 seconds” comment to match no-store.

🤖 Prompt for AI Agents
In nginx_sub_qanet.conf around lines 33 to 39, the .html? location block
currently returns 404 for missing files which will break SPA deep links and the
comment incorrectly says “60 seconds”; change the try_files directive to
fallback to /index.html (try_files $uri /index.html;) so SPA routes resolve, and
update the comment to reflect no-store caching (e.g., "HTML files served with
no-store cache") while keeping the existing Cache-Control header and other
directives.


location / {
try_files $uri $uri.html $uri/ /index.html;
expires 7d;
add_header Cache-Control "public, no-transform";
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
add_header X-Frame-Options "SAMEORIGIN" always;
charset utf-8;
}

# Static assets with long cache (30 days)
location ~ ^/(assets|fonts|img|logo|lottie|share)/ {
expires 30d;
add_header Cache-Control "public, no-transform";
add_header Cache-Control "public, immutable, max-age=2592000";
add_header X-Frame-Options "SAMEORIGIN" always;
access_log off;
}

Expand Down
24 changes: 10 additions & 14 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,18 @@ const userSidebar =
},
{
type: 'link',
href: "https://bridge-holesky.morphl2.io/",
label: 'Morph Holesky Official Bridge'
href: "https://bridge-hoodi.morphl2.io/",
label: 'Morph Hoodi Official Bridge'
},
{
type: 'link',
href: "https://explorer-holesky.morphl2.io/",
label: 'Morph Holesky Explorer'
href: "https://explorer-hoodi.morphl2.io/",
label: 'Morph Hoodi Explorer'
},
{
type: 'link',
href: "https://holesky.etherscan.io/",
label: 'Ethereum Holesky Explorer'
href: "https://hoodi.etherscan.io/",
label: 'Ethereum Hoodi Explorer'
},
]
}
Expand Down Expand Up @@ -335,19 +335,15 @@ const developerSidebar =[
type: 'doc',
id:'build-on-morph/developer-resources/dapp-examples-on-morph'
},
{
type: 'doc',
id:'build-on-morph/developer-resources/morph-json-rpc-api-methods'
},
{
type: 'link',
href: "https://explorer-holesky.morphl2.io/",
label: 'Morph Holesky Explorer'
href: "https://explorer-hoodi.morphl2.io/",
label: 'Morph Hoodi Explorer'
},
{
type: 'link',
href: "https://holesky.etherscan.io/",
label: 'Ethereum Holesky Explorer'
href: "https://hoodi.etherscan.io/",
label: 'Ethereum Hoodi Explorer'
},


Expand Down
2 changes: 1 addition & 1 deletion src/components/Card.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export const Card = ({
};

return <a href={href} target={href?.startsWith('http') ? "_blank" : "_self"} className={cls("no-underline items-center hover:no-underline bg-card-background cursor-pointer rounded-[4px] text-card-text border border-solid border-card-border py-5 px-4 flex flex-row", {
'hover:border-[#14A800] hover:text-brand': href
'hover:border-[#18C900] hover:text-brand': href
})}>
{/* <img className="w-6 h-6" src={icon} /> */}
<ThemedImage
Expand Down
22 changes: 11 additions & 11 deletions src/components/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@ export const links = {
explorerApi: 'https://explorer-api.morphl2.io', // /api/v2/stats
bridge: 'https://bridge.morphl2.io',

holeskyWalletSetup: 'https://morphl2.io/docs/quick-start/wallet-setup/',
holeskyApiDocs: 'https://explorer-holesky.morphl2.io/api-docs',
holeskyExplorer: 'https://explorer-holesky.morphl2.io',
holeskyExplorerApi: 'https://explorer-api-holesky.morphl2.io',
holeskyBridge: 'https://bridge-holesky.morphl2.io',
hoodiWalletSetup: 'https://morphl2.io/docs/quick-start/wallet-setup/',
hoodiApiDocs: 'https://explorer-hoodi.morphl2.io/api-docs',
hoodiExplorer: 'https://explorer-hoodi.morphl2.io',
hoodiExplorerApi: 'https://explorer-api-hoodi.morphl2.io',
hoodiBridge: 'https://bridge-hoodi.morphl2.io',

// social
medium: 'https://blog.morphl2.io/',
twitter: 'https://x.com/MorphLayer',
telegram: 'https://t.me/MorphL2official',
twitter: 'https://x.com/MorphNetwork',
telegram: 'https://t.me/MorphGlobal',
// 'https://t.me/+qslsWvH2_-1iMTdl',
discord: 'https://discord.com/invite/MorphLayer',
discord: 'https://discord.gg/invite/MorphNetwork',
linkedIn: 'http://www.linkedin.com/company/morphl2',
Comment on lines +56 to 60

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n src/components/config.js | head -85

Repository: morph-l2/morph-doc

Length of output: 3848


🏁 Script executed:

rg 'discord' src/components/config.js -i

Repository: morph-l2/morph-doc

Length of output: 285


🌐 Web query:

Discord invite URL format discord.gg/invite valid

💡 Result:

Valid Discord invite URL formats:

What {code} looks like:

  • Random invites: typically 7–8 chars (letters+digits, case‑sensitive). Permanent invites may be 10 chars. Vanity codes (server custom links) use lowercase letters, digits and dashes. (research.checkpoint.com)

Is discord.gg/invite valid?

  • The literal URL discord.gg/invite is only valid if a server’s invite code is exactly "invite" (a vanity or generated code). There is no special route at discord.gg/invite that lists invites — so most such URLs are invalid/expired unless that exact code exists. (research.checkpoint.com)

Security note (brief): expired/deleted invites can be reused/misused, so verify sources before clicking. (research.checkpoint.com)

Citations:


🏁 Script executed:

# Check what the intended vanity invite code might be
grep -n "MorphNetwork\|MorphGlobal" src/components/config.js

Repository: morph-l2/morph-doc

Length of output: 250


Fix Discord invite URL format at line 59

The URL https://discord.gg/invite/MorphNetwork is malformed. Remove the /invite/ segment—the correct format is either https://discord.gg/MorphNetwork or https://discord.com/invite/MorphNetwork. The current format will not resolve.

🤖 Prompt for AI Agents
In src/components/config.js around lines 56 to 60, the Discord URL is malformed
as "https://discord.gg/invite/MorphNetwork"; update it to a valid invite URL by
removing the "/invite/" segment (use "https://discord.gg/MorphNetwork") or
switching to the canonical domain with invite path
("https://discord.com/invite/MorphNetwork"); replace the current string
accordingly so the link resolves.


facebook: 'https://www.facebook.com/profile.php?id=61554448708419',
Expand All @@ -70,10 +70,10 @@ export const links = {

faucet: '',

holeskyUSDT: 'https://discord.com/channels/1156486804661338162/1199665829730582620',
holeskyETH: "https://holesky-faucet.pk910.de/",
hoodiUSDT: 'https://discord.com/channels/1156486804661338162/1199665829730582620',
hoodiETH: "https://hoodi-faucet.pk910.de/",
sepoliafaucet: "https://sepoliafaucet.com/",
usdtfaucet: "https://discord.com/channels/1156486804661338162/1199665829730582620",

community: 'https://x.com/MorphLayer',
community: 'https://x.com/MorphNetwork',
}
Loading