From ecf044953fb0a211be74bbe6b28fa3b029ebeb2c Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Thu, 6 Apr 2017 22:29:58 +0300 Subject: [PATCH] Remove ethereumjs-util --- index.js | 6 ++++-- package.json | 2 +- test/keys.js | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index c728a7f..c138797 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ var crypto = require("crypto"); var sjcl = require("sjcl"); var uuid = require("uuid"); var validator = require("validator"); -var privateToAddress = require("ethereumjs-util").privateToAddress; +var secp256k1 = require("secp256k1/elliptic"); var keccak = require("./lib/keccak"); var scrypt = require("./lib/scrypt"); @@ -152,7 +152,9 @@ module.exports = { * @return {string} Hex-encoded Ethereum address. */ privateKeyToAddress: function (privateKey) { - return "0x" + privateToAddress(str2buf(privateKey)).toString("hex"); + privateKey = str2buf(privateKey); + var publicKey = secp256k1.publicKeyCreate(privateKey, false).slice(1); + return "0x" + keccak(hex2utf16le(publicKey.toString("hex"))).slice(-40); }, /** diff --git a/package.json b/package.json index 3b75fd8..f842de1 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "homepage": "https://github.com/ethereumjs/keythereum#readme", "dependencies": { - "ethereumjs-util": "5.1.1", + "secp256k1": "^3.2.5", "sjcl": "1.0.6", "uuid": "3.0.0", "validator": "4.0.2" diff --git a/test/keys.js b/test/keys.js index cf4942a..09a26d6 100644 --- a/test/keys.js +++ b/test/keys.js @@ -6,7 +6,6 @@ var fs = require("fs"); var path = require("path"); var crypto = require("crypto"); var assert = require("chai").assert; -var privateToAddress = require("ethereumjs-util").privateToAddress; var keythereum = require("../"); var checkKeyObj = require("./checkKeyObj"); var DEBUG = false; @@ -18,7 +17,7 @@ var TIMEOUT = 120000; var privateKey = crypto.randomBytes(32); // create address from private key -var address = privateToAddress(privateKey).toString("hex"); +var address = keythereum.privateKeyToAddress(privateKey).slice(2); // suppress logging keythereum.constants.quiet = !DEBUG;