Make Blockchain from methods inheritable

This commit is contained in:
Jim Hamill
2025-04-26 09:52:34 +00:00
parent e114a387c2
commit 57c4978be9
2 changed files with 11 additions and 8 deletions
@@ -109,17 +109,18 @@ export class BlockchainElectrum extends BaseBlockchain<
/**
* Creates a new BlockchainElectrum instance.
* @param {BlockchainElectrumParams} params - The parameters for the BlockchainElectrum instance.
* @returns {BlockchainElectrum} A new BlockchainElectrum instance.
* @param params - The parameters for the BlockchainElectrum instance.
* @returns A new BlockchainElectrum instance.
*/
static async from(
static async from<T extends typeof BlockchainElectrum>(
this: T,
params: BlockchainElectrumParams = {},
): Promise<BlockchainElectrum> {
const blockchain = new BlockchainElectrum(params);
) {
const blockchain = new this(params);
await blockchain.start();
return blockchain;
return blockchain as InstanceType<T>;
}
async start() {
@@ -24,8 +24,10 @@ import {
// Local Blockchain Adapter.
// This simulates the BCH Blockchain.
export class BlockchainInMemory extends BaseBlockchain {
static from() {
return new BlockchainInMemory();
static async from<T extends typeof BlockchainInMemory>(this: T) {
const blockchain = new this();
await blockchain.start();
return blockchain as InstanceType<T>;
}
private transactions: BlockchainTransactions;