Hi Everyone, I'm working on marketplace contract where user will deposit its NFT then do buying selling and withdraw it. The issue I got is that every NFT is deposited successfully except the opensea one's I don't know why I also import the interface of safeTransferFrom function and also gives the approval to smart contract but still its not working it reverts the transaction in frontend it return with error "function signature mismatch" and in remix it reverts with "Cannot read properties of undefined (reading 'includes')"
Here is my code:
interface for safetransferfrom
interface IERC721A {
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external ;
function safeMint(address to, uint256 id) external;
function ownerOf(uint256 id) external returns (address);
}
//function where I am depositing nft
function depositNft(
string memory uid,
address collection,
uint256 nftId
) external nonReentrant(){
IERC721A nft = IERC721A(collection);
string memory key = string(abi.encodePacked(collection, "_", nftId));
nft.safeTransferFrom(msg.sender, address(this), nftId);
DEPOSITS[uid].depositor = msg.sender;
DEPOSITS[uid].collection = collection;
DEPOSITS[uid].tokenId = nftId;
STATUS[key]._status = "Layer_2";
STATUS[key]._user = msg.sender;
STATUS[key]._collection = collection;
STATUS[key]._tokenId = nftId;
STATUS[key]._isMinted = true;
STATUS[key]._readyTowithdraw = false;
STATUS[key]._withdrawn = false;
depositKeys.push(uid);
}