Skip to content
This repository was archived by the owner on Oct 30, 2024. It is now read-only.

Commit f5de70e

Browse files
committed
Accept the true range of addresses for ICAP direct (slower at the same time)
1 parent d5449da commit f5de70e

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ Object.defineProperty(Wallet.prototype, 'pubKey', {
4949

5050
Wallet.generate = function (icapDirect) {
5151
if (icapDirect) {
52+
var max = new ethUtil.BN('088f924eeceeda7fe92e1f5b0fffffffffffffff', 16)
5253
while (true) {
5354
var privKey = crypto.randomBytes(32)
54-
if (ethUtil.privateToAddress(privKey)[0] === 0) {
55+
if (new ethUtil.BN(ethUtil.privateToAddress(privKey)).lte(max)) {
5556
return new Wallet(privKey)
5657
}
5758
}

test/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var assert = require('assert')
22
var Wallet = require('../')
33
var Thirdparty = require('../thirdparty.js')
4+
var ethUtil = require('ethereumjs-util')
45

56
var fixturekey = new Buffer('efca4cdd31923b50f4214af5d2ae10e7ac45a5019e9431cc195482d707485378', 'hex')
67
var fixturewallet = Wallet.fromPrivateKey(fixturekey)
@@ -102,9 +103,10 @@ describe('.generate()', function () {
102103
assert.equal(Wallet.generate().getPrivateKey().length, 32)
103104
})
104105
it('should generate an account compatible with ICAP Direct', function () {
106+
var max = new ethUtil.BN('088f924eeceeda7fe92e1f5b0fffffffffffffff', 16)
105107
var wallet = Wallet.generate(true)
106108
assert.equal(wallet.getPrivateKey().length, 32)
107-
assert.equal(wallet.getAddress()[0], 0)
109+
assert.equal(new ethUtil.BN(wallet.getAddress()).lte(max), true)
108110
})
109111
})
110112

0 commit comments

Comments
 (0)