[![npm version](https://img.shields.io/npm/v/@harmony-js/core.svg?style=flat-square)](https://www.npmjs.com/package/@harmony-js/core) [![Build Status](https://travis-ci.com/FireStack-Lab/Harmony-sdk-core.svg?branch=master)](https://travis-ci.com/FireStack-Lab/Harmony-sdk-core) # Harmony-SDK-Core A Harmony's blockchain javascript library It's a mono-repo library, not yet published to npm. # Install from npm/yarn **Note: we added a @next tag to npm package, please use the following command to install with npm/yarn** ```bash # npm npm install @harmony-js/core@next # yarn yarn add @harmony-js/core@next # tslib may be required, we'd better install it as well npm install tslib yarn add tslib ``` # Examples with tutorials * [harmony-sdk-examples](https://github.com/FireStack-Lab/harmony-sdk-examples) # Packages 1. [@harmony-js/core](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-core) 2. [@harmony-js/account](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-account) 3. [@harmony-js/crypto](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-crypto) 4. [@harmony-js/network](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-network) 5. [@harmony-js/utils](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-utils) 6. [@harmony-js/transaction](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-transaction) 7. [@harmony-js/contract](https://github.com/FireStack-Lab/Harmony-sdk-core/tree/master/packages/harmony-contract) # Hacking from source files 1. install `lerna` and `typescript` globally (if you have these, you can skip) ```bash yarn global add lerna && yarn global add typescript ``` 2. bootstrap repostory ```bash yarn install && yarn bootstrap ``` 3. run watcher before editing any source file ```bash yarn watch ``` 4. if you are ready to build/test/bundle, please refer to the following section: - [Build](#Build) - [Bundle](#Bundle) - [E2E Tests](#E2E-tests) # Manually Build/bundle ## Build ```bash yarn build ``` ## Bundle There are 2 ways bundling files. 1. building the `es5` version bundled javascript for each sub-packages, which can be run in Browser directly. ```bash yarn dist ``` All files are exported in `/dist` folder 2. build `umd` and `esm` version javascript for each sub-packages, which can be accessed by `import` or `require` ```bash yarn bundle ``` All files are exported in `packages/dist` folder, use `**.esm.js` or `**.umd.js` format # E2E tests **Contantly updating now, please get back later** 1. edit `.env` file if you have custom setting 2. run harmony node locally(this fork currently : https://github.com/mikedoan/harmony/tree/enable_tx) 3. wait for 1-2 mins, and run this: ```bash yarn build && yarn test:e2e ```