open-index/open-npm huggingface dataset:
npm package: @nodefactory/blank-minter-contracts
Description: Starter project for developing solidity smart contracts using truffle in docker
Latest version: 0.3.9-rinkeby

## Requirements

Following software is required to be installed to use this repo:
 * [NodeJs](https://nodejs.org/en/) >= v8.4.0
 * docker
 * docker-compose

## Usage

Run `npx run build` which will
build docker image.

Run `npx run` to see all available commands:
clean                           - Removes all build directories and dependencies

lint                            - Runs tslint on current project

build                           - Builds new docker image

deploy                          - Run all missing migrations to deploy contracts to ethereum network. Command accepts param with id of network

redeploy                        - Run all migrations again to deploy contracts to ethereum network. Command accepts param with id of network

compile                         - Compiles all contracts and generates typings

solhint                         - Runs solhint on all smart contracts

test                            - Runs tests against contracts in docker. It accepts test name as optional argument
npm package: @nodefactory/bls-keystore
Description: [![Build Status](https://travis-ci.com/NodeFactoryIo/bls-keystore.svg?branch=master)](https://travis-ci.com/NodeFactoryIo/bls-keystore) ![npm](https://img.shields.io/npm/v/@nodefactory/bls-keystore) ![Discord](https://img.shields.io/discord/60820486459346
Author: NodeFactory
Latest version: 1.0.0-beta7

# @nodefactory/bls-keystore

[![Build Status](https://travis-ci.com/NodeFactoryIo/bls-keystore.svg?branch=master)](https://travis-ci.com/NodeFactoryIo/bls-keystore)
![npm](https://img.shields.io/npm/v/@nodefactory/bls-keystore)
![Discord](https://img.shields.io/discord/608204864593461248?color=blue&label=Discord&logo=discord)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

> Bls keystore implementation as per draft [EIP 2335](https://github.com/ethereum/EIPs/pull/2335) for node and browser.


##### Electron usage
- Set env variable ELECTRON=true because electron replaces openssl with BoreSSL which 
causes some incompatibilities when using native modules.


### How to use?
```javascript
import {Buffer} from "buffer";
import {Keystore} from "@nodefactory/bls-keystore";

// encrypt private key
const privateKey: Buffer;
const password = "SomePassword123"; 
const keystore = Keystore.encrypt(privateKey, password, "m/12381/60/0/0");

//verify password
keystore.verifyPassword(password); //true | false

//decrypt
const decryptedPrivateKey: Buffer = keystore.decrypt(password);

//save as json
keystore.toJSON(); //string
```

For key derivation checkout [@chainsafe/bls-ts-key-mgmt](https://github.com/ChainSafe/bls-ts-key-mgmt)

### Contribute

- get yarn
- yarn install
- yarn test

#### Built by
[![NodeFactory](nf-logo.png)](https://nodefactory.io)
npm package: @nodefactory/buidler-typechain
Description: Buidler TypeScript plugin boilerplate
Author: Rahul Sethuram
Latest version: 0.2.0

[![buidler](https://buidler.dev/buidler-plugin-badge.svg?1)](https://buidler.dev)

# buidler-typechain

_Updated for TypeChain v2!_

Add [Typechain](https://www.github.com/ethereum-ts/TypeChain) tasks to your Buidler project!

## What

[TypeChain](https://www.github.com/ethereum-ts/TypeChain) gives you Typescript bindings for your smart contracts. Now, your tests and frontend code can be typesafe and magically autocomplete smart contract function names!

## Installation

```bash
npm i buidler-typechain typechain ts-generator @typechain/ethers-v4 @typechain/truffle-v5 @typechain/web3-v1 @typechain/truffle-v4
```

And add the following statement to your `buidler.config.js`:

```js
usePlugin("buidler-typechain");
```

## Tasks

This plugin adds the _typechain_ task to Buidler:

```
Generate Typechain typings for compiled contracts
```

## Configuration

This plugin extends the `BuidlerConfig` optional `typechain` object. The object contains two fields, `outDir` and `target`. `outDir` is the output directory of the artifacts that TypeChain creates (defaults to `typechain`). `target` is one of the targets specified by the TypeChain [docs](https://github.com/ethereum-ts/TypeChain#cli) (defaults to `ethers`).

This is an example of how to set it:

```js
module.exports = {
  typechain: {
    outDir: "src/types",
    target: "ethers-v4",
  },
};
```

## Usage

`npx buidler typechain` - Compiles and generates Typescript typings for your contracts.

Example Waffle + Ethers test that uses typedefs for contracts:

```ts
import { ethers } from "@nomiclabs/buidler";
import chai from "chai";
import { Wallet } from "ethers";
import { deployContract, solidity } from "ethereum-waffle";

import CounterArtifact from "../artifacts/Counter.json";
import { Counter } from "../typechain/Counter";

chai.use(solidity);
const { expect } = chai;

describe("Counter", () => {
  let counter: Counter;

  beforeEach(async () => {
    // 1
    const signers = await ethers.signers();

    // 2
    counter = (await deployContract(
      <Wallet>signers[0],
      CounterArtifact
    )) as Counter;
    const initialCount = await counter.getCount();

    // 3
    expect(initialCount).to.eq(0);
    expect(counter.address).to.properAddress;
  });

  // 4
  describe("count up", async () => {
    it("should count up", async () => {
      await counter.countUp();
      let count = await counter.getCount();
      expect(count).to.eq(1);
    });
  });

  describe("count down", async () => {
    // 5
    it("should fail", async () => {
      await counter.countDown();
    });

    it("should count down", async () => {
      await counter.countUp();

      await counter.countDown();
      const count = await counter.getCount();
      expect(count).to.eq(0);
    });
  });
});
```

See this [starter kit](https://github.com/rhlsthrm/typescript-solidity-dev-starter-kit) for a full example!

## TypeScript support

You need to add this to your `tsconfig.json`'s `files` array:
`"node_modules/buidler-typechain/src/type-extensions.d.ts"`
npm package: @nodefactory/dappeteer
Description: E2E testing for dApps using Puppeteer + MetaMask
Author: Juan Cazala
Latest version: 2.0.1
Deprecated: You can find new package at @chainsafe/dappeteer

# dAppeteer

E2E testing for dApps using Puppeteer + MetaMask

## Installation

```
$ npm install -s @nodefactory/dappeteer
$ yarn add @nodefactory/dappeteer
```

## Usage

```js
import puppeteer from 'puppeteer';
import dappeteer from '@nodefactory/dappeteer';

async function main() {
  const browser = await dappeteer.launch(puppeteer);
  const metamask = await dappeteer.setupMetamask(browser);

  // you can change the network if you want
  await metamask.switchNetwork('ropsten');

  // go to a dapp and do something that prompts MetaMask to confirm a transaction
  const page = await browser.newPage();
  await page.goto('http://my-dapp.com');
  const payButton = await page.$('#pay-with-eth');
  await payButton.click();

  // 🏌
  await metamask.confirmTransaction();
}

main();
```

## API

- `dappeteer.launch(puppeteer[, launchOptions])`: returns an instance of `browser`, same as `puppeteer.launch`, but it also installs the MetaMask extension. It supports all the regular `puppeteer.launch` options as a second argument with the addition of:

  - `metamaskVersion`: Metamask plugin version (by default it uses latest)

- `dappeteer.setupMetamask(browser[, {seed, password}])`: returns a promise that resolves to an object that allows you to interact with MetaMask by using the following methods:

  - `metamask.switchAccount(accountIndex)`: it commands MetaMask to switch to a different account, by passing the index/position of the account in the accounts list.

  - `metamask.importPK(privateKey)`: it commands MetaMask to import an private key. It can only be used while you haven't signed in yet, otherwise it throws.

  - `metamask.lock()`: signs out from MetaMask. It can only be used if you arelady signed it, otherwise it throws.

  - `metamask.unlock([password])`: it unlocks the MetaMask extension. It can only be used in you locked/signed out before, otherwise it throws. The password is optional, it defaults to `password1234`.

  - `metamask.switchNetwork(networkName)`: it changes the current selected network. `networkName` can take the following values: `"main"`, `"ropsten"`, `"rinkeby"`, `"kovan"`, `"localhost"`.

  - `metamask.addNetwork({ networkName, rpc, chainId[, symbol, explorer]})`: it adds a custom network to MetaMask.

  - `metamask.confirmTransaction([{ gas, gasLimit }])`: commands MetaMask to submit a transaction. For this to work MetaMask has to be in a transaction confirmation state (basically promting the user to submit/reject a transaction). You can (optionally) pass an object with `gas` and/or `gasLimit`, by default they are `20` and `50000` respectively.

  - `metamask.sign()`: commands MetaMask to sign a message. For this to work MetaMask must be in a sign confirmation state.
  
  - `metamask.approve()`: enables the app to connect to MetaMask account in privacy mode
npm package: @nodefactory/env-prompt
Description: A dependency-free utility that prompts you for your project's environment variables.
Author: Brian Kotos
Latest version: 1.0.8

# env-prompt
A dependency-free utility that prompts you for your project's environment variables.

## How does it work?
On `npm install`, env-prompt reads environment variables from two files in your project:
 - a **distributed** file (default: **`.env.dist`**)
 - a git ignored **local** file (default: **`.env`**)

Env-prompt will diff these two files, prompting you for any values that exist in your distributed file but not in your
 local file.  Your newly input values will be written to your local environment file.

## Getting started
1) Install env-prompt:
```sh
$ npm install -D env-prompt
```

2) Add a postinstall hook to your `package.json` file:
```diff
{
  "name": "test",
  "main": "index.js",
+ "scripts": {
+   "postinstall": "env-prompt"
+ },
  "devDependencies": {
    "env-prompt": "^1.0.0"
  }
}
```

3) Create a `.env.dist` file in the same directory as your `package.json` file:
```
DB_USER=root
DB_PASS=root123
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=sakila
```

Env-prompt is now setup, and will be triggered when you run `npm install`.

## Options
```sh
-d, --distFile <path>
       Change the distributed environment file env-prompt reads from. (default: .env.dist)

-l, --localFile <path>
       Change the local environment file env-prompt reads from and writes to. (default: .env)
```

## [Product backlog](https://github.com/env-prompt/env-prompt/issues?q=is%3Aissue+is%3Aopen+label%3Agroomed)
*Is your use case not covered?  Feel free to [open an issue](https://github.com/env-prompt/env-prompt/issues/new).*