UNPKG

@stellar/stellar-sdk

Version:

A library for working with the Stellar network, including communication with the Horizon and Soroban RPC servers.

156 lines (155 loc) 8.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseRawEvents = parseRawEvents; exports.parseRawLedgerEntries = parseRawLedgerEntries; exports.parseRawSendTransaction = parseRawSendTransaction; exports.parseRawSimulation = parseRawSimulation; exports.parseRawTransactions = parseRawTransactions; exports.parseTransactionInfo = parseTransactionInfo; var _stellarBase = require("@stellar/stellar-base"); var _api = require("./api"); function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function parseRawSendTransaction(raw) { var errorResultXdr = raw.errorResultXdr, diagnosticEventsXdr = raw.diagnosticEventsXdr; delete raw.errorResultXdr; delete raw.diagnosticEventsXdr; if (errorResultXdr) { return _objectSpread(_objectSpread(_objectSpread({}, raw), diagnosticEventsXdr !== undefined && diagnosticEventsXdr.length > 0 && { diagnosticEvents: diagnosticEventsXdr.map(function (evt) { return _stellarBase.xdr.DiagnosticEvent.fromXDR(evt, 'base64'); }) }), {}, { errorResult: _stellarBase.xdr.TransactionResult.fromXDR(errorResultXdr, 'base64') }); } return _objectSpread({}, raw); } function parseTransactionInfo(raw) { var meta = _stellarBase.xdr.TransactionMeta.fromXDR(raw.resultMetaXdr, 'base64'); var info = { ledger: raw.ledger, createdAt: raw.createdAt, applicationOrder: raw.applicationOrder, feeBump: raw.feeBump, envelopeXdr: _stellarBase.xdr.TransactionEnvelope.fromXDR(raw.envelopeXdr, 'base64'), resultXdr: _stellarBase.xdr.TransactionResult.fromXDR(raw.resultXdr, 'base64'), resultMetaXdr: meta }; if (meta.switch() === 3 && meta.v3().sorobanMeta() !== null) { var _meta$v3$sorobanMeta; info.returnValue = (_meta$v3$sorobanMeta = meta.v3().sorobanMeta()) === null || _meta$v3$sorobanMeta === void 0 ? void 0 : _meta$v3$sorobanMeta.returnValue(); } if ('diagnosticEventsXdr' in raw && raw.diagnosticEventsXdr) { info.diagnosticEventsXdr = raw.diagnosticEventsXdr.map(function (diagnosticEvent) { return _stellarBase.xdr.DiagnosticEvent.fromXDR(diagnosticEvent, 'base64'); }); } return info; } function parseRawTransactions(r) { return _objectSpread({ status: r.status, txHash: r.txHash }, parseTransactionInfo(r)); } function parseRawEvents(raw) { var _raw$events; return { latestLedger: raw.latestLedger, cursor: raw.cursor, events: ((_raw$events = raw.events) !== null && _raw$events !== void 0 ? _raw$events : []).map(function (evt) { var clone = _objectSpread({}, evt); delete clone.contractId; return _objectSpread(_objectSpread(_objectSpread({}, clone), evt.contractId !== '' && { contractId: new _stellarBase.Contract(evt.contractId) }), {}, { topic: evt.topic.map(function (topic) { return _stellarBase.xdr.ScVal.fromXDR(topic, 'base64'); }), value: _stellarBase.xdr.ScVal.fromXDR(evt.value, 'base64') }); }) }; } function parseRawLedgerEntries(raw) { var _raw$entries; return { latestLedger: raw.latestLedger, entries: ((_raw$entries = raw.entries) !== null && _raw$entries !== void 0 ? _raw$entries : []).map(function (rawEntry) { if (!rawEntry.key || !rawEntry.xdr) { throw new TypeError("invalid ledger entry: ".concat(JSON.stringify(rawEntry))); } return _objectSpread({ lastModifiedLedgerSeq: rawEntry.lastModifiedLedgerSeq, key: _stellarBase.xdr.LedgerKey.fromXDR(rawEntry.key, 'base64'), val: _stellarBase.xdr.LedgerEntryData.fromXDR(rawEntry.xdr, 'base64') }, rawEntry.liveUntilLedgerSeq !== undefined && { liveUntilLedgerSeq: rawEntry.liveUntilLedgerSeq }); }) }; } function parseSuccessful(sim, partial) { var _sim$results$length, _sim$results, _sim$stateChanges$len, _sim$stateChanges, _sim$stateChanges2; var success = _objectSpread(_objectSpread(_objectSpread({}, partial), {}, { transactionData: new _stellarBase.SorobanDataBuilder(sim.transactionData), minResourceFee: sim.minResourceFee }, ((_sim$results$length = (_sim$results = sim.results) === null || _sim$results === void 0 ? void 0 : _sim$results.length) !== null && _sim$results$length !== void 0 ? _sim$results$length : 0 > 0) && { result: sim.results.map(function (row) { var _row$auth; return { auth: ((_row$auth = row.auth) !== null && _row$auth !== void 0 ? _row$auth : []).map(function (entry) { return _stellarBase.xdr.SorobanAuthorizationEntry.fromXDR(entry, 'base64'); }), retval: row.xdr ? _stellarBase.xdr.ScVal.fromXDR(row.xdr, 'base64') : _stellarBase.xdr.ScVal.scvVoid() }; })[0] }), ((_sim$stateChanges$len = (_sim$stateChanges = sim.stateChanges) === null || _sim$stateChanges === void 0 ? void 0 : _sim$stateChanges.length) !== null && _sim$stateChanges$len !== void 0 ? _sim$stateChanges$len : 0 > 0) && { stateChanges: (_sim$stateChanges2 = sim.stateChanges) === null || _sim$stateChanges2 === void 0 ? void 0 : _sim$stateChanges2.map(function (entryChange) { return { type: entryChange.type, key: _stellarBase.xdr.LedgerKey.fromXDR(entryChange.key, 'base64'), before: entryChange.before ? _stellarBase.xdr.LedgerEntry.fromXDR(entryChange.before, 'base64') : null, after: entryChange.after ? _stellarBase.xdr.LedgerEntry.fromXDR(entryChange.after, 'base64') : null }; }) }); if (!sim.restorePreamble || sim.restorePreamble.transactionData === '') { return success; } return _objectSpread(_objectSpread({}, success), {}, { restorePreamble: { minResourceFee: sim.restorePreamble.minResourceFee, transactionData: new _stellarBase.SorobanDataBuilder(sim.restorePreamble.transactionData) } }); } function parseRawSimulation(sim) { var _sim$events$map, _sim$events; var looksRaw = _api.Api.isSimulationRaw(sim); if (!looksRaw) { return sim; } var base = { _parsed: true, id: sim.id, latestLedger: sim.latestLedger, events: (_sim$events$map = (_sim$events = sim.events) === null || _sim$events === void 0 ? void 0 : _sim$events.map(function (evt) { return _stellarBase.xdr.DiagnosticEvent.fromXDR(evt, 'base64'); })) !== null && _sim$events$map !== void 0 ? _sim$events$map : [] }; if (typeof sim.error === 'string') { return _objectSpread(_objectSpread({}, base), {}, { error: sim.error }); } return parseSuccessful(sim, base); }