From ea47613d901cb0e8d9543f37d7f591c91ef986c4 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 5 Apr 2018 15:25:26 +1000 Subject: Use PKWalletSubprovider in testnet faucet --- packages/testnet-faucets/src/ts/handler.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'packages/testnet-faucets/src') diff --git a/packages/testnet-faucets/src/ts/handler.ts b/packages/testnet-faucets/src/ts/handler.ts index f9ac484de..9c8e59248 100644 --- a/packages/testnet-faucets/src/ts/handler.ts +++ b/packages/testnet-faucets/src/ts/handler.ts @@ -9,7 +9,7 @@ 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, PKWalletSubprovider } 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'); @@ -41,9 +41,12 @@ const FIVE_DAYS_IN_MS = 4.32e8; // TODO: make this configurable export class Handler { private _networkConfigByNetworkId: ItemByNetworkId = {}; 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 PKWalletSubprovider(configs.DISPENSER_PRIVATE_KEY)); engine.addProvider( new RpcSubprovider({ rpcUrl, -- cgit From 774ab8a8efa1ff5914896d9435c0362a4586c2ef Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Fri, 6 Apr 2018 14:55:03 +1000 Subject: Feedback remove id management from testnet faucet spread over txParams rather than modify in place --- packages/testnet-faucets/src/ts/handler.ts | 6 ++-- packages/testnet-faucets/src/ts/id_management.ts | 35 ------------------------ 2 files changed, 2 insertions(+), 39 deletions(-) delete mode 100644 packages/testnet-faucets/src/ts/id_management.ts (limited to 'packages/testnet-faucets/src') diff --git a/packages/testnet-faucets/src/ts/handler.ts b/packages/testnet-faucets/src/ts/handler.ts index 9c8e59248..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, PKWalletSubprovider } 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 { @@ -46,7 +44,7 @@ export class Handler { } const engine = new ProviderEngine(); engine.addProvider(new NonceTrackerSubprovider()); - engine.addProvider(new PKWalletSubprovider(configs.DISPENSER_PRIVATE_KEY)); + 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); - }, -}; -- cgit