@paraspell/xcm-analyser
TypeScript icon, indicating that this package has built-in type declarations

1.3.3 • Public • Published



@paraspell/xcm-analyser

Tool to convert XCM multiLocations into human-readable format.

version downloads build snyk

Analyser documentation [here]





Installation

Install SDK

pnpm | npm install || yarn add @paraspell/xcm-analyser 

Implementation

NOTE:
The following junction types are supported:

Parachain
AccountId32
AccountIndex64
AccountKey20
PalletInstance
GeneralIndex
GeneralKey
OnlyChild
Plurality
GlobalConsensus

Compile a single multilocation object to the URL

To compile a single multilocation object to url use the following structure:

//Importing the call
import { convertMultilocationToUrl } from '@paraspell/xcm-analyser';

//Define the multilocation you wish to convert to URL
/*const multilocation: MultiLocation = {
      parents: '0',
      interior: {
        X2: [
          {
            PalletInstance: '50',
          },
          {
            GeneralIndex: '41',
          },
        ],
      },
    };*/

const result = convertMultilocationToUrl(multiplication);

/*
This should result into:
'./PalletInstance(50)/GeneralIndex(41)'
*/

Compile a single multilocation JSON to the URL

To compile a single multilocation JSON to url use the following structure:

//Importing the call
import { convertMultilocationToUrlJson } from '@paraspell/xcm-analyser';

//Define multilocation JSON
/*const multilocationJson = `{
      "parents": "3",
      "interior": {
        "X2": [
          {
            "PalletInstance": "50"
          },
          {
            "GeneralIndex": "41"
          }
        ]
      }
    }`*/

const result = convertMultilocationToUrl(multilocationJson);

/*
This should result into:
''../../../PalletInstance(50)/GeneralIndex(41)''
*/

Compile the entire XCM call to the URL

To compile the entire XCM call to the URL use the following structure:

//Importing the call
import { convertXCMToUrls } from '@paraspell/xcm-analyser';

//Define XCM call arguments you wish to convert
/*const xcmCallArguments = [
  {
    V3: {
      parents: '1',
      interior: {
        X1: {
          Parachain: '2006',
        },
      },
    },
  },
  {
    V3: {
      parents: '0',
      interior: {
        X1: {
          AccountId32: {
            network: null,
            id: 'accountID',
          },
        },
      },
    },
  },
  {
    V3: [
      {
        id: {
          Concrete: {
            parents: '0',
            interior: {
              X2: [{ PalletInstance: '50' }, { GeneralIndex: '1984' }],
            },
          },
        },
        fun: {
          Fungible: 'amount',
        },
      },
    ],
  },
];*/

const urls = convertXCMToUrls(xcmCallArguments);

/*
This should result into:
[
  '../Parachain(2006)',
  './AccountId32(null, accountID)',
  './PalletInstance(50)/GeneralIndex(1984)',
]
*/

💻 Tests

  • Run compilation using pnpm compile

  • Run linter using pnpm lint

  • Run unit tests using pnpm test

  • Run all core tests and checks using pnpm runAll

  • Run an example from example file using pnpm runExample

License

Made with 💛 by ParaSpell✨

Published under MIT License.

Readme

Keywords

none

Package Sidebar

Install

npm i @paraspell/xcm-analyser

Weekly Downloads

152

Version

1.3.3

License

MIT

Unpacked Size

340 kB

Total Files

5

Last publish

Collaborators

  • dudo50
  • vikiival