@laborx/token-bridge-sidechain-migrations
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

LaborX sidechain: deployment migrations

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

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
    • 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 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 token bridge functionality to an Ethereum network.

Migration steps

1. Define already deployed smart contract addresses

The next smart contracts addresses (and key name) could be provided to reduce resources during deployment:

  • contract: MultiEventsHistory - key name: MultiEventsHistory
  • contract: StorageManager - key name: ChronoBankStorageManager
  • contract: Storage - key name: ChronoBankStorage
  • contract: ChronoBankPlatform - key name: ChronoBankPlatform
  • contract: ChronoBankAssetProxy - key name: ChronoBankAssetProxy
  • contract: Roles2Library - key name: Roles2Library

2. Run sidechain migrations

It will take into account already deployed smart contracts and deploy only needed code.

yarn migrate --network [network name]

Scripts

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

  • register (add) token pairs in TokenBridgeTracker smart contract - to allow cross-chain operations with provided tokens. Need to set up addresses first.
yarn exec:truffle:bridge:tokens:add --network [network name]
  • unregister (remove) token pairs from TokenBridgeTracker smart contract - to forbid cross-chain operations with provided tokens. Need to set up addresses first.
yarn exec:truffle:bridge:tokens: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]

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

Package Sidebar

Install

npm i @laborx/token-bridge-sidechain-migrations

Weekly Downloads

0

Version

0.1.1

License

AGPL-3.0

Unpacked Size

53.6 kB

Total Files

17

Last publish

Collaborators

  • be1box
  • ozalexo
  • mike.chronobank
  • aliaksei.hiatsevich
  • alesanro