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

Use Blockscout as the default block explorer #4206

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

maxaleks
Copy link

@maxaleks maxaleks commented May 24, 2024

Summary by CodeRabbit

  • New Features

    • Updated block explorer links to use Blockscout instead of Etherscan across the application.
  • Improvements

    • Button label in NFT minting view now directs users to Blockscout for transaction details.
    • Updated network configurations to use default suffixes and improved block explorer URLs.
  • Documentation

    • Updated FAQ content to reflect the new Blockscout URL for project funding information.

Copy link

vercel bot commented May 24, 2024

@maxaleks is attempting to deploy a commit to the Giveth Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

coderabbitai bot commented May 24, 2024

Walkthrough

The recent updates primarily focus on enhancing the user interface and configuration settings. Key changes include updating button labels and hyperlinks to reflect the switch from Etherscan to Blockscout, renaming configuration variables with a "Default" suffix, and introducing a utility function to update block explorer URLs dynamically based on the chain ID. These modifications aim to improve clarity and functionality across the application.

Changes

File Path Change Summary
src/components/views/nft/mint/NFTMintIndex.tsx Updated button label from 'View transaction on etherscan' to 'View transaction on Blockscout'.
src/config/development.tsx Renamed imported variables with "Default" suffix and updated block explorers for various networks.
src/config/production.tsx Renamed imported variables with "Default" suffix and updated block explorers for various networks.
src/config/utils.tsx Introduced updateBlockExplorers(chain: Chain) function to dynamically update block explorer URLs.
src/content/FAQ.tsx Updated hyperlink from etherscan.io to eth.blockscout.com.

In the code's vast domain, changes weave,
From Etherscan to Blockscout, we now believe.
Default names in configs, explorers anew,
Each update a step, making dreams come true.
With every line, our app does grow,
A rabbit's touch, in the digital flow. 🐇👩‍💻✨

Tip

New Features and Improvements

Review Settings

Introduced new personality profiles for code reviews. Users can now select between "Chill" and "Assertive" review tones to tailor feedback styles according to their preferences. The "Assertive" profile posts more comments and nitpicks the code more aggressively, while the "Chill" profile is more relaxed and posts fewer comments.

AST-based Instructions

CodeRabbit offers customizing reviews based on the Abstract Syntax Tree (AST) pattern matching. Read more about AST-based instructions in the documentation.

Community-driven AST-based Rules

We are kicking off a community-driven initiative to create and share AST-based rules. Users can now contribute their AST-based rules to detect security vulnerabilities, code smells, and anti-patterns. Please see the ast-grep-essentials repository for more information.

New Static Analysis Tools

We are continually expanding our support for static analysis tools. We have added support for biome, hadolint, and ast-grep. Update the settings in your .coderabbit.yaml file or head over to the settings page to enable or disable the tools you want to use.

Tone Settings

Users can now customize CodeRabbit to review code in the style of their favorite characters or personalities. Here are some of our favorite examples:

  • Mr. T: "You must talk like Mr. T in all your code reviews. I pity the fool who doesn't!"
  • Pirate: "Arr, matey! Ye must talk like a pirate in all yer code reviews. Yarrr!"
  • Snarky: "You must be snarky in all your code reviews. Snark, snark, snark!"

Revamped Settings Page

We have redesigned the settings page for a more intuitive layout, enabling users to find and adjust settings quickly. This change was long overdue; it not only improves the user experience but also allows our development team to add more settings in the future with ease. Going forward, the changes to .coderabbit.yaml will be reflected in the settings page, and vice versa.

Miscellaneous

  • Turn off free summarization: You can switch off free summarization of PRs opened by users not on a paid plan using the enable_free_tier setting.
  • Knowledge-base scope: You can now set the scope of the knowledge base to either the repository (local) or the organization (global) level using the knowledge_base setting. In addition, you can specify Jira project keys and Linear team keys to limit the knowledge base scope for those integrations.
  • High-level summary placement: You can now customize the location of the high-level summary in the PR description using the high_level_summary_placeholder setting (default @coderabbitai summary).
  • Revamped request changes workflow: You can now configure CodeRabbit to auto-approve or request changes on PRs based on the review feedback using the request_changes_workflow setting.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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.

Copy link
Contributor

@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: 1

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between f7b8573 and 624ae95.
Files selected for processing (5)
  • src/components/views/nft/mint/NFTMintIndex.tsx (1 hunks)
  • src/config/development.tsx (4 hunks)
  • src/config/production.tsx (3 hunks)
  • src/config/utils.tsx (1 hunks)
  • src/content/FAQ.tsx (1 hunks)
Additional Context Used
Biome (10)
src/components/views/nft/mint/NFTMintIndex.tsx (1)

107-110: Template literals are preferred over string concatenation.

src/config/development.tsx (2)

10-11: All these imports are only used as types.


11-19: Some named imports are only used as types.

src/config/production.tsx (5)

171-171: Do not use template literals if interpolation and special-character handling are not needed.


211-211: Do not use template literals if interpolation and special-character handling are not needed.


233-233: Do not use template literals if interpolation and special-character handling are not needed.


11-12: All these imports are only used as types.


12-20: Some named imports are only used as types.

src/config/utils.tsx (1)

13-14: All these imports are only used as types.

src/content/FAQ.tsx (1)

6-6: Unexpected any. Specify a different type.

Additional comments not posted (6)
src/config/utils.tsx (1)

31-43: The implementation of updateBlockExplorers function looks good and adheres to modern JavaScript practices.

src/config/development.tsx (1)

88-94: The updates to the variable names and the addition of the updateBlockExplorers function call are correctly implemented and align with the PR's objectives.

src/config/production.tsx (3)

2-8: Updated variable names to include 'Default' suffix to reflect the new default settings.


30-30: Import statement for updateBlockExplorers function added. Ensure this function is implemented correctly in utils.tsx.


58-64: Calls to updateBlockExplorers for each network to update block explorer URLs. Verify that these function calls are correctly updating the URLs as intended.

src/content/FAQ.tsx (1)

276-277: Updated hyperlink to point to Blockscout, aligning with the PR's objective to use Blockscout as the default block explorer.

@@ -139,7 +139,7 @@ export const NFTMintIndex = () => {
</DescCenter>
<ButtonLink
linkType='texty'
label='View transaction on etherscan'
label='View transaction on Blockscout'
Copy link
Contributor

Choose a reason for hiding this comment

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

The button label change aligns with the PR's objective. Consider using template literals for constructing URLs to improve readability.

- href={`${config.MAINNET_CONFIG.blockExplorers?.default.url}/tx/${txHash}`}
+ href={\`${config.MAINNET_CONFIG.blockExplorers?.default.url}/tx/${txHash}\`}

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.

Suggested change
label='View transaction on Blockscout'
label='View transaction on Blockscout'
href={`${config.MAINNET_CONFIG.blockExplorers?.default.url}/tx/${txHash}`}

@jainkrati
Copy link
Collaborator

could you please confirm this PR is for which product requirement @maxaleks

@jainkrati jainkrati self-requested a review May 29, 2024 12:40
Copy link
Collaborator

@jainkrati jainkrati left a comment

Choose a reason for hiding this comment

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

need more context on why this change

@TheD0SH
Copy link

TheD0SH commented May 29, 2024

Hey @jainkrati, I talked with Griff about switching from Etherscan to Blockscout to support open-source public goods. We discussed that Giveth doesn't have enough resources to make the changes, so we agreed to take on this initiative ourselves hence the PR.

@GriffGreen
Copy link
Member

@jainkrati The concept is that etherscan is closed source and centralized, so supporting open source alternatives is good for the ecosystem.

I would love to hear @divine-comedian's opinion on if changing the default block explorer to blockscout is going to be an issue or not.

@divine-comedian
Copy link
Contributor

Yeah I understand but... etherscan is a better blockchain explorer, I've had frequent issues with blockscout not indexing transactions or loading slow etc.. - I think this would be extra amount of work to imho make a not important change for Giveth.

@TheD0SH
Copy link

TheD0SH commented Jun 13, 2024

Yeah I understand but... etherscan is a better blockchain explorer, I've had frequent issues with blockscout not indexing transactions or loading slow etc.. - I think this would be extra amount of work to imho make a not important change for Giveth.

Can you provide specifics on our instances you had issues with? What makes Etherscan superior? The last 3 months Blockscout has had a higher up time the Etherscan making it more reliable.

Apart from supporting other open source projects Blockscout has an easier and more updated UI for users performing TXs which utilizes AI to decode transactions. Also you mention its more work, does the PR not suffice? do we need to make changes? @divine-comedian

@divine-comedian
Copy link
Contributor

divine-comedian commented Jun 13, 2024

We use etherscan and it's chain specific deployments all over the app so I don't have a full view of changing this one file will create more issues for us. I had issues with blockscout not loading gnosis chain for a while, maybe early last year.

We also don't have any of our contracts verified on blockscout and I have had a hell of a time when I did once try to verify our contracts with it.

Introducing this change could have unexpected UI bugs in our dapp. We have a lot of priorities on our plate right now with Giveth and switching our block explorer is just not very important right now.

Our current block explorer solution is free, and it works as expected so I don't think we will be making any changes to this for now.

@TheD0SH
Copy link

TheD0SH commented Nov 27, 2024

Hey @divine-comedian, following up on our conversation from ETHGlobal! Since you had a chance to try out Blockscout there, maybe we could revisit this PR? 👀

Copy link
Member

@mateodaza mateodaza left a comment

Choose a reason for hiding this comment

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

@maxaleks @TheD0SH thanks a lot for this, can you please solve the conflicts to move on?

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

Successfully merging this pull request may close these issues.

6 participants