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

@hirosystems/stacks-devnet-js

v2.11.2

Published

stacks-devnet-js is a library for writing end to end tests for protocols interacting with the Stacks blockchain and the Bitcoin blockchain.

Downloads

521

Readme

stacks-devnet-js

stacks-devnet-js is a node library, designed to let developers write integration tests for decentralized protocols built on top of the Stacks blockchain. It is implemented as a dynamic library that can be loaded by Node, and will let you orchestrate a Stacks Devnet network, locally, using Docker.

Installation

# Yarn
yarn add dev @hirosystems/stacks-devnet-js

# NPM
npm install --save-dev @hirosystems/stacks-devnet-js

If any error occurs during the installation of this package, feel free to open an issue on this repository.

Usage

import {
  makeSTXTokenTransfer,
  broadcastTransaction,
  AnchorMode,
} from '@stacks/transactions';
import { StacksTestnet }from '@stacks/network';
import { DevnetNetworkOrchestrator } from "@hirosystems/stacks-devnet-js";
import { describe, expect, it, beforeAll, afterAll } from 'vitest'
import BigNum from 'bn.js';

describe('Full end to end integration tests made simple', () => {
    let orchestrator: DevnetNetworkOrchestrator;

    beforeAll(async (ctx) => {
        orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromCtx(ctx.id));
        orchestrator.start()
    });

    afterAll(() => {
        orchestrator.terminate();
    });

    it('submitting stacks-stx through pox-1 contract during epoch 2.0 should succeed', async () => {
      // Let's wait for our Genesis block
      var block = orchestrator.waitForNextStacksBlock();

      // Build a transaction
      const txOptions = {
        recipient: 'ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5',
        amount: new BigNum(12345),
        senderKey: '753b7cc01a1a2e86221266a154af739463fce51219d97e4f856cd7200c3bd2a601',
        network,
        memo: 'test memo',
        nonce: new BigNum(0), // set a nonce manually if you don't want builder to fetch from a Stacks node
        fee: new BigNum(200), // set a tx fee if you don't want the builder to estimate
        anchorMode: AnchorMode.OnChainOnly
      };
      const transaction = await makeSTXTokenTransfer(txOptions);

      // Broadcast transaction to our Devnet stacks node
      await broadcastTransaction(transaction, network);

      // Wait for the next block
      block = orchestrator.waitForNextStacksBlock();

      // Ensure that the transaction was included in the block
      console.log(`Next Block: ${JSON.stringify(block)}`);
    }
})

Case Study

The repo stacks-2-1-testing is using this library for testing, end to end, the Stacks 2.1 Proof of Transfer contract along with all the new Clarity 2 functions.

Screencasts

A series of short tutorials is available as a playlist of screencasts on Youtube, covering the following subjects:

Contributing

To test the stacks-devnet-js package from the clarinet repo, run:

cd components/stacks-devnet-js
npm run build-release
node dist/test.js