mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
add NFT owner check in Datatoken
This commit is contained in:
parent
e64e0b61b1
commit
39ded52003
@ -40,7 +40,7 @@ export class Datatoken {
|
||||
public datatokensEnterpriseAbi: AbiItem | AbiItem[]
|
||||
public web3: Web3
|
||||
public startBlock: number
|
||||
// public nft: Nft
|
||||
public nft: Nft
|
||||
|
||||
/**
|
||||
* Instantiate ERC20 DataTokens
|
||||
@ -58,7 +58,7 @@ export class Datatoken {
|
||||
this.datatokensEnterpriseAbi =
|
||||
datatokensEnterpriseAbi || (defaultDatatokensEnterpriseAbi.abi as AbiItem[])
|
||||
this.startBlock = startBlock || 0
|
||||
// this.nft = new Nft(this.web3)
|
||||
this.nft = new Nft(this.web3)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1170,6 +1170,9 @@ export class Datatoken {
|
||||
dtAddress: string,
|
||||
address: string
|
||||
): Promise<TransactionReceipt> {
|
||||
if(await this.nft.getNftOwner(await this.getNFTAddress(dtAddress)) != address) {
|
||||
throw new Error('Caller is NOT Nft Owner')
|
||||
}
|
||||
const dtContract = new this.web3.eth.Contract(this.datatokensAbi, dtAddress)
|
||||
|
||||
const estGas = await this.estGasCleanPermissions(dtAddress, address, dtContract)
|
||||
|
@ -407,29 +407,29 @@ describe('Datatoken', () => {
|
||||
assert(buyTx !== null)
|
||||
})
|
||||
|
||||
// it('#cleanPermissions - should FAIL to clean permissions at ERC20 level, if NOT NFT Owner', async () => {
|
||||
// assert((await datatoken.getDTPermissions(datatokenAddress, nftOwner)).minter === true)
|
||||
it('#cleanPermissions - should FAIL to clean permissions at ERC20 level, if NOT NFT Owner', async () => {
|
||||
assert((await datatoken.getDTPermissions(datatokenAddress, nftOwner)).minter === true)
|
||||
|
||||
// assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3)
|
||||
assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3)
|
||||
|
||||
// assert(
|
||||
// (await datatoken.getDTPermissions(datatokenAddress, user1)).paymentManager === true
|
||||
// )
|
||||
assert(
|
||||
(await datatoken.getDTPermissions(datatokenAddress, user1)).paymentManager === true
|
||||
)
|
||||
|
||||
// try {await datatoken.cleanPermissions(datatokenAddress, nftOwner)} catch(e){
|
||||
// assert(e.message === 'Caller is not NFTOwner')
|
||||
// }
|
||||
try {await datatoken.cleanPermissions(datatokenAddress, user2)} catch(e){
|
||||
assert(e.message === 'Caller is NOT Nft Owner')
|
||||
}
|
||||
|
||||
// assert((await datatoken.getPaymentCollector(datatokenAddress)) === nftOwner)
|
||||
assert((await datatoken.getPaymentCollector(datatokenAddress)) === user3)
|
||||
|
||||
// assert(
|
||||
// (await datatoken.getDTPermissions(datatokenAddress, nftOwner)).minter === false
|
||||
// )
|
||||
assert(
|
||||
(await datatoken.getDTPermissions(datatokenAddress, nftOwner)).minter === true
|
||||
)
|
||||
|
||||
// assert(
|
||||
// (await datatoken.getDTPermissions(datatokenAddress, user1)).paymentManager === false
|
||||
// )
|
||||
// })
|
||||
assert(
|
||||
(await datatoken.getDTPermissions(datatokenAddress, user1)).paymentManager === true
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
it('#cleanPermissions - should clean permissions at ERC20 level', async () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user