const hdkey = HDkey.fromMasterSeed(seed)
const addrnode = hdkey.derive("m/44'/0'/0'/0")
console.log("\x1b[32m%s\x1b[0m",'PRIVATE EXTENDED : ', addrnode.privateExtendedKey)
const child = addrnode.derive("m/0");
const step1 = child._publicKey
console.log("\x1b[32m%s\x1b[0m",'PUBLIC EXTENDED : ', step1.toString('hex'))
//SHA256 of the public key
const step2 = createHash('sha256').update(step1).digest()
// RIPEDMD-160 of the SHA256 Hash
const step3 = createHash('rmd160').update(step2).digest()
// He we must add the network byte in front of that RIPEDMD result
// 0x00 for mainnet and 0x6f for testnet
var step4 = Buffer.allocUnsafe(21)
step4.writeUInt8(0x00, 0)
step3.copy(step4, 1)
// Return the bitcoins address
var step9 = bs58check.encode(step4)
resolve(step9)
The additional steps are already handled by base58
check.
Honest remark: Be careful to understand and test everything before you release a product or better let professionals with much experience take care of this as there are many fragile aspects to this kind of code and people might lose real money when there are bugs.