ECPair: cease using Address for address encoding

This commit is contained in:
Daniel Cousens 2015-07-08 15:56:21 +10:00
parent 5ce093739e
commit 588b346f5d
10 changed files with 27 additions and 22 deletions

View file

@ -1,5 +1,5 @@
var assert = require('assert')
var base58check = require('bs58check')
var bs58check = require('bs58check')
var bcrypto = require('./crypto')
var ecdsa = require('./ecdsa')
var ecurve = require('ecurve')
@ -7,7 +7,6 @@ var networks = require('./networks')
var randomBytes = require('randombytes')
var typeForce = require('typeforce')
var Address = require('./address')
var BigInteger = require('bigi')
function findNetworkByWIFVersion (version) {
@ -69,7 +68,7 @@ ECPair.fromPublicKeyBuffer = function (buffer, network) {
}
ECPair.fromWIF = function (string) {
var payload = base58check.decode(string)
var payload = bs58check.decode(string)
var version = payload.readUInt8(0)
var compressed
@ -125,13 +124,18 @@ ECPair.prototype.toWIF = function () {
buffer.writeUInt8(0x01, 33)
}
return base58check.encode(buffer)
return bs58check.encode(buffer)
}
ECPair.prototype.getAddress = function () {
var pubKey = this.getPublicKeyBuffer()
var pubKeyHash = bcrypto.hash160(pubKey)
return new Address(bcrypto.hash160(pubKey), this.network.pubKeyHash)
var payload = new Buffer(21)
payload.writeUInt8(this.network.pubKeyHash, 0)
pubKeyHash.copy(payload, 1)
return bs58check.encode(payload)
}
ECPair.prototype.getPublicKeyBuffer = function () {

View file

@ -47,7 +47,7 @@ function verify (address, signature, message, network) {
network: network
})
return keyPair.getAddress().toString() === address.toString()
return keyPair.getAddress() === address.toString()
}
module.exports = {

View file

@ -1,4 +1,5 @@
var assert = require('assert')
var bcrypto = require('./crypto')
var bufferutils = require('./bufferutils')
var ops = require('./opcodes')
var scripts = require('./scripts')
@ -36,7 +37,7 @@ function extractInput (txIn) {
hashType = parsed.hashType
pubKeys = scriptSig.chunks.slice(1)
signatures = [parsed.signature]
prevOutScript = ECPair.fromPublicKeyBuffer(pubKeys[0]).getAddress().toOutputScript()
prevOutScript = Address.fromBase58Check(ECPair.fromPublicKeyBuffer(pubKeys[0]).getAddress()).toOutputScript()
break
}
@ -330,7 +331,7 @@ TransactionBuilder.prototype.sign = function (index, keyPair, redeemScript, hash
case 'pubkeyhash': {
var pkh1 = redeemScript.chunks[2]
var pkh2 = keyPair.getAddress().hash
var pkh2 = bcrypto.hash160(keyPair.getPublicKeyBuffer())
assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
pubKeys = [kpPubKey]
@ -362,7 +363,7 @@ TransactionBuilder.prototype.sign = function (index, keyPair, redeemScript, hash
// we know nothin' Jon Snow, assume pubKeyHash
} else {
input.prevOutScript = keyPair.getAddress().toOutputScript()
input.prevOutScript = Address.fromBase58Check(keyPair.getAddress()).toOutputScript()
input.prevOutType = 'pubkeyhash'
input.pubKeys = [kpPubKey]
input.scriptType = input.prevOutType