Skip to content

Commit

Permalink
move MoonChain interfaces to MRL file
Browse files Browse the repository at this point in the history
  • Loading branch information
mmaurello committed Jan 16, 2025
1 parent e15fd83 commit 0ef4f35
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 19 deletions.
17 changes: 0 additions & 17 deletions packages/config/src/types/AssetRoute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import type {
ContractConfigBuilder,
ExtrinsicConfigBuilder,
FeeConfigBuilder,
MrlConfigBuilder,
} from '@moonbeam-network/xcm-builder';
import type {
AnyChain,
Expand Down Expand Up @@ -44,27 +43,11 @@ export interface FeeConfig {
extra?: number;
}

export interface MrlConfig {
isAutomaticPossible: boolean;
transfer: MrlConfigBuilder;
moonChain: MoonChainConfig;
}

export interface DestinationFeeConfig
extends SetOptional<FeeConfig, 'balance'> {
amount: number | FeeConfigBuilder;
}

export interface MoonChainConfig {
asset: Asset;
balance: BalanceConfigBuilder;
fee: MoonChainFeeConfig;
}

export interface MoonChainFeeConfig extends FeeConfig {
amount: number | FeeConfigBuilder;
}

export class AssetRoute {
readonly source: SourceConfig;

Expand Down
24 changes: 22 additions & 2 deletions packages/config/src/types/MrlAssetRoute.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import type { BalanceConfigBuilder } from '@moonbeam-network/xcm-builder';
import type {
BalanceConfigBuilder,
FeeConfigBuilder,
MrlConfigBuilder,
} from '@moonbeam-network/xcm-builder';
import type { Asset } from '@moonbeam-network/xcm-types';
import {
AssetRoute,
type AssetRouteConstructorParams,
type MrlConfig,
type FeeConfig,
type SourceConfig,
} from './AssetRoute';

Expand All @@ -13,13 +17,29 @@ export interface MrlAssetRouteConstructorParams
mrl: MrlConfig;
}

export interface MrlConfig {
isAutomaticPossible: boolean;
transfer: MrlConfigBuilder;
moonChain: MoonChainConfig;
}

export interface MrlSourceConfig extends SourceConfig {
moonChainFee?: {
asset: Asset;
balance: BalanceConfigBuilder;
};
}

export interface MoonChainConfig {
asset: Asset;
balance: BalanceConfigBuilder;
fee: MoonChainFeeConfig;
}

export interface MoonChainFeeConfig extends FeeConfig {
amount: number | FeeConfigBuilder;
}

export class MrlAssetRoute extends AssetRoute {
readonly mrl: MrlConfig;
readonly source: MrlSourceConfig;
Expand Down

0 comments on commit 0ef4f35

Please sign in to comment.