bch-slpjs
Version:
Simple Ledger Protocol (SLP) JavaScript Library
59 lines • 2.41 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const axios_1 = require("axios");
const slp_1 = require("./slp");
class JsonRpcProxyValidator {
constructor(BITBOX, validatorUrl) {
this.validatorUrl = validatorUrl;
this.slp = new slp_1.Slp(BITBOX);
}
isValidSlpTxid(txid) {
return __awaiter(this, void 0, void 0, function* () {
let data = {
jsonrpc: "2.0",
id: "slpvalidate",
method: "slpvalidate",
params: [txid, false, false]
};
const result = yield axios_1.default({
method: "post",
url: this.validatorUrl,
data: data
});
if (result && result.data && result.data.result === "Valid") {
return true;
}
else {
return false;
}
});
}
getRawTransactions(txid) {
return __awaiter(this, void 0, void 0, function* () {
throw new Error("Not implemented.");
});
}
;
validateSlpTransactions(txids) {
return __awaiter(this, void 0, void 0, function* () {
// Validate each txid
const validatePromises = txids.map((txid) => __awaiter(this, void 0, void 0, function* () {
const isValid = yield this.isValidSlpTxid(txid);
return isValid ? txid : '';
}));
// Filter array to only valid txid results
const validateResults = yield axios_1.default.all(validatePromises);
return validateResults.filter((result) => result.length > 0);
});
}
}
exports.JsonRpcProxyValidator = JsonRpcProxyValidator;
//# sourceMappingURL=jsonrpcvalidator.js.map