difftreelog
fix skip eth allowance event on token transfer
in: master
1 file changed
pallets/nonfungible/src/lib.rsdiffbeforeafterboth275 <Owned<T>>::remove((collection.id, from.as_sub(), token));275 <Owned<T>>::remove((collection.id, from.as_sub(), token));276 <Owned<T>>::insert((collection.id, to.as_sub(), token), true);276 <Owned<T>>::insert((collection.id, to.as_sub(), token), true);277 }277 }278 Self::set_allowance_unchecked(collection, from, token, None);278 Self::set_allowance_unchecked(collection, from, token, None, true);279279280 collection.log_infallible(ERC721Events::Transfer {280 collection.log_infallible(ERC721Events::Transfer {281 from: *from.as_eth(),281 from: *from.as_eth(),385 sender: &T::CrossAccountId,385 sender: &T::CrossAccountId,386 token: TokenId,386 token: TokenId,387 spender: Option<&T::CrossAccountId>,387 spender: Option<&T::CrossAccountId>,388 assume_implicit_eth: bool,388 ) {389 ) {389 if let Some(spender) = spender {390 if let Some(spender) = spender {390 let old_spender = <Allowance<T>>::get((collection.id, token));391 let old_spender = <Allowance<T>>::get((collection.id, token));418 }419 }419 } else {420 } else {420 let old_spender = <Allowance<T>>::take((collection.id, token));421 let old_spender = <Allowance<T>>::take((collection.id, token));422 if !assume_implicit_eth {421 // In ERC721 there is only one possible approved user of token, so we set423 // In ERC721 there is only one possible approved user of token, so we set422 // approved user to zero address424 // approved user to zero address423 collection.log_infallible(ERC721Events::Approval {425 collection.log_infallible(ERC721Events::Approval {424 owner: *sender.as_eth(),426 owner: *sender.as_eth(),425 approved: H160::default(),427 approved: H160::default(),426 token_id: token.into(),428 token_id: token.into(),427 });429 });430 }428 // In Unique chain, any token can have any amount of approved users, so we need to431 // In Unique chain, any token can have any amount of approved users, so we need to429 // set allowance of old owner to 0432 // set allowance of old owner to 0430 if let Some(old_spender) = old_spender {433 if let Some(old_spender) = old_spender {466469467 // =========470 // =========468471469 Self::set_allowance_unchecked(collection, sender, token, spender);472 Self::set_allowance_unchecked(collection, sender, token, spender, false);470 Ok(())473 Ok(())471 }474 }472475