Documentation / @cashconnect-js/templates-dev / blockchain/blockchain-electrum
BlockchainElectrumEvents
type BlockchainElectrumEvents = object;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:43
Properties
isConnectedUpdated
isConnectedUpdated: boolean;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:44
blockHeightUpdated
blockHeightUpdated: number | undefined;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:45
BlockchainElectrumOpts
type BlockchainElectrumOpts = object;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:48
Properties
store?
optional store: BaseStore;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:49
servers?
optional servers: string[];Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:50
application?
optional application: string;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:51
disableBrowserVisibilityHandling?
optional disableBrowserVisibilityHandling: boolean;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:52
disableBrowserConnectivityHandling?
optional disableBrowserConnectivityHandling: boolean;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:53
BlockchainElectrum
Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:56
Abstract base class representing a blockchain interface implementation. Extends EventEmitter to provide blockchain-specific event handling capabilities.
This class serves as a template for concrete blockchain implementations, providing a standardized interface for common blockchain operations such as fetching transactions, managing UTXOs, and handling blockchain subscriptions.
Extends
Constructors
Constructor
new BlockchainElectrum(opts): BlockchainElectrum;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:84
Parameters
| Parameter | Type |
|---|---|
opts | BlockchainElectrumOpts |
Returns
Overrides
Methods
from()
static from<T>(this, opts): Promise<InstanceType<T>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:102
Creates a new BlockchainElectrum instance.
Type Parameters
| Type Parameter |
|---|
T extends typeof BlockchainElectrum |
Parameters
| Parameter | Type | Description |
|---|---|---|
this | T | - |
opts | BlockchainElectrumOpts | The options for the BlockchainElectrum instance. |
Returns
Promise<InstanceType<T>>
A new BlockchainElectrum instance.
start()
start(): Promise<void>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:113
Initializes the blockchain connection and required resources. Should be called before performing any blockchain operations.
Returns
Promise<void>
A promise that resolves when the blockchain connection is established
Throws
If the connection cannot be established
Overrides
stop()
stop(): Promise<void>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:199
Gracefully terminates the blockchain connection and cleans up resources. Should be called when blockchain operations are no longer needed.
Returns
Promise<void>
A promise that resolves when the shutdown is complete
Overrides
fetchUTXO()
fetchUTXO(outpoint): Promise<Output>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:204
Parameters
| Parameter | Type |
|---|---|
outpoint | string | Outpoint |
Returns
Promise<Output>
Overrides
fetchUTXOs()
fetchUTXOs(address): Promise<ExtMap<BlockchainUTXO>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:225
Retrieves all unspent transaction outputs (UTXOs) for a given address.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | The blockchain address to query |
Returns
Promise<ExtMap<BlockchainUTXO>>
A promise that resolves with the unspent outputs
Throws
If the address is invalid or the query fails
Overrides
fetchTransaction()
fetchTransaction(txHash): Promise<Transaction>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:291
Retrieves detailed information about a specific transaction.
Parameters
| Parameter | Type | Description |
|---|---|---|
txHash | string | Uint8Array<ArrayBufferLike> | The transaction hash/ID to look up |
Returns
Promise<Transaction>
A promise that resolves with the transaction details
Throws
If the transaction cannot be found or the query fails
Overrides
BaseBlockchain.fetchTransaction
fetchAddressHistory()
fetchAddressHistory(address): Promise<ExtMap<BlockchainTransaction>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:319
Retrieves all transactions associated with a specific address.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | The blockchain address to query |
Returns
Promise<ExtMap<BlockchainTransaction>>
A promise that resolves with the list of transactions
Throws
If the address is invalid or the query fails
Overrides
BaseBlockchain.fetchAddressHistory
fetchBlockHeader()
fetchBlockHeader(blockHeight): Promise<BlockHeader>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:366
Retrieves the Block Header at the given height.
Parameters
| Parameter | Type | Description |
|---|---|---|
blockHeight | number | The block height of the header to retrieve |
Returns
Promise<BlockHeader>
A promise that resolves with the Block Header
Throws
If the block number is invalid or the query fails
Overrides
BaseBlockchain.fetchBlockHeader
fetchChainTip()
fetchChainTip(): Promise<{
height: number;
blockHeader: BlockHeader;
}>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:394
Retrieves the current chain tip block.
Returns
Promise<{ height: number; blockHeader: BlockHeader; }>
A promise that resolves with the current chain tip
Throws
If the chain tip cannot be retrieved
Overrides
broadcastTransaction()
broadcastTransaction(tx, opts): Promise<Transaction>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:423
Broadcasts a raw transaction to the blockchain network.
Parameters
| Parameter | Type | Description |
|---|---|---|
tx | | string | Transaction | Uint8Array<ArrayBufferLike> | TransactionBCH | The serialized transaction data to broadcast |
opts | BroadcastOpts | - |
Returns
Promise<Transaction>
A promise that resolves when the transaction is successfully broadcast
Throws
If the transaction is invalid or broadcasting fails
Overrides
BaseBlockchain.broadcastTransaction
subscribeLockscript()
subscribeLockscript(lockscript, callback): Promise<() => Promise<boolean>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:450
Subscribes to updates for a specific lockscript. The provided callback will be invoked when relevant events occur for the address.
Parameters
| Parameter | Type | Description |
|---|---|---|
lockscript | string | Uint8Array<ArrayBufferLike> | The blockchain lockscript to monitor |
callback | BlockchainCallback<AddressStatusPayload> | The callback function to handle address-related events |
Returns
Promise<() => Promise<boolean>>
A promise that resolves when the subscription is established
Throws
If the subscription cannot be created
Overrides
BaseBlockchain.subscribeLockscript
unsubscribeLockscript()
unsubscribeLockscript(lockscript, callback): Promise<boolean>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:464
Removes a subscription for a specific blockchain address.
Parameters
| Parameter | Type | Description |
|---|---|---|
lockscript | string | Uint8Array<ArrayBufferLike> | The blockchain lockscript to unsubscribe from |
callback | BlockchainCallback<AddressStatusPayload> | The callback function to remove |
Returns
Promise<boolean>
A promise that resolves when the subscription is removed
Throws
If the subscription cannot be removed
Overrides
BaseBlockchain.unsubscribeLockscript
subscribeAddress()
subscribeAddress(address, callback): Promise<() => Promise<boolean>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:478
Subscribes to updates for a specific blockchain address. The provided callback will be invoked when relevant events occur for the address.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | The blockchain address to monitor |
callback | BlockchainCallback<AddressStatusPayload> | The callback function to handle address-related events |
Returns
Promise<() => Promise<boolean>>
A promise that resolves when the subscription is established
Throws
If the subscription cannot be created
Overrides
BaseBlockchain.subscribeAddress
unsubscribeAddress()
unsubscribeAddress(address, callback): Promise<boolean>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:510
Removes a subscription for a specific blockchain address.
Parameters
| Parameter | Type | Description |
|---|---|---|
address | string | The blockchain address to unsubscribe from |
callback | BlockchainCallback<AddressStatusPayload> | The callback function to remove |
Returns
Promise<boolean>
A promise that resolves when the subscription is removed
Throws
If the subscription cannot be removed
Overrides
BaseBlockchain.unsubscribeAddress
subscribeTransaction()
subscribeTransaction(transactionHash, callback): Promise<() => Promise<boolean>>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:551
Subscribes to updates for a specific transaction. The provided callback will be invoked when relevant events occur for the transaction.
Parameters
| Parameter | Type | Description |
|---|---|---|
transactionHash | string | The transaction hash to monitor |
callback | BlockchainCallback<BlockHeightPayload> | The callback function to handle transaction-related events |
Returns
Promise<() => Promise<boolean>>
A promise that resolves when the subscription is established
Throws
If the subscription cannot be created
Overrides
BaseBlockchain.subscribeTransaction
unsubscribeTransaction()
unsubscribeTransaction(transactionHash, callback): Promise<boolean>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:580
Removes a subscription for a specific transaction.
Parameters
| Parameter | Type | Description |
|---|---|---|
transactionHash | string | The transaction hash to unsubscribe from |
callback | BlockchainCallback<BlockHeightPayload> | The callback function to remove |
Returns
Promise<boolean>
A promise that resolves when the subscription is removed
Throws
If the subscription cannot be removed
Overrides
BaseBlockchain.unsubscribeTransaction
request()
request(method, ...parameters): Promise<RequestResponse>;Defined in: packages/templates-dev/src/blockchain/blockchain-electrum.ts:617
Parameters
| Parameter | Type |
|---|---|
method | string |
...parameters | RPCParameter[] |
Returns
Promise<RequestResponse>
broadcastTransactions()
broadcastTransactions(transactions): Promise<Transaction[]>;Defined in: packages/templates-dev/src/blockchain/base-blockchain.ts:210
Parameters
| Parameter | Type |
|---|---|
transactions | ( | string | Transaction | Uint8Array<ArrayBufferLike> | TransactionBCH)[] |
Returns
Promise<Transaction[]>
Inherited from
BaseBlockchain.broadcastTransactions
waitForTransaction()
waitForTransaction(tx, timeoutMs): Promise<void>;Defined in: packages/templates-dev/src/blockchain/base-blockchain.ts:232
Waits for a transaction to be seen by the node.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
tx | | string | Transaction | Uint8Array<ArrayBufferLike> | TransactionBCH | undefined | The transaction to wait for. Can be a Uint8Array, Transaction instance, or a string. |
timeoutMs | number | 10_000 | The maximum time to wait in milliseconds before timing out. Defaults to 10,000ms (10 seconds). |
Returns
Promise<void>
A Promise that resolves when the transaction is seen by the node or rejects if the timeout is reached.
Throws
Error if the transaction is not seen by the node within the specified timeout.
Inherited from
BaseBlockchain.waitForTransaction
waitForTransactionHash()
waitForTransactionHash(txHash, timeoutMs): Promise<void>;Defined in: packages/templates-dev/src/blockchain/base-blockchain.ts:242
Parameters
| Parameter | Type | Default value |
|---|---|---|
txHash | string | TransactionHash | Uint8Array<ArrayBufferLike> | undefined |
timeoutMs | number | 10_000 |
Returns
Promise<void>
Inherited from
BaseBlockchain.waitForTransactionHash
on()
on<K>(
type,
listener,
debounceMilliseconds?): OffCallback;Defined in: packages/core/dist/primitives.d.ts:593
Registers a listener for the specified event type.
Type Parameters
| Type Parameter | Description |
|---|---|
K extends keyof BlockchainEvents | The event type key |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | K | The event type to listen for |
listener | Listener<BlockchainEvents[K]> | The function to call when the event is emitted |
debounceMilliseconds? | number | Optional debounce time in milliseconds |
Returns
OffCallback
A callback function that can be used to unregister this listener
Example
const off = emitter.on('data-change', (data) => {
console.log('Data updated:', data);
}, 300); // Debounce for 300ms
// Later, unregister the listener
off();Inherited from
once()
once<K>(
type,
listener,
debounceMilliseconds?): OffCallback;Defined in: packages/core/dist/primitives.d.ts:611
Registers a one-time listener for the specified event type. The listener will be automatically removed after being called once.
Type Parameters
| Type Parameter | Description |
|---|---|
K extends keyof BlockchainEvents | The event type key |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | K | The event type to listen for |
listener | Listener<BlockchainEvents[K]> | The function to call when the event is emitted |
debounceMilliseconds? | number | Optional debounce time in milliseconds |
Returns
OffCallback
A callback function that can be used to unregister this listener before it fires
Example
emitter.once('user-login', ({ userId }) => {
console.log(`Welcome ${userId}! This will only show once.`);
});Inherited from
off()
off<K>(type, listener): void;Defined in: packages/core/dist/primitives.d.ts:626
Removes a specific listener for the given event type.
Type Parameters
| Type Parameter | Description |
|---|---|
K extends keyof BlockchainEvents | The event type key |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | K | The event type to remove the listener from |
listener | Listener<BlockchainEvents[K]> | The listener function to remove |
Returns
void
Example
const handler = (data) => console.log(data);
emitter.on('test', handler);
emitter.off('test', handler); // Removes the listenerInherited from
emit()
emit<K>(type, payload): boolean;Defined in: packages/core/dist/primitives.d.ts:648
Emits an event of the specified type with the given payload. All registered listeners for this event type will be called.
Type Parameters
| Type Parameter | Description |
|---|---|
K extends keyof BlockchainEvents | The event type key |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | K | The event type to emit |
payload | BlockchainEvents[K] | The data to pass to all listeners |
Returns
boolean
true if there were listeners for this event, false otherwise
Example
const hasListeners = emitter.emit('user-login', {
userId: '123',
timestamp: Date.now()
});
if (!hasListeners) {
console.log('No one was listening for user-login events');
}Inherited from
removeAllListeners()
removeAllListeners(): void;Defined in: packages/core/dist/primitives.d.ts:659
Removes all listeners for all events. This effectively resets the EventEmitter to its initial state.
Returns
void
Example
emitter.removeAllListeners();
// All previously registered listeners are now goneInherited from
BaseBlockchain.removeAllListeners
waitFor()
waitFor<K>(
type,
predicate,
timeoutMs?): Promise<BlockchainEvents[K]>;Defined in: packages/core/dist/primitives.d.ts:685
Returns a Promise that resolves when an event of the specified type is emitted and matches the given predicate.
Type Parameters
| Type Parameter | Description |
|---|---|
K extends keyof BlockchainEvents | The event type key |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | K | The event type to wait for |
predicate | (payload) => boolean | A function that determines if the event payload matches what we're waiting for |
timeoutMs? | number | Optional timeout in milliseconds. If specified, the promise will reject after this time |
Returns
Promise<BlockchainEvents[K]>
A Promise that resolves with the event payload when the condition is met
Throws
If the timeout is reached before a matching event occurs
Example
try {
const loginData = await emitter.waitFor(
'user-login',
({ userId }) => userId === 'admin',
5000 // Wait up to 5 seconds
);
console.log('Admin logged in:', loginData);
} catch (error) {
console.log('Timeout: Admin never logged in');
}