Resolve "feat(Docs): Add BlockchainElectrum Tool"

This commit is contained in:
2025-04-07 06:40:02 +00:00
committed by Jim Hamill
parent 5623b9b27c
commit a392462f12
5 changed files with 132 additions and 25 deletions
@@ -0,0 +1,60 @@
import { BlockchainElectrum, encodeExtendedJson, Transaction } from '@xocash/stack';
export const electrumClient = {
from: [
{
label: 'From Servers',
inputs: ['Servers'],
models: ['bch.imaginary.cash, cashnode.bch.ninja, electrum.imaginary.cash'],
callback: async (args: [string]) => {
const electrum = await BlockchainElectrum.from({
opts: {
servers: args[0].replaceAll(' ', '').split(','),
application: 'XO-tools',
},
});
return electrum;
},
},
],
to: [],
methods: [
{
label: 'Fetch Unspents',
inputs: ['Address'],
models: ['Address'],
callback: async (electrum: BlockchainElectrum, args: [string]) => {
const unspents = await electrum.fetchUnspents(args[0]);
return encodeExtendedJson(unspents.toArray(), 2);
},
},
{
label: 'Fetch Transaction',
inputs: ['Transaction Hash'],
models: ['Transaction Hash'],
callback: async (electrum: BlockchainElectrum, args: [string]) => {
const transaction = await electrum.fetchTransaction(args[0]);
return encodeExtendedJson(transaction, 2);
},
},
{
label: 'Fetch Transactions',
inputs: ['Address'],
models: ['Address'],
callback: async (electrum: BlockchainElectrum, args: [string]) => {
const transactions = await electrum.fetchTransactions(args[0]);
return encodeExtendedJson(transactions.toArray(), 2);
},
},
{
label: 'Broadcast Transaction',
inputs: ['Transaction'],
models: ['Transaction'],
callback: async (electrum: BlockchainElectrum, args: [string]) => {
const tx = Transaction.from(args[0]);
return await electrum.broadcastTransaction(tx);
},
},
],
};