/hyperdrive-frontend

A monorepo of apps and packages for the Hyperdrive AMM.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

License Static Badge

hyperdrive-frontend-monorepo

A TypeScript monorepo containing apps and packages for integrating and interacting with Hyperdrive.

Powered by TurboRepo.

What is inside?

Apps

Packages

Crates

  • delv-core - Core utilities shared across the other crates.
  • fixed-point-wasm - The Rust crate that compiles to the @delvtech/fixed-point-wasm package.
  • hyperdrive-wasm - The Rust crate that compiles to the @delvtech/hyperdrive-wasm package.
  • ts-macro - An attribute macro for generating TypeScript bindings from Rust structs.
  • ts-type - A library for generating minimal ASTs for TypeScript types from Rust types and/or TypeScript type strings.

Installation

Install dependencies and build packages.

Note: The following two commands must be run from the root directory of the monorepo before interacting with any apps or packages.

yarn
yarn run build:packages

If you're working on the @delvtech/hyperdrive-wasm package, you will need to have the Rust toolchain and Forge installed to compile it. You can install it by running:

Then, run the following command from the root directory of the monorepo:

yarn run build:crates

Environment variables

Some projects in this monorepo require environment variables. Make sure to create a .env file according to the project's .env.sample when building or doing development.

Where to now?

Check out the list of apps and packages above.

Creating a release

This repo uses changesets to manage versioning and changelogs. This means you shouldn't need to manually change of the internal package versions.

Before opening a PR, run yarn changeset and follow the prompts to describe the changes you've made. This will create a changeset file that should be committed.

As changesets are committed to the main branch, the changesets github action in the release workflow will automatically keep track of the pending package.json and CHANGELOG.md updates in an open PR titled chore: version packages.

Once this PR is merged, the release workflow will be triggered, creating new tags and github releases, and publishing the updated packages to NPM. These PRs should be carefully reviewed!

Disclaimer

The language used in this code and documentation is not intended to, and does not, have any particular financial, legal, or regulatory significance.


Copyright © 2024 DELV

Licensed under the GNU Affero General Public License Version 3.0 (the "OSS License").

By accessing or using this code, you signify that you have read, understand and agree to be bound by and to comply with the OSS License and DELV's Terms of Service. If you do not agree to those terms, you are prohibited from accessing or using this code.

Unless required by applicable law or agreed to in writing, software distributed under the OSS License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the OSS License and the DELV Terms of Service for the specific language governing permissions and limitations.