open-index/open-npm huggingface dataset:
npm package: @helium/onboarding
Description: HTTP library for interacting with an onboarding server
Author: Matt Reetz
Latest version: 5.0.4

# `@helium/onboarding`

![npm](https://img.shields.io/npm/v/@helium/onboarding)
An HTTP client for interfacing with an onboarding server

## Installation

```shell
$ yarn add @helium/onboarding
# or
$ npm install @helium/onboarding
```

## Usage

```ts
import OnboardingClient from '@helium/onboarding'
const client = new OnboardingClient()

// Or pass your own custom base url
const client = new OnboardingClient('https://onboarding.you.com/api')

const { data: record } = await client.getOnboardingRecord(hotspotAddress)
console.log(record?.publicAddress)
```
npm package: @helium/proto
Description: Helium protobuf definitions compiled to JS with TypeScript types
Latest version: 2.2.0

![lint workflow](https://github.com/helium/proto/actions/workflows/lint.yml/badge.svg)
![rust workflow](https://github.com/helium/proto/actions/workflows/rust.yml/badge.svg)
![node.js workflow](https://github.com/helium/proto/actions/workflows/node.yml/badge.svg)
![erlang workflow](https://github.com/helium/proto/actions/workflows/erlang.yml/badge.svg)
![cpp workflow](https://github.com/helium/proto/actions/workflows/cpp.yml/badge.svg)

Using this repository requires `protobuf`'s `protoc` to be installed. The
package to be installed differs per host platform.

## Contributing

- Protobuf `message` definitions live in either:
  - `src/service/*.proto` if only used in gRPC service definitions, or
  - `src/*.proto` if used by service-free code or shared across gRPC services
- Avoid `float` in Protobufs because representations differ across hardware architectures
  - There are many floating point representations from IEEE, plus others
  - i.e., some range of interior digits are random per float spec
- Frequency should use `uint32` and should be in Hz
- rssi or signal is always negative, thus use `sint32` and is in deci-dbm (aka `ddbm`) which is `dbm * 10`
- snr is signal-to-noise ratio and should be `uint32`
- Fetch and share time in nanos, then truncate to appropriate granularity as needed
  - e.g., get from OS in nanos
- Reject any PR unless units are documented inline within Protobuf definition
- Document units of fields
- When exceptions to the above occur, please explain _why_ within comments
npm package: @helium/transactions
Description: Construct and serialize Helium blockchain transaction primatives
Latest version: 5.0.4

# `@helium/transactions`

Construct and serialize transaction primatives from their protobuf definitions.

## Token Burn V1
```ts
// create transcation
 const transaction =  new TokenBurnV1({
    payer: payerAddress,
    payee: payeeAddress,
    amount: 10,
    nonce: 1,
    memo: 'MTIzNDU2Nzg5MA==',
})

// sign transaction
const signedTransaction = await transaction.sign({ payer: payerKeypair })
```

## Transfer Hotspot V1
```ts
// create transcation
 const transaction =  new TransferHotspotV1({
    gateway: gatewayAddress,
    buyer: buyerAddress,
    seller: sellerAddress,
    amountToSeller: 100,
    buyerNonce: 1,
})

// sign transaction as buyer
const signedTransaction = await transaction.sign({ buyer: buyerKeypair })

// sign transaction as seller
const signedTransaction = await transaction.sign({ seller: sellerKeypair })
```

## Deserialization

```ts
const paymentTxn = new PaymentV2({
  payer,
  payments,
  nonce,
})

const serializedPaymentV2 = paymentTxn.toString()

const deserializedPaymentV2 = PaymentV2.fromString(serializedPaymentV2)
```
npm package: @helium/wallet-link
Description: Utilities for linking a 3rd party app to the helium wallet.
Latest version: 5.0.4

# `@helium/wallet-link`

Utilities for linking a 3rd party app to the helium wallet. The link token is used for hotspot onboarding, location
assertion, and ownership transfer transaction signing with the Helium Wallet and Hotspot apps.

## Installation

### React Native

```shell
$ yarn add @helium/wallet-link @helium/crypto-react-native
# or
$ npm install @helium/wallet-link @helium/crypto-react-native
```

The `@helium/crypto-react-native` package now uses pure JavaScript cryptography libraries, so no additional setup is required.

## API

The package provides utilities for:

- Creating wallet link tokens
- Parsing wallet link responses
- Signing transactions with wallet callbacks
- Hotspot onboarding workflows

## Usage

```ts
// Create link to Helium app
const url = createWalletLinkUrl({
  universalLink: 'https://wallet.helium.com/',
  requestAppId: 'com.maker.app',
  callbackUrl: 'makerappscheme://',
  appName: 'Maker App',
})

Linking.openURL(url)

// parse received token
const parsed = parseWalletLinkToken(token)

// verify token
const verified = verifyWalletLinkToken(parsed)

// verify token with max age
const verified = verifyWalletLinkToken(parsed, { maxAgeInSeconds: 60 })

// Create link to update a hotspot
const updateParams = {
  token,
  platform: Platform.OS,
  addGatewayTxn: 'your_optional_unsigned_txn',
  assertLocationTxn: 'your_optional_unsigned_txn',
  transferHotspotTxn: 'your_optional_unsigned_txn',
  configurationMessage: 'your_optional_configuration_msg',
} as SignHotspotRequest

const url = createUpdateHotspotUrl(updateParams)
Linking.openURL(url)

// submit signed txn
```
npm package: @helium/welcome-pack-sdk
Description: Interface to the welcome-pack smart contract
Latest version: 0.11.16

# @helium/welcome-pack-sdk

Interface to the welcome-pack smart contract.

## Installation

```sh
npm install @helium/welcome-pack-sdk
```

## Usage

```ts
import { init } from "@helium/welcome-pack-sdk"
import { AnchorProvider } from "@coral-xyz/anchor"

const provider = AnchorProvider.env()
const program = await init(provider)
```

## License

Apache-2.0