Skip to content
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

feat: facelift #18

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

feat: facelift #18

wants to merge 7 commits into from

Conversation

boojamya
Copy link
Member

@boojamya boojamya commented Feb 20, 2025

Search box will need a follow up PR because the repo needs to be public.

[Update]
Un-drafting this PR as a starting point. As more documentation and pages are developed, we can expand with additional PRs.

Summary by CodeRabbit

  • New Features

    • Automated workflows now streamline deployment and testing for the documentation site.
    • Introduced new user interface components such as buttons and collapsible sections.
  • Documentation

    • Added extensive new guides covering chain upgrades, network endpoints, faucet usage, governance, node operation, wallet management, FAQs, and module functionalities.
    • Introduced a comprehensive README file for the Docusaurus website.
    • New documentation files created for various modules and features, enhancing user guidance.
  • Chores

    • Updated project configuration and dependency management for improved site performance and maintainability.
  • Style

    • Enhanced styling to enrich the visual experience and navigation.
  • Bug Fixes

    • Resolved issues related to the previous deployment workflows and improved the clarity of documentation.

Copy link

coderabbitai bot commented Feb 20, 2025

Walkthrough

This pull request completely overhauls the deployment and documentation systems. The Next.js/Nextra configuration and workflows have been removed and replaced with Docusaurus-based setups. New GitHub Actions workflows ensure automated building, deploying, and testing of the documentation site. In addition, numerous documentation files have been added, updated, or removed across various categories (chain upgrades, endpoints, modules, network, wallets, etc.). Several configuration files (package.json, docusaurus.config.js) and source components (React UI components, CSS) have been updated to support the new system.

Changes

File(s) Change Summary
.github/workflows/deploy.yaml, .github/workflows/deploy.yml, .github/workflows/test-deploy.yml Removed old deploy workflow for GitHub Pages (Next.js) and introduced new workflows for deploying a Docusaurus site and testing deployments via PR triggers.
.gitignore Reorganized and expanded with new entries for build directories, environment files, logs, and generated files.
.prettierignore Deleted; previously ignored build artifacts and lock files.
README.md New documentation file with instructions for installation, development, and production builds for the Docusaurus site.
docs/... Numerous new documentation files added (chain upgrades, endpoints, jester, governance, modules, wallets, node operations) and many outdated docs/metadata files removed.
docusaurus.config.js Newly added configuration for the Docusaurus documentation site, including site metadata, navbar, footer, and deployment settings.
genesis_files/.../genesis.json Added comprehensive genesis state files for both mainnet and testnet with initial parameters and configurations.
next.config.js Removed configuration file for Next.js static export which used the Nextra theme.
package.json Package renamed and versioned; dependencies switched from Next.js/Nextra to Docusaurus packages with new scripts, browserslist, and engine requirements.
pages/... Multiple metadata and content pages (e.g., _meta.json, CCTP pages, network docs, upgrades) have been removed or restructured.
sidebars.js New sidebar configuration file for managing the Docusaurus documentation navigation.
src/components/... New React components added: Button, Collapse, GitHubButton, and PolkachuIcon for enhanced UI features.
src/css/... New CSS files (custom.css, index.module.css) added for global styles, responsive design, and themed adjustments.
theme.config.tsx Removed outdated Nextra theme configuration file.
src/theme/MDXComponents.js New integration file to extend MDX components with a custom Button component.
src/pages/index.js.bak New React component backup for the homepage of the documentation site.

Sequence Diagram(s)

Deployment Workflow

sequenceDiagram
    participant Dev as Developer
    participant GH as GitHub Actions
    participant Build as Build Job
    participant Deploy as Deploy Job

    Dev->>GH: Push to main branch
    GH->>Build: Trigger build workflow
    Build->>Build: Checkout repo, setup Node, install dependencies, build site
    Build->>GH: Upload build artifacts
    GH->>Deploy: Trigger deploy job after successful build
    Deploy->>Deploy: Deploy site via actions/deploy-pages
    Deploy-->>Dev: Return deployment URL
Loading

Test Deployment Workflow

sequenceDiagram
    participant Dev as Developer
    participant GH as GitHub Actions
    participant Test as TestDeploy Job

    Dev->>GH: Open Pull Request targeting main branch
    GH->>Test: Trigger test-deploy workflow
    Test->>Test: Checkout repo, setup Node 18, install dependencies, build project
    Test-->>Dev: Return test results
Loading

Poem

Oh, I’m a rabbit, hopping with delight,
New docs and workflows sparkle so bright.
From Next.js shadows to Docusaurus light,
I nibble new code both day and night.
With each new page and neat deploy cue,
My whiskers twitch—a fresh start, woo-hoo!
Happy hops to all in this code burrow true!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f1623a6 and 40b67c9.

📒 Files selected for processing (1)
  • docs/chain-upgrades/mainnet.mdx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/chain-upgrades/mainnet.mdx

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@boojamya boojamya marked this pull request as ready for review February 22, 2025 00:33
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

🧹 Nitpick comments (26)
genesis_files/testnet/genesis.json (1)

1590-1608: Documentation & Consistency Check:
It would be beneficial to cross-reference these genesis parameters with the documentation (e.g. in docs/chain-upgrades/testnet.mdx) to ensure consistency. Providing a brief explanation of key parameters in your documentation might help end users and operators understand the genesis configuration better.

docs/wallets.mdx (3)

7-7: Consider using "Non-custodial" without hyphen for consistency

The standard spelling is "noncustodial" as one word without a hyphen, which would align with industry terminology.

-## Non-custodial:
+## Noncustodial:
🧰 Tools
🪛 LanguageTool

[misspelling] ~7-~7: This word is normally spelled as one.
Context: ...medImage from '@theme/ThemedImage'; ## Non-custodial:

...

(EN_COMPOUNDS_NON_CUSTODIAL)


9-28: Ensure consistent image handling for wallet logos

There's an inconsistency in how wallet logos are displayed - Keplr uses ThemedImage for dark/light mode variants while Leap uses a standard img tag.

Consider using ThemedImage for Leap as well for consistent theme support:

  <div className="wallet-container">
    <a href="https://leapwallet.io/" target="_blank" rel="noopener noreferrer">
-      <img src="/img/leap_wallet.png" alt="leap wallet logo" width="65" />
+      <ThemedImage
+        sources={{
+          light: '/img/leap_wallet.png',
+          dark: '/img/leap_wallet.png', // You'll need to create a dark theme version
+        }}
+        alt="leap wallet logo"
+        width="65px"
+      />
    </a>
  </div>

33-39: Add explanations for CLI command parameters

The CLI commands would benefit from brief explanations of the parameters to help new users understand what they're typing.

Add parameter descriptions:

 ```sh
 # Create new wallet
-nobled keys add <KEY-NAME>
+nobled keys add <KEY-NAME> # Replace <KEY-NAME> with a name for your wallet
 
 # Recover wallet
-nobled keys add <KEY-NAME> --recover
+nobled keys add <KEY-NAME> --recover # This will prompt for your mnemonic seed phrase

</blockquote></details>
<details>
<summary>docs/modules/dollar.mdx (3)</summary><blockquote>

`21-21`: **Fix typo in USDN description**

There's a minor typo in the description of USDN functionality.

```diff
-The module provides mechanisms for minting, burning, transferring, querying USDN-.
+The module provides mechanisms for minting, burning, transferring, and querying USDN.

26-26: Provide timeline for IBC transfer support

The documentation mentions that IBC transfers aren't supported yet, but doesn't provide any timeline or roadmap information.

Consider adding more context:

-Users can transfer USDN on Noble chain between accounts. Note: IBC transfers are not supported yet
+Users can transfer USDN on Noble chain between accounts. Note: IBC transfers are not supported in the current release but are planned for a future update.

54-58: Align table columns for better readability

The table formatting could be improved for better readability.

-| Vault Name | Vault Type | Description |
-|:------------|-------------|-------------|
-| Points | `staking` | Earns Points for users |
-| Yield | `flexible` | Earns additional yield for users |
+| Vault Name | Vault Type   | Description                    |
+|:-----------|:-------------|:-------------------------------|
+| Points     | `staking`    | Earns Points for users         |
+| Yield      | `flexible`   | Earns additional yield for users |
🧰 Tools
🪛 LanguageTool

[uncategorized] ~55-~55: A punctuation mark might be missing here.
Context: ...-----------|-------------|-------------| | Points | staking | Earns Points for ...

(AI_EN_LECTOR_MISSING_PUNCTUATION)

docs/running-your-own-node/state-sync.mdx (2)

68-68: Fix grammar in the node start instruction

There's a grammatical error in the startup instruction.

-Start your node, it should be begin syncing!
+Start your node, it should begin syncing!
🧰 Tools
🪛 LanguageTool

[grammar] ~68-~68: There may an error in the verb form ‘be begin’.
Context: ...sync.sh Start your node, it should be begin syncing! sh nobled start ``` ## Mo...

(MD_BE_NON_VBP)


41-59: Include a check for jq dependency

The script uses jq for JSON parsing but doesn't verify that it's installed.

Add a check for the jq dependency:

 #!/bin/bash
 
+# Check for jq dependency
+if ! command -v jq &> /dev/null; then
+    echo "Error: jq is not installed. Please install it before running this script."
+    echo "Ubuntu: apt-get install jq"
+    echo "macOS: brew install jq"
+    exit 1
+fi
+
 NOBLE_RPC="https://rpc.noble.xyz:443"
 POLKA_RPC="https://noble-rpc.polkachu.com:443"
README.md (5)

5-5: Fix heading hierarchy

The document jumps from H1 to H3 without using H2 first, which breaks the logical hierarchy.

-### Installation
+## Installation
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


7-9: Specify language for code block and remove $ prefix

The code block should specify a language and avoid using $ prefixes in commands without showing output.

-```
-$ yarn
-```
+```bash
+yarn
+```
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

7-7: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


8-8: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


11-15: Apply consistent code block formatting throughout

Similar to the previous comment, maintain consistent formatting for code blocks.

-### Local Development
+## Local Development
 
-```sh
-$ yarn start
+```bash
+yarn start

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

14-14: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

</details>

</details>

---

`19-23`: **Fix code block formatting for build command**

Maintain consistent formatting for all code blocks.

```diff
-### Build
+## Build
 
-```
-$ yarn build
+```bash
+yarn build

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

21-21: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

---

22-22: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

</details>

</details>

---

`1-26`: **Enhance README with deployment and contribution information**

The README provides basic setup but lacks information about deployment and how to contribute.

Consider adding more sections:

```diff
 This command generates static content into the `build` directory and can be served using any static contents hosting service.
+
+## Deployment
+
+This site is automatically deployed to GitHub Pages when changes are pushed to the main branch.
+
+## Contributing
+
+Contributions are welcome! Please feel free to submit a Pull Request.
+
+1. Fork the repository
+2. Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. Commit your changes (`git commit -m 'Add some amazing feature'`)
+4. Push to the branch (`git push origin feature/amazing-feature`)
+5. Open a Pull Request
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


7-7: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


8-8: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


14-14: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


21-21: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


22-22: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

src/components/Collapse.js (2)

7-23: Extract inline styles to improve maintainability

Using inline styles makes the component harder to maintain and update. Consider extracting them.

Move styles to a separate object or CSS module:

 const Collapse = ({ summary, children }) => {
   const [isOpen, setIsOpen] = useState(false);
 
+  const styles = {
+    container: { 
+      marginBottom: '10px', 
+      border: '1px solid #ddd', 
+      borderRadius: '5px', 
+      padding: '10px' 
+    },
+    button: {
+      background: 'none',
+      border: 'none',
+      fontSize: '16px',
+      fontWeight: 'bold',
+      cursor: 'pointer',
+      display: 'flex',
+      alignItems: 'center'
+    },
+    content: { 
+      marginTop: '10px' 
+    }
+  };
+
   return (
-    <div style={{ marginBottom: '10px', border: '1px solid #ddd', borderRadius: '5px', padding: '10px' }}>
+    <div style={styles.container}>
       <button
         onClick={() => setIsOpen(!isOpen)}
-        style={{
-          background: 'none',
-          border: 'none',
-          fontSize: '16px',
-          fontWeight: 'bold',
-          cursor: 'pointer',
-          display: 'flex',
-          alignItems: 'center'
-        }}
+        style={styles.button}
       >
         {isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
       </button>
-      {isOpen && <div style={{ marginTop: '10px' }}>{children}</div>}
+      {isOpen && <div style={styles.content}>{children}</div>}
     </div>
   );
 };
🧰 Tools
🪛 Biome (1.9.4)

[error] 20-20: Avoid passing content using the dangerouslySetInnerHTML prop.

Setting content using code can expose users to cross-site scripting (XSS) attacks

(lint/security/noDangerouslySetInnerHtml)


3-3: Add prop validation for component

The component lacks prop type validation which could help prevent errors.

Add PropTypes for better type checking:

 import React, { useState } from 'react';
+import PropTypes from 'prop-types';
 
 const Collapse = ({ summary, children }) => {
   // Component implementation...
 };
 
+Collapse.propTypes = {
+  summary: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
+  children: PropTypes.node.isRequired,
+};
+
 export default Collapse;
docs/modules/cctp/index.mdx (1)

23-27: Consider Minor Grammar Enhancements.
The ordered list in the introduction (e.g. “User burns funds on source chain” and “User receives minted funds on destination chain”) might read better with definite articles (“the source chain” and “the destination chain”) to improve clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: You might be missing the article “the” here.
Context: ...on chain route: 1. User burns funds on source chain 2. A Circle service observes and ...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~26-~26: You might be missing the article “the” here.
Context: ... chain 4. User receives minted funds on destination chain ![](./images/cctp-high-level.png...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

src/css/custom.css (2)

30-38: Pseudo-Icon Styles are Clear and Responsive.
The .pseudo-icon rules (including hover effects) are implemented cleanly. As a good-to-have improvement, you might consider using CSS variables for the padding and margin values if they are reused elsewhere.


72-84: Launch-Express Button Styles are Consistent.
The styles for .launch-express (across both light and dark themes) are well defined. Consider adding focus styles to improve accessibility for keyboard users.

docs/modules/cctp/mint_forward.mdx (2)

42-48: Review Tip Block Formatting for Consistency.
Within the tip block, ensure punctuation is consistent. For example, on line 44: "Note that this needs to be supplied as hex (0x14)." verify that the punctuation matches the style used throughout the document.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~44-~44: A punctuation mark might be missing here.
Context: ...case of the dYdX Testnet, this would be [channel-20][Testnet dYdX Channel], so *...

(AI_EN_LECTOR_MISSING_PUNCTUATION)


50-56: Simplify Parameter Descriptions for Improved Readability.
The explanation for destinationBech32Prefix is somewhat wordy. A streamlined version (e.g., "This parameter defines the Bech32 prefix for the destination chain. Encode it as a padded bytes32 value (see Encoding).") might make the documentation easier to digest.

🧰 Tools
🪛 LanguageTool

[style] ~53-~53: Consider a shorter alternative to avoid wordiness.
Context: ...he chain funds are being forwarded to. In order to align ourselves with the CCTP standard,...

(IN_ORDER_TO_PREMIUM)

docs/modules/authority.mdx (1)

18-18: Simplify Wording for Clarity
The sentence “Each module has the ability to assign the Authority module as its authority” can be simplified for brevity. Consider changing it to “Each module can assign the Authority module as its authority.”

-Each module has the ability to assign the `Authority` module as its authority.
+Each module can assign the `Authority` module as its authority.
🧰 Tools
🪛 LanguageTool

[style] ~18-~18: The phrase ‘has the ability to’ might be wordy. Consider using “can”.
Context: ...d operations on the chain. Each module has the ability to assign the Authority module as its au...

(HAS_THE_ABILITY_TO)

docs/index.mdx (2)

13-23: Inline Styling: Consider Refactoring for Reusability
The inline style block defining the background image and related properties works as expected. Over time, if these styles are reused or become more complex, consider moving them to a CSS module or a dedicated styling file for better maintainability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Loose punctuation mark.
Context: ...a(0,0,0,1) 70%, rgba(0,0,0,0) 100%)' }}> <h1 style={{ textAlign: 'center', p...

(UNLIKELY_OPENING_PUNCTUATION)


29-32: Punctuation Improvement in Descriptive Text
In the sentence describing Noble’s interoperability, a comma after “Cosmos ecosystem” would improve readability. For example:

-Noble ensures seamless interoperability across the Cosmos ecosystem enabling fast and secure transactions.
+Noble ensures seamless interoperability across the Cosmos ecosystem, enabling fast and secure transactions.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~31-~31: A comma might be missing here.
Context: ...less interoperability across the Cosmos ecosystem enabling fast and secure transactions. ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

docs/running-your-own-node/full-archive.mdx (1)

36-36: Spelling Consistency: Use Hyphenation for Compound Adjectives
In the sentence “Be ready, this is a tedious and time consuming process as you are starting from block 0!”, the compound adjective “time consuming” should be hyphenated as “time-consuming” for clarity.

-Be ready, this is a tedious and time consuming process as you are starting from block 0!
+Be ready, this is a tedious and time-consuming process as you are starting from block 0!
🧰 Tools
🪛 LanguageTool

[misspelling] ~36-~36: This word is normally spelled with a hyphen.
Context: ...enesis Be ready, this is a tedious and time consuming process as you are starting from block ...

(EN_COMPOUNDS_TIME_CONSUMING)

docs/governance/index.mdx (1)

15-17: Punctuation for Improved Readability
In the sentence about parameter changes, consider adding a comma before “as it would not require...” to improve clarity. For example:

-The NMM has the ability to initiate parameter changes. This authority is distinct from the upgrade functionality as it would not require the Noble validators to run a new chain binary.
+The NMM has the ability to initiate parameter changes. This authority is distinct from the upgrade functionality, as it would not require the Noble validators to run a new chain binary.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~16-~16: Possible missing comma found.
Context: ... authority is distinct from the upgrade functionality as it would not require the Noble valid...

(AI_HYDRA_LEO_MISSING_COMMA)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 23f2528 and 2c55f67.

⛔ Files ignored due to path filters (30)
  • bun.lockb is excluded by !**/bun.lockb
  • docs/modules/cctp/images/cctp-e2e.png is excluded by !**/*.png
  • docs/modules/cctp/images/cctp-high-level.png is excluded by !**/*.png
  • docs/modules/cctp/images/cctp-noble.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot1:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot2:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot3:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot4:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot5:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot6:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot7:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot8:9.png is excluded by !**/*.png
  • docs/modules/cctp/images/troubleshoot9:9.png is excluded by !**/*.png
  • docs/modules/images/eure_banner.png is excluded by !**/*.png
  • docs/modules/images/forwarding_swimlane_cex_to_ibc_v1_1.jpg is excluded by !**/*.jpg
  • docs/modules/images/usdn_banner.png is excluded by !**/*.png
  • docs/modules/images/usdy_banner.png is excluded by !**/*.png
  • docs/modules/images/usyc_banner.png is excluded by !**/*.png
  • package-lock.json is excluded by !**/package-lock.json
  • static/img/bg.png is excluded by !**/*.png
  • static/img/coins/usdc.svg is excluded by !**/*.svg
  • static/img/favicon.ico is excluded by !**/*.ico
  • static/img/full_logo_dark.png is excluded by !**/*.png
  • static/img/full_logo_light.png is excluded by !**/*.png
  • static/img/keplr_dark.png is excluded by !**/*.png
  • static/img/keplr_light.png is excluded by !**/*.png
  • static/img/leap_wallet.png is excluded by !**/*.png
  • static/img/logo.svg is excluded by !**/*.svg
  • static/img/usdn_banner.png is excluded by !**/*.png
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (78)
  • .github/workflows/deploy.yaml (0 hunks)
  • .github/workflows/deploy.yml (1 hunks)
  • .github/workflows/test-deploy.yml (1 hunks)
  • .gitignore (1 hunks)
  • .prettierignore (0 hunks)
  • README.md (1 hunks)
  • docs/chain-upgrades/_category_.json (1 hunks)
  • docs/chain-upgrades/mainnet.mdx (1 hunks)
  • docs/chain-upgrades/testnet.mdx (1 hunks)
  • docs/endpoints/_category_.json (1 hunks)
  • docs/endpoints/mainnet.mdx (1 hunks)
  • docs/endpoints/testnet.mdx (1 hunks)
  • docs/faucet.mdx (1 hunks)
  • docs/governance/index.mdx (1 hunks)
  • docs/index.mdx (1 hunks)
  • docs/jester/faq.mdx (1 hunks)
  • docs/jester/index.mdx (1 hunks)
  • docs/modules/aura.mdx (1 hunks)
  • docs/modules/authority.mdx (1 hunks)
  • docs/modules/blockibc.mdx (1 hunks)
  • docs/modules/cctp/burn.mdx (1 hunks)
  • docs/modules/cctp/index.mdx (1 hunks)
  • docs/modules/cctp/manual_relaying.mdx (1 hunks)
  • docs/modules/cctp/mint.mdx (1 hunks)
  • docs/modules/cctp/mint_forward.mdx (3 hunks)
  • docs/modules/cctp/module_interface.mdx (1 hunks)
  • docs/modules/dollar.mdx (1 hunks)
  • docs/modules/fiattokenfactory.mdx (1 hunks)
  • docs/modules/florin.mdx (1 hunks)
  • docs/modules/forwarding.mdx (1 hunks)
  • docs/modules/globalfee.mdx (1 hunks)
  • docs/modules/halo.mdx (1 hunks)
  • docs/modules/index.mdx (1 hunks)
  • docs/modules/swap.mdx (1 hunks)
  • docs/modules/wormhole.mdx (1 hunks)
  • docs/poa/index.mdx (1 hunks)
  • docs/poa/validatorSet.mdx (1 hunks)
  • docs/running-your-own-node/full-archive.mdx (1 hunks)
  • docs/running-your-own-node/index.mdx (1 hunks)
  • docs/running-your-own-node/snapshot.mdx (1 hunks)
  • docs/running-your-own-node/state-sync.mdx (1 hunks)
  • docs/wallets.mdx (1 hunks)
  • docusaurus.config.js (1 hunks)
  • genesis_files/mainnet/genesis.json (1 hunks)
  • genesis_files/testnet/genesis.json (1 hunks)
  • next.config.js (0 hunks)
  • package.json (1 hunks)
  • pages/_meta.json (0 hunks)
  • pages/cctp/_meta.json (0 hunks)
  • pages/cctp/contract_addresses.mdx (0 hunks)
  • pages/cctp/index.mdx (0 hunks)
  • pages/index.mdx (0 hunks)
  • pages/modules/_meta.json (0 hunks)
  • pages/modules/globalfee.mdx (0 hunks)
  • pages/modules/tariff.mdx (0 hunks)
  • pages/modules/tokenfactory.mdx (0 hunks)
  • pages/network/_meta.json (0 hunks)
  • pages/network/multisig.mdx (0 hunks)
  • pages/network/resources.mdx (0 hunks)
  • pages/network/running.mdx (0 hunks)
  • pages/network/upgrades.mdx (0 hunks)
  • pages/network/upgrades/_meta.json (0 hunks)
  • pages/network/upgrades/argon.mdx (0 hunks)
  • pages/network/upgrades/krypton.mdx (0 hunks)
  • pages/network/upgrades/neon.mdx (0 hunks)
  • pages/network/upgrades/numus.mdx (0 hunks)
  • pages/network/upgrades/radon.mdx (0 hunks)
  • pages/network/upgrades/xenon.mdx (0 hunks)
  • sidebars.js (1 hunks)
  • src/components/Button.js (1 hunks)
  • src/components/Collapse.js (1 hunks)
  • src/components/GitHubButton.js (1 hunks)
  • src/components/PolkachuIcon.js (1 hunks)
  • src/css/custom.css (1 hunks)
  • src/pages/index.js.bak (1 hunks)
  • src/pages/index.module.css (1 hunks)
  • src/theme/MDXComponents.js (1 hunks)
  • theme.config.tsx (0 hunks)
💤 Files with no reviewable changes (25)
  • .prettierignore
  • pages/network/upgrades/xenon.mdx
  • pages/network/upgrades/krypton.mdx
  • pages/_meta.json
  • pages/network/upgrades/_meta.json
  • pages/network/upgrades/numus.mdx
  • pages/network/upgrades.mdx
  • pages/network/running.mdx
  • pages/modules/_meta.json
  • pages/cctp/index.mdx
  • pages/network/upgrades/neon.mdx
  • pages/network/_meta.json
  • next.config.js
  • pages/cctp/contract_addresses.mdx
  • .github/workflows/deploy.yaml
  • pages/network/upgrades/radon.mdx
  • pages/network/resources.mdx
  • pages/modules/tokenfactory.mdx
  • pages/cctp/_meta.json
  • pages/network/upgrades/argon.mdx
  • pages/network/multisig.mdx
  • pages/index.mdx
  • pages/modules/globalfee.mdx
  • theme.config.tsx
  • pages/modules/tariff.mdx
🚧 Files skipped from review as they are similar to previous changes (36)
  • docs/modules/wormhole.mdx
  • docs/faucet.mdx
  • docs/running-your-own-node/index.mdx
  • docs/modules/swap.mdx
  • src/theme/MDXComponents.js
  • docs/modules/florin.mdx
  • docs/modules/cctp/module_interface.mdx
  • src/pages/index.module.css
  • src/pages/index.js.bak
  • docs/endpoints/category.json
  • docs/endpoints/mainnet.mdx
  • docs/modules/aura.mdx
  • docs/modules/halo.mdx
  • docs/running-your-own-node/snapshot.mdx
  • docs/chain-upgrades/testnet.mdx
  • docs/chain-upgrades/mainnet.mdx
  • docs/modules/fiattokenfactory.mdx
  • docs/jester/index.mdx
  • sidebars.js
  • docs/modules/globalfee.mdx
  • docs/poa/validatorSet.mdx
  • src/components/GitHubButton.js
  • docs/modules/cctp/manual_relaying.mdx
  • docs/modules/blockibc.mdx
  • docs/modules/cctp/burn.mdx
  • docs/modules/forwarding.mdx
  • docs/endpoints/testnet.mdx
  • docs/jester/faq.mdx
  • docs/poa/index.mdx
  • docusaurus.config.js
  • .gitignore
  • src/components/Button.js
  • src/components/PolkachuIcon.js
  • docs/modules/index.mdx
  • docs/modules/cctp/mint.mdx
  • docs/chain-upgrades/category.json
🧰 Additional context used
🪛 LanguageTool
docs/modules/authority.mdx

[style] ~18-~18: The phrase ‘has the ability to’ might be wordy. Consider using “can”.
Context: ...d operations on the chain. Each module has the ability to assign the Authority module as its au...

(HAS_THE_ABILITY_TO)


[uncategorized] ~32-~32: A comma may be missing after the conjunctive/linking adverb ‘However’.
Context: ...ity execute <FILE.json> --from nmm ``` However the modules primary use case will likel...

(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)


[uncategorized] ~33-~33: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...<FILE.json> --from nmm ``` However the modules primary use case will likely be used fo...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)

docs/index.mdx

[uncategorized] ~22-~22: Loose punctuation mark.
Context: ...a(0,0,0,1) 70%, rgba(0,0,0,0) 100%)' }}> <h1 style={{ textAlign: 'center', p...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~31-~31: A comma might be missing here.
Context: ...less interoperability across the Cosmos ecosystem enabling fast and secure transactions. ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

docs/governance/index.mdx

[uncategorized] ~16-~16: Possible missing comma found.
Context: ... authority is distinct from the upgrade functionality as it would not require the Noble valid...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~20-~20: Probable usage error. Use “and” after ‘both’.
Context: ...blish IBC connections that have expired as well as sever IBC connections. Any such action ...

(BOTH_AS_WELL_AS)

docs/modules/cctp/index.mdx

[uncategorized] ~23-~23: You might be missing the article “the” here.
Context: ...on chain route: 1. User burns funds on source chain 2. A Circle service observes and ...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~26-~26: You might be missing the article “the” here.
Context: ... chain 4. User receives minted funds on destination chain ![](./images/cctp-high-level.png...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

docs/modules/cctp/mint_forward.mdx

[uncategorized] ~44-~44: A punctuation mark might be missing here.
Context: ...case of the dYdX Testnet, this would be [channel-20][Testnet dYdX Channel], so *...

(AI_EN_LECTOR_MISSING_PUNCTUATION)


[style] ~53-~53: Consider a shorter alternative to avoid wordiness.
Context: ...he chain funds are being forwarded to. In order to align ourselves with the CCTP standard,...

(IN_ORDER_TO_PREMIUM)

docs/modules/dollar.mdx

[uncategorized] ~55-~55: A punctuation mark might be missing here.
Context: ...-----------|-------------|-------------| | Points | staking | Earns Points for ...

(AI_EN_LECTOR_MISSING_PUNCTUATION)


[style] ~78-~78: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... nobled q dollar vaults paused Query for aggregated vault statistics, includ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

docs/running-your-own-node/full-archive.mdx

[misspelling] ~36-~36: This word is normally spelled with a hyphen.
Context: ...enesis Be ready, this is a tedious and time consuming process as you are starting from block ...

(EN_COMPOUNDS_TIME_CONSUMING)

docs/running-your-own-node/state-sync.mdx

[grammar] ~68-~68: There may an error in the verb form ‘be begin’.
Context: ...sync.sh Start your node, it should be begin syncing! sh nobled start ``` ## Mo...

(MD_BE_NON_VBP)

docs/wallets.mdx

[misspelling] ~7-~7: This word is normally spelled as one.
Context: ...medImage from '@theme/ThemedImage'; ## Non-custodial:

...

(EN_COMPOUNDS_NON_CUSTODIAL)

🪛 Checkov (3.2.334)
genesis_files/testnet/genesis.json

[HIGH] 724-725: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 846-847: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 968-969: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1273-1274: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1334-1335: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1395-1396: IBM Cloud IAM Key

(CKV_SECRET_7)

genesis_files/mainnet/genesis.json

[HIGH] 932-933: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 993-994: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1359-1360: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1420-1421: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1680-1681: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1775-1776: IBM Cloud IAM Key

(CKV_SECRET_7)

🪛 YAMLlint (1.35.1)
.github/workflows/deploy.yml

[error] 47-47: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/test-deploy.yml

[error] 24-24: no new line character at the end of file

(new-line-at-end-of-file)

🪛 markdownlint-cli2 (0.17.2)
README.md

5-5: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


7-7: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


8-8: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


14-14: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)


21-21: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


22-22: Dollar signs used before commands without showing output
null

(MD014, commands-show-output)

🪛 Biome (1.9.4)
src/components/Collapse.js

[error] 20-20: Avoid passing content using the dangerouslySetInnerHTML prop.

Setting content using code can expose users to cross-site scripting (XSS) attacks

(lint/security/noDangerouslySetInnerHtml)

🔇 Additional comments (25)
genesis_files/mainnet/genesis.json (2)

1-2026: General Genesis File Review (Mainnet):
The new mainnet genesis JSON is comprehensive and follows the expected schema for a blockchain’s initial state. The metadata (genesis_time, chain_id, initial_height), the consensus parameters, and the detailed application state (covering authentication, bank, distribution, staking, etc.) all appear to be set correctly. Please verify that the values (for example, the chain_id "noble-1" and the provided parameters) match your network configuration expectations.

🧰 Tools
🪛 Checkov (3.2.334)

[HIGH] 932-933: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 993-994: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1359-1360: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1420-1421: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1680-1681: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1775-1776: IBM Cloud IAM Key

(CKV_SECRET_7)


2025-2026: Final Check on File Structure:
Ensure that the final closing braces and overall JSON formatting adhere to your parser’s requirements and that no extraneous whitespace or trailing commas will cause issues during genesis file ingestion.

genesis_files/testnet/genesis.json (1)

1-1608: General Genesis File Review (Testnet):
The testnet genesis file is well structured and mirrors the comprehensive format seen in the mainnet version. Key parameters like the genesis_time, chain_id "grand-1", consensus parameters, and the detailed application state (including sections for auth, bank, staking, distribution, and more) are clearly defined. Please review the account and validator configurations for alignment with your testnet deployment objectives.

🧰 Tools
🪛 Checkov (3.2.334)

[HIGH] 724-725: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 846-847: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 968-969: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1273-1274: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1334-1335: IBM Cloud IAM Key

(CKV_SECRET_7)


[HIGH] 1395-1396: IBM Cloud IAM Key

(CKV_SECRET_7)

.github/workflows/test-deploy.yml (1)

1-24: Workflow Setup Looks Solid.
This new GitHub Actions workflow correctly checks out the repository, sets up Node.js (v18) with Yarn caching, installs dependencies using a frozen lockfile, and builds the website. Verify that the build command (yarn build) produces the expected results in your test environment.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 24-24: no new line character at the end of file

(new-line-at-end-of-file)

docs/modules/cctp/index.mdx (2)

1-7: Metadata Block is Well-Defined.
The metadata header clearly lists tags and a description for the CCTP module documentation. Consider adding additional fields (e.g. an author or version) if future traceability is needed.


28-37: Image and Link References Are Correct.
The image inclusion (![](./images/cctp-high-level.png)) and references for contract addresses appear appropriate. Just ensure that the referenced image exists at the specified path and is optimized for web delivery.

src/css/custom.css (6)

1-7: Global CSS Documentation is Clear.
The file header comment explains that any CSS included here is global and outlines Infima’s integration. This provides useful context for anyone reviewing these styles.


8-16: CSS Variable Definitions Are Well-Organized.
Defining theme colors under the :root selector ensures a consistent design system throughout the application. No issues found; these values appear consistent with a standard color palette.


18-28: Dark Mode Variables Configured Appropriately.
The dark mode overrides supply lighter color values, which is beneficial for readability. Consider running an accessibility contrast check to confirm that these colors meet guidelines.


49-55: GitHub Icon Styling is Handled Well.
Both the default and dark-themed versions for .github-icon::before correctly use inline SVGs. Verify that the SVG data remains optimized and valid.


57-70: Web Icon Presentation is Consistent.
The .web-icon classes include proper background properties (positioning, size, and repeat settings) to ensure good visual rendering.


91-100: Flexbox Layout for Wallet Containers is Effective.
The flex properties applied to .wallets-container and .wallet-container provide a clear and responsive layout for wallet elements.

docs/modules/cctp/mint_forward.mdx (2)

1-5: Metadata Section is Well-Formed.
The metadata at the top provides clear tagging and a description for the document. This sets a solid foundation for the rest of the content.


167-167: Image Path Update Verified.
The use of ![](./images/cctp-e2e.png) reflects the updated directory structure correctly. Ensure the image exists at this new location and is appropriately sized.

.github/workflows/deploy.yml (2)

1-30: Build Job Configuration is Solid.
The build job properly sets up Node.js (v18), installs dependencies, builds the website, and uploads the build artifact. This structure aligns well with your deployment requirements.


31-46: Deploy Job is Configured Correctly.
The deploy job sets the necessary permissions, establishes the deployment environment, and uses the official actions/deploy-pages@v4 action. Please double-check that the build artifact path is referenced correctly downstream.

docs/modules/authority.mdx (2)

1-7: Frontmatter and Metadata: Looks Good
The frontmatter metadata (tags, description, etc.) is well structured and clear.


8-17: Component Import and Introductory Content: Approved
The import of the GitHubButton component and the introductory section are clear and correctly implemented.

docs/index.mdx (1)

1-7: Frontmatter and Page Metadata: Approved
The frontmatter (slug, title, sidebar position, etc.) is well configured and clear.

docs/running-your-own-node/full-archive.mdx (1)

1-5: Frontmatter and Document Title: Approved
The frontmatter and title information are clearly set up, making it easy to locate and reference this documentation page.

docs/governance/index.mdx (2)

1-9: Governance Overview: Clear and Comprehensive
The introductory section clearly outlines the role of the Noble Maintenance Multisig (NMM) and its core functions.


20-24: Overall Structure and Clarity: Approved
The remainder of the governance document is comprehensive and clearly outlines the structure and functionality of the NMM.

🧰 Tools
🪛 LanguageTool

[grammar] ~20-~20: Probable usage error. Use “and” after ‘both’.
Context: ...blish IBC connections that have expired as well as sever IBC connections. Any such action ...

(BOTH_AS_WELL_AS)

package.json (3)

1-15: Package Configuration Update: Well Executed
The updates to the package name, version, and the new Docusaurus-related scripts are appropriate. The scripts now support development, building, and deployment of the documentation site.


16-25: Dependencies and DevDependencies: Verify Compatibility
The dependencies have been successfully transitioned from Next.js/Nextra to Docusaurus with updated versions for React, Docusaurus core, and related packages. One point to verify: the use of "react": "^19.0.0" and "react-dom": "^19.0.0" is a major upgrade. Ensure that these versions are compatible with Docusaurus and that no breaking changes affect the documentation site.


26-44: Browserslist and Engines: Approved
The addition of the browserslist and engines fields improves clarity on supported environments. These additions are aligned with current best practices.

Comment on lines +38 to +42
This message facilitates cross-chain transfers and permissionless manual relaying for USDN within the Noble Dollar Portal.

```
nobled tx dollar portal deliver <vaa_payload> --from <signer>
```
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Clarify the Portal functionality

The portal delivery function is mentioned without adequate context about what it is or how it works.

Consider expanding this section to explain:

  1. What is the Noble Dollar Portal
  2. What is a vaa_payload and how users can get it
  3. When would users need this functionality

🏁 Script executed:

#!/bin/bash
# Search for portal-related content in the codebase
rg -i "dollar portal" --type md

Length of output: 33


I'm not seeing additional context from the initial search. To ensure we have a complete picture of the usage and explanation of the portal functionality, let's run a broader search for references to both Noble Dollar Portal and vaa_payload across the repository. This should help us verify if more context exists, or if we need to request a manual explanation/update.

Please run the above script to verify whether there is any additional documentation or comments within the codebase that clarify these concepts.


🏁 Script executed:

#!/bin/bash
echo "Searching for 'Noble Dollar Portal' references across the repository:"
rg -ni "Noble Dollar Portal"
echo ""
echo "Searching for 'vaa_payload' references across the repository:"
rg -ni "vaa_payload"

Length of output: 595


Action Required: Expand and Clarify Portal Documentation

Please update the documentation in docs/modules/dollar.mdx to provide more context around the Noble Dollar Portal functionality. Specifically, consider addressing the following:

  • What is the Noble Dollar Portal?
    Explain its purpose, core functionalities, and where it fits within the broader system.

  • What is a <vaa_payload>?
    Clarify what this payload represents, how users can generate or obtain it, and any format or validation details.

  • When should this functionality be used?
    Describe the scenarios or use cases where users would need to execute the nobled tx dollar portal deliver <vaa_payload> --from <signer> command.

Providing these details will help users better understand and utilize the portal functionality.

alignItems: 'center'
}}
>
{isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Replace dangerouslySetInnerHTML with safer alternatives

Using dangerouslySetInnerHTML can expose your application to cross-site scripting (XSS) attacks.

Consider using a safer approach:

-        {isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
+        {isOpen ? '▼' : '▶'} <span>{typeof summary === 'string' ? summary : summary}</span>

If HTML rendering is absolutely necessary, consider using a secure sanitization library:

import DOMPurify from 'dompurify';

// Then in your component:
<span dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(summary) }} />
🧰 Tools
🪛 Biome (1.9.4)

[error] 20-20: Avoid passing content using the dangerouslySetInnerHTML prop.

Setting content using code can expose users to cross-site scripting (XSS) attacks

(lint/security/noDangerouslySetInnerHtml)

Comment on lines +3 to +25
const Collapse = ({ summary, children }) => {
const [isOpen, setIsOpen] = useState(false);

return (
<div style={{ marginBottom: '10px', border: '1px solid #ddd', borderRadius: '5px', padding: '10px' }}>
<button
onClick={() => setIsOpen(!isOpen)}
style={{
background: 'none',
border: 'none',
fontSize: '16px',
fontWeight: 'bold',
cursor: 'pointer',
display: 'flex',
alignItems: 'center'
}}
>
{isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
</button>
{isOpen && <div style={{ marginTop: '10px' }}>{children}</div>}
</div>
);
};
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add accessibility support to collapsible component

The current implementation lacks accessibility features that would make it usable for people using screen readers.

Enhance with ARIA attributes:

 const Collapse = ({ summary, children }) => {
   const [isOpen, setIsOpen] = useState(false);
+  const id = React.useId();
 
   return (
     <div style={{ marginBottom: '10px', border: '1px solid #ddd', borderRadius: '5px', padding: '10px' }}>
       <button
         onClick={() => setIsOpen(!isOpen)}
+        aria-expanded={isOpen}
+        aria-controls={`collapse-content-${id}`}
         style={{
           background: 'none',
           border: 'none',
           fontSize: '16px',
           fontWeight: 'bold',
           cursor: 'pointer',
           display: 'flex',
           alignItems: 'center'
         }}
       >
-        {isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
+        <span aria-hidden="true">{isOpen ? '▼' : '▶'}</span>
+        <span>{summary}</span>
       </button>
-      {isOpen && <div style={{ marginTop: '10px' }}>{children}</div>}
+      {isOpen && (
+        <div 
+          id={`collapse-content-${id}`}
+          style={{ marginTop: '10px' }}
+        >
+          {children}
+        </div>
+      )}
     </div>
   );
 };
📝 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
const Collapse = ({ summary, children }) => {
const [isOpen, setIsOpen] = useState(false);
return (
<div style={{ marginBottom: '10px', border: '1px solid #ddd', borderRadius: '5px', padding: '10px' }}>
<button
onClick={() => setIsOpen(!isOpen)}
style={{
background: 'none',
border: 'none',
fontSize: '16px',
fontWeight: 'bold',
cursor: 'pointer',
display: 'flex',
alignItems: 'center'
}}
>
{isOpen ? '▼' : '▶'} <span dangerouslySetInnerHTML={{ __html: summary }} />
</button>
{isOpen && <div style={{ marginTop: '10px' }}>{children}</div>}
</div>
);
};
const Collapse = ({ summary, children }) => {
const [isOpen, setIsOpen] = useState(false);
const id = React.useId();
return (
<div style={{ marginBottom: '10px', border: '1px solid #ddd', borderRadius: '5px', padding: '10px' }}>
<button
onClick={() => setIsOpen(!isOpen)}
aria-expanded={isOpen}
aria-controls={`collapse-content-${id}`}
style={{
background: 'none',
border: 'none',
fontSize: '16px',
fontWeight: 'bold',
cursor: 'pointer',
display: 'flex',
alignItems: 'center'
}}
>
<span aria-hidden="true">{isOpen ? '▼' : '▶'}</span>
<span>{summary}</span>
</button>
{isOpen && (
<div
id={`collapse-content-${id}`}
style={{ marginTop: '10px' }}
>
{children}
</div>
)}
</div>
);
};
🧰 Tools
🪛 Biome (1.9.4)

[error] 20-20: Avoid passing content using the dangerouslySetInnerHTML prop.

Setting content using code can expose users to cross-site scripting (XSS) attacks

(lint/security/noDangerouslySetInnerHtml)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/running-your-own-node/state-sync.mdx (1)

41-59: 🛠️ Refactor suggestion

State Sync Script Enhancement Needed.
The state_sync.sh script effectively sets up variables and automates the configuration update but lacks error handling for the external API calls. For example, if the curl request fails or returns empty data, the subsequent commands may produce invalid values. Consider adding error checking for both LATEST_HEIGHT and TRUST_HASH as shown below:

-LATEST_HEIGHT=$(curl -s $NOBLE_RPC/block | jq -r .result.block.header.height); \
+LATEST_HEIGHT=$(curl -s $NOBLE_RPC/block | jq -r .result.block.header.height)
+if [ -z "$LATEST_HEIGHT" ]; then
+  echo "Error: Failed to fetch latest block height. Check your internet connection or RPC endpoint."
+  exit 1
+fi

And similarly for TRUST_HASH.

🧹 Nitpick comments (4)
docs/running-your-own-node/state-sync.mdx (1)

68-68: Grammar Correction Needed.
The sentence "Start your node, it should be begin syncing!" contains a grammatical error. Consider revising it to "Start your node; it should begin syncing!" or "Start your node, and it should begin syncing!"

🧰 Tools
🪛 LanguageTool

[grammar] ~68-~68: There may an error in the verb form ‘be begin’.
Context: ...sync.sh Start your node, it should be begin syncing! sh nobled start ``` ⚠️ If...

(MD_BE_NON_VBP)

src/css/custom.css (3)

62-68: Web Icon Styling
The .web-icon::before rule embeds an SVG and sets properties for display, position, and size.

A minor nitpick: the background-repeat property is set to no-repeat no-repeat, which is redundant. A single no-repeat is sufficient.

Proposed diff:

-  background-repeat: no-repeat no-repeat;
+  background-repeat: no-repeat;

70-75: Dark Mode Web Icon
The dark theme block for .web-icon::before mirrors the light mode styling and correctly sets the SVG for dark backgrounds.

Similar to the light mode block, the background-repeat property is redundantly specified as no-repeat no-repeat. A single no-repeat is recommended.

Proposed diff:

-  background-repeat: no-repeat no-repeat;
+  background-repeat: no-repeat;

91-94: Hover State for Launch Express
The hover effect on .launch-express effectively changes the background color and applies -webkit-text-fill-color. For broader browser compatibility, consider also setting the standard color property if needed.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2c55f67 and f1623a6.

⛔ Files ignored due to path filters (2)
  • static/img/banner_dark.png is excluded by !**/*.png
  • static/img/banner_light.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • docs/index.mdx (1 hunks)
  • docs/running-your-own-node/state-sync.mdx (1 hunks)
  • src/css/custom.css (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/index.mdx
🧰 Additional context used
🪛 LanguageTool
docs/running-your-own-node/state-sync.mdx

[grammar] ~68-~68: There may an error in the verb form ‘be begin’.
Context: ...sync.sh Start your node, it should be begin syncing! sh nobled start ``` ⚠️ If...

(MD_BE_NON_VBP)

🔇 Additional comments (25)
docs/running-your-own-node/state-sync.mdx (12)

1-5: Front Matter Metadata Looks Good.
The metadata is clearly defined with a descriptive title, summary, and the sidebar position.


7-8: Introduction Text Validity.
The introductory text succinctly explains the purpose of state sync and its benefits.


10-12: Section Header and Instruction Clarity.
The "How To" heading and the preliminary instructions are clear and direct.


14-17: Initialization Command Inconsistency.
The code block instructs:

# Note: if syncing testnet, change the chain-id to `grand-1`
nobled init <moniker> --chain-id noble-1

However, the comment indicates that for testnet the chain-id should be grand-1, while the command uses noble-1. Please verify and update the chain id as needed to prevent confusion.


19-23: Reset State Command.
The command to reset state using nobled comet unsafe-reset-all --keep-addr-book is clearly presented and correct.


25-37: Configuration File Instructions.
The instructions for modifying the config.toml file are well structured. The use of a placeholder (...) is acceptable, provided users know which sections require configuration.


39-40: Script Introduction.
The introduction to the state sync script is concise and correctly references additional information via the [^1] footnote.


61-66: Script Execution Command Verification.
The instructions and commands to set the execute permissions and run the script are accurate and clear.


70-72: Node Start Command Verification.
The command block for starting the node (nobled start) is correctly provided.


74-76: Persistent Peers Note Clarity.
The tip regarding adding peers to the persistent_peers section in the config.toml enhances troubleshooting guidance and is clearly written.


77-80: Additional Resources Section.
The "More Info" section effectively directs users to further documentation on the Cosmos SDK core, providing a valuable resource for in-depth understanding.


81-82: Reference Footnote.
The footnote [^1] is correctly formatted and provides a helpful external reference.

src/css/custom.css (13)

1-5: File Header Documentation
The introductory comment clearly explains the purpose of the file and notes that Infima is bundled by default. This is helpful for future maintenance.


7-7: Google Fonts Import
The import for the 'Play' font from Google Fonts is correctly implemented.


9-21: Global CSS Variable Declarations
The :root block effectively defines custom properties for fonts and a detailed color palette. This approach promotes consistency across the application.


23-33: Dark Mode Theme Overrides
The dark mode variables override the primary palette appropriately. Please verify that these colors satisfy accessibility contrast guidelines.


35-39: Pseudo Icon Styling
The .pseudo-icon class correctly sets the opacity, padding, and margin to style icons. Clear and concise.


41-43: Pseudo Icon Hover Effect
Increasing the opacity on hover provides a simple yet effective visual cue for interactivity.


45-52: Pseudo Icon ::before Setup
The pseudo-element is properly configured with content, dimensions, and background-repeat. Maintaining this consistency ensures a predictable icon appearance.


54-56: GitHub Icon SVG Integration
Embedding the GitHub icon SVG as a data URL is a smart choice to reduce extra HTTP requests. Ensure that the SVG remains optimized.


58-60: Dark Mode GitHub Icon
The dark mode override for the GitHub icon correctly adjusts the SVG fill for better contrast in dark themes.


77-82: Launch Express Dark Mode Styling
The styles for .launch-express in dark mode (background color, border-radius, margin, and transition) are clear. No issues were found here.


84-89: Launch Express Light Mode Styling
The light mode styling for .launch-express is consistent with its dark mode counterpart. Confirm that the color contrast between the background and text remains sufficient in all states.


96-99: Wallets Container Layout
The .wallets-container uses Flexbox with an appropriate gap to manage layout spacing, ensuring a clean and responsive design.


101-105: Wallet Container Centering
Centering of content in .wallet-container with Flexbox properties (align-items and justify-content) is implemented correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants