Skip to content

Add sparkscan extension#20667

Closed
Quantumlyy wants to merge 3 commits intoraycast:mainfrom
QuantumlyTangled:ext/sparkscan
Closed

Add sparkscan extension#20667
Quantumlyy wants to merge 3 commits intoraycast:mainfrom
QuantumlyTangled:ext/sparkscan

Conversation

@Quantumlyy
Copy link
Copy Markdown

@Quantumlyy Quantumlyy commented Jul 27, 2025

Description

Search and display information found on addresses, transactions, and tokens on Sparkscan.

The extension will attempt to read the clipboard and parse the input to open the correct page on the explorer.

Screencast

Latest transactions with details collapsed

Latest transactions with details expanded

Statistics

Checklist

- Fix: improves transaction display and data handling
- chore: adds license and updates metadata
- docs: adds initial README file
- feat(transactions): enhances transaction view
- update icons
- remove lookup for now
- latest txs and open in sparkscan
- update logo
- publish
- add stats command
- init
- Initial commit
- refactor: isolate preferences type
- chore: fmt
- chore: add screenshots
- feat: allow toggling details in latest tx
- chore: fmt
- chore: updates ai evals and format code
- feat: adds sparkscan matching logic
- chore: remove transaction tool
- feat: add network statistics tool
- feat: Adds UTM parameters to URLs
- feat(core): adds user agent information
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Jul 27, 2025
@raycastbot
Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

Due to our current reduced availability during summer, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@Quantumlyy Quantumlyy marked this pull request as ready for review July 27, 2025 17:26
@Quantumlyy Quantumlyy changed the title Update sparkscan extension Add sparkscan extension Jul 27, 2025
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

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

Greptile Summary

This PR introduces a new Sparkscan extension for exploring blockchain data on the Spark network, following the same pattern as other blockchain explorer extensions in the Raycast ecosystem. The extension provides three main capabilities:

  1. Clipboard-based URL opening via the open-in-sparkscan.ts command that reads clipboard content and automatically opens the relevant Sparkscan page based on the detected data type (addresses, transactions, tokens, or public keys)

  2. AI-powered statistics retrieval through the get-stats.ts tool that fetches network metrics like total value locked, active accounts, and transaction counts from the Sparkscan API

  3. Intelligent input parsing using a matcher system with classes for different blockchain identifier types:

    • sparkAddress.ts - matches Spark addresses starting with 'sp' and determines network type
    • publicKey.ts - matches Bitcoin compressed public keys using regex validation
    • Additional matchers likely exist for transactions and tokens

The extension integrates well with Raycast's architecture by:

  • Using the preferences system for user customization (network selection, transaction limits, detail display)
  • Including proper AI evaluations in ai.json for testing the statistics tool
  • Following established patterns from similar blockchain explorer extensions
  • Providing utility functions for formatting blockchain data (address truncation, timestamp formatting, transaction type labeling)
  • Including proper TypeScript interfaces and error handling

The extension supports both MAINNET and REGTEST networks for the Spark blockchain, with UTM tracking for analytics when opening external URLs.

Confidence score: 4/5

  • This PR appears safe to merge with well-structured code following established patterns
  • The implementation includes proper error handling, TypeScript typing, and follows Raycast conventions
  • The extension includes required AI evaluations and appears to have proper metadata structure
  • Some minor improvements could be made to clipboard error handling in open-in-sparkscan.ts

8 files reviewed, 1 comment

Edit Code Review Bot Settings | Greptile

Comment thread extensions/sparkscan/src/lib/matchers/sparkAddress.ts
- chore: switch ai file to yaml
- feat: add status ai tool
- feat: adds stats menu bar item
Copy link
Copy Markdown
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

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

Hi 👋

Thanks for your contribution 💪

I have now tested your extension, and I have some feedback ready for you:

  • Maybe it should be named Open from Clipboard in Sparkscan instead?

1755075023003.png

  • I’m getting a lot of undefined in the menubar command which should be resolved

1755075080473.png

  • How does this work, looks like I’m getting an error?

1755075120019.png

  • Add PublicKeyMatch to src/open-in-sparkscan.ts so compressed pubkeys are supported.

  • Seed matchSearch with getPreferenceValues().defaultNetwork instead of hardcoded "MAINNET" in src/open-in-sparkscan.ts.

  • Strip hyphens in TransactionMatch.path (like removeHyphens) to match Sparkscan routing in src/lib/matchers/tx.ts.

  • Add explicit generics to all useFetch calls and align initialData types (e.g., LatestNetworkTransactionItem[]) in src/latest-transactions.tsx, src/statistics.tsx, and src/menu-bar-stats-and-status.tsx.

  • Normalize Sparkscan URLs to a single host (avoid mixing https://sparkscan.io and https://www.sparkscan.io).

  • Do you need help fixing the CI errors mentioned here

I'm looking forward to testing this extension again 🔥

Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

@0xdhrv
Copy link
Copy Markdown
Contributor

0xdhrv commented Jan 7, 2026

Hey @Quantumlyy 👋

Can you address below feedback:

I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊

Feel free to contact me here or at Slack if you have any questions.

@0xdhrv 0xdhrv marked this pull request as draft January 7, 2026 15:38
@raycastbot
Copy link
Copy Markdown
Collaborator

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Jan 27, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

This pull request has been automatically closed due to inactivity.

Feel free to comment in the thread when you're ready to continue working on it 🙂

You can also catch us in Slack if you want to discuss this.

@raycastbot raycastbot closed this Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Extension new extension Label for PRs with new extensions status: stalled Stalled due inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants