difftreelog
fix Small fixes.
in: master
6 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5552,7 +5552,7 @@
[[package]]
name = "pallet-common"
-version = "0.1.6"
+version = "0.1.7"
dependencies = [
"ethereum",
"evm-coder",
pallets/common/CHANGELOG.mddiffbeforeafterboth--- a/pallets/common/CHANGELOG.md
+++ b/pallets/common/CHANGELOG.md
@@ -2,7 +2,7 @@
All notable changes to this project will be documented in this file.
-## [0.2.0] - 2022-08-19
+## [0.1.7] - 2022-08-19
### Added
pallets/common/Cargo.tomldiffbeforeafterboth--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pallet-common"
-version = "0.1.6"
+version = "0.1.7"
license = "GPLv3"
edition = "2021"
tests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth1import {addToAllowListExpectSuccess, confirmSponsorshipExpectSuccess, createCollectionExpectSuccess, enablePublicMintingExpectSuccess, getDetailedCollectionInfo, setCollectionSponsorExpectSuccess} from '../util/helpers';2import {itWeb3, createEthAccount, collectionIdToAddress, GAS_ARGS, normalizeEvents, createEthAccountWithBalance, evmCollectionHelpers, getCollectionAddressFromResult, evmCollection, ethBalanceViaSub} from './util/helpers';3import nonFungibleAbi from './nonFungibleAbi.json';4import {expect} from 'chai';5import { evmToAddress } from '@polkadot/util-crypto';67describe('evm collection sponsoring', () => {8 itWeb3('sponsors mint transactions', async ({web3, privateKeyWrapper}) => {9 const alice = privateKeyWrapper('//Alice');1011 const collection = await createCollectionExpectSuccess();12 await setCollectionSponsorExpectSuccess(collection, alice.address);13 await confirmSponsorshipExpectSuccess(collection);1415 const minter = createEthAccount(web3);16 expect(await web3.eth.getBalance(minter)).to.equal('0');1718 const address = collectionIdToAddress(collection);19 const contract = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collection), {from: minter, ...GAS_ARGS});2021 await enablePublicMintingExpectSuccess(alice, collection);22 await addToAllowListExpectSuccess(alice, collection, {Ethereum: minter});2324 const nextTokenId = await contract.methods.nextTokenId().call();25 expect(nextTokenId).to.equal('1');26 const result = await contract.methods.mint(minter, nextTokenId).send();27 const events = normalizeEvents(result.events);28 expect(events).to.be.deep.equal([29 {30 address,31 event: 'Transfer',32 args: {33 from: '0x0000000000000000000000000000000000000000',34 to: minter,35 tokenId: nextTokenId,36 },37 },38 ]);39 });4041 itWeb3('Sponsoring collection from evm address via access list', async ({api, web3, privateKeyWrapper}) => {42 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);43 const collectionHelpers = evmCollectionHelpers(web3, owner);44 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();45 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);46 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);47 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);48 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send({from: owner});49 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;50 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;51 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;52 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));53 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');5455 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});56 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;57 expect(collectionSub.sponsorship.isConfirmed).to.be.true;58 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));5960 const user = createEthAccount(web3);61 const nextTokenId = await collectionEvm.methods.nextTokenId().call();62 expect(nextTokenId).to.be.equal('1');6364 const oldPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();65 expect(oldPermissions.mintMode).to.be.false;66 expect(oldPermissions.access).to.be.equal('Normal');6768 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});69 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});70 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});7172 const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();73 expect(newPermissions.mintMode).to.be.true;74 expect(newPermissions.access).to.be.equal('AllowList');7576 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);77 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);7879 {80 const nextTokenId = await collectionEvm.methods.nextTokenId().call();81 expect(nextTokenId).to.be.equal('1');82 const result = await collectionEvm.methods.mintWithTokenURI(83 user,84 nextTokenId,85 'Test URI',86 ).send({from: user});87 const events = normalizeEvents(result.events);8889 expect(events).to.be.deep.equal([90 {91 address: collectionIdAddress,92 event: 'Transfer',93 args: {94 from: '0x0000000000000000000000000000000000000000',95 to: user,96 tokenId: nextTokenId,97 },98 },99 ]);100101 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);102 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);103104 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');105 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);106 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;107 }108 });109110 itWeb3('Check that transaction via EVM spend money from sponsor address', async ({api, web3, privateKeyWrapper}) => {111 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);112 const collectionHelpers = evmCollectionHelpers(web3, owner);113 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();114 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);115 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);116 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);117 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();118 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;119 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;120 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;121 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));122 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');123 const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);124 await sponsorCollection.methods.confirmCollectionSponsorship().send();125 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;126 expect(collectionSub.sponsorship.isConfirmed).to.be.true;127 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));128129 const user = createEthAccount(web3);130 await collectionEvm.methods.addCollectionAdmin(user).send();131 132 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);133 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);134 135 136 const userCollectionEvm = evmCollection(web3, user, collectionIdAddress);137 const nextTokenId = await userCollectionEvm.methods.nextTokenId().call();138 expect(nextTokenId).to.be.equal('1');139 result = await userCollectionEvm.methods.mintWithTokenURI(140 user,141 nextTokenId,142 'Test URI',143 ).send();144145 const events = normalizeEvents(result.events);146 const address = collectionIdToAddress(collectionId);147148 expect(events).to.be.deep.equal([149 {150 address,151 event: 'Transfer',152 args: {153 from: '0x0000000000000000000000000000000000000000',154 to: user,155 tokenId: nextTokenId,156 },157 },158 ]);159 expect(await userCollectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');160 161 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);162 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);163 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);164 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;165 });166});1import {addToAllowListExpectSuccess, confirmSponsorshipExpectSuccess, createCollectionExpectSuccess, enablePublicMintingExpectSuccess, getDetailedCollectionInfo, setCollectionSponsorExpectSuccess} from '../util/helpers';2import {itWeb3, createEthAccount, collectionIdToAddress, GAS_ARGS, normalizeEvents, createEthAccountWithBalance, evmCollectionHelpers, getCollectionAddressFromResult, evmCollection, ethBalanceViaSub} from './util/helpers';3import nonFungibleAbi from './nonFungibleAbi.json';4import {expect} from 'chai';5import {evmToAddress} from '@polkadot/util-crypto';67describe('evm collection sponsoring', () => {8 itWeb3('sponsors mint transactions', async ({web3, privateKeyWrapper}) => {9 const alice = privateKeyWrapper('//Alice');1011 const collection = await createCollectionExpectSuccess();12 await setCollectionSponsorExpectSuccess(collection, alice.address);13 await confirmSponsorshipExpectSuccess(collection);1415 const minter = createEthAccount(web3);16 expect(await web3.eth.getBalance(minter)).to.equal('0');1718 const address = collectionIdToAddress(collection);19 const contract = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collection), {from: minter, ...GAS_ARGS});2021 await enablePublicMintingExpectSuccess(alice, collection);22 await addToAllowListExpectSuccess(alice, collection, {Ethereum: minter});2324 const nextTokenId = await contract.methods.nextTokenId().call();25 expect(nextTokenId).to.equal('1');26 const result = await contract.methods.mint(minter, nextTokenId).send();27 const events = normalizeEvents(result.events);28 expect(events).to.be.deep.equal([29 {30 address,31 event: 'Transfer',32 args: {33 from: '0x0000000000000000000000000000000000000000',34 to: minter,35 tokenId: nextTokenId,36 },37 },38 ]);39 });4041 itWeb3('Sponsoring collection from evm address via access list', async ({api, web3, privateKeyWrapper}) => {42 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);43 const collectionHelpers = evmCollectionHelpers(web3, owner);44 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();45 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);46 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);47 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);48 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send({from: owner});49 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;50 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;51 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;52 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));53 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');5455 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});56 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;57 expect(collectionSub.sponsorship.isConfirmed).to.be.true;58 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));5960 const user = createEthAccount(web3);61 const nextTokenId = await collectionEvm.methods.nextTokenId().call();62 expect(nextTokenId).to.be.equal('1');6364 const oldPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();65 expect(oldPermissions.mintMode).to.be.false;66 expect(oldPermissions.access).to.be.equal('Normal');6768 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});69 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});70 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});7172 const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();73 expect(newPermissions.mintMode).to.be.true;74 expect(newPermissions.access).to.be.equal('AllowList');7576 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);77 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);7879 {80 const nextTokenId = await collectionEvm.methods.nextTokenId().call();81 expect(nextTokenId).to.be.equal('1');82 const result = await collectionEvm.methods.mintWithTokenURI(83 user,84 nextTokenId,85 'Test URI',86 ).send({from: user});87 const events = normalizeEvents(result.events);8889 expect(events).to.be.deep.equal([90 {91 address: collectionIdAddress,92 event: 'Transfer',93 args: {94 from: '0x0000000000000000000000000000000000000000',95 to: user,96 tokenId: nextTokenId,97 },98 },99 ]);100101 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);102 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);103104 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');105 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);106 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;107 }108 });109110 itWeb3('Check that transaction via EVM spend money from sponsor address', async ({api, web3, privateKeyWrapper}) => {111 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);112 const collectionHelpers = evmCollectionHelpers(web3, owner);113 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();114 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);115 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);116 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);117 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();118 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;119 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;120 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;121 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));122 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');123 const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);124 await sponsorCollection.methods.confirmCollectionSponsorship().send();125 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;126 expect(collectionSub.sponsorship.isConfirmed).to.be.true;127 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));128129 const user = createEthAccount(web3);130 await collectionEvm.methods.addCollectionAdmin(user).send();131 132 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);133 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);134 135 136 const userCollectionEvm = evmCollection(web3, user, collectionIdAddress);137 const nextTokenId = await userCollectionEvm.methods.nextTokenId().call();138 expect(nextTokenId).to.be.equal('1');139 result = await userCollectionEvm.methods.mintWithTokenURI(140 user,141 nextTokenId,142 'Test URI',143 ).send();144145 const events = normalizeEvents(result.events);146 const address = collectionIdToAddress(collectionId);147148 expect(events).to.be.deep.equal([149 {150 address,151 event: 'Transfer',152 args: {153 from: '0x0000000000000000000000000000000000000000',154 to: user,155 tokenId: nextTokenId,156 },157 },158 ]);159 expect(await userCollectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');160 161 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);162 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);163 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);164 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;165 });166});tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -25,7 +25,6 @@
createEthAccount,
ethBalanceViaSub,
} from './util/helpers';
-import {evmToAddress} from '@polkadot/util-crypto';
describe('Sponsoring EVM contracts', () => {
itWeb3('Self sponsored can be set by the address that deployed the contract', async ({api, web3, privateKeyWrapper}) => {
tests/src/eth/sponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/sponsoring.test.ts
+++ b/tests/src/eth/sponsoring.test.ts
@@ -51,8 +51,6 @@
});
itWeb3('...but this doesn\'t applies to payable value', async ({api, web3, privateKeyWrapper}) => {
- const alice = privateKeyWrapper('//Alice');
-
const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
const caller = await createEthAccountWithBalance(api, web3, privateKeyWrapper);