Skip to content

mlabs-haskell/purescript-hydra-sdk

Repository files navigation

purescript-hydra-sdk

Cardano Hydra SDK (Software Development Kit) for PureScript. This library offers various interfaces to facilitate rapid development of Hydra-based applications.

Table of Contents

Applications

Please refer to hydra-auction-offchain for a full-fledged example that utilizes this SDK.

Functionality

The HydraSdk.Process module provides an interface for spinning up a hydra-node as a Node.js subprocess.

The HydraSdk.NodeApi module exports functions for connecting to the Hydra Node WebSocket API and sending HTTP requests. The primary function provided by this module is mkHydraNodeApiWebSocket, which establishes a WebSocket connection to the hydra-node, attaches specified handlers for incoming messages, and returns a HydraNodeApiWebSocket record with type-safe actions for interacting with the Hydra Node API. It also allows to specify retry strategies for Hydra transactions that may be silently dropped by cardano-node, particularly for Close and Contest transactions.

The HydraSdk.Types module re-exports various Hydra domain-specific types (such as HydraHeadStatus and HydraNodeApi_InMessage), along with other utility types (e.g., HostPort and Network) used by the components of this library.

HydraSdk.Extra.AppManager provides an opinionated interface for managing multiple Hydra application instances, with each instance running a separate hydra-node process, as implemented in hydra-auction-offchain. For more information, refer to the AppManager README.

Development Workflows

Before executing most of the commands listed below, first enter the Nix development shell by running nix develop.

Build the project (requires Nix shell): make build
Format code (requires Nix shell): make format
Build docs and open them in the browser: make docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published