From 4b9f6c9c004494a225116f29f2bbdff4e2f1aa70 Mon Sep 17 00:00:00 2001 From: Jamie Hewitt Date: Wed, 18 May 2022 17:01:05 +0300 Subject: [PATCH] Checking if the caller is Publishing Market Fee Address before calling the smart contract --- src/tokens/Datatoken.ts | 6 ++++++ test/unit/tokens/Datatoken.test.ts | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tokens/Datatoken.ts b/src/tokens/Datatoken.ts index 1e7143a9..8ab3588e 100644 --- a/src/tokens/Datatoken.ts +++ b/src/tokens/Datatoken.ts @@ -1362,6 +1362,12 @@ export class Datatoken { const dtContract = new this.web3.eth.Contract(this.datatokensAbi, datatokenAddress, { from: address }) + const publishingMarketFeeAddress = ( + await dtContract.methods.getPublishingMarketFee().call() + )[0] + if (publishingMarketFeeAddress !== address) { + throw new Error(`Caller is not the Publishing Market Fee Address`) + } const estGas = await this.estGasSetPublishingMarketFee( datatokenAddress, publishMarketFeeAddress, diff --git a/test/unit/tokens/Datatoken.test.ts b/test/unit/tokens/Datatoken.test.ts index 709bf869..261c237b 100644 --- a/test/unit/tokens/Datatoken.test.ts +++ b/test/unit/tokens/Datatoken.test.ts @@ -611,10 +611,7 @@ describe('Datatoken', () => { ) } catch (e) { console.log('Message:', e.message) - assert( - e.message === - 'Returned error: VM Exception while processing transaction: revert ERC20Template: not publishMarketFeeAddress' - ) + assert(e.message === 'Caller is not the Publishing Market Fee Address') } const newPublishingMarketFee = await datatoken.getPublishingMarketFee( datatokenAddress,