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

@kabuto-sh/ns

v0.14.2

Published

A fully decentralized Web3 name service on Hedera Hashgraph.

Downloads

611

Readme

Kabuto Name Service (KNS) SDK

npm npm

The only full decentralized Web3 name service on Hedera Hashgraph.

Install

npm install @kabuto-sh/ns

Setup

Before using KNS, you need to set the Signer that will be used to sign and execute transactions against the network.

import { KNS } from "@kabuto-sh/ns";

const kns = new KNS({
  network: "mainnet", // or "testnet"
});

// NOTE: setProvider takes anything that implements the Signer interface
//  from HIP-338
kns.setSigner(yourSigner);

Usage

Register Name

Register the name, if available. Mints the authorization NFT to the configured signer.

await kns.registerName("example.hh", { years: 3 });

The registration price is explained on https://ns.kabuto.sh. The price is fixed to a USD value. To check the spot price in HBARs, you can use the getRegisterPriceHbar function.

const priceInHbar = await kns.getRegisterPriceHbar("example.hh");

Note that getRegisterPriceHbar does not check for domain availability.

Set Text Record

In order to perform any setX or deleteX functions on a name (e.g., example.hh) your signer must be the owner of the authorization NFT.

// example.hh --> _
await kns.setText("example.hh", "Hello World");

// foo.example.hh --> _
await kns.setText("foo.example.hh", "Bar");

Set Address Record

Address records are keyed by the SLIP-44 coin type.

// example.hh (HBAR) --> _
await kns.setAddress("example.hh", 3030, "0.0.2020");

// example.hh (ETH) --> _
await kns.setAddress(
  "example.hh",
  60,
  "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
);

Set Hedera Address Record

// example.hh (HBAR) --> _
await kns.setHederaAddress("example.hh", "0.0.2020");

Get Name

Retrieve the metadata for a name, if available. Throws NameNotFoundError if not available.

const {
  serialNumber, // serial number in the NFT for this TLD
  ownerAccountId, // account ID that owns this name
  expirationTime, // time that the name ownership will expire
} = await kns.getName("example.hh");

Get Records

Retrieve all text and address records for a name, if available. Throws NameNotFoundError if not available.

const {
  text, // array of { name, text }
  address, // array of { name, coinType, address }
} = await kns.getAll("example.hh");

Get Text Record

Retrieve a text for a name, if available. Throws NameNotFoundError if not available.

const text = await kns.getText("example.hh");

Get Address Record

Retrieve an address record for a name and coin type, if available. Throws NameNotFoundError if not available.

// address is x.y.z
// 3030 is Hedera
const address = await kns.getAddress("example.hh", 3030);

Get Hedera Address Record

Retrieve a HBAR address record for a name, if available. Throws NameNotFoundError if not available.

// address is an @hashgraph/sdk.AccountId
const address = await kns.getHederaAddress("example.hh");

Find Names by Address

Lookup names for a given address record and coin type.

// returns array of names as x.y
const names: string[] = await kns.findNamesByAddress(3030, "0.0.1001");

Find Names by Hedera Address

Lookup names for a given HNAR address record.

// returns array of names as x.y
const names: string[] = await kns.findNamesByHederaAddress(myAccountId);

License

Licensed under the Apache license, version 2.0 (LICENSE or https://www.apache.org/licenses/LICENSE-2.0).

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.