UNPKG

@bithomp/xrpl-api

Version:

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

51 lines (50 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseDIDChanges = parseDIDChanges; const utils_1 = require("../utils"); const common_1 = require("../../common"); function parseDIDStatus(node) { if (node.diffType === "CreatedNode") { return "created"; } if (node.diffType === "ModifiedNode") { return "modified"; } if (node.diffType === "DeletedNode") { return "deleted"; } return undefined; } function summarizeDID(node) { const final = node.diffType === "CreatedNode" ? node.newFields : node.finalFields; const prev = node.previousFields; const summary = { status: parseDIDStatus(node), didID: node.ledgerIndex, account: final.Account, uri: final.URI, data: final.Data, didDocument: final.DIDDocument, }; if (prev.URI) { summary.uriChange = prev.URI; } if (prev.Data) { summary.dataChanges = prev.Data; } if (prev.DIDDocument) { summary.didDocumentChanges = prev.DIDDocument; } return (0, common_1.removeUndefined)(summary); } function parseDIDChanges(metadata) { const affectedNodes = metadata.AffectedNodes.filter((affectedNode) => { const node = affectedNode.CreatedNode || affectedNode.ModifiedNode || affectedNode.DeletedNode; return node.LedgerEntryType === "DID"; }); if (affectedNodes.length !== 1) { return undefined; } const normalizedNode = (0, utils_1.normalizeNode)(affectedNodes[0]); return summarizeDID(normalizedNode); }