UNPKG

bch-slpjs

Version:

Simple Ledger Protocol (SLP) JavaScript Library

49 lines (43 loc) 1.49 kB
import BITBOX from 'bitbox-sdk/lib/bitbox-sdk'; import axios from 'axios'; import { Slp, SlpProxyValidator } from './slp'; import { SlpAddressUtxoResult } from './slpjs'; export class JsonRpcProxyValidator implements SlpProxyValidator { validatorUrl: string; slp: Slp; constructor(BITBOX: BITBOX, validatorUrl) { this.validatorUrl = validatorUrl; this.slp = new Slp(BITBOX); } async isValidSlpTxid(txid: string) { let data = { jsonrpc: "2.0", id: "slpvalidate", method: "slpvalidate", params: [ txid, false, false ] } const result = await axios({ method: "post", url: this.validatorUrl, data: data }); if (result && result.data && result.data.result === "Valid") { return true } else { return false } } async getRawTransactions(txid: string[]): Promise<string[]> { throw new Error("Not implemented.") }; async validateSlpTransactions(txids: string[]) { // Validate each txid const validatePromises = txids.map(async (txid) => { const isValid = await this.isValidSlpTxid(txid) return isValid ? txid : ''; }) // Filter array to only valid txid results const validateResults = await axios.all(validatePromises) return validateResults.filter((result) => result.length > 0); } }