Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
# Tsc Build
**/lib
**/build
**/dist

# Zombienet
zombienet-macos
Expand All @@ -28,3 +29,9 @@ zombienet/bin/*
db.sqlite
db.sqlite-*
chopsticks-db

# VS Code
.vscode/

# Package Lock file
package-lock.json
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v18.20.8
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 15 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,22 @@
"name": "@substrate/asset-transfer-api",
"version": "0.7.0",
"description": "",
"main": "lib/src/index.js",
"main": "./dist/src/index.cjs",
"module": "./dist/src/index.js",
"type": "module",
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.cjs",
"import": "./dist/index.js"
}
},
"scripts": {
"build": "substrate-exec-rimraf ./lib && substrate-exec-tsc",
"build": "tsup src/index.ts --format esm,cjs --dts",
"build:scripts": "substrate-exec-rimraf scripts/build/ && substrate-exec-tsc --project scripts/tsconfig.json",
"build:examples": "substrate-exec-rimraf examples/build/ && substrate-exec-tsc --project examples/tsconfig.json",
"build:e2e": "substrate-exec-rimraf e2e-tests/build/ && substrate-exec-tsc --project e2e-tests/tsconfig.json",
"clean": "rimraf dist",
"start": "node ./lib/index.js",
"lint": "substrate-dev-run-lint",
"lint:fix": "substrate-dev-run-lint --fix",
Expand Down Expand Up @@ -39,6 +49,9 @@
"ansi-colors": "^4.1.3",
"chalk": "5.4.1",
"cli-progress": "^3.12.0",
"reflect-metadata": "^0.2.2",
"rimraf": "^6.0.1",
"tsup": "^8.4.0",
"typedoc": "^0.28.4",
"typedoc-plugin-missing-exports": "^4.0.0",
"typedoc-theme-hierarchy": "^6.0.0",
Expand Down
74 changes: 37 additions & 37 deletions src/AssetTransferApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import type {
import type { AnyJson, AnyTuple, ISubmittableResult } from '@polkadot/types/types';
import type { Result, u128 } from '@polkadot/types-codec';

import { CDN_URL, RELAY_CHAIN_IDS, RELAY_CHAIN_NAMES, SYSTEM_PARACHAINS_NAMES } from './consts';
import * as assets from './createCalls/assets';
import * as balances from './createCalls/balances';
import * as foreignAssets from './createCalls/foreignAssets';
import * as poolAssets from './createCalls/poolAssets';
import * as tokens from './createCalls/tokens';
import { CDN_URL, RELAY_CHAIN_IDS, RELAY_CHAIN_NAMES, SYSTEM_PARACHAINS_NAMES } from './consts.js';
import * as assets from './createCalls/assets/index.js';
import * as balances from './createCalls/balances/index.js';
import * as foreignAssets from './createCalls/foreignAssets/index.js';
import * as poolAssets from './createCalls/poolAssets/index.js';
import * as tokens from './createCalls/tokens/index.js';
import {
claimAssets,
limitedReserveTransferAssets,
Expand All @@ -34,25 +34,27 @@ import {
transferMultiasset,
transferMultiassets,
transferMultiassetWithFee,
} from './createXcmCalls';
import { CreateXcmCallOpts } from './createXcmCalls/types';
import { establishXcmPallet, XcmPalletName } from './createXcmCalls/util/establishXcmPallet';
import { XTokensBaseArgs } from './createXcmCalls/xTokens/types';
import { UnionXcmMultiLocation, XcmVersionedAssetId } from './createXcmTypes/types';
import { assetIdIsLocation } from './createXcmTypes/util/assetIdIsLocation';
import { assetIdsContainRelayAsset } from './createXcmTypes/util/assetIdsContainsRelayAsset';
import { chainDestIsBridge } from './createXcmTypes/util/chainDestIsBridge';
import { chainDestIsEthereum } from './createXcmTypes/util/chainDestIsEthereum';
import { createXcmVersionedAssetId } from './createXcmTypes/util/createXcmVersionedAssetId';
import { getAssetId } from './createXcmTypes/util/getAssetId';
import { getGlobalConsensusSystemName } from './createXcmTypes/util/getGlobalConsensusSystemName';
import { getPaysWithFeeOriginAssetLocationFromRegistry } from './createXcmTypes/util/getPaysWithFeeOriginAssetLocationFromRegistry';
import { isParachain } from './createXcmTypes/util/isParachain';
import { isParachainPrimaryNativeAsset } from './createXcmTypes/util/isParachainPrimaryNativeAsset';
import { isRelayNativeAsset } from './createXcmTypes/util/isRelayNativeAsset';
import { isSystemChain } from './createXcmTypes/util/isSystemChain';
import { multiLocationAssetIsParachainsNativeAsset } from './createXcmTypes/util/multiLocationAssetIsParachainsNativeAsset';
import { parseLocationStrToLocation } from './createXcmTypes/util/parseLocationStrToLocation';
} from './createXcmCalls/index.js';
import { CreateXcmCallOpts } from './createXcmCalls/types.js';
import { establishXcmPallet, XcmPalletName } from './createXcmCalls/util/establishXcmPallet.js';
import { XTokensBaseArgs } from './createXcmCalls/xTokens/types.js';
import { UnionXcmMultiLocation, XcmVersionedAssetId } from './createXcmTypes/types.js';
import { assetIdIsLocation } from './createXcmTypes/util/assetIdIsLocation.js';
import { assetIdsContainRelayAsset } from './createXcmTypes/util/assetIdsContainsRelayAsset.js';
import { chainDestIsBridge } from './createXcmTypes/util/chainDestIsBridge.js';
import { chainDestIsEthereum } from './createXcmTypes/util/chainDestIsEthereum.js';
import { createXcmVersionedAssetId } from './createXcmTypes/util/createXcmVersionedAssetId.js';
import { getAssetId } from './createXcmTypes/util/getAssetId.js';
import { getGlobalConsensusSystemName } from './createXcmTypes/util/getGlobalConsensusSystemName.js';
import { getPaysWithFeeOriginAssetLocationFromRegistry } from './createXcmTypes/util/getPaysWithFeeOriginAssetLocationFromRegistry.js';
import { isParachain } from './createXcmTypes/util/isParachain.js';
import { isParachainPrimaryNativeAsset } from './createXcmTypes/util/isParachainPrimaryNativeAsset.js';
import { isRelayNativeAsset } from './createXcmTypes/util/isRelayNativeAsset.js';
import { isSystemChain } from './createXcmTypes/util/isSystemChain.js';
import { multiLocationAssetIsParachainsNativeAsset } from './createXcmTypes/util/multiLocationAssetIsParachainsNativeAsset.js';
import { parseLocationStrToLocation } from './createXcmTypes/util/parseLocationStrToLocation.js';
import { LocalTxType } from './errors/checkLocalTxInput/types.js';
import { checkClaimAssetsInputs } from './errors/checkXcmTxInputs.js';
import {
BaseError,
BaseErrorsEnum,
Expand All @@ -63,12 +65,10 @@ import {
checkLocalSystemParachainInput,
checkXcmTxInputs,
checkXcmVersion,
} from './errors';
import { LocalTxType } from './errors/checkLocalTxInput/types';
import { checkClaimAssetsInputs } from './errors/checkXcmTxInputs';
import { Registry } from './registry';
import { ChainInfoKeys, ChainInfoRegistry } from './registry/types';
import { sanitizeAddress } from './sanitize/sanitizeAddress';
} from './errors/index.js';
import { Registry } from './registry/index.js';
import { ChainInfoKeys, ChainInfoRegistry } from './registry/types.js';
import { sanitizeAddress } from './sanitize/sanitizeAddress.js';
import {
AssetCallType,
AssetTransferApiOpts,
Expand All @@ -95,12 +95,12 @@ import {
type XcmPalletTxMethodTransactionMap,
type XTokensCallSignature,
type XTokensTxMethodTransactionMap,
} from './types';
import { callExistsInRuntime } from './util/callExistsInRuntime';
import { deepEqual } from './util/deepEqual';
import { resolveMultiLocation } from './util/resolveMultiLocation';
import { sanitizeKeys } from './util/sanitizeKeys';
import { validateNumber } from './validate';
} from './types.js';
import { callExistsInRuntime } from './util/callExistsInRuntime.js';
import { deepEqual } from './util/deepEqual.js';
import { resolveMultiLocation } from './util/resolveMultiLocation.js';
import { sanitizeKeys } from './util/sanitizeKeys.js';
import { validateNumber } from './validate/index.js';

/**
* Holds open an api connection to a specified chain within the ApiPromise in order to help
Expand Down
4 changes: 2 additions & 2 deletions src/config/disabledOpts.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

import { BaseError, BaseErrorsEnum } from '../errors/BaseError';
import { Format, TransferArgsOpts } from '../types';
import { BaseError, BaseErrorsEnum } from '../errors/BaseError.js';
import { Format, TransferArgsOpts } from '../types.js';

interface DisabledOptionsInfo {
disabled: boolean;
Expand Down
2 changes: 1 addition & 1 deletion src/constructApiPromise.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ApiPromise } from '@polkadot/api';
import type { ApiOptions } from '@polkadot/api/types';
import { WsProvider } from '@polkadot/rpc-provider';

import { fetchSafeXcmVersion } from './createXcmCalls/util/fetchSafeXcmVersion';
import { fetchSafeXcmVersion } from './createXcmCalls/util/fetchSafeXcmVersion.js';

/**
* Return value for `constructApiPromise`
Expand Down
2 changes: 1 addition & 1 deletion src/consts.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

import { detectJsEnv } from './util/detectJsEvn';
import { detectJsEnv } from './util/detectJsEvn.js';

/**
* List of all known relay chains.
Expand Down
6 changes: 3 additions & 3 deletions src/createCalls/assets/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

export { transfer } from './transfer';
export { transferAll } from './transferAll';
export { transferKeepAlive } from './transferKeepAlive';
export { transfer } from './transfer.js';
export { transferAll } from './transferAll.js';
export { transferKeepAlive } from './transferKeepAlive.js';
6 changes: 3 additions & 3 deletions src/createCalls/balances/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

export { transfer } from './transfer';
export { transferAll } from './transferAll';
export { transferKeepAlive } from './transferKeepAlive';
export { transfer } from './transfer.js';
export { transferAll } from './transferAll.js';
export { transferKeepAlive } from './transferKeepAlive.js';
6 changes: 3 additions & 3 deletions src/createCalls/foreignAssets/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

export { transfer } from './transfer';
export { transferAll } from './transferAll';
export { transferKeepAlive } from './transferKeepAlive';
export { transfer } from './transfer.js';
export { transferAll } from './transferAll.js';
export { transferKeepAlive } from './transferKeepAlive.js';
2 changes: 1 addition & 1 deletion src/createCalls/foreignAssets/transfer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { ApiPromise } from '@polkadot/api';
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import type { UnionXcmMultiLocation } from '../../createXcmTypes/types';
import type { UnionXcmMultiLocation } from '../../createXcmTypes/types.js';

export const transfer = (
api: ApiPromise,
Expand Down
2 changes: 1 addition & 1 deletion src/createCalls/foreignAssets/transferAll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { ApiPromise } from '@polkadot/api';
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { UnionXcmMultiLocation } from '../../createXcmTypes/types';
import { UnionXcmMultiLocation } from '../../createXcmTypes/types.js';

export const transferAll = (
api: ApiPromise,
Expand Down
2 changes: 1 addition & 1 deletion src/createCalls/foreignAssets/transferKeepAlive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { ApiPromise } from '@polkadot/api';
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import type { UnionXcmMultiLocation } from '../../createXcmTypes/types';
import type { UnionXcmMultiLocation } from '../../createXcmTypes/types.js';

export const transferKeepAlive = (
api: ApiPromise,
Expand Down
6 changes: 3 additions & 3 deletions src/createCalls/poolAssets/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

export { transfer } from './transfer';
export { transferAll } from './transferAll';
export { transferKeepAlive } from './transferKeepAlive';
export { transfer } from './transfer.js';
export { transferAll } from './transferAll.js';
export { transferKeepAlive } from './transferKeepAlive.js';
6 changes: 3 additions & 3 deletions src/createCalls/tokens/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

export { transfer } from './transfer';
export { transferAll } from './transferAll';
export { transferKeepAlive } from './transferKeepAlive';
export { transfer } from './transfer.js';
export { transferAll } from './transferAll.js';
export { transferKeepAlive } from './transferKeepAlive.js';
16 changes: 8 additions & 8 deletions src/createXcmCalls/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Copyright 2024 Parity Technologies (UK) Ltd.

export { claimAssets } from './polkadotXcm/claimAssets';
export { limitedReserveTransferAssets } from './polkadotXcm/limitedReserveTransferAssets';
export { limitedTeleportAssets } from './polkadotXcm/limitedTeleportAssets';
export { transferAssets } from './polkadotXcm/transferAssets';
export { transferAssetsUsingTypeAndThen } from './polkadotXcm/transferAssetsUsingTypeAndThen';
export { transferMultiasset } from './xTokens/transferMultiasset';
export { transferMultiassets } from './xTokens/transferMultiassets';
export { transferMultiassetWithFee } from './xTokens/transferMultiassetWithFee';
export { claimAssets } from './polkadotXcm/claimAssets.js';
export { limitedReserveTransferAssets } from './polkadotXcm/limitedReserveTransferAssets.js';
export { limitedTeleportAssets } from './polkadotXcm/limitedTeleportAssets.js';
export { transferAssets } from './polkadotXcm/transferAssets.js';
export { transferAssetsUsingTypeAndThen } from './polkadotXcm/transferAssetsUsingTypeAndThen.js';
export { transferMultiasset } from './xTokens/transferMultiasset.js';
export { transferMultiassets } from './xTokens/transferMultiassets.js';
export { transferMultiassetWithFee } from './xTokens/transferMultiassetWithFee.js';
12 changes: 6 additions & 6 deletions src/createXcmCalls/polkadotXcm/claimAssets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import { ApiPromise } from '@polkadot/api';
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { createAssetLocations } from '../../createXcmTypes/util/createAssetLocations';
import { createBeneficiary } from '../../createXcmTypes/util/createBeneficiary';
import { BaseError, BaseErrorsEnum } from '../../errors';
import { Registry } from '../../registry';
import { CreateXcmCallOpts } from '../types';
import { establishXcmPallet } from '../util/establishXcmPallet';
import { createAssetLocations } from '../../createXcmTypes/util/createAssetLocations.js';
import { createBeneficiary } from '../../createXcmTypes/util/createBeneficiary.js';
import { BaseError, BaseErrorsEnum } from '../../errors/index.js';
import { Registry } from '../../registry/index.js';
import { CreateXcmCallOpts } from '../types.js';
import { establishXcmPallet } from '../util/establishXcmPallet.js';

/**
* Allow users to claim assets trapped locally on-chain during failed XCM execution.
Expand Down
10 changes: 5 additions & 5 deletions src/createXcmCalls/polkadotXcm/limitedReserveTransferAssets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { createXcmTypes } from '../../createXcmTypes';
import { normalizeArrToStr } from '../../util/normalizeArrToStr';
import type { CreateXcmCallOpts } from '../types';
import { establishXcmPallet } from '../util/establishXcmPallet';
import type { PolkadotXcmBaseArgs } from './types';
import { createXcmTypes } from '../../createXcmTypes/index.js';
import { normalizeArrToStr } from '../../util/normalizeArrToStr.js';
import type { CreateXcmCallOpts } from '../types.js';
import { establishXcmPallet } from '../util/establishXcmPallet.js';
import type { PolkadotXcmBaseArgs } from './types.js';

/**
* Build a Polkadot-js SubmittableExtrinsic for a `limitedReserveTransferAssets`
Expand Down
10 changes: 5 additions & 5 deletions src/createXcmCalls/polkadotXcm/limitedTeleportAssets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { createXcmTypes } from '../../createXcmTypes';
import { normalizeArrToStr } from '../../util/normalizeArrToStr';
import type { CreateXcmCallOpts } from '../types';
import { establishXcmPallet } from '../util/establishXcmPallet';
import type { PolkadotXcmBaseArgs } from './types';
import { createXcmTypes } from '../../createXcmTypes/index.js';
import { normalizeArrToStr } from '../../util/normalizeArrToStr.js';
import type { CreateXcmCallOpts } from '../types.js';
import { establishXcmPallet } from '../util/establishXcmPallet.js';
import type { PolkadotXcmBaseArgs } from './types.js';

/**
* Build a Polkadot-js SubmittableExtrinsic for a `limitedTeleportAssets` call.
Expand Down
10 changes: 5 additions & 5 deletions src/createXcmCalls/polkadotXcm/transferAssets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { createXcmTypes } from '../../createXcmTypes';
import { normalizeArrToStr } from '../../util/normalizeArrToStr';
import type { CreateXcmCallOpts } from '../types';
import { establishXcmPallet } from '../util/establishXcmPallet';
import type { PolkadotXcmBaseArgs } from './types';
import { createXcmTypes } from '../../createXcmTypes/index.js';
import { normalizeArrToStr } from '../../util/normalizeArrToStr.js';
import type { CreateXcmCallOpts } from '../types.js';
import { establishXcmPallet } from '../util/establishXcmPallet.js';
import type { PolkadotXcmBaseArgs } from './types.js';

/**
* Build a Polkadot-js SubmittableExtrinsic for a `transferAssets` call.
Expand Down
34 changes: 17 additions & 17 deletions src/createXcmCalls/polkadotXcm/transferAssetsUsingTypeAndThen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types';
import type { ISubmittableResult } from '@polkadot/types/types';

import { createXcmTypes } from '../../createXcmTypes';
import { createXcmTypes } from '../../createXcmTypes/index.js';
import {
UnionXcmMultiLocation,
WildAsset,
Expand All @@ -13,22 +13,22 @@ import {
XcmV3Junction,
XcmV4Junction,
XcmVersionedAssetId,
} from '../../createXcmTypes/types';
import { assetIdIsLocation } from '../../createXcmTypes/util/assetIdIsLocation';
import { createXcmOnDestBeneficiary } from '../../createXcmTypes/util/createXcmOnDestBeneficiary';
import { createXcmOnDestination } from '../../createXcmTypes/util/createXcmOnDestination';
import { createXcmVersionedAssetId } from '../../createXcmTypes/util/createXcmVersionedAssetId';
import { getAssetId } from '../../createXcmTypes/util/getAssetId';
import { parseLocationStrToLocation } from '../../createXcmTypes/util/parseLocationStrToLocation';
import { resolveAssetTransferType } from '../../createXcmTypes/util/resolveAssetTransferType';
import { BaseError, BaseErrorsEnum } from '../../errors';
import { sanitizeAddress } from '../../sanitize/sanitizeAddress';
import { AssetTransferType, Direction } from '../../types';
import { normalizeArrToStr } from '../../util/normalizeArrToStr';
import { resolveMultiLocation } from '../../util/resolveMultiLocation';
import type { CreateXcmCallOpts } from '../types';
import { establishXcmPallet } from '../util/establishXcmPallet';
import type { PolkadotXcmBaseArgs } from './types';
} from '../../createXcmTypes/types.js';
import { assetIdIsLocation } from '../../createXcmTypes/util/assetIdIsLocation.js';
import { createXcmOnDestBeneficiary } from '../../createXcmTypes/util/createXcmOnDestBeneficiary.js';
import { createXcmOnDestination } from '../../createXcmTypes/util/createXcmOnDestination.js';
import { createXcmVersionedAssetId } from '../../createXcmTypes/util/createXcmVersionedAssetId.js';
import { getAssetId } from '../../createXcmTypes/util/getAssetId.js';
import { parseLocationStrToLocation } from '../../createXcmTypes/util/parseLocationStrToLocation.js';
import { resolveAssetTransferType } from '../../createXcmTypes/util/resolveAssetTransferType.js';
import { BaseError, BaseErrorsEnum } from '../../errors/index.js';
import { sanitizeAddress } from '../../sanitize/sanitizeAddress.js';
import { AssetTransferType, Direction } from '../../types.js';
import { normalizeArrToStr } from '../../util/normalizeArrToStr.js';
import { resolveMultiLocation } from '../../util/resolveMultiLocation.js';
import type { CreateXcmCallOpts } from '../types.js';
import { establishXcmPallet } from '../util/establishXcmPallet.js';
import type { PolkadotXcmBaseArgs } from './types.js';
/**
* Build a Polkadot-js SubmittableExtrinsic for a `transferAssetsUsingTypeAndThen` call.
*
Expand Down
2 changes: 1 addition & 1 deletion src/createXcmCalls/polkadotXcm/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2023 Parity Technologies (UK) Ltd.

import type { XcmBaseArgs } from '../../types';
import type { XcmBaseArgs } from '../../types.js';

export type PolkadotXcmBaseArgs = XcmBaseArgs;
Loading