open-index/open-npm huggingface dataset:
npm package: @sota1235/eslint-config
Description: ESLint configuration for @sota1235
Author: sota1235
Latest version: 5.0.5

# @sota1235/eslint-config

ESLint config for [@sota1235](https://github.com/sota1235).

Now only supports eslint v9.

### Description

### Install

```shell
npm i -D @sota1235/eslint-config
```

You can use like this.

```javascript
import { configs } from '@sota1235/eslint-config';

export default [
  ...configs.base(),
  ...configs.typescript({
    tsconfigPath: './tsconfig.json', // optional
  }),
  ...configs.react(),
];
```

### Licence

This software is released under the MIT License, see LICENSE.txt.

## Author

[@sota1235](https://github.com/sota1235)
npm package: @sota1235/notion-sdk-js-helper
Description: Helper utilities for using @notion/client
Author: @sota1235
Latest version: 4.0.4

notion-sdk-js-helper [![npm version](https://badge.fury.io/js/@sota1235%2Fnotion-sdk-js-helper.svg)](https://badge.fury.io/js/@sota1235%2Fnotion-sdk-js-helper)
====

Helper for [makenotion/notion-sdk-js](https://github.com/makenotion/notion-sdk-js).

### Feature

- Type safe helper to build JSON of [blocks](https://developers.notion.com/reference/block).

You can see example codes on [this page](https://sota1235.notion.site/Example-page-for-notion-sdk-js-helper-4176d72d760c40979a6a6523fa2c1165).

### Requirement

- See [.node-version](./.node-version).

### Usage

Without this library, when you want to create new page.

```typescript
import { Client } from '@notionhq/client';

const client = new Client({
  auth: 'YOUR_NOTION_API_TOKEN',
});

await client.pages.create({
  parent: {
    databse_id: 'DATABASE_ID',
  },
  properties: {},
  children: [
    {
      type: 'heading_1',
      heading_1: {
        rich_text: [
          {
            type: 'text',
            text: {
              content: 'Section1',
            },
          },
        ],
      },
    },
    {
      type: 'paragraph',
      paragraph: {
        rich_text: [
          {
            type: 'text',
            text: {
              content: 'I am ',
            },
          },
          {
            type: 'text',
            text: {
              content: 'engineer',
            },
            annotations: {
              bold: true,
            },
          },
        ],
      },
    },
  ],
});
```

With this library.

```typescript
import { BlockObjects, RichTextObjects, CustomTypes } from '@sota1235/notion-sdk-js-helper';
import { Client } from '@notionhq/client';

const {
  heading1,
  paragraph,
} = BlockObjects;

const client = new Client({
  auth: 'YOUR_NOTION_API_TOKEN',
});

// Use helper methods when create page
await client.pages.create({
  parent: {
    databse_id: 'DATABASE_ID',
  },
  properties: {},
  children: [
    heading1('Section 1'),
    paragraph([
      RichTextObjects.richText('I am '),
      RichTextObjects.richText('engineer', {
        bold: true,
      }),
    ]),
  ],
});
```

You can also use this library when fetching data.

```typescript
// Use custom types as you like when fetching data
const { results } = await client.blocks.children.list({
  block_id: 'PAGE_ID',
});
const heading1Data = results[0].heading_1 as CustomTypes.NotionBlock<'heading_1'>['heading_1'];
```

### Install

```
npm i -S @sota1235/notion-sdk-js-helper@latest
```

### Licence

This software is released under the MIT License, see LICENSE.txt.

## Author

[@sota1235](https://github.com/sota1235)
npm package: @sota1235/parse-link-header-ts
Description: Parses a link header and returns paging information for each contained link.
Author: Sota Sugiura
Latest version: 3.0.1

# parse-link-header-ts

This code base is based on https://github.com/thlorenz/parse-link-header.

Big thanks for thlorenz :pray:

## What is this?

This is a TypeScript library to parse the `Link` header as defined in [RFC 5988](https://tools.ietf.org/html/rfc5988).

## Concepts

- Written in TypeScript
- No dependencies

## License

[MIT License](./LICENSE)
npm package: @sota1235/remark-link-bookmark
Description: Remark plugin to convert link to bookmark component
Author: @sota1235
Latest version: 0.0.9

@sota1235/remark-link-bookmark
====

Remark plugin to convert link to bookmark component.

### Usage

```shell
npm i -E @sota1235/remark-link-bookmark
```

Then use like this.

```javascript
import { remark } from 'remark';
import { remarkLinkBookmark } from './dist/index.js';

const exampleMarkdown = `
# remark-link-bookmark

https://example.com/
`;

const result = await remark()
  .use(remarkLinkBookmark, {})
  .process(exampleMarkdown);

console.log(result.toString());
```

You will get the following output.

```markdown
# remark-link-bookmark

<div class="rlb-container">
  <div class="rlb-content">
    <div class="rlb-info">
      <h2 class="rlb-title">
        <a rel="noopener noreferrer" href="https://example.com/" class="rlb-title-link">
          Example Domain
        </a>
      </h2>
    </div>
  </div>
  <div class="rlb-footer">
    <a rel="noopener noreferrer" href="https://example.com/" class="rlb-footer-link">
      <img alt="example.com" src="https://www.google.com/s2/favicons?domain=https://example.com/" class="rlb-favicon">
      example.com
    </a>
  </div>
</div>
```

#### Options

```typescript
export type Options = {
  // class prefix for all each element
  classPrefix?: string;
  // class names for each element
  // for example, if you want to add extra class names for some compoentns, you can use this option.
  mergeClassNames?: {
    container?: string;
    content?: string;
    info?: string;
    title?: string;
    titleLink?: string;
    description?: string;
    image?: string;
    footer?: string;
    footerLink?: string;
    favicon?: string;
  };
  // cache options
  cache?: {
    // cache directory path
    cacheFilePath?: string;
    // cache file name  
    cacheFileName?: string;
  };
};
```

### Licence

This software is released under the MIT License, see LICENSE.txt.

## Author

[@sota1235](https://github.com/sota1235)
npm package: @sotaproject/media
Description: Media Tool for Editor.js
Author: CodeX
Latest version: 1.1.1

# mediablock Tool for Editor.js

## Installation

Use your package manager to install the package `@sotaproject/media`.

```
npm install @sotaproject/media

yarn add @sotaproject/media
```

## Development

This tool uses [Vite](https://vitejs.dev/) as builder.

`npm run dev` — run development environment with hot reload

`npm run build` — build the tool for production to the `dist` folder

## Links

[Editor.js](https://editorjs.io) • [Create Tool](https://github.com/editor-js/create-tool)
npm package: @sotaproject/strikethrough
Description: Inline tool for strikethrough text fragments
Author: Yan Khachko
Latest version: 1.0.1

![](https://badgen.net/badge/Editor.js/v2.0/blue)

# strikethrough text Tool
Inline tool for strikethrough text fragments for the [Editor.js](https://github.com/codex-team/editor.js)

![](editorjs-strikethrough.gif)

## Installation

### Install via NPM

Get the package

```shell
npm i --save @sotaproject/strikethrough
```

```shell
yarn add @sotaproject/strikethrough
```

Include module at your application

```javascript
import Strikethrough from '@sotaproject/strikethrough';
```

### Download to your project's source dir

1. Upload folder `dist` from repository
2. Add `dist/bundle.js` file to your page.

[//]: # (### Load from CDN)

[//]: # ()
[//]: # (You can load the package from [jsDelivr CDN]&#40;https://www.jsdelivr.com/package/npm/@editorjs/underline&#41; and require the script on a page with Editor.js.)

[//]: # (```html)

[//]: # (<script src="https://cdn.jsdelivr.net/npm/@editorjs/underline@latest"></script>)

[//]: # (```)

## Usage

Add a new Tool to the `tools` property of the Editor.js initial config.

```javascript
import EditorJs from '@editorjs/editorjs';
import Strikethrough from '@editorjs/strikethrough';

var editor = new EditorJS({
  // ...
  tools: {
    // ...
      strikethrough: Strikethrough
  },
});
```

## Config Params

This Tool has no config params

## Output data

Strikethrough text will be wrapped with a `s` tag with an `cdx-strikethrough` class.

```json
{
    "type" : "text",
    "data" : {
        "text" : "Create a directory for your module, enter it and run <s class=\"cdx-strikethroughs\">npm init
 command."
    }
}
```
npm package: @sotatek-anhdao/bitcore-mnemonic
Description: BIP39 Mnemonics implemented for Bitcore.
Author: BitPay
Latest version: 8.22.4

# Bitcore Mnemonics

BIP39 Mnemonics for bivcore

[![NPM Package](https://img.shields.io/npm/v/bivcore-mnemonic.svg?style=flat-square)](https://www.npmjs.org/package/bivcore-mnemonic)
[![Build Status](https://img.shields.io/travis/bitpay/bivcore-mnemonic.svg?branch=master&style=flat-square)](https://travis-ci.org/bitpay/bivcore-mnemonic)
[![Coverage Status](https://img.shields.io/coveralls/bitpay/bivcore-mnemonic.svg?style=flat-square)](https://coveralls.io/r/bitpay/bivcore-mnemonic)

**A module for [bivcore](https://github.com/bitpay/bivcore) that implements [Mnemonic code for generating deterministic keys](https://github.com/bivcoin/bips/blob/master/bip-0039.mediawiki).**

## Getting Started

This library is distributed in both the npm packaging systems.

```sh
npm install @sotatek-anhdao/bitcore-lib-value  #this to install bitcore-lib-value since it is a peerDependecy
npm install bivcore-mnemonic
```

There are many examples of how to use it on the developer guide [section for mnemonic](./docs/index.md). For example, the following code would generate a new random mnemonic code and convert it to a `HDPrivateKey`.

```javascript
var Mnemonic = require('bivcore-mnemonic');
var code = new Mnemonic(Mnemonic.Words.SPANISH);
code.toString(); // natal hada sutil año sólido papel jamón combate aula flota ver esfera...
var xpriv = code.toHDPrivateKey();
```

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bivcore/blob/master/CONTRIBUTING.md) on the main bivcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bivcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/bitcore-p2p-value
Description: Interface to the bitcoin P2P network for bitcore
Author: Sotatek .JSC
Latest version: 8.22.9

# Bitcore P2P Value

[![NPM Package](https://img.shields.io/npm/v/@sotatek-anhdao/bitcore-p2p-value.svg?style=flat-square)](https://www.npmjs.com/package/@sotatek-anhdao/bitcore-p2p-value)

**The peer-to-peer networking protocol for BIV.**

`bitcore-p2p-value` adds [Bitcoin Value protocol](https://en.bitcoin.it/wiki/Protocol_documentation) support for Bitcore.

See [the main bitcore repo](https://github.com/bitpay/bitcore) for more information.

## Getting Started

```sh
npm install @sotatek-anhdao/bitcore-p2p-value
```

In order to connect to the Bitcoin Value network, you'll need to know the IP address of at least one node of the network, or use [Pool](./docs/pool.md) to discover peers using a DNS seed.

```javascript
var Peer = require('@sotatek-anhdao/bitcore-p2p-value').Peer;

var peer = new Peer({host: '127.0.0.1'});

peer.on('ready', function() {
  // peer info
  console.log(peer.version, peer.subversion, peer.bestHeight);
});
peer.on('disconnect', function() {
  console.log('connection closed');
});
peer.connect();
```

Then, you can get information from other peers by using:

```javascript
// handle events
peer.on('inv', function(message) {
  // message.inventory[]
});
peer.on('tx', function(message) {
  // message.transaction
});
```

Take a look at this [guide](./docs/peer.md) on the usage of the `Peer` class.

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bitcore/blob/master/CONTRIBUTING.md) on the main bitcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bitcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/bivcore-mnemonic
Description: BIP39 Mnemonics implemented for Bitcore.
Author: BitPay
Latest version: 8.22.2

# Bitcore Mnemonics

BIP39 Mnemonics for bivcore

[![NPM Package](https://img.shields.io/npm/v/bivcore-mnemonic.svg?style=flat-square)](https://www.npmjs.org/package/bivcore-mnemonic)
[![Build Status](https://img.shields.io/travis/bitpay/bivcore-mnemonic.svg?branch=master&style=flat-square)](https://travis-ci.org/bitpay/bivcore-mnemonic)
[![Coverage Status](https://img.shields.io/coveralls/bitpay/bivcore-mnemonic.svg?style=flat-square)](https://coveralls.io/r/bitpay/bivcore-mnemonic)

**A module for [bivcore](https://github.com/bitpay/bivcore) that implements [Mnemonic code for generating deterministic keys](https://github.com/bivcoin/bips/blob/master/bip-0039.mediawiki).**

## Getting Started

This library is distributed in both the npm packaging systems.

```sh
npm install @sotatek-anhdao/bitcore-lib-value  #this to install bitcore-lib-value since it is a peerDependecy
npm install bivcore-mnemonic
```

There are many examples of how to use it on the developer guide [section for mnemonic](./docs/index.md). For example, the following code would generate a new random mnemonic code and convert it to a `HDPrivateKey`.

```javascript
var Mnemonic = require('bivcore-mnemonic');
var code = new Mnemonic(Mnemonic.Words.SPANISH);
code.toString(); // natal hada sutil año sólido papel jamón combate aula flota ver esfera...
var xpriv = code.toHDPrivateKey();
```

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bivcore/blob/master/CONTRIBUTING.md) on the main bivcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bivcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/bsw-multibase
Description: JavaScript implementation of the multibase specification
Latest version: 0.0.1

js-multibase <!-- omit in toc -->
============

[![pl](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai)
[![project](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats)
[![irc](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs)
[![codecov](https://img.shields.io/codecov/c/github/multiformats/js-multibase.svg?style=flat-square)](https://codecov.io/gh/multiformats/js-multibase)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/multiformats/js-multibase/ci?label=ci&style=flat-square)](https://github.com/multiformats/js-multibase/actions?query=branch%3Amaster+workflow%3Aci+)

> JavaScript implementation of the [multibase](https://github.com/multiformats/multibase) specification

## Lead Maintainer <!-- omit in toc -->

[Hugo Dias](https://github.com/hugomrdias)

## Table of Contents <!-- omit in toc -->

- [Install](#install)
  - [NPM](#npm)
  - [Browser through `<script>` tag](#browser-through-script-tag)
- [Usage](#usage)
  - [Example](#example)
- [API](#api)
- [Contribute](#contribute)
- [License](#license)

## Install

### NPM

```sh
$ npm install --save multibase
```

### Browser through `<script>` tag

Loading this module through a script tag will make the `Multibase` obj available in the global namespace.

```html
<script src="https://unpkg.com/multibase/dist/index.min.js"></script>
```

## Usage

### Example

```JavaScript
const multibase = require('multibase')

const bytes = multibase.encode('base58btc', new TextEncoder().encode('hey, how is it going'))

const decodedBytes = multibase.decode(bytes)
console.log(decodedBytes.toString())
// hey, how is it going
```

## API
https://multiformats.github.io/js-multibase/

## Contribute

Contributions welcome. Please check out [the issues](https://github.com/multiformats/js-multibase/issues).

Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

[MIT](LICENSE) © Protocol Labs Inc.
npm package: @sotatek-anhdao/bsw-multicodec
Description: JavaScript implementation of the multicodec specification
Latest version: 0.0.1

# js-multicodec <!-- omit in toc -->

[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai)
[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats)
[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs)
[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/multiformats/js-multicodec/ci/master?style=flat-square)
![Codecov](https://img.shields.io/codecov/c/github/multiformats/js-multicodec?style=flat-square)

> JavaScript implementation of the multicodec specification

## Lead Maintainer <!-- omit in toc -->

[Henrique Dias](http://github.com/hacdias)

## Table of Contents <!-- omit in toc -->

- [Install](#install)
- [Usage](#usage)
  - [Example](#example)
  - [API](#api)
- [Updating the lookup table](#updating-the-lookup-table)
- [Contribute](#contribute)
- [License](#license)

## Install

```sh
> npm install multicodec
```

## Usage

### Example

```JavaScript

const multicodec = require('multicodec')

const prefixedProtobuf = multicodec.addPrefix('protobuf', protobufBuffer)
// prefixedProtobuf 0x50...

// The multicodec codec values can be accessed directly:
console.log(multicodec.DAG_CBOR)
// 113

// To get the string representation of a codec, e.g. for error messages:
console.log(multicodec.print[113])
// dag-cbor
```

### API

https://multiformats.github.io/js-multicodec/

[multicodec default table](https://github.com/multiformats/multicodec/blob/master/table.csv)

## Updating the lookup table

Updating the lookup table is done with a script. The source of truth is the
[multicodec default table](https://github.com/multiformats/multicodec/blob/master/table.csv).
Update the table with running:

    npm run update-table

## Contribute

Contributions welcome. Please check out [the issues](https://github.com/multiformats/js-multicodec/issues).

Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

[MIT](LICENSE) © 2016 Protocol Labs Inc.
npm package: @sotatek-anhdao/bsw-sdk
Description: 🛠 An SDK for building applications on top of Bsw.
Latest version: 3.0.4

# Bitswap SDK

In-depth documentation on this SDK is available at [bitswap]().

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone <link-git>
```

Move into the bitswap-sdk working directory

```sh
cd bitswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @sotatek-anhdao/bsw-uint8arrays
Description: Utility functions to make dealing with Uint8Arrays easier
Author: Alex Potsides
Latest version: 0.0.1

# Uint8Arrays <!-- omit in toc -->

Some utility functions to make dealing with `Uint8Array`s more pleasant.

- [API](#api)
  - [compare(a, b)](#comparea-b)
    - [Example](#example)
  - [concat(arrays, [length])](#concatarrays-length)
    - [Example](#example-1)
  - [equals(a, b)](#equalsa-b)
    - [Example](#example-2)
  - [fromString(string, encoding = 'utf8')](#fromstringstring-encoding--utf8)
    - [Example](#example-3)
  - [toString(array, encoding = 'utf8')](#tostringarray-encoding--utf8)
    - [Example](#example-4)

## API

### compare(a, b)

Compare two `Uint8Arrays`

#### Example

```js
const compare = require('uint8arrays/compare')

const arrays = [
  Uint8Array.from([3, 4, 5]),
  Uint8Array.from([0, 1, 2])
]

const sorted = arrays.sort(compare)

console.info(sorted)
// [
//    Uint8Array[0, 1, 2]
//    Uint8Array[3, 4, 5]
// ]
```

### concat(arrays, [length])

Concatenate one or more array-likes and return a `Uint8Array` with their contents.

If you know the length of the arrays, pass it as a second parameter, otherwise it will be calculated by traversing the list of arrays.

#### Example

```js
const concat = require('uint8arrays/concat')

const arrays = [
  Uint8Array.from([0, 1, 2]),
  Uint8Array.from([3, 4, 5])
]

const all = concat(arrays, 6)

console.info(all)
// Uint8Array[0, 1, 2, 3, 4, 5]
```

### equals(a, b)

Returns true if the two arrays are the same array or if they have the same length and contents.

#### Example

```js
const equals = require('uint8arrays/equals')

const a = Uint8Array.from([0, 1, 2])
const b = Uint8Array.from([3, 4, 5])
const c = Uint8Array.from([0, 1, 2])

console.info(equals(a, b)) // false
console.info(equals(a, c)) // true
console.info(equals(a, a)) // true
```

### fromString(string, encoding = 'utf8')

Returns a new `Uint8Array` created from the passed string and interpreted as the passed encoding.

Supports `utf8` and any of the [multiformats encodings](https://www.npmjs.com/package/multibase#supported-encodings-see-srcconstantsjs).

#### Example

```js
const fromString = require('uint8arrays/from-string')

console.info(fromString('hello world')) // Uint8Array[104, 101 ...
console.info(fromString('00010203aabbcc', 'base16')) // Uint8Array[0, 1 ...
console.info(fromString('AAECA6q7zA', 'base64')) // Uint8Array[0, 1 ...
console.info(fromString('01234', 'ascii')) // Uint8Array[48, 49 ...
```

### toString(array, encoding = 'utf8')

Returns a string created from the passed `Uint8Array` in the passed encoding.

Supports `utf8` and any of the [multiformats encodings](https://www.npmjs.com/package/multibase#supported-encodings-see-srcconstantsjs).

#### Example

```js
const toString = require('uint8arrays/to-string')

console.info(toString(Uint8Array.from([104, 101...]))) // 'hello world'
console.info(toString(Uint8Array.from([0, 1, 2...]), 'base16')) // '00010203aabbcc'
console.info(toString(Uint8Array.from([0, 1, 2...]), 'base64')) // 'AAECA6q7zA'
console.info(toString(Uint8Array.from([48, 49, 50...]), 'ascii')) // '01234'
```
npm package: @sotatek-anhdao/bsw-v2-sdk
Description: 🛠 An SDK for building applications on top of Uniswap V2
Latest version: 0.0.2

# Uniswap V2 SDK

[![Unit Tests](https://github.com/Uniswap/uniswap-v2-sdk/workflows/Unit%20Tests/badge.svg)](https://github.com/Uniswap/uniswap-v2-sdk/actions?query=workflow%3A%22Unit+Tests%22)
[![Lint](https://github.com/Uniswap/uniswap-v2-sdk/workflows/Lint/badge.svg)](https://github.com/Uniswap/uniswap-v2-sdk/actions?query=workflow%3ALint)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![npm version](https://img.shields.io/npm/v/@uniswap/v2-sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/v2-sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/v2-sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/v2-sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).
npm package: @sotatek-anhdao/cake-sdk
Description: 🛠 An SDK for building applications on top of pancakeswap.
Latest version: 1.0.3-1

# Pancakeswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/pancakeswap/pancakeswap-sdk/workflows/CI/badge.svg)](https://github.com/pancakeswap/pancakeswap-sdk)
[![npm version](https://img.shields.io/npm/v/@pancakeswap-lib/sdk/latest.svg)](https://www.npmjs.com/package/@pancakeswap-lib/sdk/v/latest)

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancakeswap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @sotatek-anhdao/coin-address-validator
Description: To validate crypto currency's wallet address
Latest version: 1.0.1

# Coin Address Validator

> To validate crypto currency's wallet address on Node.js and Browser even React Native.
> And It has no dependencies with Node.js core modules.

This project was created with reference to [wallet-address-validator](https://github.com/ognus/wallet-address-validator).

## How to use
```js
import coinAddressValidator from 'coin-address-validator';

const isBtcAddress  = coinAddressValidator.validate('1Gz3SRHzmzV8NwhUe5LQkTy5ysH1aqevAP', 'btc', 'prod');
const isEthAddress = coinAddressValidator.validate('0x9e093a64da766c6f1400158db028cc9946b8ae1f', 'eth', 'prod');
const isXrpAddress = coinAddressValidator.validate('rh5yrZSwXTAXdiHyc7xiyZ95FdjsfYWmSY', 'xrp', 'prod');
const isLtcAddress = coinAddressValidator.validate('LRitYWYuMvnJyrms4jVTiAj5rcTVomHvPx', 'ltc', 'prod');
```

### Methods
__validate(address, [, currency = 'bitcoin'[, networkType = 'prod']])__

type of return value is boolean. (`true` or `false`)

- address : Wallet address to validate
- currency : Optional. Currency name or symbol
- networkType: Optional. Use `prod` to enforce standard address. or Use `testnet` to enforce testnet address. Use `both` for both of them)

__getAddressType(address)__

type of return value is string (if valid base58 addrses) or null
- address: Wallet address

## Supported Currencies
* Auroracoin/AUR, `'auroracoin'` or `'AUR'`
* BeaverCoin/BVC, `'beavercoin'` or `'BVC'`
* Biocoin/BIO, `'biocoin'` or `'BIO'`
* Bitcoin/BTC, `'bitcoin'` or `'BTC'`
* BitcoinCash/BCH, `'bitcoincash'` or `'BCH'`
* BitcoinGold/BTG, `'bitcoingold'` or `'BTG'`
* BitcoinPrivate/BTCP, `'bitcoinprivate'` or `'BTCP'`
* BitcoinZ/BTCZ, `'bitcoinz'` or `'BTCZ'`
* Callisto/CLO, `'callisto'` or `'CLO'`
* Dash, `'dash'` or `'DASH'`
* Decred/DCR, `'decred'` or `'DCR'`
* Digibyte/DGB, `'digibyte'` or `'DGB'`
* Dogecoin/DOGE, `'dogecoin'` or `'DOGE'`
* Ethereum/ETH, `'ethereum'` or `'ETH'`
* EthereumClassic/ETH, `'ethereumclassic'` or `'ETC'`
* EthereumZero/ETZ, `'etherzero'` or `'ETZ'`
* Freicoin/FRC, `'freicoin'` or `'FRC'`
* Garlicoin/GRLC, `'garlicoin'` or `'GRLC'`
* Hush/HUSH, `'hush'` or `'HUSH'`
* Komodo/KMD, `'komodo'` or `'KMD'`
* Litecoin/LTC, `'litecoin'` or `'LTC'`
* Megacoin/MEC, `'megacoin'` or `'MEC'`
* Monero/XMR, `'monero'` or `'XMR'`
* Namecoin/NMC, `'namecoin'` or `'NMC'`
* NEO/NEO, `'NEO'` or `'NEO'`
* NeoGas/GAS, `'neogas'` or `'GAS'`
* Peercoin/PPCoin/PPC, `'peercoin'` or `'PPC'`
* Primecoin/XPM, `'primecoin'` or `'XPM'`
* Protoshares/PTS, `'protoshares'` or `'PTS'`
* Qtum/QTUM, `'qtum'` or `'QTUM'`
* Ripple/XRP, `'ripple'` or `'XRP'`
* Snowgem/SNG, `'snowgem'` or `'SNG'`
* Vertcoin/VTC, `'vertcoin'` or `'VTC'`
* Votecoin/VTC, `'votecoin'` or `'VOT'`
* Zcash/ZEC, `'zcash'` or `'ZEC'`
* Zclassic/ZCL, `'zclassic'` or `'ZCL'`
* ZenCash/ZEN, `'zencash'` or `'ZEN'`
npm package: @sotatek-anhdao/crypto-wallet-core
Description: A multi-currency support library for address derivation, private key creation, and transaction creation
Author: Micah Riggan
Latest version: 8.22.10

# Crypto Wallet Core

**A coin-agnostic wallet library for creating transactions, signing, and address derivation.**

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bitcore/blob/master/Contributing.md) on the main bitcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bitcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/mdex-bsc-sdk-testnet
Description: 🛠 An SDK for building applications on top of MDEX.
Latest version: 1.0.0

# MDEX BSC SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/mdexSwap/bsc-sdk.git
```

Move into the bsc-sdk working directory

```sh
cd bsc-sdk/
```

Install dependencies

```sh
yarn
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 9 passed, 9 of 10 total
Tests:       3 skipped, 125 passed, 128 total
Snapshots:   0 total
Time:        2.466s, estimated 9s
Ran all test suites.
✨  Done in 5.71s.
```
npm package: @sotatek-anhdao/mooniswap-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 1.0.0

# Mooniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

## About
Mooniswap is next generation AMM (Automated Market Maker) protocol.
This repository contains Mooniswap SDK originally forked from Uniswap.

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/CryptoManiacsZone/mooniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd mooniswap-sdk/
```

Install dependencies

```sh
yarn install
```

#### License

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 <https://www.gnu.org/licenses/>.

#### Contact us
- info@1inch.exchange

Copyright © 2020, 1inch limited.

Copyright © 2020, [Uniswap](https://uniswap.org/).

Released under GNU General Public License v3.0
npm package: @sotatek-anhdao/pancake-sdk-v1-testnet
Description: 🛠 An SDK for building applications on top of pancakeswap.
Latest version: 1.0.0

# Pancakeswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/pancakeswap/pancakeswap-sdk/workflows/CI/badge.svg)](https://github.com/pancakeswap/pancakeswap-sdk)
[![npm version](https://img.shields.io/npm/v/@pancakeswap-lib/sdk/latest.svg)](https://www.npmjs.com/package/@pancakeswap-lib/sdk/v/latest)

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancakeswap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @sotatek-anhdao/pancake-sdk-v2-testnet
Description: 🛠 An SDK for building applications on top of pancakeswap.
Latest version: 2.2.4

# Pancakeswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/pancakeswap/pancakeswap-sdk/workflows/CI/badge.svg)](https://github.com/pancakeswap/pancakeswap-sdk)
[![npm version](https://img.shields.io/npm/v/@pancakeswap-lib/sdk/latest.svg)](https://www.npmjs.com/package/@pancakeswap-lib/sdk/v/latest)

## V2 SDK for the BSC testnet

This is a fork of `@pancakeswap-libs/sdk-v2` modified to work on the BSC testnet against PancakeSwap V2 routers coupled with [`pancake-swap-interface-v1`](https://github.com/pancakeswap/pancake-swap-interface-v1).

Detailed instructions and the modified `pancake-swap-interface-v1` code can be found at [https://github.com/ibhagwan/pancake-swap-interface-v1](https://github.com/ibhagwan/pancake-swap-interface-v1).

### Building this SDK

Clone either this repository or the official one:
```
❯ git clone https://github.com/ibhagwan/pancakeswap-sdk-v2
```

- Modify `FACTORY_ADDRESS` & `INIT_CODE_HASH` in `src/constants.ts`
- Modify the testnet `WBNB` at the end of `entities/token.ts`:
    ```
    [ChainId.BSCTESTNET]: new Token(
        ChainId.BSCTESTNET,
        '0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd',
        18,
        'WBNB',
        'Wrapped BNB'
    )
    ```

Build:
```
❯ yarn
❯ npm run build
```

### PancaeSwap V2, option #1 (default)
Router: [`0xD99D1c33F9fC3444f8101754aBC46c52416550D1`](https://testnet.bscscan.com/address/0xD99D1c33F9fC3444f8101754aBC46c52416550D1)

Factory: [`0x6725f303b657a9451d8ba641348b6761a6cc7a17`](https://testnet.bscscan.com/address/0x6725f303b657a9451d8ba641348b6761a6cc7a17)

WETH: [`0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd`](https://testnet.bscscan.com/address/0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd)

INIT_CODE_PAIR_HASH: `0xd0d4c4cd0848c93cb4fd1f498d7013ee6bfb25783ea21593d5834f5d250ece66`


### PancaeSwap V2, option #2
Router: [`0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3`](https://testnet.bscscan.com/address/0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3)

Factory: [`0xb7926c0430afb07aa7defde6da862ae0bde767bc`](https://testnet.bscscan.com/address/0xb7926c0430afb07aa7defde6da862ae0bde767bc)

WETH: [`0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd`](https://testnet.bscscan.com/address/0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd)

INIT_CODE_PAIR_HASH: `0xecba335299a6693cb2ebc4782e74669b84290b6378ea3a3873c7231a8d7d1074`
npm package: @sotatek-anhdao/pancake-v2-testnet
Description: 🛠 An SDK for building applications on top of Pancakeswap.
Latest version: 1.0.0

# Pancakeswap SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk/commit/a88048e9c4198a5bdaea00883ca00c8c8e582605).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancake-swap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @sotatek-anhdao/pancakeswap-sdk
Description: 🛠 An SDK for building applications on top of Pancakeswap.
Latest version: 2.3.2

# Pancakeswap SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk/commit/a88048e9c4198a5bdaea00883ca00c8c8e582605).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancakeswap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @sotatek-anhdao/pbkdf2
Description: This library provides the functionality of PBKDF2 with the ability to use any supported hashing algorithm returned from crypto.getHashes()
Author: Daniel Cousens
Latest version: 3.0.8

# pbkdf2

[![NPM Package](https://img.shields.io/npm/v/pbkdf2.svg?style=flat-square)](https://www.npmjs.org/package/pbkdf2)
[![Build Status](https://img.shields.io/travis/crypto-browserify/pbkdf2.svg?branch=master&style=flat-square)](https://travis-ci.org/crypto-browserify/pbkdf2)
[![Dependency status](https://img.shields.io/david/crypto-browserify/pbkdf2.svg?style=flat-square)](https://david-dm.org/crypto-browserify/pbkdf2#info=dependencies)

[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)

This library provides the functionality of PBKDF2 with the ability to use any supported hashing algorithm returned from `crypto.getHashes()`


## Usage

```js
var pbkdf2 = require('pbkdf2')
var derivedKey = pbkdf2.pbkdf2Sync('password', 'salt', 1, 32, 'sha512')

...
```

For more information on the API,  please see the relevant [Node documentation](https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback).


## Credits

This module is a derivative of [cryptocoinjs/pbkdf2-sha256](https://github.com/cryptocoinjs/pbkdf2-sha256/), so thanks to [JP Richardson](https://github.com/jprichardson/) for laying the ground work.

Thank you to [FangDun Cai](https://github.com/fundon) for donating the package name on npm, if you're looking for his previous module it is located at [fundon/pbkdf2](https://github.com/fundon/pbkdf2).
npm package: @sotatek-anhdao/react-native-bitcore-mnemonic
Description: BIP39 Mnemonics implemented for Bitcore.
Author: BitPay
Latest version: 8.22.0

# Bitcore Mnemonics

BIP39 Mnemonics for bivcore

[![NPM Package](https://img.shields.io/npm/v/bivcore-mnemonic.svg?style=flat-square)](https://www.npmjs.org/package/bivcore-mnemonic)
[![Build Status](https://img.shields.io/travis/bitpay/bivcore-mnemonic.svg?branch=master&style=flat-square)](https://travis-ci.org/bitpay/bivcore-mnemonic)
[![Coverage Status](https://img.shields.io/coveralls/bitpay/bivcore-mnemonic.svg?style=flat-square)](https://coveralls.io/r/bitpay/bivcore-mnemonic)

**A module for [bivcore](https://github.com/bitpay/bivcore) that implements [Mnemonic code for generating deterministic keys](https://github.com/bivcoin/bips/blob/master/bip-0039.mediawiki).**

## Getting Started

This library is distributed in both the npm packaging systems.

```sh
npm install @sotatek-anhdao/react-native-bitcore-lib-value  #this to install bitcore-lib-value since it is a peerDependecy
npm install bivcore-mnemonic
```

There are many examples of how to use it on the developer guide [section for mnemonic](./docs/index.md). For example, the following code would generate a new random mnemonic code and convert it to a `HDPrivateKey`.

```javascript
var Mnemonic = require('bivcore-mnemonic');
var code = new Mnemonic(Mnemonic.Words.SPANISH);
code.toString(); // natal hada sutil año sólido papel jamón combate aula flota ver esfera...
var xpriv = code.toHDPrivateKey();
```

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bivcore/blob/master/CONTRIBUTING.md) on the main bivcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bivcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/react-native-bitcore-p2p-value
Description: Interface to the bitcoin P2P network for bitcore
Author: Sotatek .JSC
Latest version: 8.22.0

# React Native Bitcore P2P Value

[![NPM Package](https://img.shields.io/npm/v/@sotatek-anhdao/bitcore-p2p-value.svg?style=flat-square)](https://www.npmjs.com/package/@sotatek-anhdao/bitcore-p2p-value)

**The peer-to-peer networking protocol for BIV.**

`bitcore-p2p-value` adds [Bitcoin Value protocol](https://en.bitcoin.it/wiki/Protocol_documentation) support for Bitcore.

See [the main bitcore repo](https://github.com/bitpay/bitcore) for more information.

## Getting Started

```sh
npm install @sotatek-anhdao/bitcore-p2p-value
```

In order to connect to the Bitcoin Value network, you'll need to know the IP address of at least one node of the network, or use [Pool](./docs/pool.md) to discover peers using a DNS seed.

```javascript
var Peer = require('@sotatek-anhdao/bitcore-p2p-value').Peer;

var peer = new Peer({host: '127.0.0.1'});

peer.on('ready', function() {
  // peer info
  console.log(peer.version, peer.subversion, peer.bestHeight);
});
peer.on('disconnect', function() {
  console.log('connection closed');
});
peer.connect();
```

Then, you can get information from other peers by using:

```javascript
// handle events
peer.on('inv', function(message) {
  // message.inventory[]
});
peer.on('tx', function(message) {
  // message.transaction
});
```

Take a look at this [guide](./docs/peer.md) on the usage of the `Peer` class.

## Contributing

See [CONTRIBUTING.md](https://github.com/bitpay/bitcore/blob/master/CONTRIBUTING.md) on the main bitcore repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bitcore/blob/master/LICENSE).

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @sotatek-anhdao/react-native-cipher-base
Description: abstract base class for crypto-streams
Author: Calvin Metcalf
Latest version: 1.0.1

cipher-base
===

[![Build Status](https://travis-ci.org/crypto-browserify/cipher-base.svg)](https://travis-ci.org/crypto-browserify/cipher-base)

Abstract base class to inherit from if you want to create streams implementing
the same api as node crypto streams.

Requires you to implement 2 methods `_final` and `_update`. `_update` takes a
buffer and should return a buffer, `_final` takes no arguments and should return
a buffer.


The constructor takes one argument and that is a string which if present switches
it into hash mode, i.e. the object you get from crypto.createHash or
crypto.createSign, this switches the name of the final method to be the string
you passed instead of `final` and returns `this` from update.
npm package: @sotatek-anhdao/react-native-create-hash
Description: create hashes for browserify
Latest version: 1.0.1

# create-hash

[![Build Status](https://travis-ci.org/crypto-browserify/createHash.svg)](https://travis-ci.org/crypto-browserify/createHash)

Node style hashes for use in the browser, with native hash functions in node.

API is the same as hashes in node:
```js
var createHash = require('create-hash')
var hash = createHash('sha224')
hash.update('synchronous write') // optional encoding parameter
hash.digest() // synchronously get result with optional encoding parameter

hash.write('write to it as a stream')
hash.end() // remember it's a stream
hash.read() // only if you ended it as a stream though
```

To get the JavaScript version even in node do `require('create-hash/browser')`
npm package: @sotatek-anhdao/react-native-crypto
Description: implementation of crypto for React Native
Author: Dominic Tarr
Latest version: 1.0.1

# react-native-crypto

Note: this module is a clone of [crypto-browserify](https://github.com/crypto-browserify/crypto-browserify), with randombytes replaced.

A port of node's `crypto` module to React Native.

## install

Because this module depends on some node core modules, and react-native doesn't currently have a [resolve.alias a la webpack](https://productpains.com/post/react-native/packager-support-resolvealias-ala-webpack), you will need to use [rn-nodeify](https://github.com/tradle/rn-nodeify) for your shimming needs.

A suggested workflow:

1. Install
  ```sh
  npm i --save react-native-crypto
  # install peer deps
  npm i --save react-native-randombytes
  react-native link react-native-randombytes # on RN >= 0.60, instead do: cd iOS && pod install
  # install latest rn-nodeify
  npm i --save-dev rn-nodeify
  # install node core shims and recursively hack package.json files
  # in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings
  ./node_modules/.bin/rn-nodeify --hack --install
  ```

2. `rn-nodeify` will create a `shim.js` in the project root directory
  ```js
  // index.ios.js or index.android.js
  // make sure you use `import` and not require!  
  import './shim.js'
  import crypto from 'crypto'
  // ...the rest of your code
  ```

## example

see https://github.com/mvayngrib/rncryptoexample

## the crypto in this box

What follows is unedited text from crypto-browserify

The goal of this module is to reimplement node's crypto module so that it can run in react-native supported environments.

Here is the subset that is currently implemented:

* createHash (sha1, sha224, sha256, sha384, sha512, md5, rmd160)
* createHmac (sha1, sha224, sha256, sha384, sha512, md5, rmd160)
* pbkdf2
* pbkdf2Sync
* randomBytes
* pseudoRandomBytes
* createCipher (aes)
* createDecipher (aes)
* createDiffieHellman
* createSign (rsa, ecdsa)
* createVerify (rsa, ecdsa)
* createECDH (secp256k1)
* publicEncrypt/privateDecrypt (rsa)
* randomFillSync
* randomFill

## todo

these features from node's `crypto` are still unimplemented.

* createCredentials
* scryptSync

these features would benefit from native implementations

* pbkdf2
* createSign
* createVerify
* createECDH
* publicEncrypto/privateDecrypt (rsa)

## contributions

If you are interested in writing a feature, please implement as a new module,
which will be incorporated into crypto-browserify as a dependency.

All deps must be compatible with node's crypto
(generate example inputs and outputs with node,
and save base64 strings inside JSON, so that tests can run in the browser.
see [sha.js](https://github.com/dominictarr/sha.js)

Crypto is _extra serious_ so please do not hesitate to review the code,
and post comments if you do.

## License

MIT