⚙️ Library for sending Lisk transactions from the client or server
shuse2 Merge pull request #858 from LiskHQ/852-restrict_node_version
Upgrade minimum node version to 8.10 - Closes #852
Latest commit a0cf02b Nov 19, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs 📚 Add note about using git flow Aug 14, 2018
packages ⬆️ Upgrade minimum node version to 8.10 Nov 17, 2018
scripts 👷 Create Init & Clean shell scripts & Add symlinks Jul 27, 2018
templates ⬆️ Upgrade minimum node version to 8.10 Nov 17, 2018
types 🐛 Fix sandbox declare to global scope Nov 8, 2018
.editorconfig Add editor config Jul 25, 2017
.gitignore ♻️ Convert api-client src to typescript Oct 24, 2018
.lintstagedrc.json 🏠 Add .ts files to lint-staged Sep 27, 2018
.npmrc ♻️ reorganize symlink structure & scripts for all packages Jul 19, 2018
.nvmrc ⬆️ Use Node.js v8 as default Sep 14, 2018
.nycrc ♻️ reorganize symlink structure & scripts for all packages Jul 19, 2018
.prettierignore ♻️ create symlink for .prettierignore file Jul 24, 2018
.prettierrc.json ♻️ reorganize symlink structure & scripts for all packages Jul 19, 2018
Jenkinsfile 💅 Update Jenkins file Nov 17, 2018
Jenkinsfile.nightly 💅 Update Jenkins file Nov 17, 2018
LICENSE Updating LICENSE Mar 29, 2017
README.md 🐛 Change alias source for npm repository Nov 14, 2018
lerna.json ♻️ reorganize symlink structure & scripts for all packages Jul 19, 2018
package-lock.json 🔙 Revert sinon on devDependencies Nov 5, 2018
package.json ⬆️ Upgrade minimum node version to 8.10 Nov 17, 2018
tsconfig.json ⬆️ Upgrade minimum node version to 8.10 Nov 17, 2018
tslint.json ♻️ Remove readonly property for test interface Oct 24, 2018
tslint.test.json Add test setup for ts to lisk-constants Sep 26, 2018

README.md

Lisk Elements

Lisk Elements is a JavaScript library for Lisk, the blockchain application platform.

Build Status Dependency Status devDependency Status License: GPL v3

Installation

Installation via npm

Add Lisk Elements as a dependency of your project:

$ npm install --save lisk-elements

Import using ES6 modules syntax:

import lisk from 'lisk-elements';

Or using Node.js modules:

const lisk = require('lisk-elements');

Or import specific namespaced functionality:

import { APIClient, transactions } from 'lisk-elements';
// or
const { APIClient, transactions } = require('lisk-elements');

Note: If you are installing Lisk Elements as an npm dependency via a GitHub reference, you will need to manually build the distribution files by running the following commands from the root directory of your project:

cd node_modules/lisk-elements
npm run build

Installation from source

Our source code is hosted on GitHub. You can build the distribution yourself by cloning the repository, installing the relevant dependencies and running our build script as follows:

git clone https://github.com/LiskHQ/lisk-elements.git
cd lisk-elements/packages/lisk-elements
npm install
npm run build

Usage

Access functionality via the relevant namespace. For example, the following will create and (locally) sign a transfer (type 0) transaction, and then broadcast it to the Lisk Testnet.

const transaction = lisk.transaction.transfer({
	amount: '123000000',
	recipientId: '12668885769632475474L',
	passphrase: 'robust swift grocery peasant forget share enable convince deputy road keep cheap',
});

const client = lisk.APIClient.createTestnetAPIClient();

client.transactions.broadcast(transaction)
	.then(console.info)
	.catch(console.error);

Full documentation can be found on the Lisk documentation site.

Packages

Package Version Description
lisk-elements Package contains everything
@liskhq/lisk-client A default set of Elements for use by clients of the Lisk network
@liskhq/lisk-api-client An API client for the Lisk network
@liskhq/lisk-constants General constants for use with Lisk-related software
@liskhq/lisk-cryptography General cryptographic functions for use with Lisk-related software
@liskhq/lisk-passphrase Mnemonic passphrase helpers for use with Lisk-related software
@liskhq/lisk-transactions Everything related to transactions according to the Lisk protocol

Tests

To run tests for all packages in lisk-elements, run the following command in the root folder:

npm test

To run tests for a specific package, run the same command in the relevant package directory.

Example:

cd packages/lisk-cryptography
npm test

FAQ

Installation is failing, what should I do?

Make sure you are installing in the root folder, not on the package level.
Run `npm run clean` and `npm run clean:node_modules`, then install again.

I can't build the package, what should I do?

Make sure you first run `npm i`, and then `npm run build` in the root directory.

Tests are failing!

Make sure you are using the correct version of node and npm.
In our current build we recommend node v8.12.0 and npm v6.4.1.

Contributors

https://github.com/LiskHQ/lisk-elements/graphs/contributors

License

Copyright © 2016-2018 Lisk Foundation

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.


This program also incorporates work previously released with lisk-js v0.5.2 (and earlier) versions under the MIT License. To comply with the requirements of that license, the following permission notice, applicable to those parts of the code only, is included below:

Copyright © 2016-2017 Lisk Foundation

Copyright © 2015 Crypti

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.