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,