git.delta.rocks / unique-network / refs/commits / 8c90034b9085

difftreelog

Merge pull request #889 from UniqueNetwork/fix/acala-xcm-test-config

Yaroslav Bolyukin2023-02-22parents: #551e0d6 #19aceb0.patch.diff
in: master

2 files changed

modifiedtests/src/xcm/xcmQuartz.test.tsdiffbeforeafterboth
--- a/tests/src/xcm/xcmQuartz.test.ts
+++ b/tests/src/xcm/xcmQuartz.test.ts
@@ -455,6 +455,13 @@
   let balanceQuartzForeignTokenMiddle: bigint;
   let balanceQuartzForeignTokenFinal: bigint;
 
+  // computed by a test transfer from prod Quartz to prod Karura.
+  // 2 QTZ sent https://quartz.subscan.io/xcm_message/kusama-f60d821b049f8835a3005ce7102285006f5b61e9
+  // 1.919176000000000000 QTZ received (you can check Karura's chain state in the corresponding block)
+  const expectedKaruraIncomeFee = 2000000000000000000n - 1919176000000000000n;
+
+  const KARURA_BACKWARD_TRANSFER_AMOUNT = TRANSFER_AMOUNT - expectedKaruraIncomeFee;
+
   before(async () => {
     await usingPlaygrounds(async (helper, privateKey) => {
       alice = await privateKey('//Alice');
@@ -474,10 +481,10 @@
       };
 
       const metadata = {
-        name: 'QTZ',
+        name: 'Quartz',
         symbol: 'QTZ',
         decimals: 18,
-        minimalBalance: 1n,
+        minimalBalance: 1000000000000000000n,
       };
 
       await helper.getSudo().assetRegistry.registerForeignAsset(alice, destination, metadata);
@@ -545,19 +552,28 @@
 
     await usingKaruraPlaygrounds(karuraUrl, async (helper) => {
       await helper.wait.newBlocks(3);
+
       balanceQuartzForeignTokenMiddle = await helper.tokens.accounts(randomAccount.address, {ForeignAsset: 0});
       balanceKaruraTokenMiddle = await helper.balance.getSubstrate(randomAccount.address);
 
       const karFees = balanceKaruraTokenInit - balanceKaruraTokenMiddle;
       const qtzIncomeTransfer = balanceQuartzForeignTokenMiddle - balanceQuartzForeignTokenInit;
+      const karUnqFees = TRANSFER_AMOUNT - qtzIncomeTransfer;
 
       console.log(
         '[Quartz -> Karura] transaction fees on Karura: %s KAR',
         helper.util.bigIntToDecimals(karFees, KARURA_DECIMALS),
       );
+      console.log(
+        '[Quartz -> Karura] transaction fees on Karura: %s QTZ',
+        helper.util.bigIntToDecimals(karUnqFees),
+      );
       console.log('[Quartz -> Karura] income %s QTZ', helper.util.bigIntToDecimals(qtzIncomeTransfer));
       expect(karFees == 0n).to.be.true;
-      expect(qtzIncomeTransfer == TRANSFER_AMOUNT).to.be.true;
+      expect(
+        karUnqFees == expectedKaruraIncomeFee,
+        'Karura took different income fee, check the Karura foreign asset config',
+      ).to.be.true;
     });
   });
 
@@ -584,7 +600,7 @@
         ForeignAsset: 0,
       };
 
-      await helper.xTokens.transfer(randomAccount, id, TRANSFER_AMOUNT, destination, 'Unlimited');
+      await helper.xTokens.transfer(randomAccount, id, KARURA_BACKWARD_TRANSFER_AMOUNT, destination, 'Unlimited');
       balanceKaruraTokenFinal = await helper.balance.getSubstrate(randomAccount.address);
       balanceQuartzForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);
 
@@ -598,7 +614,7 @@
       console.log('[Karura -> Quartz] outcome %s QTZ', helper.util.bigIntToDecimals(qtzOutcomeTransfer));
 
       expect(karFees > 0, 'Negative fees KAR, looks like nothing was transferred').to.be.true;
-      expect(qtzOutcomeTransfer == TRANSFER_AMOUNT).to.be.true;
+      expect(qtzOutcomeTransfer == KARURA_BACKWARD_TRANSFER_AMOUNT).to.be.true;
     });
 
     await helper.wait.newBlocks(3);
@@ -609,7 +625,7 @@
 
     console.log('[Karura -> Quartz] actually delivered %s QTZ', helper.util.bigIntToDecimals(actuallyDelivered));
 
-    const qtzFees = TRANSFER_AMOUNT - actuallyDelivered;
+    const qtzFees = KARURA_BACKWARD_TRANSFER_AMOUNT - actuallyDelivered;
     console.log('[Karura -> Quartz] transaction fees on Quartz: %s QTZ', helper.util.bigIntToDecimals(qtzFees));
     expect(qtzFees == 0n).to.be.true;
   });
modifiedtests/src/xcm/xcmUnique.test.tsdiffbeforeafterboth
455 let balanceUniqueForeignTokenMiddle: bigint;455 let balanceUniqueForeignTokenMiddle: bigint;
456 let balanceUniqueForeignTokenFinal: bigint;456 let balanceUniqueForeignTokenFinal: bigint;
457
458 // computed by a test transfer from prod Unique to prod Acala.
459 // 2 UNQ sent https://unique.subscan.io/xcm_message/polkadot-bad0b68847e2398af25d482e9ee6f9c1f9ec2a48
460 // 1.898970000000000000 UNQ received (you can check Acala's chain state in the corresponding block)
461 const expectedAcalaIncomeFee = 2000000000000000000n - 1898970000000000000n;
462
463 const ACALA_BACKWARD_TRANSFER_AMOUNT = TRANSFER_AMOUNT - expectedAcalaIncomeFee;
457464
458 before(async () => {465 before(async () => {
459 await usingPlaygrounds(async (helper, privateKey) => {466 await usingPlaygrounds(async (helper, privateKey) => {
474 };481 };
475482
476 const metadata = {483 const metadata = {
477 name: 'UNQ',484 name: 'Unique Network',
478 symbol: 'UNQ',485 symbol: 'UNQ',
479 decimals: 18,486 decimals: 18,
480 minimalBalance: 1n,487 minimalBalance: 1250000000000000000n,
481 };488 };
482489
483 await helper.getSudo().assetRegistry.registerForeignAsset(alice, destination, metadata);490 await helper.getSudo().assetRegistry.registerForeignAsset(alice, destination, metadata);
552559
553 const acaFees = balanceAcalaTokenInit - balanceAcalaTokenMiddle;560 const acaFees = balanceAcalaTokenInit - balanceAcalaTokenMiddle;
554 const unqIncomeTransfer = balanceUniqueForeignTokenMiddle - balanceUniqueForeignTokenInit;561 const unqIncomeTransfer = balanceUniqueForeignTokenMiddle - balanceUniqueForeignTokenInit;
562 const acaUnqFees = TRANSFER_AMOUNT - unqIncomeTransfer;
555563
556 console.log(564 console.log(
557 '[Unique -> Acala] transaction fees on Acala: %s ACA',565 '[Unique -> Acala] transaction fees on Acala: %s ACA',
558 helper.util.bigIntToDecimals(acaFees, ACALA_DECIMALS),566 helper.util.bigIntToDecimals(acaFees, ACALA_DECIMALS),
559 );567 );
568 console.log(
569 '[Unique -> Acala] transaction fees on Acala: %s UNQ',
570 helper.util.bigIntToDecimals(acaUnqFees),
571 );
560 console.log('[Unique -> Acala] income %s UNQ', helper.util.bigIntToDecimals(unqIncomeTransfer));572 console.log('[Unique -> Acala] income %s UNQ', helper.util.bigIntToDecimals(unqIncomeTransfer));
561 expect(acaFees == 0n).to.be.true;573 expect(acaFees == 0n).to.be.true;
562 expect(unqIncomeTransfer == TRANSFER_AMOUNT).to.be.true;574 expect(
575 acaUnqFees == expectedAcalaIncomeFee,
576 'Acala took different income fee, check the Acala foreign asset config',
577 ).to.be.true;
563 });578 });
564 });579 });
586 ForeignAsset: 0,601 ForeignAsset: 0,
587 };602 };
588603
589 await helper.xTokens.transfer(randomAccount, id, TRANSFER_AMOUNT, destination, 'Unlimited');604 await helper.xTokens.transfer(randomAccount, id, ACALA_BACKWARD_TRANSFER_AMOUNT, destination, 'Unlimited');
590 balanceAcalaTokenFinal = await helper.balance.getSubstrate(randomAccount.address);605 balanceAcalaTokenFinal = await helper.balance.getSubstrate(randomAccount.address);
591 balanceUniqueForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);606 balanceUniqueForeignTokenFinal = await helper.tokens.accounts(randomAccount.address, id);
592607
600 console.log('[Acala -> Unique] outcome %s UNQ', helper.util.bigIntToDecimals(unqOutcomeTransfer));615 console.log('[Acala -> Unique] outcome %s UNQ', helper.util.bigIntToDecimals(unqOutcomeTransfer));
601616
602 expect(acaFees > 0, 'Negative fees ACA, looks like nothing was transferred').to.be.true;617 expect(acaFees > 0, 'Negative fees ACA, looks like nothing was transferred').to.be.true;
603 expect(unqOutcomeTransfer == TRANSFER_AMOUNT).to.be.true;618 expect(unqOutcomeTransfer == ACALA_BACKWARD_TRANSFER_AMOUNT).to.be.true;
604 });619 });
605620
606 await helper.wait.newBlocks(3);621 await helper.wait.newBlocks(3);
611626
612 console.log('[Acala -> Unique] actually delivered %s UNQ', helper.util.bigIntToDecimals(actuallyDelivered));627 console.log('[Acala -> Unique] actually delivered %s UNQ', helper.util.bigIntToDecimals(actuallyDelivered));
613628
614 const unqFees = TRANSFER_AMOUNT - actuallyDelivered;629 const unqFees = ACALA_BACKWARD_TRANSFER_AMOUNT - actuallyDelivered;
615 console.log('[Acala -> Unique] transaction fees on Unique: %s UNQ', helper.util.bigIntToDecimals(unqFees));630 console.log('[Acala -> Unique] transaction fees on Unique: %s UNQ', helper.util.bigIntToDecimals(unqFees));
616 expect(unqFees == 0n).to.be.true;631 expect(unqFees == 0n).to.be.true;
617 });632 });