npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ezxlm

v0.0.10

Published

Simplifies XLM Data Structures

Downloads

15

Readme

EZ XLM - XLM Transaction Simplifier

EZXLM is a simple utility that accepts blockchain transactions as received from the XLM (Stellar) Network and simplifies them for easier & more rapid parsing.

Installation

With npm

npm install ezxlm

With yarn

yarn add ezxlm

Example

Take for example the following transaction...

const tx = {
  _links:
    { self:
      { href: 'https://horizon.stellar.org/transactions/73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818' },
     account:
      { href: 'https://horizon.stellar.org/accounts/GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV' },
     ledger: { href: 'https://horizon.stellar.org/ledgers/32842603' },
     operations:
       { href: 'https://horizon.stellar.org/transactions/73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818/operations{?cursor,limit,order}', templated: true },
     effects:
       { href: 'https://horizon.stellar.org/transactions/73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818/effects{?cursor,limit,order}', templated: true },
     precedes: { href: 'https://horizon.stellar.org/transactions?order=asc&cursor=141057905800515584' },
     succeeds: { href: 'https://horizon.stellar.org/transactions?order=desc&cursor=141057905800515584' },
     transaction: { href: 'https://horizon.stellar.org/transactions/73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818' } },

  id: '73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818',
  paging_token: '141057905800515584',
  successful: true,
  hash: '73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818',
  ledger: [FUNCTION],
  created_at: '2020-11-29T20:28:22Z',
  source_account: 'GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV',
  source_account_sequence: '117381718196025459',
  fee_account: 'GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV',
  fee_charged: '200',
  max_fee: '2000',
  operation_count: 2,
  envelope_xdr: 'AAAAAgAAAACZx8/XHkNnOI0cvFdTWjJgtL66ML9Y1QjkymyEG83azgAAB9ABoQYNADL4cwAAAAEAAAAAAAAAAAAAAABfxASAAAAAAAAAAAIAAAAAAAAADAAAAAFVU0QAAAAAAOimGoYeYK9g+Adz4GNG5ccsvlncrdo3YI1Y70JRHZ/cAAAAAAAAAAAAAAAAAAAAAQAAJxAAAAAAFpNvtAAAAAAAAAAMAAAAAVVTRAAAAAAA6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9wAAAAAAAAAAyg7Yq8R6JSjXXlJCQAAAAAAAAAAAAAAAAAAAAEbzdrOAAAAQGpMKqle13+rfCq9B02ggzOY8X7GTYXYI5LmyfOEjdM0noHubMYfIA3PxORD26xPzYYH+K8pdY98nHuZJpiEWQE=',
  result_xdr: 'AAAAAAAAAMgAAAAAAAAAAgAAAAAAAAAMAAAAAAAAAAAAAAACAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAmcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4AAAAAFpNwIwAAAAFVU0QAAAAAAOimGoYeYK9g+Adz4GNG5ccsvlncrdo3YI1Y70JRHZ/cAAAAAAAAAACa2R3YXXlJCRHolKMAAAAAAAAAAAAAAAA=',
  result_meta_xdr: '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',
  fee_meta_xdr: 'AAAAAgAAAAMB9SNpAAAAAAAAAACZx8/XHkNnOI0cvFdTWjJgtL66ML9Y1QjkymyEG83azgAAAAAHJqKUAaEGDQAy+HIAAAACAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAyg7Yq0AAAAAAAAAAAAAAAAAAAAAAAAAAQH1I2sAAAAAAAAAAJnHz9ceQ2c4jRy8V1NaMmC0vrowv1jVCOTKbIQbzdrOAAAAAAcmocwBoQYNADL4cgAAAAIAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAADKDtirQAAAAAAAAAAAAAAAAAAAAA=',
  memo_type: 'none',
  signatures: [ 'akwqqV7Xf6t8Kr0HTaCDM5jxfsZNhdgjkubJ84SN0zSege5sxh8gDc/E5EPbrE/Nhgf4ryl1j3yce5kmmIRZAQ==' ],
  valid_after: '1970-01-01T00:00:00Z',
  valid_before: '2020-11-29T20:28:48Z',
  self: [FUNCTION],
  account: [FUNCTION],
  ledger_attr: 32842603,
  operations: [FUNCTION],
  effects: [FUNCTION],
  precedes: [FUNCTION],
  succeeds: [FUNCTION],
  transaction: [FUNCTION]
}

...in conjunction with the ezxlm call...

const {simplify} = require("ezxlm")
const simplified = simplify(tx)

...produces:

// simplified =>
{
  "id": "73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818",
  "paging_token": "141057905800515584",
  "successful": true,
  "hash": "73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818",
  "created_at": "2020-11-29T20:28:22Z",
  "source_account": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
  "source_account_sequence": "117381718196025459",
  "fee_account": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
  "fee_charged": "200",
  "max_fee": "2000",
  "operation_count": 2,
  "memo_type": "none",
  "signatures": [
    "akwqqV7Xf6t8Kr0HTaCDM5jxfsZNhdgjkubJ84SN0zSege5sxh8gDc/E5EPbrE/Nhgf4ryl1j3yce5kmmIRZAQ=="
  ],
  "valid_after": "1970-01-01T00:00:00Z",
  "valid_before": "2020-11-29T20:28:48Z",
  "ledger_attr": 32842603,
  "envelope": {
    "tx": {
      "sourceAccount": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
      "fee": 2000,
      "seqNum": "117381718196025459",
      "timeBounds": {
        "minTime": "0",
        "maxTime": "1606681728"
      },
      "memo": "memoNone",
      "operations": [
        {
          "_type": "manageBuyOffer",
          "selling": {
            "assetCode": "USD",
            "issuer": "GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"
          },
          "buying": "assetTypeNative",
          "buyAmount": "0",
          "price": 0.0001,
          "offerId": "378761140"
        },
        {
          "_type": "manageBuyOffer",
          "selling": {
            "assetCode": "USD",
            "issuer": "GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"
          },
          "buying": "assetTypeNative",
          "buyAmount": "13559882415",
          "price": 0.19158869794631053,
          "offerId": "0"
        }
      ]
    },
    "signatures": [
      {
        "hint": "G83azg==",
        "signature": "akwqqV7Xf6t8Kr0HTaCDM5jxfsZNhdgjkubJ84SN0zSege5sxh8gDc/E5EPbrE/Nhgf4ryl1j3yce5kmmIRZAQ=="
      }
    ]
  },
  "result": {
    "feeCharged": "200",
    "result": {
      "_type": "txSuccess",
      "results": [
        {
          "_type": "manageBuyOffer",
          "manageBuyOfferResult": {
            "_type": "manageBuyOfferSuccess",
            "offer": "manageOfferDeleted"
          }
        },
        {
          "_type": "manageBuyOffer",
          "manageBuyOfferResult": {
            "_type": "manageBuyOfferSuccess",
            "offer": {
              "_type": "manageOfferCreated",
              "offer": {
                "sellerId": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
                "offerId": "378761251",
                "selling": {
                  "assetCode": "USD",
                  "issuer": "GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"
                },
                "buying": "assetTypeNative",
                "amount": "2597920216",
                "price": 5.219514568026518,
                "flags": 0
              }
            }
          }
        }
      ]
    }
  }
}

Contrast just calling the StellarSDK.fromXDR methods...

const StellarSdk  = require('stellar-sdk')
const xdr_to_json = require('json-xdr').toJSON

tx.envelope       = xdr_to_json(StellarSdk.xdr.TransactionEnvelope.fromXDR(tx.envelope_xdr, 'base64'));
tx.result_meta    = xdr_to_json(StellarSdk.xdr.TransactionMeta.fromXDR(tx.result_meta_xdr,  'base64'));
tx.result         = xdr_to_json(StellarSdk.xdr.TransactionResult.fromXDR(tx.result_xdr,     'base64'));

...which produces the following complex transaction:

{
  "id": "73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818",
  "paging_token": "141057905800515584",
  "successful": true,
  "hash": "73ccc1c241fe314baa0280c7629b98644469faccdfdb0add654ae7e9b0dc9818",
  "created_at": "2020-11-29T20:28:22Z",
  "source_account": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
  "source_account_sequence": "117381718196025459",
  "fee_account": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",
  "fee_charged": "200",
  "max_fee": "2000",
  "operation_count": 2,
  "envelope_xdr": "AAAAAgAAAACZx8/XHkNnOI0cvFdTWjJgtL66ML9Y1QjkymyEG83azgAAB9ABoQYNADL4cwAAAAEAAAAAAAAAAAAAAABfxASAAAAAAAAAAAIAAAAAAAAADAAAAAFVU0QAAAAAAOimGoYeYK9g+Adz4GNG5ccsvlncrdo3YI1Y70JRHZ/cAAAAAAAAAAAAAAAAAAAAAQAAJxAAAAAAFpNvtAAAAAAAAAAMAAAAAVVTRAAAAAAA6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9wAAAAAAAAAAyg7Yq8R6JSjXXlJCQAAAAAAAAAAAAAAAAAAAAEbzdrOAAAAQGpMKqle13+rfCq9B02ggzOY8X7GTYXYI5LmyfOEjdM0noHubMYfIA3PxORD26xPzYYH+K8pdY98nHuZJpiEWQE=",
  "result_xdr": "AAAAAAAAAMgAAAAAAAAAAgAAAAAAAAAMAAAAAAAAAAAAAAACAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAmcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4AAAAAFpNwIwAAAAFVU0QAAAAAAOimGoYeYK9g+Adz4GNG5ccsvlncrdo3YI1Y70JRHZ/cAAAAAAAAAACa2R3YXXlJCRHolKMAAAAAAAAAAAAAAAA=",
  "result_meta_xdr": "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",
  "fee_meta_xdr": "AAAAAgAAAAMB9SNpAAAAAAAAAACZx8/XHkNnOI0cvFdTWjJgtL66ML9Y1QjkymyEG83azgAAAAAHJqKUAaEGDQAy+HIAAAACAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAyg7Yq0AAAAAAAAAAAAAAAAAAAAAAAAAAQH1I2sAAAAAAAAAAJnHz9ceQ2c4jRy8V1NaMmC0vrowv1jVCOTKbIQbzdrOAAAAAAcmocwBoQYNADL4cgAAAAIAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAADKDtirQAAAAAAAAAAAAAAAAAAAAA=",
  "memo_type": "none",
  "signatures": [
    "akwqqV7Xf6t8Kr0HTaCDM5jxfsZNhdgjkubJ84SN0zSege5sxh8gDc/E5EPbrE/Nhgf4ryl1j3yce5kmmIRZAQ=="
  ],
  "valid_after": "1970-01-01T00:00:00Z",
  "valid_before": "2020-11-29T20:28:48Z",
  "ledger_attr": 32842603,
  "envelope": {
    "_type": "envelopeTypeTx",
    "v1": {
      "tx": {
        "sourceAccount": {
          "_type": "keyTypeEd25519",
          "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
        },
        "fee": 2000,
        "seqNum": "117381718196025459",
        "timeBounds": {
          "minTime": "0",
          "maxTime": "1606681728"
        },
        "memo": {
          "_type": "memoNone"
        },
        "operations": [
          {
            "body": {
              "_type": "manageBuyOffer",
              "manageBuyOfferOp": {
                "selling": {
                  "_type": "assetTypeCreditAlphanum4",
                  "alphaNum4": {
                    "assetCode": "VVNEAA==",
                    "issuer": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                    }
                  }
                },
                "buying": {
                  "_type": "assetTypeNative"
                },
                "buyAmount": "0",
                "price": {
                  "n": 1,
                  "d": 10000
                },
                "offerId": "378761140"
              }
            }
          },
          {
            "body": {
              "_type": "manageBuyOffer",
              "manageBuyOfferOp": {
                "selling": {
                  "_type": "assetTypeCreditAlphanum4",
                  "alphaNum4": {
                    "assetCode": "VVNEAA==",
                    "issuer": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                    }
                  }
                },
                "buying": {
                  "_type": "assetTypeNative"
                },
                "buyAmount": "13559882415",
                "price": {
                  "n": 300455075,
                  "d": 1568229641
                },
                "offerId": "0"
              }
            }
          }
        ],
        "ext": {
          "_type": 0
        }
      },
      "signatures": [
        {
          "hint": "G83azg==",
          "signature": "akwqqV7Xf6t8Kr0HTaCDM5jxfsZNhdgjkubJ84SN0zSege5sxh8gDc/E5EPbrE/Nhgf4ryl1j3yce5kmmIRZAQ=="
        }
      ]
    }
  },
  "result": {
    "feeCharged": "200",
    "result": {
      "_type": "txSuccess",
      "results": [
        {
          "_type": "opInner",
          "tr": {
            "_type": "manageBuyOffer",
            "manageBuyOfferResult": {
              "_type": "manageBuyOfferSuccess",
              "success": {
                "offersClaimed": [],
                "offer": {
                  "_type": "manageOfferDeleted"
                }
              }
            }
          }
        },
        {
          "_type": "opInner",
          "tr": {
            "_type": "manageBuyOffer",
            "manageBuyOfferResult": {
              "_type": "manageBuyOfferSuccess",
              "success": {
                "offersClaimed": [],
                "offer": {
                  "_type": "manageOfferCreated",
                  "offer": {
                    "sellerId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "offerId": "378761251",
                    "selling": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "buying": {
                      "_type": "assetTypeNative"
                    },
                    "amount": "2597920216",
                    "price": {
                      "n": 1568229641,
                      "d": 300455075
                    },
                    "flags": 0,
                    "ext": {
                      "_type": 0
                    }
                  }
                }
              }
            }
          }
        }
      ]
    },
    "ext": {
      "_type": 0
    }
  },
  "result_meta": {
    "_type": 2,
    "v2": {
      "txChangesBefore": [
        {
          "_type": "ledgerEntryState",
          "state": {
            "lastModifiedLedgerSeq": 32842603,
            "data": {
              "_type": "account",
              "account": {
                "accountId": {
                  "_type": "publicKeyTypeEd25519",
                  "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                },
                "balance": "119972300",
                "seqNum": "117381718196025458",
                "numSubEntries": 2,
                "flags": 0,
                "homeDomain": "",
                "thresholds": "AQAAAA==",
                "signers": [],
                "ext": {
                  "_type": 1,
                  "v1": {
                    "liabilities": {
                      "buying": "13559882413",
                      "selling": "0"
                    },
                    "ext": {
                      "_type": 0
                    }
                  }
                }
              }
            },
            "ext": {
              "_type": 0
            }
          }
        },
        {
          "_type": "ledgerEntryUpdated",
          "updated": {
            "lastModifiedLedgerSeq": 32842603,
            "data": {
              "_type": "account",
              "account": {
                "accountId": {
                  "_type": "publicKeyTypeEd25519",
                  "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                },
                "balance": "119972300",
                "seqNum": "117381718196025459",
                "numSubEntries": 2,
                "flags": 0,
                "homeDomain": "",
                "thresholds": "AQAAAA==",
                "signers": [],
                "ext": {
                  "_type": 1,
                  "v1": {
                    "liabilities": {
                      "buying": "13559882413",
                      "selling": "0"
                    },
                    "ext": {
                      "_type": 0
                    }
                  }
                }
              }
            },
            "ext": {
              "_type": 0
            }
          }
        }
      ],
      "operations": [
        {
          "changes": [
            {
              "_type": "ledgerEntryState",
              "state": {
                "lastModifiedLedgerSeq": 32842601,
                "data": {
                  "_type": "offer",
                  "offer": {
                    "sellerId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "offerId": "378761140",
                    "selling": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "buying": {
                      "_type": "assetTypeNative"
                    },
                    "amount": "2597918860",
                    "price": {
                      "n": 556275823,
                      "d": 106576105
                    },
                    "flags": 0,
                    "ext": {
                      "_type": 0
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryRemoved",
              "removed": {
                "_type": "offer",
                "offer": {
                  "sellerId": {
                    "_type": "publicKeyTypeEd25519",
                    "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                  },
                  "offerId": "378761140"
                }
              }
            },
            {
              "_type": "ledgerEntryState",
              "state": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "account",
                  "account": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "balance": "119972300",
                    "seqNum": "117381718196025459",
                    "numSubEntries": 2,
                    "flags": 0,
                    "homeDomain": "",
                    "thresholds": "AQAAAA==",
                    "signers": [],
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "13559882413",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryUpdated",
              "updated": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "account",
                  "account": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "balance": "119972300",
                    "seqNum": "117381718196025459",
                    "numSubEntries": 1,
                    "flags": 0,
                    "homeDomain": "",
                    "thresholds": "AQAAAA==",
                    "signers": [],
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryState",
              "state": {
                "lastModifiedLedgerSeq": 32842601,
                "data": {
                  "_type": "trustline",
                  "trustLine": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "asset": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "balance": "2689321244",
                    "limit": "9223372036854775000",
                    "flags": 1,
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "2597918860"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryUpdated",
              "updated": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "trustline",
                  "trustLine": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "asset": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "balance": "2689321244",
                    "limit": "9223372036854775000",
                    "flags": 1,
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            }
          ]
        },
        {
          "changes": [
            {
              "_type": "ledgerEntryCreated",
              "created": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "offer",
                  "offer": {
                    "sellerId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "offerId": "378761251",
                    "selling": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "buying": {
                      "_type": "assetTypeNative"
                    },
                    "amount": "2597920216",
                    "price": {
                      "n": 1568229641,
                      "d": 300455075
                    },
                    "flags": 0,
                    "ext": {
                      "_type": 0
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryState",
              "state": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "account",
                  "account": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "balance": "119972300",
                    "seqNum": "117381718196025459",
                    "numSubEntries": 1,
                    "flags": 0,
                    "homeDomain": "",
                    "thresholds": "AQAAAA==",
                    "signers": [],
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryUpdated",
              "updated": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "account",
                  "account": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "balance": "119972300",
                    "seqNum": "117381718196025459",
                    "numSubEntries": 2,
                    "flags": 0,
                    "homeDomain": "",
                    "thresholds": "AQAAAA==",
                    "signers": [],
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "13559882413",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryState",
              "state": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "trustline",
                  "trustLine": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "asset": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "balance": "2689321244",
                    "limit": "9223372036854775000",
                    "flags": 1,
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "0"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            },
            {
              "_type": "ledgerEntryUpdated",
              "updated": {
                "lastModifiedLedgerSeq": 32842603,
                "data": {
                  "_type": "trustline",
                  "trustLine": {
                    "accountId": {
                      "_type": "publicKeyTypeEd25519",
                      "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
                    },
                    "asset": {
                      "_type": "assetTypeCreditAlphanum4",
                      "alphaNum4": {
                        "assetCode": "VVNEAA==",
                        "issuer": {
                          "_type": "publicKeyTypeEd25519",
                          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
                        }
                      }
                    },
                    "balance": "2689321244",
                    "limit": "9223372036854775000",
                    "flags": 1,
                    "ext": {
                      "_type": 1,
                      "v1": {
                        "liabilities": {
                          "buying": "0",
                          "selling": "2597920216"
                        },
                        "ext": {
                          "_type": 0
                        }
                      }
                    }
                  }
                },
                "ext": {
                  "_type": 0
                }
              }
            }
          ]
        }
      ],
      "txChangesAfter": []
    }
  }
}

Note the many levels & nested fields which are not present in the simplified transaction (much easier and faster to parse!)

Behind the scenes:

ezxlm manipulates the specified transaction via the following operations behind the scenes:

  • Deleting the following fields
    • _links
    • ledger [FUNCTION]
    • self [FUNCTION]
    • account [FUNCTION]
    • operations [FUNCTION]
    • effects [FUNCTION]
    • precedes [FUNCTION]
    • succeeds [FUNCTION]
    • transaction [FUNCTION]
  • Converting the following fields from XDR and then to JSON
    • envelope_xdr
    • result_xdr
  • Deleting the following XDR fields:
    • envelope_xdr
    • result_meta_xdr
    • result_xdr
    • fee_meta_xdr
  • Recursively iterating through the transaction and where applicable:
    • Deleting keys with null and undefined values
    • Deleting empty arrays
    • Deleting ext keys and corresponding values
    • Converting nested asset codes into human friendly strings and collapsing them into their parent properties (see below)
    • Converting nested ed25519 keys into common addresses and collapsing them into their parent properties (see below)
    • Flattening simple _type objects (see below)
    • Converting numerator / denominator based price information into simplified float values (see below)
    • Removing null bytes from text fields
    • Collapsing version objects into the parent object (see below)
    • Merging operation children into the operation objects (see below)
    • Merging results children into the result objects
    • Merging data objects into their parent objects (see below)
    • Merging body objects into their parent objects (see below)
    • Merging tr objects into their parent objects (see below)

The resulting simplified transaction object is returned from the simplify method

assetCode conversion

ezxlm will convert the following:

"selling": {
  "_type": "assetTypeCreditAlphanum4",
  "alphaNum4": {
    "assetCode": "VVNEAA==",
    "issuer": {
      "_type": "publicKeyTypeEd25519",
      "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
    }
  }
}

To the following:

"selling": {
  "assetCode": "USD",
  "issuer": "GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX",
},

Note: in this example, the ed25519 transformation has also been applied in accordance to the rules specified below.

ed25519 conversion

ezxlm will convert the following:

"sourceAccount": {
  "_type": "keyTypeEd25519",
  "ed25519": "mcfP1x5DZziNHLxXU1oyYLS+ujC/WNUI5MpshBvN2s4="
}

To the following:

"sourceAccount": "GCM4PT6XDZBWOOENDS6FOU22GJQLJPV2GC7VRVII4TFGZBA3ZXNM55SV",

This applies to all ed25519 fields

simple _type conversion

ezxlm will convert the following:

{
	  "buying": {
		  "_type": "assetTypeNative"
	  }
}

To the following:

{
  "buying": "assetTypeNative"
}

This conversion will only be applied to objects containing a _type property and no others.

price conversion

ezxlm will convert the following:

"price": {
  "n": 1568229641,
  "d": 300455075
}

To the following:

"price": 5.219514568026518

This is accomplished by dividing n by d and assigning it to price.

version conversion

ezxlm will collapse 'v1', 'v2', etc fields from:

"envelope": {
  "_type": "envelopeTypeTx",
  "v1": {
    "tx" : {
      // ...
    }
  }
}

To the following:

"envelope" : {
  "tx" : {
    // ...
  }
}

operations conversion

For each operation, ezxlm will convert the following:

{
  "body": {
    "_type": "manageBuyOffer",
    "manageBuyOfferOp": {
      "selling": {
        "_type": "assetTypeCreditAlphanum4",
        "alphaNum4": {
          "assetCode": "VVNEAA==",
          "issuer": {
            "_type": "publicKeyTypeEd25519",
            "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
          }
        }
      },
      "buying": {
        "_type": "assetTypeNative"
      },
      "buyAmount": "0",
      "price": {
        "n": 1,
        "d": 10000
      },
      "offerId": "378761140"
    }
  }
},

To the following:

{
  "body": {
    "_type": "manageBuyOffer",
    "selling": {
      "_type": "assetTypeCreditAlphanum4",
      "alphaNum4": {
        "assetCode": "VVNEAA==",
        "issuer": {
          "_type": "publicKeyTypeEd25519",
          "ed25519": "6KYahh5gr2D4B3PgY0blxyy+Wdyt2jdgjVjvQlEdn9w="
        }
      }
    },
    "buying": {
      "_type": "assetTypeNative"
    },
    "buyAmount": "0",
    "price": {
      "n": 1,
      "d": 10000
    },
    "offerId": "378761140"
  }
}

Note: Other conversions will be applied, including the collapsing of the body object into the parent operation (see below)

results conversion

For each result, ezxlm will convert the following:

{
  "_type": "opInner",
  "tr": {
    "_type": "manageBuyOffer",
    "manageBuyOfferResult": {
      "_type": "manageBuyOfferSuccess",
      "success": {
        "offersClaimed": [],
        "offer": {
          "_type": "manageOfferDeleted"
        }
      }
    }
  }
}

To the following:

{
  "_type": "opInner",
  "tr": {
    "_type": "manageBuyOffer",
    "manageBuyOfferResult": {
      "_type": "manageBuyOfferSuccess",
      "offersClaimed": [],
      "offer": {
        "_type": "manageOfferDeleted"
      }
    }
  }
}

**Note: Other conversion will be applied, including the collapsing of the tr object in the parent result (see below)

data coversion

ezxlm will convert the following:

{
  "lastModifiedLedgerSeq": 32842603,
  "data": {
    "_type": "offer",
    "offer": {
      "offerId": "378761251",
      "amount": "2597920216",
      // ...
    }
  }
}

To the following:

{
  "lastModifiedLedgerSeq": 32842603,
  "_type": "offer",
  "offerId": "378761251",
  "amount": "2597920216",
   // ...
},

body simplification

ezxlm will convert the following:

{
  "body": {
    "_type": "manageBuyOffer",
    "manageBuyOfferOp": {
      "buyAmount": "0",
      "offerId": "378761140"
      // ...
    }
  }
}

To the following:

{
  "_type": "manageBuyOffer"
  "buyAmount": "0",
  "offerId": "378761140"
}

tr simplification

ezxlm will convert the following:

{
  "_type": "opInner",
  "tr": {
    "_type": "manageBuyOffer",
    "manageBuyOfferResult": {
      "_type": "manageBuyOfferSuccess",
      "offersClaimed": [],
      "offer": {
        "_type": "manageOfferDeleted"
      }
    }
  }
}

To the following:

{
  "_type": "manageBuyOffer",
  "manageBuyOfferResult": {
    "_type": "manageBuyOfferSuccess",
    "offersClaimed": [],
    "offer": {
      "_type": "manageOfferDeleted"
    }
  }
}

Legaleese

ezxlm is released under the MIT license

(C) 2021 - Dev Null Productions