@bithomp/xrpl-api
Version:
A Bithomp JavaScript/TypeScript library for interacting with the XRP Ledger
119 lines (118 loc) • 4.55 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.LEDGER_ENTRY_UNL_REPORT = exports.LEDGER_ENTRY_LEDGER_HASHES = exports.LEDGER_ENTRY_FEE_SETTINGS = exports.LEDGER_ENTRY_NEGATIVE_UNL = exports.LEDGER_ENTRY_AMENDMENTS = void 0;
exports.getLedgerEntry = getLedgerEntry;
exports.getLedgerEntryAmendments = getLedgerEntryAmendments;
exports.getLedgerEntryURIToken = getLedgerEntryURIToken;
const Client = __importStar(require("../client"));
const common_1 = require("../common");
exports.LEDGER_ENTRY_AMENDMENTS = "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4";
exports.LEDGER_ENTRY_NEGATIVE_UNL = "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244";
exports.LEDGER_ENTRY_FEE_SETTINGS = "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651";
exports.LEDGER_ENTRY_LEDGER_HASHES = "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B";
exports.LEDGER_ENTRY_UNL_REPORT = "61E32E7A24A238F1C619D5F9DDCC41A94B33B66C0163F7EFCC8A19C9FD6F28DC";
async function getLedgerEntry(ledgerEntry, options = {}) {
const connection = options.connection || Client.findConnection();
if (!connection) {
throw new Error("There is no connection");
}
const response = await connection.request({
command: "ledger_entry",
index: ledgerEntry,
ledger_index: options.ledgerIndex || "validated",
});
if (!response) {
return {
ledger_entry: ledgerEntry,
status: "error",
error: "invalidResponse",
};
}
if (response.error) {
const { error, error_code, error_message, error_exception, status, validated } = response;
return (0, common_1.removeUndefined)({
ledger_entry: ledgerEntry,
error,
error_code,
error_message,
error_exception,
status,
validated,
});
}
return response?.result;
}
async function getLedgerEntryAmendments(options = {}) {
const response = await getLedgerEntry(exports.LEDGER_ENTRY_AMENDMENTS, options);
if (!response || !response.node) {
return {
status: "error",
error: "invalidResponse",
};
}
if (response.error) {
return response;
}
return response?.node;
}
async function getLedgerEntryURIToken(uriTokenID, options = {}) {
const response = await getLedgerEntry(uriTokenID, options);
if (!response || !response.node) {
return {
status: "error",
error: "invalidResponse",
};
}
if (response.error) {
return response;
}
if (response.node.LedgerEntryType !== "URIToken") {
return {
status: "error",
error: "invalidLedgerEntry",
};
}
return (0, common_1.removeUndefined)({
Digest: response.node.Digest,
Flags: response.node.Flags,
Issuer: response.node.Issuer,
Owner: response.node.Owner,
URITokenID: response.node.index,
URI: response.node.URI,
Amount: response.node.Amount,
Destination: response.node.Destination,
});
}
;