From 4cfd469c61dfc3a1d66f8be95aa1eac24f95d155 Mon Sep 17 00:00:00 2001 From: Bogdan Fazakas Date: Mon, 6 Mar 2023 16:28:16 +0200 Subject: [PATCH] finished datatoken tests --- src/contracts/Datatoken.ts | 6 +- src/contracts/NFT.ts | 2 +- test/unit/Datatoken.test.ts | 453 +++++++++++++++++++++++++----------- 3 files changed, 317 insertions(+), 144 deletions(-) diff --git a/src/contracts/Datatoken.ts b/src/contracts/Datatoken.ts index 5ab33605..efcfa47c 100644 --- a/src/contracts/Datatoken.ts +++ b/src/contracts/Datatoken.ts @@ -646,7 +646,7 @@ export class Datatoken extends SmartContract { const dtContract = this.getContract(dtAddress) - const valueHex = ethers.utils.hexlify(value) + const valueHex = ethers.utils.hexlify(ethers.utils.toUtf8Bytes(value)) const estGas = await dtContract.estimateGas.setData(valueHex) if (estimateGas) return >estGas @@ -721,7 +721,7 @@ export class Datatoken extends SmartContract { * @param {String} dtAddress Datatoken adress * @return {Promise} */ - public async getDecimals(dtAddress: string): Promise { + public async getDecimals(dtAddress: string): Promise { const dtContract = this.getContract(dtAddress) const decimals = await dtContract.decimals() return decimals @@ -842,7 +842,7 @@ export class Datatoken extends SmartContract { const returnValues = { publishMarketFeeAddress: publishingMarketFee[0], publishMarketFeeToken: publishingMarketFee[1], - publishMarketFeeAmount: publishingMarketFee[2] + publishMarketFeeAmount: publishingMarketFee[2].toString() } return returnValues } diff --git a/src/contracts/NFT.ts b/src/contracts/NFT.ts index 7f379277..731c8585 100644 --- a/src/contracts/NFT.ts +++ b/src/contracts/NFT.ts @@ -746,7 +746,7 @@ export class Nft extends SmartContract { */ public async getData(nftAddress: string, key: string): Promise { const nftContract = this.getContract(nftAddress) - const keyHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(key)) + const keyHash = ethers.utils.keccak256(key) const data = await nftContract.getData(keyHash) return data ? ethers.utils.toUtf8String(data) : null } diff --git a/test/unit/Datatoken.test.ts b/test/unit/Datatoken.test.ts index 917ab0d2..74530dc4 100644 --- a/test/unit/Datatoken.test.ts +++ b/test/unit/Datatoken.test.ts @@ -1,6 +1,6 @@ -import { assert } from 'chai' +import { assert, expect } from 'chai' import { getTestConfig, provider, getAddresses } from '../config' -import { ethers, Signer } from 'ethers' +import { ethers, Signer, providers } from 'ethers' import { Config, NftFactory, @@ -365,45 +365,68 @@ describe('Datatoken', () => { ) }) - /* - it('#removePaymentManager - should FAIL TO remove user2 as paymentManager, if nftDatatoken has DatatokenDeployer permission', async () => { - assert((await nftDatatoken.isDatatokenDeployer(nftAddress, user1)) === false) assert( - (await datatoken.getPermissions(datatokenAddress, user2)).paymentManager === true + (await nftDatatoken.isDatatokenDeployer(nftAddress, await user3.getAddress())) === + false + ) + assert( + (await datatoken.getPermissions(datatokenAddress, await user2.getAddress())) + .paymentManager === true ) try { - await datatoken.removePaymentManager(datatokenAddress, user1, user2) + await datatoken.removePaymentManager( + datatokenAddress, + await user3.getAddress(), + await user2.getAddress() + ) assert(false) } catch (e) { assert(e.message === 'Caller is not DatatokenDeployer') } assert( - (await datatoken.getPermissions(datatokenAddress, user2)).paymentManager === true + (await datatoken.getPermissions(datatokenAddress, await user2.getAddress())) + .paymentManager === true ) }) it('#removePaymentManager - should remove user2 as paymentManager, if Caller has DatatokenDeployer permission', async () => { - assert((await nftDatatoken.isDatatokenDeployer(nftAddress, nftOwner)) === true) assert( - (await datatoken.getPermissions(datatokenAddress, user2)).paymentManager === true + (await nftDatatoken.isDatatokenDeployer( + nftAddress, + await nftOwner.getAddress() + )) === true + ) + assert( + (await datatoken.getPermissions(datatokenAddress, await user2.getAddress())) + .paymentManager === true ) - await datatoken.removePaymentManager(datatokenAddress, nftOwner, user2) + await datatoken.removePaymentManager( + datatokenAddress, + await nftOwner.getAddress(), + await user2.getAddress() + ) assert( - (await datatoken.getPermissions(datatokenAddress, user2)).paymentManager === false + (await datatoken.getPermissions(datatokenAddress, await user2.getAddress())) + .paymentManager === false ) }) it('#setPaymentCollector - should fail to set a new paymentCollector, if NOT PAYMENT Manager, NFT OWNER OR ERC 20 DEPLOYER', async () => { assert( - (await datatoken.getPermissions(datatokenAddress, user2)).paymentManager === false + (await datatoken.getPermissions(datatokenAddress, await user2.getAddress())) + .paymentManager === false ) try { - await datatoken.setPaymentCollector(datatokenAddress, user1, user2) + await datatoken.setPaymentCollector( + datatokenAddress, + await user3.getAddress(), + await user2.getAddress() + ) assert(false) } catch (e) { assert(e.message === 'Caller is not Fee Manager, owner or Datatoken Deployer') @@ -411,45 +434,79 @@ describe('Datatoken', () => { }) it('#setPaymentCollector - should set a new paymentCollector, if PAYMENT MANAGER', async () => { - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user1) - - await datatoken.addPaymentManager(datatokenAddress, nftOwner, user1) - assert( - (await datatoken.getPermissions(datatokenAddress, user1)).paymentManager === true + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user1.getAddress()) ) - await datatoken.setPaymentCollector(datatokenAddress, user1, user3) + await datatoken.addPaymentManager( + datatokenAddress, + await nftOwner.getAddress(), + await user1.getAddress() + ) - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3) + assert( + (await datatoken.getPermissions(datatokenAddress, await user1.getAddress())) + .paymentManager === true + ) + + await datatoken.setPaymentCollector( + datatokenAddress, + await user1.getAddress(), + await user3.getAddress() + ) + + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user3.getAddress()) + ) }) it('#setPaymentCollector - should set a new paymentCollector, if NFT OWNER', async () => { - assert((await nftDatatoken.getNftOwner(nftAddress)) === nftOwner) + assert((await nftDatatoken.getNftOwner(nftAddress)) === (await nftOwner.getAddress())) - await datatoken.setPaymentCollector(datatokenAddress, nftOwner, user2) + await datatoken.setPaymentCollector( + datatokenAddress, + await nftOwner.getAddress(), + await user2.getAddress() + ) - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user2) + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user2.getAddress()) + ) }) it('#setPaymentCollector - should set a new paymentCollector, if ERC 20 DEPLOYER', async () => { assert( - (await nftDatatoken.getNftPermissions(nftAddress, datatokenDeployer)) - .deployERC20 === true + ( + await nftDatatoken.getNftPermissions( + nftAddress, + await datatokenDeployer.getAddress() + ) + ).deployERC20 === true ) - await datatoken.setPaymentCollector(datatokenAddress, datatokenDeployer, user3) + await datatoken.setPaymentCollector( + datatokenAddress, + await datatokenDeployer.getAddress(), + await user3.getAddress() + ) - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3) + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user3.getAddress()) + ) }) it('#startOrder- user2 should create an order for DT ', async () => { assert( - (await datatoken.balance(datatokenAddress, user1)) === '10', + (await datatoken.balance(datatokenAddress, await user1.getAddress())) === '10.0', 'User1 does not hold 10 datatokens' ) + assert( - (await datatoken.balance(datatokenAddress, user2)) === '0', + (await datatoken.balance(datatokenAddress, await user2.getAddress())) === '0.0', 'User2 does not hold 0 datatokens' ) @@ -457,35 +514,50 @@ describe('Datatoken', () => { const providerFeeToken = ZERO_ADDRESS const providerFeeAmount = '0' const providerValidUntil = '0' - const message = web3.utils.soliditySha3( - { t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) }, - { t: 'address', v: user3 }, - { t: 'address', v: providerFeeToken }, - { t: 'uint256', v: providerFeeAmount }, - { t: 'uint256', v: providerValidUntil } + + const message = ethers.utils.solidityKeccak256( + ['bytes', 'address', 'address', 'uint256', 'uint256'], + [ + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), + await user3.getAddress(), + providerFeeToken, + providerFeeAmount, + providerValidUntil + ] ) - const { v, r, s } = await signHash(web3, message, user3) + + // const { v, r, s } = await signHash(web3, message,user3) + const messageHashBytes = ethers.utils.arrayify(message) + let signedMessage = await (user3 as providers.JsonRpcSigner)._legacySignMessage( + messageHashBytes + ) + signedMessage = signedMessage.substr(2) // remove 0x + const r = '0x' + signedMessage.slice(0, 64) + const s = '0x' + signedMessage.slice(64, 128) + let v = '0x' + signedMessage.slice(128, 130) + if (v === '0x00') v = '0x1b' + if (v === '0x01') v = '0x1c' + const providerFees: ProviderFees = { - providerFeeAddress: user3, + providerFeeAddress: await user3.getAddress(), providerFeeToken, providerFeeAmount, v, r, s, - providerData: web3.utils.toHex(web3.utils.asciiToHex(providerData)), + providerData: ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), validUntil: providerValidUntil } const order = await datatoken.startOrder( datatokenAddress, - user1, - user2, + await user2.getAddress(), 1, providerFees ) assert(order !== null) assert( - (await datatoken.balance(datatokenAddress, user1)) === '9', + (await datatoken.balance(datatokenAddress, await user1.getAddress())) === '9.0', 'Invalid user balance, DT was not substracted' ) assert( @@ -502,174 +574,249 @@ describe('Datatoken', () => { const providerFeeToken = ZERO_ADDRESS const providerFeeAmount = '0' const providerValidUntil = '0' - const message = web3.utils.soliditySha3( - { t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) }, - { t: 'address', v: user3 }, - { t: 'address', v: providerFeeToken }, - { t: 'uint256', v: providerFeeAmount }, - { t: 'uint256', v: providerValidUntil } + + const message = ethers.utils.solidityKeccak256( + ['bytes', 'address', 'address', 'uint256', 'uint256'], + [ + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), + await user3.getAddress(), + providerFeeToken, + providerFeeAmount, + providerValidUntil + ] ) - const { v, r, s } = await signHash(web3, message, user3) + + const messageHashBytes = ethers.utils.arrayify(message) + let signedMessage = await (user3 as providers.JsonRpcSigner)._legacySignMessage( + messageHashBytes + ) + signedMessage = signedMessage.substr(2) // remove 0x + const r = '0x' + signedMessage.slice(0, 64) + const s = '0x' + signedMessage.slice(64, 128) + let v = '0x' + signedMessage.slice(128, 130) + if (v === '0x00') v = '0x1b' + if (v === '0x01') v = '0x1c' + const providerFees: ProviderFees = { - providerFeeAddress: user3, + providerFeeAddress: await user3.getAddress(), providerFeeToken, providerFeeAmount, v, r, s, - providerData: web3.utils.toHex(web3.utils.asciiToHex(providerData)), + providerData: ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), validUntil: providerValidUntil } + const order = await datatoken.startOrder( datatokenAddress, - user1, - user2, + await user2.getAddress(), 1, providerFees ) - assert(order.transactionHash, ' Failed to start order') - const reusedOrder = await datatoken.reuseOrder( - datatokenAddress, - user2, - order.transactionHash, - providerFees - ) - assert(reusedOrder.events.OrderReused.event === 'OrderReused') - assert(reusedOrder.events.ProviderFee.event === 'ProviderFee') + + assert(order.blockHash, ' Failed to start order') + const tx = await datatoken.reuseOrder(datatokenAddress, order.blockHash, providerFees) + const reusedTx = await tx.wait() + + const orderReusedTx = getEventFromTx(reusedTx, 'OrderReused') + const providerFeeTx = getEventFromTx(reusedTx, 'ProviderFee') + + expect(orderReusedTx.event === 'OrderReused') + expect(providerFeeTx.event === 'ProviderFee') }) it('#buyFromDispenserAndOrder- Enterprise method', async () => { const providerData = JSON.stringify({ timeout: 0 }) const providerFeeToken = ZERO_ADDRESS const providerFeeAmount = '0' - const message = web3.utils.soliditySha3( - { t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) }, - { t: 'address', v: user3 }, - { t: 'address', v: providerFeeToken }, - { t: 'uint256', v: providerFeeAmount } - ) - const { v, r, s } = await signHash(web3, message, user3) const providerValidUntil = '0' + const message = ethers.utils.solidityKeccak256( + ['bytes', 'address', 'address', 'uint256', 'uint256'], + [ + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), + await user3.getAddress(), + providerFeeToken, + providerFeeAmount, + providerValidUntil + ] + ) + const messageHashBytes = ethers.utils.arrayify(message) + let signedMessage = await (user3 as providers.JsonRpcSigner)._legacySignMessage( + messageHashBytes + ) + signedMessage = signedMessage.substr(2) // remove 0x + const r = '0x' + signedMessage.slice(0, 64) + const s = '0x' + signedMessage.slice(64, 128) + let v = '0x' + signedMessage.slice(128, 130) + if (v === '0x00') v = '0x1b' + if (v === '0x01') v = '0x1c' + const providerFees: ProviderFees = { - providerFeeAddress: user3, + providerFeeAddress: await user3.getAddress(), providerFeeToken, providerFeeAmount, v, r, s, - providerData: web3.utils.toHex(web3.utils.asciiToHex(providerData)), + providerData: ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), validUntil: providerValidUntil } + const consumeMarketFee = { consumeMarketFeeAddress: ZERO_ADDRESS, consumeMarketFeeToken: ZERO_ADDRESS, consumeMarketFeeAmount: '0' } const order: OrderParams = { - consumer: user1, + consumer: await user1.getAddress(), serviceIndex: 1, _providerFee: providerFees, _consumeMarketFee: consumeMarketFee } const buyFromDispenseTx = await datatoken.buyFromDispenserAndOrder( datatokenAddress, - nftOwner, order, - contracts.dispenserAddress + addresses.Dispenser ) - assert(buyFromDispenseTx !== null) + assert(buyFromDispenseTx) }) it('#buyFromFreAndOrder - Enterprise method ', async () => { const providerData = JSON.stringify({ timeout: 0 }) const providerFeeToken = ZERO_ADDRESS const providerFeeAmount = '0' - const message = web3.utils.soliditySha3( - { t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) }, - { t: 'address', v: user3 }, - { t: 'address', v: providerFeeToken }, - { t: 'uint256', v: providerFeeAmount } - ) - const { v, r, s } = await signHash(web3, message, user3) const providerValidUntil = '0' + + const message = ethers.utils.solidityKeccak256( + ['bytes', 'address', 'address', 'uint256', 'uint256'], + [ + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), + await user3.getAddress(), + providerFeeToken, + providerFeeAmount, + providerValidUntil + ] + ) + const messageHashBytes = ethers.utils.arrayify(message) + let signedMessage = await (user3 as providers.JsonRpcSigner)._legacySignMessage( + messageHashBytes + ) + signedMessage = signedMessage.substr(2) // remove 0x + const r = '0x' + signedMessage.slice(0, 64) + const s = '0x' + signedMessage.slice(64, 128) + let v = '0x' + signedMessage.slice(128, 130) + if (v === '0x00') v = '0x1b' + if (v === '0x01') v = '0x1c' + const providerFees: ProviderFees = { - providerFeeAddress: user1, + providerFeeAddress: await user1.getAddress(), providerFeeToken, providerFeeAmount, v, r, s, - providerData: web3.utils.toHex(web3.utils.asciiToHex(providerData)), + providerData: ethers.utils.hexlify(ethers.utils.toUtf8Bytes(providerData)), validUntil: providerValidUntil } + const consumeMarketFee = { consumeMarketFeeAddress: ZERO_ADDRESS, consumeMarketFeeToken: ZERO_ADDRESS, consumeMarketFeeAmount: '0' } const order: OrderParams = { - consumer: user1, + consumer: await user1.getAddress(), serviceIndex: 1, _providerFee: providerFees, _consumeMarketFee: consumeMarketFee } const fre: FreOrderParams = { - exchangeContract: fixedRateAddress, + exchangeContract: addresses.FixedPrice, exchangeId, maxBaseTokenAmount: '1', - baseTokenAddress: contracts.daiAddress, + baseTokenAddress: addresses.MockDAI, baseTokenDecimals: 18, swapMarketFee: '0.1', marketFeeAddress: ZERO_ADDRESS } - const buyTx = await datatoken.buyFromFreAndOrder(datatokenAddress, user1, order, fre) - assert(buyTx !== null) + const buyTx = await datatoken.buyFromFreAndOrder(datatokenAddress, order, fre) + assert(buyTx) }) it('#cleanPermissions - should FAIL to clean permissions at Datatoken level, if NOT NFT Owner', async () => { - assert((await datatoken.getPermissions(datatokenAddress, nftOwner)).minter === true) - - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3) + assert( + (await datatoken.getPermissions(datatokenAddress, await nftOwner.getAddress())) + .minter === true + ) assert( - (await datatoken.getPermissions(datatokenAddress, user1)).paymentManager === true + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user3.getAddress()) + ) + + assert( + (await datatoken.getPermissions(datatokenAddress, await user1.getAddress())) + .paymentManager === true ) try { - await datatoken.cleanPermissions(datatokenAddress, user2) + await datatoken.cleanPermissions(datatokenAddress, await user2.getAddress()) assert(false) } catch (e) { assert(e.message === 'Caller is NOT Nft Owner') } - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3) - - assert((await datatoken.getPermissions(datatokenAddress, nftOwner)).minter === true) + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user3.getAddress()) + ) assert( - (await datatoken.getPermissions(datatokenAddress, user1)).paymentManager === true + (await datatoken.getPermissions(datatokenAddress, await nftOwner.getAddress())) + .minter === true + ) + + assert( + (await datatoken.getPermissions(datatokenAddress, await user1.getAddress())) + .paymentManager === true ) }) it('#cleanPermissions - should clean permissions at Datatoken level', async () => { - assert((await datatoken.getPermissions(datatokenAddress, nftOwner)).minter === true) - - assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3) - assert( - (await datatoken.getPermissions(datatokenAddress, user1)).paymentManager === true + (await datatoken.getPermissions(datatokenAddress, await nftOwner.getAddress())) + .minter === true ) - await datatoken.cleanPermissions(datatokenAddress, nftOwner) - - assert((await datatoken.getPaymentCollector(datatokenAddress)) === nftOwner) - - assert((await datatoken.getPermissions(datatokenAddress, nftOwner)).minter === false) + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await user3.getAddress()) + ) assert( - (await datatoken.getPermissions(datatokenAddress, user1)).paymentManager === false + (await datatoken.getPermissions(datatokenAddress, await user1.getAddress())) + .paymentManager === true + ) + + datatoken = new Datatoken(nftOwner, 8996) + await datatoken.cleanPermissions(datatokenAddress, await nftOwner.getAddress()) + + assert( + (await datatoken.getPaymentCollector(datatokenAddress)) === + (await nftOwner.getAddress()) + ) + + assert( + (await datatoken.getPermissions(datatokenAddress, await nftOwner.getAddress())) + .minter === false + ) + + assert( + (await datatoken.getPermissions(datatokenAddress, await user1.getAddress())) + .paymentManager === false ) }) @@ -681,9 +828,14 @@ describe('Datatoken', () => { it('#setData - should set a value into 725Y standard, if Caller has ERC20Deployer permission', async () => { const data = 'SomeData' - assert((await nftDatatoken.isDatatokenDeployer(nftAddress, nftOwner)) === true) + assert( + (await nftDatatoken.isDatatokenDeployer( + nftAddress, + await nftOwner.getAddress() + )) === true + ) - await datatoken.setData(datatokenAddress, nftOwner, data) + await datatoken.setData(datatokenAddress, await nftOwner.getAddress(), data) assert((await nftDatatoken.getData(nftAddress, datatokenAddress)) === data) }) @@ -691,10 +843,13 @@ describe('Datatoken', () => { it('#setData - should FAIL to set a value into 725Y standard, if Caller has NOT ERC20Deployer permission', async () => { const data = 'NewData' const OldData = 'SomeData' - assert((await nftDatatoken.isDatatokenDeployer(nftAddress, user1)) === false) + assert( + (await nftDatatoken.isDatatokenDeployer(nftAddress, await user3.getAddress())) === + false + ) try { - await datatoken.setData(datatokenAddress, user1, data) + await datatoken.setData(datatokenAddress, await user3.getAddress(), data) assert(false) } catch (e) { assert(e.message === 'User is not Datatoken Deployer') @@ -704,7 +859,7 @@ describe('Datatoken', () => { it('#getDecimals - should return the number of decimals of the datatoken', async () => { const decimals = await datatoken.getDecimals(datatokenAddress) - assert(decimals === '18') + assert(decimals === 18) }) it('#getSymbol - should return the symbbol of the datatoken', async () => { @@ -718,13 +873,26 @@ describe('Datatoken', () => { }) it('#transfer - we can transfer the datatoken', async () => { - const balance1before = await datatoken.balance(datatokenAddress, user1) - const balance2before = await datatoken.balance(datatokenAddress, user2) + datatoken = new Datatoken(user1, 8996) + const balance1before = await datatoken.balance( + datatokenAddress, + await user1.getAddress() + ) + const balance2before = await datatoken.balance( + datatokenAddress, + await user2.getAddress() + ) - await datatoken.transfer(datatokenAddress, user2, '1', user1) + await datatoken.transfer(datatokenAddress, await user2.getAddress(), '1') - const balance1after = await datatoken.balance(datatokenAddress, user1) - const balance2after = await datatoken.balance(datatokenAddress, user2) + const balance1after = await datatoken.balance( + datatokenAddress, + await user1.getAddress() + ) + const balance2after = await datatoken.balance( + datatokenAddress, + await user2.getAddress() + ) assert(+balance1after === +balance1before - 1) assert(+balance2after === +balance2before + 1) @@ -733,63 +901,68 @@ describe('Datatoken', () => { it('#setPublishingMarketFee - User should not be able to set the Publishing Market Fee', async () => { const originalPublishingMarketFee = await datatoken.getPublishingMarketFee( datatokenAddress, - user1 + await user1.getAddress() ) try { await datatoken.setPublishingMarketFee( datatokenAddress, - user1, - contracts.daiAddress, - web3.utils.toWei('10'), - user1 + await user1.getAddress(), + addresses.MockDAI, + ethers.utils.parseUnits('10').toString(), + await user1.getAddress() ) } catch (e) { - console.log('Message:', e.message) assert(e.message === 'Caller is not the Publishing Market Fee Address') } const newPublishingMarketFee = await datatoken.getPublishingMarketFee( datatokenAddress, - user3 + await user3.getAddress() ) assert( newPublishingMarketFee.publishMarketFeeAddress === originalPublishingMarketFee.publishMarketFeeAddress ) - assert( - newPublishingMarketFee.publishMarketFeeAmount === - originalPublishingMarketFee.publishMarketFeeAmount - ) assert( newPublishingMarketFee.publishMarketFeeToken === originalPublishingMarketFee.publishMarketFeeToken ) + assert( + newPublishingMarketFee.publishMarketFeeAmount === + originalPublishingMarketFee.publishMarketFeeAmount + ) }) + it('#setPublishingMarketFee - Marketplace fee address should be able to set the Publishing Market Fee', async () => { + datatoken = new Datatoken(user2, 8996) + const originalPublishingMarketFee = await datatoken.getPublishingMarketFee( datatokenAddress, - user2 + await user2.getAddress() ) try { await datatoken.setPublishingMarketFee( datatokenAddress, - user2, - contracts.daiAddress, - web3.utils.toWei('10'), - user2 + await user2.getAddress(), + addresses.MockDAI, + ethers.utils.parseUnits('10').toString(), + await user2.getAddress() ) } catch (e) { console.log('Error:', e) } const newPublishingMarketFee = await datatoken.getPublishingMarketFee( datatokenAddress, - user2 + await user2.getAddress() ) assert(newPublishingMarketFee !== originalPublishingMarketFee) - assert(newPublishingMarketFee.publishMarketFeeAddress === user2) - assert(newPublishingMarketFee.publishMarketFeeAmount === web3.utils.toWei('10')) - assert(newPublishingMarketFee.publishMarketFeeToken === contracts.daiAddress) + assert(newPublishingMarketFee.publishMarketFeeAddress === (await user2.getAddress())) + + assert( + newPublishingMarketFee.publishMarketFeeAmount === + ethers.utils.parseUnits('10').toString() + ) + assert(newPublishingMarketFee.publishMarketFeeToken === addresses.MockDAI) }) - */ })