aboutsummaryrefslogtreecommitdiffstats
path: root/packages/testnet-faucets/src/ts/id_management.ts
diff options
context:
space:
mode:
authorBrandon Millman <brandon@0xproject.com>2018-02-07 08:15:25 +0800
committerGitHub <noreply@github.com>2018-02-07 08:15:25 +0800
commit562bcb85710c281d817c7dd4957f0a7db1ddc306 (patch)
tree3a96355adab7a5ee7c9a203ad4247ef356d35668 /packages/testnet-faucets/src/ts/id_management.ts
parent00c07b38a42c82d7c37835234d7f81236b0342ce (diff)
parentf44bfa9682544a8fc50ef9221991982fd665f9f5 (diff)
downloaddexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar.gz
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar.bz2
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar.lz
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar.xz
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.tar.zst
dexon-sol-tools-562bcb85710c281d817c7dd4957f0a7db1ddc306.zip
Merge pull request #352 from 0xProject/feature/testnet-faucets/order-dispenser
Add order signing and dispensing ability to faucet
Diffstat (limited to 'packages/testnet-faucets/src/ts/id_management.ts')
-rw-r--r--packages/testnet-faucets/src/ts/id_management.ts16
1 files changed, 15 insertions, 1 deletions
diff --git a/packages/testnet-faucets/src/ts/id_management.ts b/packages/testnet-faucets/src/ts/id_management.ts
index db9b610a3..7c598f91c 100644
--- a/packages/testnet-faucets/src/ts/id_management.ts
+++ b/packages/testnet-faucets/src/ts/id_management.ts
@@ -1,8 +1,10 @@
import EthereumTx = require('ethereumjs-tx');
+import * as ethUtil from 'ethereumjs-util';
+import * as _ from 'lodash';
import { configs } from './configs';
-type Callback = (err: Error | null, accounts: any) => void;
+type Callback = (err: Error | null, result: any) => void;
export const idManagement = {
getAccounts(callback: Callback) {
@@ -18,4 +20,16 @@ export const idManagement = {
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);
+ },
};