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

@utxorpc/sdk

v0.6.4

Published

A client library to interact with UTxO RPC compliant endpoints

Downloads

1,938

Readme

Forks Stars Contributors Issues Issues Closed

The @utxorpc/sdk provides a Node.js interface for interacting with UTxO-based blockchains via gRPC, making it easy to fetch blocks, follow chain tips, and more. This library is designed to help developers integrate blockchain data into their applications efficiently.

✨ Features

  • gRPC Communication: Utilizes gRPC for efficient, low-latency communication with blockchain nodes.
  • SyncClient: Stream real-time updates as new blocks are applied, undone, or when the chain resets.
  • QueryClient: Retrieve UTxOs and other on-chain data.
  • SubmitClient: Submit and monitor transactions.
  • WatchClient: Watch for specific transactions or events related to addresses, assets, and more.

📦 Installation

To install the SDK, use the following command in your project:

npm i @utxorpc/sdk

💻 Usage

CardanoSyncClient Example

The following example demonstrates using CardanoSyncClient to connect to a UTxO RPC service, fetch block data, and follow chain tips in real-time.

import { CardanoSyncClient } from "@utxorpc/sdk";

async function test() {
  let syncClient = new CardanoSyncClient({
    uri: "http://localhost:50051", // Replace with your UTxO RPC service URL
  });

  // Follow chain tips by fetching real-time block updates
  let tip = syncClient.followTip([
    {
      slot: 54131816, // Example slot number
      hash: "34c65aba4b299113a488b74e2efe3a3dd272d25b470d25f374b2c693d4386535", // Example block hash
    },
  ]);

  for await (const event of tip) {
    console.log(event); // handle each event however you want
  }
}

test().catch(console.error);

Available Clients

The SDK includes multiple clients to perform various operations:

1. SyncClient

  • followTip(intersect): Stream blockchain updates in real-time.
  • fetchBlock(point): Fetch a specific block using a slot and hash.
  • fetchHistory(start, maxItems): Fetch historical blocks up to maxItems.

2. QueryClient

  • readParams(): Retrieve blockchain parameters.
  • readUtxosByOutputRef(refs): Get UTxOs based on specific transaction references.
  • searchUtxosByAddress(address): Search UTxOs by address. This also has variants like Search Utxos by Assets and more.

3. SubmitClient

  • submitTx(tx): Submit a transaction to the blockchain.
  • waitForTx(txHash): Wait for a transaction’s confirmation.
  • watchMempool(): Watch the mempool. This also has variants like Watch Mempool for Address and more.

4. WatchClient

  • watchTx(intersect): Watch specific transactions by chain points. This also has variants like Watch Tx for Address.

🤝 Contributing

Contributions are welcome! To contribute, please fork the repository and submit a pull request. For major changes, open an issue first to discuss your ideas.

💬 Join the Community

Want to discuss UTxO RPC or get involved with the community? Join the TxPipe Discord! There’s a dedicated channel for UTxO RPC where you can connect with other developers, share ideas, and get support.

👉 Join the TxPipe Discord here! 💬