# @weicrypto/weicore-lib

> A pure and powerful JavaScript Wei library.

Latest version **0.19.31** (published 2022-02-22) · MIT license · 12 weekly downloads

## Install

```sh
npm install @weicrypto/weicore-lib
pnpm add @weicrypto/weicore-lib
yarn add @weicrypto/weicore-lib
bun add @weicrypto/weicore-lib
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.19.31 |
| Published | 2022-02-22 |
| First published | 2021-12-18 |
| Weekly downloads | 12 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 11 |
| Unpacked size | 2.7 MB |
| Known vulnerabilities | 0 (+9 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Wei Core Group, Inc. |
| Maintainers | weifoundation |
| Keywords | wei, transaction, address, p2p, ecies, cryptocurrency, blockchain, payment, bip21, bip32, bip37, bip69, bip70, multisig, weicore |

## Links

- npm: https://www.npmjs.com/package/@weicrypto/weicore-lib
- Repository: https://github.com/weicrypto/weicore-lib
- Issues: https://github.com/weicrypto/weicore-lib/issues
- npm.io page: https://npm.io/package/@weicrypto/weicore-lib

## Dependencies (11)

- [bs58](https://npm.io/package/bs58.md) =4.0.1
- [bn.js](https://npm.io/package/bn.js.md) =4.11.8
- [unorm](https://npm.io/package/unorm.md) ^1.6.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.20
- [elliptic](https://npm.io/package/elliptic.md) 6.5.3
- [inherits](https://npm.io/package/inherits.md) =2.0.1
- [@types/node](https://npm.io/package/@types/node.md) ^12.12.47
- [bloom-filter](https://npm.io/package/bloom-filter.md) ^0.2.0
- [bls-signatures](https://npm.io/package/bls-signatures.md) ^0.2.5
- [@weicrypto/x11-hash-js](https://npm.io/package/@weicrypto/x11-hash-js.md) ^1.0.2
- [eslint-config-prettier](https://npm.io/package/eslint-config-prettier.md) ^8.3.0

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 0.19.31 (latest) — 2022-02-22
- 0.19.30 — 2022-02-20
- 0.19.29 — 2022-01-11
- 0.19.28 — 2021-12-18

## README

# Weicore Library

[![NPM Version](https://img.shields.io/npm/v/@weicrypto/weicore-lib)](https://www.npmjs.com/package/@weicrypto/weicore-lib)
[![Build Status](https://github.com/weicrypto/weicore-lib/actions/workflows/test_and_release.yml/badge.svg)](https://github.com/weicrypto/weicore-lib/actions/workflows/test_and_release.yml)
[![Release Date](https://img.shields.io/github/release-date/weicrypto/weicore-lib)](https://github.com/weicrypto/weicore-lib/releases/latest)
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen)](https://github.com/RichardLitt/standard-readme)

A pure and powerful JavaScript Wei library.

Wei is a powerful new peer-to-peer platform for the next generation of financial technology. The decentralized nature of the Wei network allows for highly resilient Wei infrastructure, and the developer community needs reliable, open-source tools to implement Wei apps and services.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [License](#license)

## Install

### NodeJS

```
npm install @weicrypto/weicore-lib
```

### Browser

#### CDN Standalone

```html
<script src="https://unpkg.com/@weicrypto/weicore-lib"></script>
<script>
  const { PrivateKey } = weicore;
  const privateKey = new PrivateKey();
  const address = privateKey.toAddress().toString();
  ...
</script>
```

#### Building the Browser Bundle

To build a weicore-lib full bundle for the browser:

```sh
npm run build
```

This will generate a file named `weicore-lib.min.js` in the `dist/` folder.

## Usage

### Browser

```
<script src='./dist/weicore-lib.min.js' type="text/javascript"></script>
<script>
  const PrivateKey = weicore.PrivateKey;
  const privateKey = new PrivateKey();
  const address = privateKey.toAddress().toString();
</script>
```

### Modules

Some functionality is implemented as a module that can be installed separately:

- [Peer to Peer Networking](https://github.com/weicrypto/weicore-p2p)
- [Wei Core JSON-RPC](https://github.com/weicrypto/weid-rpc)

### Development & Tests

```sh
git clone https://github.com/weicrypto/weicore-lib
cd weicore-lib
npm install
```

Run all the tests:

```sh
npm test
```

You can also run just the Node.js tests with `npm run test:node`, just the browser tests with `npm run test:browser` or run a test coverage report with `npm run coverage`.

## Documentation

### Concepts

- [Addresses](docs/core-concepts/address.md)
- [Block](docs/core-concepts/block.md)
- [Crypto](docs/core-concepts/crypto.md)
- [Encoding](docs/core-concepts/encoding.md)
- [Hierarchically-derived Private and Public Keys](docs/core-concepts/hierarchical.md)
- [Mnemonic](docs/core-concepts/mnemonic.md)
- [Networks](docs/core-concepts/networks.md)
- [PrivateKey](docs/core-concepts/privatekey.md)
- [PublicKey](docs/core-concepts/publickey.md)
- [Script](docs/core-concepts/script.md)
- [Transaction](docs/core-concepts/transaction.md)
- [Using Different Units](docs/core-concepts/unit.md)
- [Unspent Output](docs/core-concepts/unspentoutput.md)
- [URI](docs/core-concepts/uri.md)
- [Governance Object / Proposal](docs/core-concepts/govobject/govobject.md)

### How To Use

- [Addresses](docs/usage/address.md)
- [Block](docs/usage/block.md)
- [BlockHeader](docs/usage/blockheader.md)
- [Hierarchically-derived Private Key](docs/usage/hdprivatekey.md)
- [Hierarchically-derived Public Key](docs/usage/hdpublickey.md)
- [Message](docs/usage/message.md)
- [Mnemonic](docs/usage/mnemonic.md)
- [Opcode](docs/usage/opcode.md)
- [PrivateKey](docs/usage/privatekey.md)
- [PublicKey](docs/usage/publickey.md)
- [Script](docs/usage/script.md)
- [Transaction](docs/usage/transaction.md)
- [Transaction Input](docs/usage/transaction_input.md)
- [Transaction Output](docs/usage/transaction_output.md)
- [URI](docs/usage/uri.md)

### Use Case Examples

Some examples can be found [here](docs/examples.md), below is a list of direct links for some of them.

- [Generate a random address](docs/examples.md#generate-a-random-address)
- [Generate an address from a SHA256 hash](docs/examples.md#generate-an-address-from-a-sha256-hash)
- [Import an address via WIF](docs/examples.md#import-an-address-via-wif)
- [Create a Transaction](docs/examples.md#create-a-transaction)
- [Sign a Wei message](docs/examples.md#sign-a-bitcoin-message)
- [Verify a Wei message](docs/examples.md#verify-a-bitcoin-message)
- [Create an OP RETURN transaction](docs/examples.md#create-an-op-return-transaction)
- [Create a 2-of-3 multisig P2SH address](docs/examples.md#create-a-2-of-3-multisig-p2sh-address)
- [Spend from a 2-of-2 multisig P2SH address](docs/examples.md#spend-from-a-2-of-2-multisig-p2sh-address)

## Contributing

Please send pull requests for bug fixes, code optimization, and ideas for improvement. For more information on how to contribute, please refer to our [CONTRIBUTING](https://github.com/weicrypto/weicore-lib/blob/master/CONTRIBUTING.md) file.

## License

Code released under [the MIT license](LICENSE).

Copyright 2013-2017 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.  
Copyright 2016-2017 The Dash Foundation, Inc.  
Copyright 2017-2020 Dash Core Group, Inc.
Copyright 2021 Wei Core Group, Inc.

---
_Source: https://npm.io/package/@weicrypto/weicore-lib · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
