Analyser documentation [here]
pnpm | npm install || yarn add @paraspell/xcm-analyser
NOTE:
The following junction types are supported:
Parachain
AccountId32
AccountIndex64
AccountKey20
PalletInstance
GeneralIndex
GeneralKey
OnlyChild
Plurality
GlobalConsensus
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)'
*/
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)''
*/
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)',
]
*/
-
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
Made with 💛 by ParaSpell✨
Published under MIT License.