UNPKG

@bithomp/xrpl-api

Version:

A Bithomp JavaScript/TypeScript library for interacting with the XRP Ledger

60 lines (59 loc) 2.22 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseCredentialChanges = parseCredentialChanges; const models_1 = require("../../models"); const utils_1 = require("../utils"); const credential_flags_1 = __importDefault(require("../ledger/credential-flags")); function parseCredentialStatus(node) { if (node.diffType === "CreatedNode") { return "created"; } if (node.diffType === "ModifiedNode") { return "modified"; } if (node.diffType === "DeletedNode") { return "deleted"; } return undefined; } function summarizeCredential(node) { const final = node.diffType === "CreatedNode" ? node.newFields : node.finalFields; const prev = node.previousFields; const summary = { status: parseCredentialStatus(node), credentialIndex: node.ledgerIndex, issuer: final.Issuer, subject: final.Subject, credentialType: (0, utils_1.decodeHexData)(final.CredentialType), flags: (0, credential_flags_1.default)(final.Flags, { excludeFalse: false }), }; if (final.Expiration !== undefined) { summary.expiration = (0, models_1.ledgerTimeToUnixTime)(final.Expiration); } if (final.URI !== undefined) { summary.uri = final.URI; } if (node.diffType === "ModifiedNode") { if (prev.Flags !== undefined) { summary.flagsChange = (0, credential_flags_1.default)(prev.Flags, { excludeFalse: false }); } } if (node.PreviousTxnID) { summary.previousTxnID = node.PreviousTxnID; } return summary; } function parseCredentialChanges(metadata) { const affectedNodes = metadata.AffectedNodes.filter((affectedNode) => { const node = affectedNode.CreatedNode || affectedNode.ModifiedNode || affectedNode.DeletedNode; return node.LedgerEntryType === "Credential"; }); if (affectedNodes.length !== 1) { return undefined; } const normalizedNode = (0, utils_1.normalizeNode)(affectedNodes[0]); return summarizeCredential(normalizedNode); }