Mockchain Stack
Mocking a Broadcaster
import { MerklePath, Transaction, Utils, Hash } from '@bsv/sdk'
import { BroadcastResponse, BroadcastFailure, Broadcaster } from '@bsv/sdk/transaction/Broadcaster'
const hash = (m: string): string => Utils.toHex((
Hash.hash256(Utils.toArray(m, 'hex').reverse()) as number[]
).reverse())
export default class Mock implements Broadcaster {
transactions: {}
blockheaders: {}
height: number
constructor() {
this.transactions = {}
this.blockheaders = {}
this.height = 0
}
async broadcast(tx: Transaction): Promise<BroadcastResponse | BroadcastFailure> {
const txid = tx.id('hex') as string
this.height++
const faked = Utils.toHex(Hash.sha256('faked', 'utf8'))
tx.merklePath = new MerklePath(this.height, [[{ txid: true, hash: txid, offset: 0 }, { hash: faked, offset: 1 }]])
this.transactions[txid] = tx
this.blockheaders[this.height] = { merkleroot: hash(faked + txid) }
return {
status: 'success',
txid,
message: 'ok'
}
}
}Mocking a Chain Tracker
Last updated
