aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-07-18 22:38:16 +0800
committerGitHub <noreply@github.com>2018-07-18 22:38:16 +0800
commit00d1622b3f087943e750f1b3f6ee6ceab7e80285 (patch)
tree44789fff181ec24846728d885ba541c23f682321 /packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts
parente2fb49a8f871fd4b631bb01bb641c632b7c19435 (diff)
parenta1acf19ff3c1948214dde05a91eb3fbeac728d2c (diff)
downloaddexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar.gz
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar.bz2
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar.lz
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar.xz
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.tar.zst
dexon-sol-tools-00d1622b3f087943e750f1b3f6ee6ceab7e80285.zip
Merge pull request #887 from 0xProject/feature/order-watcher-v2
Order watcher v2
Diffstat (limited to 'packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts')
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts20
1 files changed, 11 insertions, 9 deletions
diff --git a/packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts b/packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts
index 3d24702b3..7c2b41c62 100644
--- a/packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts
+++ b/packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts
@@ -342,15 +342,17 @@ export class ERC721TokenWrapper extends ContractWrapper {
const normalizedSenderAddress = senderAddress.toLowerCase();
const tokenContract = await this._getTokenContractAsync(normalizedTokenAddress);
const ownerAddress = await this.getOwnerOfAsync(tokenAddress, tokenId);
- const isApprovedForAll = await this.isApprovedForAllAsync(
- normalizedTokenAddress,
- ownerAddress,
- normalizedSenderAddress,
- );
- if (!isApprovedForAll) {
- const approvedAddress = await this.getApprovedIfExistsAsync(normalizedTokenAddress, tokenId);
- if (approvedAddress !== senderAddress) {
- throw new Error(ContractWrappersError.ERC721NoApproval);
+ if (normalizedSenderAddress !== ownerAddress) {
+ const isApprovedForAll = await this.isApprovedForAllAsync(
+ normalizedTokenAddress,
+ ownerAddress,
+ normalizedSenderAddress,
+ );
+ if (!isApprovedForAll) {
+ const approvedAddress = await this.getApprovedIfExistsAsync(normalizedTokenAddress, tokenId);
+ if (approvedAddress !== normalizedSenderAddress) {
+ throw new Error(ContractWrappersError.ERC721NoApproval);
+ }
}
}
const txHash = await tokenContract.transferFrom.sendTransactionAsync(