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); }, }, ], };