Im currently developing an ERC-721 DApp and I would like to give the owner of the NFT the chance to approve a Smart Contract Address, so that the Smart Contract can do the transaction. Now I have the problem that Contract A is the NFT and Contract B is the approved address. But when I initiate the transaction, which will lead the approved Contract B to call Contract A to transfer the NFT it doesnt work. I think that this is probably because the transfer Method will notice that tx.origin is not the approved address, because my address is initiating the transaction, and Contract B is only the msg.sender to Contract A. Is there any way or workaround to handle it, so that even though the tx.origin is not the approved address, Contract B is able to do the transaction. I think there has to be a solution, because what would be the use of approve a contract, when it cant transfer in the end. I would really appreciate someone helping me to figure it out.
Best regards Luca :)