difftreelog
Merge pull request #985 from UniqueNetwork/fix/xcm-release-60
in: master
4 files changed
.baedeker/xcm-quartz.jsonnetdiffbeforeafterboth--- a/.baedeker/xcm-quartz.jsonnet
+++ b/.baedeker/xcm-quartz.jsonnet
@@ -82,7 +82,7 @@
wantedKeys: 'para-nimbus',
legacyRpc: true,
},
- for name in ['alice', 'bob']
+ for name in ['alith', 'baltathar']
},
};
.baedeker/xcm-unique.jsonnetdiffbeforeafterboth--- a/.baedeker/xcm-unique.jsonnet
+++ b/.baedeker/xcm-unique.jsonnet
@@ -83,7 +83,7 @@
wantedKeys: 'para-nimbus',
legacyRpc: true,
},
- for name in ['alice', 'bob']
+ for name in ['alith', 'baltathar']
},
};
tests/src/xcm/xcmQuartz.test.tsdiffbeforeafterboth468 // 1.919176000000000000 QTZ received (you can check Karura's chain state in the corresponding block)468 // 1.919176000000000000 QTZ received (you can check Karura's chain state in the corresponding block)469 const expectedKaruraIncomeFee = 2000000000000000000n - 1919176000000000000n;469 const expectedKaruraIncomeFee = 2000000000000000000n - 1919176000000000000n;470471 const KARURA_BACKWARD_TRANSFER_AMOUNT = TRANSFER_AMOUNT - expectedKaruraIncomeFee;470 const karuraEps = 8n * 10n ** 16n;471472 let karuraBackwardTransferAmount: bigint;472473473 before(async () => {474 before(async () => {474 await usingPlaygrounds(async (helper, privateKey) => {475 await usingPlaygrounds(async (helper, privateKey) => {569570570 const karFees = balanceKaruraTokenInit - balanceKaruraTokenMiddle;571 const karFees = balanceKaruraTokenInit - balanceKaruraTokenMiddle;571 const qtzIncomeTransfer = balanceQuartzForeignTokenMiddle - balanceQuartzForeignTokenInit;572 const qtzIncomeTransfer = balanceQuartzForeignTokenMiddle - balanceQuartzForeignTokenInit;573 karuraBackwardTransferAmount = qtzIncomeTransfer;574572 const karUnqFees = TRANSFER_AMOUNT - qtzIncomeTransfer;575 const karUnqFees = TRANSFER_AMOUNT - qtzIncomeTransfer;573576582 console.log('[Quartz -> Karura] income %s QTZ', helper.util.bigIntToDecimals(qtzIncomeTransfer));585 console.log('[Quartz -> Karura] income %s QTZ', helper.util.bigIntToDecimals(qtzIncomeTransfer));583 expect(karFees == 0n).to.be.true;586 expect(karFees == 0n).to.be.true;587588 const bigintAbs = (n: bigint) => (n < 0n) ? -n : n;589584 expect(590 expect(585 karUnqFees == expectedKaruraIncomeFee,591 bigintAbs(karUnqFees - expectedKaruraIncomeFee) < karuraEps,586 'Karura took different income fee, check the Karura foreign asset config',592 'Karura took different income fee, check the Karura foreign asset config',587 ).to.be.true;593 ).to.be.true;588 });594 });611 ForeignAsset: 0,617 ForeignAsset: 0,612 };618 };613619614 await helper.xTokens.transfer(randomAccount, id, KARURA_BACKWARD_TRANSFER_AMOUNT, destination, 'Unlimited');620 await helper.xTokens.transfer(randomAccount, id, karuraBackwardTransferAmount, destination, 'Unlimited');615 balanceKaruraTokenFinal = await helper.balance.getSubstrate(randomAccount.address);621 balanceKaruraTokenFinal = await helper.balance.getSubstrate(randomAccount.address);616 balanceQuartzForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);622 balanceQuartzForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);617623625 console.log('[Karura -> Quartz] outcome %s QTZ', helper.util.bigIntToDecimals(qtzOutcomeTransfer));631 console.log('[Karura -> Quartz] outcome %s QTZ', helper.util.bigIntToDecimals(qtzOutcomeTransfer));626632627 expect(karFees > 0, 'Negative fees KAR, looks like nothing was transferred').to.be.true;633 expect(karFees > 0, 'Negative fees KAR, looks like nothing was transferred').to.be.true;628 expect(qtzOutcomeTransfer == KARURA_BACKWARD_TRANSFER_AMOUNT).to.be.true;634 expect(qtzOutcomeTransfer == karuraBackwardTransferAmount).to.be.true;629 });635 });630636631 await helper.wait.newBlocks(3);637 await helper.wait.newBlocks(3);636642637 console.log('[Karura -> Quartz] actually delivered %s QTZ', helper.util.bigIntToDecimals(actuallyDelivered));643 console.log('[Karura -> Quartz] actually delivered %s QTZ', helper.util.bigIntToDecimals(actuallyDelivered));638644639 const qtzFees = KARURA_BACKWARD_TRANSFER_AMOUNT - actuallyDelivered;645 const qtzFees = karuraBackwardTransferAmount - actuallyDelivered;640 console.log('[Karura -> Quartz] transaction fees on Quartz: %s QTZ', helper.util.bigIntToDecimals(qtzFees));646 console.log('[Karura -> Quartz] transaction fees on Quartz: %s QTZ', helper.util.bigIntToDecimals(qtzFees));641 expect(qtzFees == 0n).to.be.true;647 expect(qtzFees == 0n).to.be.true;642 });648 });673 );679 );674680675 let maliciousXcmProgramSent: any;681 let maliciousXcmProgramSent: any;676 const maxWaitBlocks = 3;682 const maxWaitBlocks = 5;677683678 // Try to trick Quartz684 // Try to trick Quartz679 await usingKaruraPlaygrounds(karuraUrl, async (helper) => {685 await usingKaruraPlaygrounds(karuraUrl, async (helper) => {682 maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent);688 maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent);683 });689 });684690685 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash691 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => {692 return event.messageHash == maliciousXcmProgramSent.messageHash686 && event.outcome().isFailedToTransactAsset);693 && event.outcome.isFailedToTransactAsset;694 });687695688 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);696 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);689 expect(targetAccountBalance).to.be.equal(0n);697 expect(targetAccountBalance).to.be.equal(0n);764 });772 });765773766 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash774 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash767 && event.outcome().isUntrustedReserveLocation);775 && event.outcome.isUntrustedReserveLocation);768776769 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);777 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);770 expect(accountBalance).to.be.equal(0n);778 expect(accountBalance).to.be.equal(0n);777 });785 });778786779 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash787 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash780 && event.outcome().isUntrustedReserveLocation);788 && event.outcome.isUntrustedReserveLocation);781789782 accountBalance = await helper.balance.getSubstrate(targetAccount.address);790 accountBalance = await helper.balance.getSubstrate(targetAccount.address);783 expect(accountBalance).to.be.equal(0n);791 expect(accountBalance).to.be.equal(0n);853861854 const expectFailedToTransact = async (helper: DevUniqueHelper, messageSent: any) => {862 const expectFailedToTransact = async (helper: DevUniqueHelper, messageSent: any) => {855 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash863 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash856 && event.outcome().isFailedToTransactAsset);864 && event.outcome.isFailedToTransactAsset);857 };865 };858866859 itSub('Quartz rejects KAR tokens from Karura', async ({helper}) => {867 itSub('Quartz rejects KAR tokens from Karura', async ({helper}) => {1165 });1173 });116611741167 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash1175 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash1168 && event.outcome().isFailedToTransactAsset);1176 && event.outcome.isFailedToTransactAsset);116911771170 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);1178 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);1171 expect(targetAccountBalance).to.be.equal(0n);1179 expect(targetAccountBalance).to.be.equal(0n);1254 });1262 });125512631256 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash1264 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash1257 && event.outcome().isUntrustedReserveLocation);1265 && event.outcome.isUntrustedReserveLocation);125812661259 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);1267 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);1260 expect(accountBalance).to.be.equal(0n);1268 expect(accountBalance).to.be.equal(0n);1271 });1279 });127212801273 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash1281 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash1274 && event.outcome().isUntrustedReserveLocation);1282 && event.outcome.isUntrustedReserveLocation);127512831276 accountBalance = await helper.balance.getSubstrate(targetAccount.address);1284 accountBalance = await helper.balance.getSubstrate(targetAccount.address);1277 expect(accountBalance).to.be.equal(0n);1285 expect(accountBalance).to.be.equal(0n);1531 });1539 });153215401533 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash1541 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash1534 && event.outcome().isFailedToTransactAsset);1542 && event.outcome.isFailedToTransactAsset);153515431536 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);1544 targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);1537 expect(targetAccountBalance).to.be.equal(0n);1545 expect(targetAccountBalance).to.be.equal(0n);1612 });1620 });161316211614 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash1622 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash1615 && event.outcome().isUntrustedReserveLocation);1623 && event.outcome.isUntrustedReserveLocation);161616241617 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);1625 let accountBalance = await helper.balance.getSubstrate(targetAccount.address);1618 expect(accountBalance).to.be.equal(0n);1626 expect(accountBalance).to.be.equal(0n);1625 });1633 });162616341627 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash1635 await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash1628 && event.outcome().isUntrustedReserveLocation);1636 && event.outcome.isUntrustedReserveLocation);162916371630 accountBalance = await helper.balance.getSubstrate(targetAccount.address);1638 accountBalance = await helper.balance.getSubstrate(targetAccount.address);1631 expect(accountBalance).to.be.equal(0n);1639 expect(accountBalance).to.be.equal(0n);tests/src/xcm/xcmUnique.test.tsdiffbeforeafterboth--- a/tests/src/xcm/xcmUnique.test.ts
+++ b/tests/src/xcm/xcmUnique.test.ts
@@ -84,9 +84,8 @@
await usingRelayPlaygrounds(relayUrl, async (helper) => {
// Fund accounts on Statemint
- const relayXcmVersion = 2;
- await helper.xcm.teleportNativeAsset(alice, STATEMINT_CHAIN, alice.addressRaw, FUNDING_AMOUNT, relayXcmVersion);
- await helper.xcm.teleportNativeAsset(alice, STATEMINT_CHAIN, bob.addressRaw, FUNDING_AMOUNT, relayXcmVersion);
+ await helper.xcm.teleportNativeAsset(alice, STATEMINT_CHAIN, alice.addressRaw, FUNDING_AMOUNT);
+ await helper.xcm.teleportNativeAsset(alice, STATEMINT_CHAIN, bob.addressRaw, FUNDING_AMOUNT);
});
await usingStatemintPlaygrounds(statemintUrl, async (helper) => {
@@ -154,7 +153,7 @@
// (fee for USDT XCM are paid in relay tokens)
await usingRelayPlaygrounds(relayUrl, async (helper) => {
const destination = {
- V1: {
+ V2: {
parents: 0,
interior: {X1: {
Parachain: UNIQUE_CHAIN,
@@ -163,7 +162,7 @@
}};
const beneficiary = {
- V1: {
+ V2: {
parents: 0,
interior: {X1: {
AccountId32: {
@@ -175,7 +174,7 @@
};
const assets = {
- V1: [
+ V2: [
{
id: {
Concrete: {
@@ -200,7 +199,7 @@
itSub('Should connect and send USDT from Statemint to Unique', async ({helper}) => {
await usingStatemintPlaygrounds(statemintUrl, async (helper) => {
const dest = {
- V1: {
+ V2: {
parents: 1,
interior: {X1: {
Parachain: UNIQUE_CHAIN,
@@ -209,7 +208,7 @@
}};
const beneficiary = {
- V1: {
+ V2: {
parents: 0,
interior: {X1: {
AccountId32: {
@@ -221,7 +220,7 @@
};
const assets = {
- V1: [
+ V2: [
{
id: {
Concrete: {
@@ -341,7 +340,7 @@
await usingRelayPlaygrounds(relayUrl, async (helper) => {
const destination = {
- V1: {
+ V2: {
parents: 0,
interior: {X1: {
Parachain: UNIQUE_CHAIN,
@@ -350,7 +349,7 @@
}};
const beneficiary = {
- V1: {
+ V2: {
parents: 0,
interior: {X1: {
AccountId32: {
@@ -362,7 +361,7 @@
};
const assets = {
- V1: [
+ V2: [
{
id: {
Concrete: {
@@ -468,8 +467,9 @@
// 2 UNQ sent https://unique.subscan.io/xcm_message/polkadot-bad0b68847e2398af25d482e9ee6f9c1f9ec2a48
// 1.898970000000000000 UNQ received (you can check Acala's chain state in the corresponding block)
const expectedAcalaIncomeFee = 2000000000000000000n - 1898970000000000000n;
+ const acalaEps = 8n * 10n ** 16n;
- const ACALA_BACKWARD_TRANSFER_AMOUNT = TRANSFER_AMOUNT - expectedAcalaIncomeFee;
+ let acalaBackwardTransferAmount: bigint;
before(async () => {
await usingPlaygrounds(async (helper, privateKey) => {
@@ -482,7 +482,7 @@
await usingAcalaPlaygrounds(acalaUrl, async (helper) => {
const destination = {
- V1: {
+ V2: {
parents: 1,
interior: {
X1: {
@@ -571,6 +571,8 @@
const acaFees = balanceAcalaTokenInit - balanceAcalaTokenMiddle;
const unqIncomeTransfer = balanceUniqueForeignTokenMiddle - balanceUniqueForeignTokenInit;
+ acalaBackwardTransferAmount = unqIncomeTransfer;
+
const acaUnqFees = TRANSFER_AMOUNT - unqIncomeTransfer;
console.log(
@@ -583,8 +585,11 @@
);
console.log('[Unique -> Acala] income %s UNQ', helper.util.bigIntToDecimals(unqIncomeTransfer));
expect(acaFees == 0n).to.be.true;
+
+ const bigintAbs = (n: bigint) => (n < 0n) ? -n : n;
+
expect(
- acaUnqFees == expectedAcalaIncomeFee,
+ bigintAbs(acaUnqFees - expectedAcalaIncomeFee) < acalaEps,
'Acala took different income fee, check the Acala foreign asset config',
).to.be.true;
});
@@ -593,7 +598,7 @@
itSub('Should connect to Acala and send UNQ back', async ({helper}) => {
await usingAcalaPlaygrounds(acalaUrl, async (helper) => {
const destination = {
- V1: {
+ V2: {
parents: 1,
interior: {
X2: [
@@ -613,7 +618,7 @@
ForeignAsset: 0,
};
- await helper.xTokens.transfer(randomAccount, id, ACALA_BACKWARD_TRANSFER_AMOUNT, destination, 'Unlimited');
+ await helper.xTokens.transfer(randomAccount, id, acalaBackwardTransferAmount, destination, 'Unlimited');
balanceAcalaTokenFinal = await helper.balance.getSubstrate(randomAccount.address);
balanceUniqueForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);
@@ -627,7 +632,7 @@
console.log('[Acala -> Unique] outcome %s UNQ', helper.util.bigIntToDecimals(unqOutcomeTransfer));
expect(acaFees > 0, 'Negative fees ACA, looks like nothing was transferred').to.be.true;
- expect(unqOutcomeTransfer == ACALA_BACKWARD_TRANSFER_AMOUNT).to.be.true;
+ expect(unqOutcomeTransfer == acalaBackwardTransferAmount).to.be.true;
});
await helper.wait.newBlocks(3);
@@ -638,7 +643,7 @@
console.log('[Acala -> Unique] actually delivered %s UNQ', helper.util.bigIntToDecimals(actuallyDelivered));
- const unqFees = ACALA_BACKWARD_TRANSFER_AMOUNT - actuallyDelivered;
+ const unqFees = acalaBackwardTransferAmount - actuallyDelivered;
console.log('[Acala -> Unique] transaction fees on Unique: %s UNQ', helper.util.bigIntToDecimals(unqFees));
expect(unqFees == 0n).to.be.true;
});
@@ -655,7 +660,7 @@
const [targetAccount] = await helper.arrange.createAccounts([targetAccountBalance], alice);
const uniqueMultilocation = {
- V1: {
+ V2: {
parents: 1,
interior: {
X1: {Parachain: UNIQUE_CHAIN},
@@ -685,7 +690,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash
- && event.outcome().isFailedToTransactAsset);
+ && event.outcome.isFailedToTransactAsset);
targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(targetAccountBalance).to.be.equal(0n);
@@ -718,7 +723,7 @@
const [targetAccount] = await helper.arrange.createAccounts([0n], alice);
const uniqueMultilocation = {
- V1: {
+ V2: {
parents: 1,
interior: {
X1: {
@@ -766,7 +771,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
let accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);
@@ -779,7 +784,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);
@@ -845,7 +850,7 @@
};
uniqueCombinedMultilocationAcala = {
- V1: {
+ V2: {
parents: 1,
interior: {
X2: [uniqueParachainJunction, uniqueAccountJunction],
@@ -865,7 +870,7 @@
const expectFailedToTransact = async (helper: DevUniqueHelper, messageSent: any) => {
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash
- && event.outcome().isFailedToTransactAsset);
+ && event.outcome.isFailedToTransactAsset);
};
itSub('Unique rejects ACA tokens from Acala', async ({helper}) => {
@@ -1178,7 +1183,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash
- && event.outcome().isFailedToTransactAsset);
+ && event.outcome.isFailedToTransactAsset);
targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(targetAccountBalance).to.be.equal(0n);
@@ -1267,7 +1272,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
let accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);
@@ -1284,7 +1289,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);
@@ -1543,7 +1548,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash
- && event.outcome().isFailedToTransactAsset);
+ && event.outcome.isFailedToTransactAsset);
targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(targetAccountBalance).to.be.equal(0n);
@@ -1624,7 +1629,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
let accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);
@@ -1637,7 +1642,7 @@
});
await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash
- && event.outcome().isUntrustedReserveLocation);
+ && event.outcome.isUntrustedReserveLocation);
accountBalance = await helper.balance.getSubstrate(targetAccount.address);
expect(accountBalance).to.be.equal(0n);