@paraspell/xcm-analyser
v1.4.0
Published
Tool for converting XCM MultiLocation into human readable written format.
Downloads
537
Readme
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.