bitcoin-tx-lib
Version:
A Typescript library for building and signing Bitcoin transactions
68 lines (51 loc) • 2.5 kB
text/typescript
import { Address } from "./address"
describe("address functions", () => {
test("generate address from pubkey", () => {
let ripemd160 = "a8439c50793b033df810de257b313144a8f7edc9"
// P2WPKH
let address = Address.fromHash({ ripemd160, network: "testnet" })
expect(address).toBe("tb1q4ppec5re8vpnm7qsmcjhkvf3gj500mwfw0yxaj")
// P2PKH
address = Address.fromHash({ ripemd160, network: "testnet", type: "p2pkh" })
expect(address).toBe("mvreowyGk1qR31K8JjL1kErvULiPP3sVfm")
})
test("generate address from ripemd160", () => {
let pubkey = "0333b81ed541c4beee28783890c013f1e5dd4eb38f60b78a4d30b5cad26996217f"
// P2WPKH
let address = Address.fromPubkey({ pubkey, network: "testnet" })
expect(address).toBe("tb1q4ppec5re8vpnm7qsmcjhkvf3gj500mwfw0yxaj")
// P2PKH
address = Address.fromPubkey({ pubkey, network: "testnet", type: "p2pkh" })
expect(address).toBe("mvreowyGk1qR31K8JjL1kErvULiPP3sVfm")
})
test("get scriptPubkey", () => {
// P2WPKH
let scriptPubkey = Address.getScriptPubkey("tb1q4ppec5re8vpnm7qsmcjhkvf3gj500mwfw0yxaj")
expect(scriptPubkey).toBe("0014a8439c50793b033df810de257b313144a8f7edc9")
//P2PKH
scriptPubkey = Address.getScriptPubkey("mvreowyGk1qR31K8JjL1kErvULiPP3sVfm")
expect(scriptPubkey).toBe("76a914a8439c50793b033df810de257b313144a8f7edc988ac")
})
test("address is valid", () => {
// valid P2WPKH
let isValid = Address.isValid("tb1q4ppec5re8vpnm7qsmcjhkvf3gj500mwfw0yxaj")
expect(isValid).toBe(true)
// invalid P2WPKH
isValid = Address.isValid("tb1q4ppec5re8fgnm7qsmcjhkvf3gj500mwfw0yxaj")
expect(isValid).toBe(false)
// valid P2PKH
isValid = Address.isValid("mvreowyGk1qR31K8JjL1kErvULiPP3sVfm")
expect(isValid).toBe(true)
// invalid P2PKH
isValid = Address.isValid("mvrUomyGLk1qR31K8JjL1kErvULiPP3sVfm")
expect(isValid).toBe(false)
})
test("get ripemd160 from address", () => {
// valid P2WPKH
let hash = Address.getRipemd160("tb1q4ppec5re8vpnm7qsmcjhkvf3gj500mwfw0yxaj")
expect(hash).toBe("a8439c50793b033df810de257b313144a8f7edc9")
// valid P2PKH
hash = Address.getRipemd160("mvreowyGk1qR31K8JjL1kErvULiPP3sVfm")
expect(hash).toBe("a8439c50793b033df810de257b313144a8f7edc9")
})
})