The library features a pluggable, service-based architecture, which allows users maximal control when integrating the Amra functionality into existing infrastructures. It also includes convenient configuration presets for out-of-the-box usability, a powerful smart contract state inspector, and support for both front-end and back-end applications.
Use NPM or Yarn to install the library:
npm install @amra-finance/yin
Then include it:
import Amra from '@amra-finance/yin'; // or: const Amra = require('@amra-finance/yin');
For full documentation, please refer to the wiki.
For example code that consumes the library, check out this repository.
git clone https://github.com/amra-finance/yin.js
- Install testchain -
git submodule update --init --recursive
- Install dapptools -
curl https://dapp.tools/install | sh
Running the unit tests
The test suite is configured to run on a Ganache test chain. Before running the tests with
yarn test, the test chain will start from a snapshot that has the Amra contracts deployed to it.
If you want to re-run the tests whenever you make a change to the code, use
If you want to start a test chain and leave it running, use
Running the integration tests
There are also automated tests that send transactions through either the Kovan test network or the Ethereum main network. To use them, first set your private key for the appropriate network to an environment variable:
Then, use either
yarn test:kovan or
yarn test:mainnet to run the tests.
Since these networks run much more slowly than Ganache, you might want to set the debug environment variable (in order to see some relevant output along the way):
You can also run these tests on the local test network with the command
Handling changes to contract code
If you have deployed contract code changes to the testchain, run
scripts/install-testchain-outputs.sh to copy any updated ABI files and contract addresses to their expected locations.
yarn build:backend- create backend build in
yarn build:frontend- create a UMD build in
yarn lint- run an ESLint check
yarn coverage- run code coverage and generate report in the
yarn test- start a test chain and run all tests
yarn test:watch- start a test chain and run all tests in watch mode
yarn test:net- just start a test chain
yarn test:kovan- run integration tests on Kovan
yarn test:mainnet- run integration tests on mainnet
yarn test:integration- run integration tests on Ganache
- BREAKING CHANGE: Importing a file directly from the package must now be done by
prefixing the path with
Yin.js is available under the MIT license included with the code.