UNPKG

bitcoin-tx-lib

Version:

A Typescript library for building and signing Bitcoin transactions

57 lines (45 loc) 2.41 kB
import { addressToScriptPubKey, pubkeyToScriptCode, scriptPubkeyToScriptCode } from "./txutils"; import { bytesToHex } from "./index"; // Assumindo que você tenha essa função utilitária describe("addressToScriptPubKey", () => { test("Convert P2PKH address", () => { const address = "mzzD7VraX6Vt5XPCZqRDsBkNey9wCPks6u" const expectedScript = "76a914d591fd84cf51bb8b325c5b11025ea02d9ae9a85d88ac" const result = bytesToHex(addressToScriptPubKey(address)) expect(result).toEqual(expectedScript) }); test("Convert P2SH address", () => { try { const address = "2NBFNJTktNa7GZusGbDbGKRZTxdK9VVez3n" const expectedScript = "a914c579342c2c4c9220205e2cdc285617040c924a0a87" const result = bytesToHex(addressToScriptPubKey(address)) // expect(result).toEqual(expectedScript) } catch { expect(true).toBe(true) } // erro with message, not supported address }); test("Convert P2WPKH address", () => { const address = "tb1qna02q87qpy9q2aqxcff2ue8pvl2m6037ravplcvy2rark5g3xc3svxy4ek" const expectedScript = "00209f5ea01fc0090a057406c252ae64e167d5bd3e3e1f581fe18450fa3b51113623" const result = bytesToHex(addressToScriptPubKey(address)) expect(result).toEqual(expectedScript) }); test("Convert P2WSH address", () => { const address = "tb1qrzxautduewud394haxv085exvcwm9hcw72ugth"; const expectedScript = "0014188dde2dbccbb8d896b7e998f3d326661db2df0e" const result = bytesToHex(addressToScriptPubKey(address)) expect(result).toEqual(expectedScript) }); test("return error invalid address", () => { const invalidAddress = "abc123"; expect(() => addressToScriptPubKey(invalidAddress)).toThrow("not supported format address"); }); test("convert pubkey to scriptCode", () => { const publicKey = "0333b81ed541c4beee28783890c013f1e5dd4eb38f60b78a4d30b5cad26996217f" const scriptCode = pubkeyToScriptCode(publicKey) expect("1976a914a8439c50793b033df810de257b313144a8f7edc988ac").toBe(scriptCode) }) test("convert scriptPubkey to scriptCode to signature", () => { const result = scriptPubkeyToScriptCode("0014a8439c50793b033df810de257b313144a8f7edc9") expect(result).toBe("1976a914a8439c50793b033df810de257b313144a8f7edc988ac") }) });