aboutsummaryrefslogtreecommitdiffstats
path: root/packages/testnet-faucets/src/ts
diff options
context:
space:
mode:
authorJacob Evans <dekz@dekz.net>2018-04-06 14:52:44 +0800
committerGitHub <noreply@github.com>2018-04-06 14:52:44 +0800
commit524e4707d2274185f68f3ddfb82367a46429876d (patch)
tree3695c7c8ba8c4cb26b29597311f2fb20a3f63a3c /packages/testnet-faucets/src/ts
parent277e58c2e57489a6ac8e8276fe16ec511d3f01fe (diff)
parenta0fac663f72feafbac98c2949578ec48b8d2ec0a (diff)
downloaddexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar.gz
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar.bz2
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar.lz
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar.xz
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.tar.zst
dexon-sol-tools-524e4707d2274185f68f3ddfb82367a46429876d.zip
Merge pull request #506 from 0xProject/feature/subproviders/pk-wallet-subprovider
Private Key subprovider
Diffstat (limited to 'packages/testnet-faucets/src/ts')
-rw-r--r--packages/testnet-faucets/src/ts/handler.ts9
-rw-r--r--packages/testnet-faucets/src/ts/id_management.ts35
2 files changed, 5 insertions, 39 deletions
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);
- },
-};