According to this wiki page to create a bitcoin address,
1) you have your public key of the properly derived path
2) Then SHA256 it
3) Then RIPEMD-160 it,
Add version byte at the front and boom blam you’re good.
But in bitcoinjs-lib, they have this function getAddress which seems to skip step 2 and continue down the path ensuring Base58Checking
function getAddress (node) {
return baddress.toBase58Check(bcrypto.hash160(node.publicKey), bitcoin.networks.bitcoin.pubKeyHash)
}
My question is, why is bitcoinjs-lib skipping step 1? Don’t you have to SHA256 the pub key again?
Derivation occurs pretty straightforwardly with derivePath
var child1 = root.derivePath("m/44'/0'/0'/0/0")
hash160(buffer)
isripemd160(sha256(buffer))