From b87343e4913b083fdef18584e8cf6760215ea52f Mon Sep 17 00:00:00 2001 From: Trubnikov Sergey Date: Fri, 05 Aug 2022 15:57:00 +0000 Subject: [PATCH] patch: Refactor confirm sponsorship. Add test for confrim sponsorship. --- --- a/pallets/evm-contract-helpers/src/lib.rs +++ b/pallets/evm-contract-helpers/src/lib.rs @@ -194,11 +194,10 @@ match Sponsoring::::get(contract) { SponsorshipState::Unconfirmed(sponsor) => { ensure!(sponsor == *sender, Error::::NoPermission); - Sponsoring::::mutate_exists(contract, |state| { - *state = Some(SponsorshipState::::Confirmed( - sponsor.clone(), - )) - }); + Sponsoring::::insert( + contract, + SponsorshipState::::Confirmed(sponsor), + ); Ok(()) } SponsorshipState::Disabled | SponsorshipState::Confirmed(_) => { --- a/tests/src/eth/contractSponsoring.test.ts +++ b/tests/src/eth/contractSponsoring.test.ts @@ -110,6 +110,16 @@ expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false; }); + itWeb3('Sponsorship can not be confirmed by the address that not set as sponsor', async ({api, web3, privateKeyWrapper}) => { + const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper); + const notSponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper); + const flipper = await deployFlipper(web3, owner); + const helpers = contractHelpers(web3, owner); + expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false; + await expect(helpers.methods.confirmSponsorship(flipper.options.address).call({from: notSponsor})).to.be.rejectedWith('NoPendingSponsor'); + expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false; + }); + itWeb3('Get self sponsored sponsor', async ({api, web3, privateKeyWrapper}) => { const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper); const flipper = await deployFlipper(web3, owner); -- gitstuff