npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

seacrest

v1.2.2

Published

WalletConnect over the terminal or GitHub Actions

Downloads

15

Readme

Seacrest


Seacrest allows you to connect with WalletConnect from your terminal or GitHub Action.

You start Seacrest either in a terminal or as a GitHub Action. In either case, you'll see a QR Code in your terminal after Seacrest starts [like literally, in your terminal or in the GitHub Actions logs]. Connect any WalletConnect app (e.g. MetaMask Mobile) to that QR Code. From then on out, point your apps to the Ethereum node https://localhost:8585. For standard requests, like the current block number, Seacrest proxies the request to an Ethereum node you specify. But for requests for unlocked accounts or signing transactions, Seacrest will forward the request to your WalletConnect app. Magically, you'll have an "unlocked account" available to use with Hardhat or any other Ethereum tool.

Installing

Terminal

To run Seacrest, install it through npm or yarn:

npm install -g seacrest

Next, run seacrest, specifying an Ethereum node to proxy requests to:

seacrest http://goerli.infura.io 8585

Now, you can specify http://localhost:8585 as your Ethereum node in any service. If that service calls eth_accounts, eth_sendTransaction, net_version, or personal_sign, that request will be intercepted by Seacrest and passed to WalletConnect. Otherwise, the request will be proxied the given Ethereum node.

GitHub Actions

Seacrest is also meant to be easily used in a GitHub Action. Add to your YAML file:

- name: Seacrest
  uses: hayesgm/seacrest@v1
  with:
    ethereum_url: https://goerli.infura.io # optional, otherwise mainnet
    port: 8585 # default 8585

You will need to pull into your logs when the action is running and connect your wallet. Pull into the action log and scan the QR code. It's a little finnicky, but it should work.

Subsequently, you can simply use http://localhost:8585 as your Ethereum node. Any requests for accounts or signatures will be redirected to WalletConnect. For instance, you could deploy scripts from Hardhat using this node, with the security of WalletConnect but the ease and transparency of GitHub Actions.

Configuration

You can configure the following values from the environment:

  • ETHEREUM_URL: Ethereum node to proxy to
  • PORT: Port to bind on
  • LARGE: Show full size QR code or compact
  • RESHOW_DELAY: Reshow the QR code every so often (used in GitHub Actions)
  • REQUESTED_NETWORK: Network to try to connect with- will fail if user connects to wrong network.

Why?

First, for fun ~~and profit~~. Moreso, there's value in interacting and deploying Ethereum contracts in plain sight. But that's hard to do since most people don't want to share private keys with GitHub Secrets, even if they are throw-aways. This gives developers the option to securely sign transactions in public.

Secondly, you could use this as an authorization flow in GitHub Actions, e.g. to unlock other secrets or anything else. It is the first "human in the loop" authorization action that I know of.

Contributing

Create a PR to contribute to Seacrest. All contributors agree to accept the license specified in this repository for all contributions to this project. See LICENSE.md.

Feel free to create Feature Requests in the issues.

Note: The author generated the Seacrest logo with DALL•E, OpenAI's text-to-image generation model. The image was further modified by the author.