60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
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);
|
|
},
|
|
},
|
|
],
|
|
}; |