Skip to content

Commit

Permalink
Change vDOT paying asset - fix decimals fetching in destination (#153)
Browse files Browse the repository at this point in the history
* Change paying token for vDOT transfers and adapt decimals query in destination chain

* add changeset
  • Loading branch information
mmaurello authored Oct 26, 2023
1 parent 159ce9a commit de87e3e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 7 deletions.
6 changes: 6 additions & 0 deletions .changeset/orange-trainers-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@moonbeam-network/xcm-config': patch
'@moonbeam-network/xcm-sdk': patch
---

Change how we get decimals from assets in destination and change vDOT transfers paying asset
2 changes: 1 addition & 1 deletion packages/config/src/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ export const bifrostPolkadot = new Parachain({
name: 'Bifrost',
parachainId: 2030,
ss58Format: 6,
ws: 'wss://hk.p.bifrost-rpc.liebi.com/ws',
ws: 'wss://eu.bifrost-polkadot-rpc.liebi.com/ws',
});

export const calamari = new Parachain({
Expand Down
8 changes: 4 additions & 4 deletions packages/config/src/configs/bifrostPolkadot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ export const bifrostPolkadotConfig = new ChainConfig({
balance: BalanceBuilder().substrate().tokens().accounts(),
destination: moonbeam,
destinationFee: {
amount: 0.2,
asset: bnc,
balance: BalanceBuilder().substrate().system().account(),
amount: 0.01,
asset: vdot,
balance: BalanceBuilder().substrate().tokens().accounts(),
},
extrinsic: ExtrinsicBuilder().xTokens().transferMultiCurrencies(),
extrinsic: ExtrinsicBuilder().xTokens().transfer(),
fee: {
asset: bnc,
balance: BalanceBuilder().substrate().system().account(),
Expand Down
19 changes: 17 additions & 2 deletions packages/sdk/src/getTransferData/getDestinationData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,12 @@ export async function getDestinationData({
const balanceAmount = zeroAmount.copyWith({ amount: balance });
const { existentialDeposit } = polkadot;

const feeAmount = await getFee({ config: transferConfig, polkadot });
const feeAmount = await getFee({
address: destinationAddress,
config: transferConfig,
evmSigner,
polkadot,
});
const minAmount = zeroAmount.copyWith({ amount: min });

return {
Expand All @@ -59,16 +64,26 @@ export async function getDestinationData({
}

export interface GetFeeParams {
address: string;
config: TransferConfig;
evmSigner?: EvmSigner;
polkadot: PolkadotService;
}

export async function getFee({
address,
config,
evmSigner,
polkadot,
}: GetFeeParams): Promise<AssetAmount> {
const { amount, asset } = config.source.config.destinationFee;
const decimals = await polkadot.getAssetDecimals(asset);
const decimals = await getDecimals({
address,
asset,
config: config.destination.config,
evmSigner,
polkadot,
});
const zeroAmount = AssetAmount.fromAsset(asset, {
amount: 0n,
decimals,
Expand Down

0 comments on commit de87e3e

Please sign in to comment.