difftreelog
test fix integration
in: master
6 files changed
tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -516,7 +516,7 @@
const owner = await helper.eth.createAccountWithBalance(donor);
const sponsor = await helper.eth.createAccountWithBalance(donor);
const user = await helper.eth.createAccountWithBalance(donor);
- const helpers = await helper.ethNativeContract.contractHelpers(owner);
+ const helpers = helper.ethNativeContract.contractHelpers(owner);
const testContract = await deployTestContract(helper, owner);
@@ -531,10 +531,10 @@
await helpers.methods.setSponsoringFeeLimit(testContract.options.address, 2_000_000n * gasPrice).send();
const originalUserBalance = await helper.balance.getEthereum(user);
- await testContract.methods.test(100).send({from: user, gas: 2_000_000});
+ await testContract.methods.test(100).send({from: user, gas: 2_000_000, maxFeePerGas: gasPrice.toString()});
expect(await helper.balance.getEthereum(user)).to.be.equal(originalUserBalance);
- await testContract.methods.test(100).send({from: user, gas: 2_100_000});
+ await testContract.methods.test(100).send({from: user, gas: 2_100_000, maxFeePerGas: gasPrice.toString()});
expect(await helper.balance.getEthereum(user)).to.not.be.equal(originalUserBalance);
});
tests/src/eth/ethFeesAreCorrect.test.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://witww.gnu.org/licenses/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {itEth, usingEthPlaygrounds, expect} from './util';1920describe('Eth fees are correct', () => {21 let donor: IKeyringPair;22 let minter: IKeyringPair;23 let alice: IKeyringPair;2425 before(async () => {26 await usingEthPlaygrounds(async (helper, privateKey) => {27 donor = await privateKey({url: import.meta.url});28 [minter, alice] = await helper.arrange.createAccounts([100n, 200n], donor);29 });30 });313233 itEth('web3 fees are the same as evm.call fees', async ({helper}) => {34 const collection = await helper.nft.mintCollection(minter, {});3536 const owner = await helper.eth.createAccountWithBalance(donor);37 const receiver = await helper.eth.createAccountWithBalance(donor);38 const aliceEth = helper.address.substrateToEth(alice.address);3940 const {tokenId: tokenA} = await collection.mintToken(minter, {Ethereum: owner});41 const {tokenId: tokenB} = await collection.mintToken(minter, {Ethereum: aliceEth});4243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);4546 const balanceBeforeWeb3Transfer = await helper.balance.getEthereum(owner);47 await contract.methods.transfer(receiver, tokenA).send({from: owner});48 const balanceAfterWeb3Transfer = await helper.balance.getEthereum(owner);49 const web3Diff = balanceBeforeWeb3Transfer - balanceAfterWeb3Transfer;5051 const encodedCall = contract.methods.transfer(receiver, tokenB)52 .encodeABI();5354 const balanceBeforeEvmCall = await helper.balance.getSubstrate(alice.address);55 await helper.eth.sendEVM(56 alice,57 collectionAddress,58 encodedCall,59 '0',60 );61 const balanceAfterEvmCall = await helper.balance.getSubstrate(alice.address);62 const evmCallDiff = balanceBeforeEvmCall - balanceAfterEvmCall;6364 expect(web3Diff).to.be.equal(evmCallDiff);65 });66});1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://witww.gnu.org/licenses/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {itEth, usingEthPlaygrounds, expect} from './util';1920describe('Eth fees are correct', () => {21 let donor: IKeyringPair;22 let minter: IKeyringPair;23 let alice: IKeyringPair;2425 before(async () => {26 await usingEthPlaygrounds(async (helper, privateKey) => {27 donor = await privateKey({url: import.meta.url});28 [minter, alice] = await helper.arrange.createAccounts([100n, 200n], donor);29 });30 });313233 itEth('web3 fees are the same as evm.call fees', async ({helper}) => {34 const collection = await helper.nft.mintCollection(minter, {});3536 const owner = await helper.eth.createAccountWithBalance(donor);37 const receiver = await helper.eth.createAccountWithBalance(donor);38 const aliceEth = helper.address.substrateToEth(alice.address);3940 const {tokenId: tokenA} = await collection.mintToken(minter, {Ethereum: owner});41 const {tokenId: tokenB} = await collection.mintToken(minter, {Ethereum: aliceEth});4243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);4546 const balanceBeforeWeb3Transfer = await helper.balance.getEthereum(owner);47 await contract.methods.transfer(receiver, tokenA).send({from: owner, maxFeePerGas: (await helper.eth.getGasPrice()).toString()});48 const balanceAfterWeb3Transfer = await helper.balance.getEthereum(owner);49 const web3Diff = balanceBeforeWeb3Transfer - balanceAfterWeb3Transfer;5051 const encodedCall = contract.methods.transfer(receiver, tokenB)52 .encodeABI();5354 const balanceBeforeEvmCall = await helper.balance.getSubstrate(alice.address);55 await helper.eth.sendEVM(56 alice,57 collectionAddress,58 encodedCall,59 '0',60 );61 const balanceAfterEvmCall = await helper.balance.getSubstrate(alice.address);62 const evmCallDiff = balanceBeforeEvmCall - balanceAfterEvmCall;6364 expect(web3Diff).to.be.equal(evmCallDiff);65 });66});tests/src/eth/reFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/reFungible.test.ts
+++ b/tests/src/eth/reFungible.test.ts
@@ -674,7 +674,7 @@
requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);
donor = await privateKey({url: import.meta.url});
- [alice] = await helper.arrange.createAccounts([20n], donor);
+ [alice] = await helper.arrange.createAccounts([1000n], donor);
});
});
@@ -699,7 +699,7 @@
},
);
- const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'rft', caller);
+ const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'rft', caller);
const name = await contract.methods.name().call();
expect(name).to.equal('Leviathan');
});
tests/src/maintenance.seqtest.tsdiffbeforeafterboth--- a/tests/src/maintenance.seqtest.ts
+++ b/tests/src/maintenance.seqtest.ts
@@ -342,19 +342,19 @@
itSub('Does not allow preimage execution with non-root', async ({helper}) => {
await expect(helper.executeExtrinsic(bob, 'api.tx.maintenance.executePreimage', [
preimageHashes[0], {refTime: 10000000000, proofSize: 10000},
- ])).to.be.rejectedWith(/BadOrigin/);
+ ])).to.be.rejectedWith(/^Misc: BadOrigin$/);
});
itSub('Does not allow execution of non-existent preimages', async ({helper}) => {
await expect(helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.executePreimage', [
'0x1010101010101010101010101010101010101010101010101010101010101010', {refTime: 10000000000, proofSize: 10000},
- ])).to.be.rejectedWith(/Unavailable/);
+ ])).to.be.rejectedWith(/^Misc: Unavailable$/);
});
itSub('Does not allow preimage execution with less than minimum weights', async ({helper}) => {
await expect(helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.executePreimage', [
preimageHashes[0], {refTime: 1000, proofSize: 100},
- ])).to.be.rejectedWith(/Exhausted/);
+ ])).to.be.rejectedWith(/^Misc: Exhausted$/);
});
after(async function() {
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -24,6 +24,7 @@
'timestamp',
'transactionpayment',
'treasury',
+ 'statetriemigration',
'structure',
'system',
'vesting',
tests/src/util/playgrounds/unique.tsdiffbeforeafterboth--- a/tests/src/util/playgrounds/unique.ts
+++ b/tests/src/util/playgrounds/unique.ts
@@ -591,8 +591,11 @@
const errorMeta = dispatchError.registry.findMetaError(modErr);
moduleError = `${errorMeta.section}.${errorMeta.name}`;
+ } else if (dispatchError.isToken) {
+ moduleError = `Token: ${dispatchError.asToken}`;
} else {
- moduleError = dispatchError.toHuman();
+ // May be [object Object] in case of unhandled non-unit enum
+ moduleError = `Misc: ${dispatchError.toHuman()}`;
}
} else {
this.logger.log(result, this.logger.level.ERROR);
@@ -3480,6 +3483,8 @@
} else if (data.asErr.isToken) {
throw new Error(`Token: ${data.asErr.asToken}`);
}
+ // May be [object Object] in case of unhandled non-unit enum
+ throw new Error(`Misc: ${data.asErr.toHuman()}`);
}
return result;
}