git.delta.rocks / unique-network / refs/commits / 418d2d51e0ff

difftreelog

fix acala income fees

Daniel Shiposha2023-02-21parent: #f22a461.patch.diff
in: master

1 file changed

modifiedtests/src/xcm/xcmUnique.test.tsdiffbeforeafterboth
441 });441 });
442});442});
443443
444describeXCM('[XCM] Integration test: Exchanging tokens with Acala', () => {444describe.only('[XCM] Integration test: Exchanging tokens with Acala', () => {
445 let alice: IKeyringPair;445 let alice: IKeyringPair;
446 let randomAccount: IKeyringPair;446 let randomAccount: IKeyringPair;
447447
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 coreesponding 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) => {
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 });