diff options
author | Fabio Berger <me@fabioberger.com> | 2018-04-09 13:34:36 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-04-09 13:34:36 +0800 |
commit | e05b55d4a5698d3e936e7164ed69d9417d12cd12 (patch) | |
tree | 1f9be2d21d21cc915687f3606b2dad9e8a4add8e /packages/testnet-faucets | |
parent | 6f24337a5309bc4b06d0a91eac3af7566bde5754 (diff) | |
parent | 073bf738ddb271b6b4158798baf4cac3cb0608e9 (diff) | |
download | dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar.gz dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar.bz2 dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar.lz dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar.xz dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.tar.zst dexon-sol-tools-e05b55d4a5698d3e936e7164ed69d9417d12cd12.zip |
merge development
Diffstat (limited to 'packages/testnet-faucets')
-rw-r--r-- | packages/testnet-faucets/README.md | 50 | ||||
-rw-r--r-- | packages/testnet-faucets/src/ts/handler.ts | 9 | ||||
-rw-r--r-- | packages/testnet-faucets/src/ts/id_management.ts | 35 |
3 files changed, 46 insertions, 48 deletions
diff --git a/packages/testnet-faucets/README.md b/packages/testnet-faucets/README.md index 2f6ae347f..93f97e1b7 100644 --- a/packages/testnet-faucets/README.md +++ b/packages/testnet-faucets/README.md @@ -4,15 +4,15 @@ This faucet dispenses 0.1 test ether to one recipient per second and 0.1 test ZR ## Installation -This is a private package and therefore is not published to npm. In order to build and run this package locally, see the [Install Dependencies](#Install-Dependencies) section and onwards below. +This is a private package and therefore is not published to npm. In order to build and run this package locally, see the contributing instructions below. ## Contributing -We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository. +We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository. Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started. -### Install Dependencies +### Install dependencies If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them: @@ -26,6 +26,44 @@ Then install dependencies yarn install ``` +### Build + +If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory: + +```bash +yarn lerna:rebuild +``` + +Or continuously rebuild on change: + +```bash +yarn dev +``` + +You can also build this specific package by running the following from within its directory: + +```bash +yarn build +``` + +or continuously rebuild on change: + +```bash +yarn build:watch +``` + +### Clean + +```bash +yarn clean +``` + +### Lint + +```bash +yarn lint +``` + ### Start Set the following environment variables: @@ -125,9 +163,3 @@ docker run -d \ -e INFURA_API_KEY=$INFURA_API_KEY \ testnet-faucets ``` - -### Lint - -```bash -yarn lint -``` diff --git a/packages/testnet-faucets/src/ts/handler.ts b/packages/testnet-faucets/src/ts/handler.ts index f9ac484de..a6e786552 100644 --- a/packages/testnet-faucets/src/ts/handler.ts +++ b/packages/testnet-faucets/src/ts/handler.ts @@ -9,15 +9,13 @@ import * as Web3 from 'web3'; // we are not running in a browser env. // Filed issue: https://github.com/ethereum/web3.js/issues/844 (global as any).XMLHttpRequest = undefined; -import { NonceTrackerSubprovider } from '@0xproject/subproviders'; +import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider } from '@0xproject/subproviders'; import ProviderEngine = require('web3-provider-engine'); -import HookedWalletSubprovider = require('web3-provider-engine/subproviders/hooked-wallet'); import RpcSubprovider = require('web3-provider-engine/subproviders/rpc'); import { configs } from './configs'; import { DispatchQueue } from './dispatch_queue'; import { dispenseAssetTasks } from './dispense_asset_tasks'; -import { idManagement } from './id_management'; import { rpcUrls } from './rpc_urls'; interface NetworkConfig { @@ -41,9 +39,12 @@ const FIVE_DAYS_IN_MS = 4.32e8; // TODO: make this configurable export class Handler { private _networkConfigByNetworkId: ItemByNetworkId<NetworkConfig> = {}; private static _createProviderEngine(rpcUrl: string) { + if (_.isUndefined(configs.DISPENSER_PRIVATE_KEY)) { + throw new Error('Dispenser Private key not found'); + } const engine = new ProviderEngine(); engine.addProvider(new NonceTrackerSubprovider()); - engine.addProvider(new HookedWalletSubprovider(idManagement)); + engine.addProvider(new PrivateKeyWalletSubprovider(configs.DISPENSER_PRIVATE_KEY)); engine.addProvider( new RpcSubprovider({ rpcUrl, diff --git a/packages/testnet-faucets/src/ts/id_management.ts b/packages/testnet-faucets/src/ts/id_management.ts deleted file mode 100644 index 7c598f91c..000000000 --- a/packages/testnet-faucets/src/ts/id_management.ts +++ /dev/null @@ -1,35 +0,0 @@ -import EthereumTx = require('ethereumjs-tx'); -import * as ethUtil from 'ethereumjs-util'; -import * as _ from 'lodash'; - -import { configs } from './configs'; - -type Callback = (err: Error | null, result: any) => void; - -export const idManagement = { - getAccounts(callback: Callback) { - callback(null, [configs.DISPENSER_ADDRESS]); - }, - approveTransaction(txData: object, callback: Callback) { - callback(null, true); - }, - signTransaction(txData: object, callback: Callback) { - const tx = new EthereumTx(txData); - const privateKeyBuffer = new Buffer(configs.DISPENSER_PRIVATE_KEY as string, 'hex'); - tx.sign(privateKeyBuffer); - const rawTx = `0x${tx.serialize().toString('hex')}`; - callback(null, rawTx); - }, - signMessage(message: object, callback: Callback) { - const dataIfExists = _.get(message, 'data'); - if (_.isUndefined(dataIfExists)) { - callback(new Error('NO_DATA_TO_SIGN'), null); - } - const privateKeyBuffer = new Buffer(configs.DISPENSER_PRIVATE_KEY as string, 'hex'); - const dataBuff = ethUtil.toBuffer(dataIfExists); - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff); - const sig = ethUtil.ecsign(msgHashBuff, privateKeyBuffer); - const rpcSig = ethUtil.toRpcSig(sig.v, sig.r, sig.s); - callback(null, rpcSig); - }, -}; |