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

@laborx/sidechain-migrations

v1.1.0

Published

Provides migrations for LaborX sidechain

Downloads

2

Readme

LaborX sidechain: deployment migrations

Provides set of useful constants, functions and scripts to access and deploy LaborX sidechain smart contracts.

Install

npm install -D @laborx/sidechain-migrations

Structure

There are couple of exported scopes that should be mentioned:

  • provides constants and utility functions to access basic functionality
    • GlobalDeployedContractNames and DeployedContractNames - allows to access deployed contracts by names
    • ContractsStorageCrates and GlobalContractStorageCrates - storage crate names, defines scopes of stored data of smart contracts
    • networks, isNetwork(id,network) and containsNetwork(id, networks) to check connected network
    • getDeployedArtifactsPath(contractEnv) - allows to get deployed addresses path according to needed contractEnv parameter. See SmartContractsAddressBuildEnvironment for available options.
    • getDeployedArtifactsPathFromNodeEnv() - allows to get deployed addresses path based on provided env variable
    • defaultReadContractKeys and defaultWriteContractKeys could be used for getting default read/write for deployment - roles
  • Deployment - scripts for smart contracts deployment

Usage (as a lib)

Environment variable

Look at `.example.env` for full list of possible env variables

Setup in .env SC_ADDRESSES_BUILD_ENV variable to one of

SC_ADDRESSES_BUILD_ENV=production
# SC_ADDRESSES_BUILD_ENV=beta
# SC_ADDRESSES_BUILD_ENV=dev

Importing

import { Constants } from "@laborx/sidechain-migrations";
const {
  getDeployedArtifactsPath,
  getDeployedArtifactsPathFromNodeEnv,
  SmartContractsAddressBuildEnvironment
} = Constants;

/*
Get deployed addresses path for 'beta' build environment
*/
const deployedAddressesPath = getDeployedArtifactsPath(
  SmartContractsAddressBuildEnvironment.beta
);

/*
If provided you can use setup environment variable and use it for getting build environment
*/
const deployedAddressePath = getDeployedArtifactsPathFromNodeEnv();

Usage (as a sidechain migrations' sources)

Repository provides also a set of migrations and scripts to fully deploy base functionality to an Ethereum network with a custom consensys (PoA).

  • full sidechain migrations
yarn migrate --network [network name]
  • (optional) 'post' token bridge migrations
yarn migrate:post-token-bridge --network [network name]

Scripts

Provides a set of truffle-based scripts to manage more frequent functions

  • add addresses to ServiceDestinatinWhitelist smart contract - to allow free transactions to those addresses. Need to set up addresses first.
yarn exec:truffle:service-whitelist:add --network [network name]
  • remove addresses to ServiceDestinatinWhitelist smart contract - to forbid free transactions to those addresses (or remove addresses after new deployments). Need to set up addresses first.
yarn exec:truffle:service-whitelist:remove --network [network name]

Tests

After executed migrations it is recommended to run tests on target network to make sure that all required properties of deployed smart contracts are set correctly, expected addresses have valid access rights and smart contracts' communication could proceed after the migration.

Sidechain tests

yarn test:ci:state --network [network name]

Token bridge tests

In case of token bridge presence it is also possible to run tests to make sure that expected addresses have valid access rights.

yarn test:dev:token-bridge --network [network name]

Development

Build full package (smart contracts + typescript)

yarn build

Compile contracts

yarn contracts:compile

Compile typescript sources

yarn build:tsc

Run ganache

yarn ganache

Load ganache state from the archive

yarn migrate:unpack

Save current state into the archive

yarn migrate:save

Run tests on ganache archive's version

yarn test

Run tests (for CI)

yarn test:ci