open-index/open-npm huggingface dataset:
npm package: @hyperlane-xyz/core
Description: Core solidity contracts for Hyperlane
Latest version: 11.3.1

# Hyperlane Core

Hyperlane Core contains the contracts and typechain artifacts for the Hyperlane implementation for EVM.

## Install

```bash
# Install with NPM
npm install @hyperlane-xyz/core

# Or with pnpm
pnpm add @hyperlane-xyz/core
```

Note, this package uses [ESM Modules](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#pure-esm-package)

## Build

```bash
pnpm build
```

## Test

```bash
pnpm test
```

### Fixtures

Some forge tests may generate fixtures. This allows the [SDK](https://github.com/hyperlane-xyz/hyperlane-monorepo/tree/main/typescript/sdk) tests to leverage forge fuzzing. These are git ignored and should not be committed.

## Contributing

When modifying Solidity contracts, CI checks will validate that appropriate changesets are included based on the type of change:

| Analysis      | Change Type                              | Required Changeset |
| ------------- | ---------------------------------------- | ------------------ |
| **Bytecode**  | Any change                               | `patch` or higher  |
| **Interface** | Addition (new functions, events, errors) | `minor` or higher  |
| **Interface** | Removal or modification                  | `major`            |
| **Storage**   | Addition (new storage slots)             | `minor` or higher  |
| **Storage**   | Removal                                  | `major`            |

To add a changeset, run:

```bash
pnpm changeset
```

Select `@hyperlane-xyz/core` and choose the appropriate bump level based on your changes.

## License

Apache 2.0
npm package: @hyperlane-xyz/cosmos-sdk
Description: Hyperlane TypeScript SDK for the Cosmos Hyperlane SDK module
Latest version: 31.0.0

# Hyperlane Cosmos Module SDK

The Hyperlane Cosmos Module SDK is a fully typed TypeScript SDK for the [Cosmos Hyperlane Module Implementation](https://github.com/bcp-innovations/hyperlane-cosmos).
It can be used as a standalone SDK for frontend or in backend applications which want to connect to a Cosmos SDK chain which has the Hyperlane Module installed.

## Install

```bash
# Install with NPM
npm install @hyperlane-xyz/cosmos-sdk

# Or with pnpm
pnpm add @hyperlane-xyz/cosmos-sdk
```

## Usage

```ts
import { CosmosNativeProvider, CosmosNativeSigner } from "@hyperlane-xyz/cosmos-sdk";
import { DirectSecp256k1Wallet } from '@cosmjs/proto-signing';

// using hyperlane queries without needing signers
const client = await CosmosNativeProvider.connect(
  ["https://rpc-endpoint:26657"]
);

const mailbox = await client.getMailbox('mailbox-id');
const bridgedSupply = await client.getBridgedSupply({ id: "token-id" });
...

// performing hyperlane transactions
const wallet = await DirectSecp256k1Wallet.fromKey(PRIV_KEY);

const signer = await CosmosNativeSigner.connectWithSigner(
  ["https://rpc-endpoint:26657"],
  wallet,
  {
    metadata: {
      gasPrice: {
        amount: '0.2',
        denom: 'denom'
      },
      bech32Prefix: 'test',
    }
  }
);

const { mailbox_id } = await signer.createMailbox({
  owner: '...',
  localDomain: '...',
  defaultIsm: '...',
});

await signer.remoteTransfer({
  sender: '...',
  tokenAddress: '...',
  destinationDomainId: '...',
  recipient: '...',
  amount: '...',
  ...
});

// sign and broadcast custom messages
await signer.signAndBroadcast([txs...]);
```

## Setup

Node 18 or newer is required.

## Testing

We have a `cosmos-sdk-e2e` job in CI that first runs a local node and then runs a suite of end-to-end tests. The `hyperlane-cosmos-simapp` image is created ad-hoc by the `hypd-docker` workflow, intended to be triggered manually by a developer when a new hyperlane-cosmos release is made.

> Note: When updating the `cosmos-sdk` and `cosmos-types` package to a new `hyperlane-cosmos` version, it's important to release a new `hyperlane-cosmos-simapp` image and update the tag used in the `cosmos-sdk-e2e` job. This ensures that the end-to-end tests run against the correct version of the `hyperlane-cosmos` module.

## Contribute

First you need to install the dependencies by running `pnpm install`.

### Building the project

You can build the project with `pnpm build`, the build output can be found under `dist`.
npm package: @hyperlane-xyz/cosmos-types
Description: Hyperlane TypeScript SDK types for the Cosmos Hyperlane SDK module
Latest version: 31.0.0

# Hyperlane Cosmos Module SDK Types

The Hyperlane Cosmos SDK Types contains autogenerated TypeScript types and proto encoders/decoders for the [Cosmos Hyperlane Module Implementation](https://github.com/bcp-innovations/hyperlane-cosmos).
It can be used inside an SDK for type support and for encoding and decoding the Hyperlane specific Cosmos transactions as well as other projects which might benefit from the Hyperlane Cosmos types.

## Install

```bash
# Install with NPM
npm install @hyperlane-xyz/cosmos-types

# Or with pnpm
pnpm add @hyperlane-xyz/cosmos-types
```

## Setup

Before contributing make sure docker is installed and running which is needed for the type generation. Furthermore Node 18 or newer is required.

## Contribute

First you need to install the dependencies by running `pnpm install`.

### Generating TS Types

You can automatically generate the TypeScript types from the proto files of the Cosmos Hyperlane Module by executing the following commands. Note that this only needs to be done if the proto files change in the Cosmos Hyperlane Module project.

```bash
cd typescript/cosmos-types
docker compose up
```

After this command has finished the newly generated types can be found under `src/types`.

### Building the project

You can build the project with `pnpm build`, the build output can be found under `dist`.
npm package: @hyperlane-xyz/github-proxy
Description: Github proxy that adds the API key to requests
Latest version: 5.2.1-beta.0

# Github Proxy

## Overview

Github Proxy is a CloudFlare Worker that makes a Github API requests using an API key. This authenticated method allows higher limits than the non-authenticated mode.

## Keys

Acquire a Github api key by creating a new [fine-grained personal access token](https://github.com/settings/tokens).

## Local Development

Prerequisites: Copy the `.dev.vars.example` and add the Github API key.

Development is managed by the Wrangler CLI. To start dev mode execute `yarn dev`. This will start a local server.

## Testing

Unit tests can be executed using `yarn test`.

## Deployment

Execute `yarn deploy` to deploy to production. Note that the deployment requires permissions. To deploy to a staging environment use `yarn deploy:staging`. Use `yarn deploy:key` to attach the Github key to the Worker.
npm package: @hyperlane-xyz/helloworld
Description: A basic skeleton of an Hyperlane app
Latest version: 31.0.0

# Hyperlane 'Hello World' App Template

A basic Hyperlane application with a router contract that can dispatch messages.

## Setup

```sh
# Install dependencies
pnpm install

# Build source and generate types
pnpm build
```

## Test

```sh
# Run all unit tests
pnpm test

# Lint check code
pnpm lint
```

## Learn more

For more information, see the [Hyperlane documentation](https://docs.hyperlane.xyz/docs/intro).
npm package: @hyperlane-xyz/radix-sdk
Description: Hyperlane TypeScript SDK for the Radix Hyperlane SDK module
Latest version: 31.0.0

# Hyperlane Radix SDK

The Hyperlane Radix SDK is a fully typed TypeScript SDK for the [Radix Implementation](https://github.com/hyperlane-xyz/hyperlane-radix).
It can be used as a standalone SDK for frontend or in backend applications which want to connect to a Radix chain which has the Hyperlane blueprint installed.

## Install

```bash
# Install with NPM
npm install @hyperlane-xyz/radix-sdk

# Or with pnpm
pnpm add @hyperlane-xyz/radix-sdk
```

## Usage

```ts
import { RadixSDK, RadixSigningSDK } from "@hyperlane-xyz/radix-sdk";

const signingSdk = await RadixSigningSDK.fromPrivateKey(
  PRIV_KEY,
  {
    networkId: NetworkId.Stokenet,
  },
);

const mailboxAddress = await signingSdk.tx.createMailbox({ domain_id: 75898670 });

const mailbox = await signingSdk.query.getMailbox({ mailbox: mailboxAddress });
...

// performing queries without signer
const sdk = new RadixSDK({
  networkId: NetworkId.Stokenet,
})

const mailbox = await signingSdk.query.getMailbox({ mailbox: mailboxAddress });
```

## Setup

Node 18 or newer is required.