Nft 컨트랙트의 id 값을 조회할 수 있는 컨트랙을 만들 수 있을까요?

현재 메인nft 컨트랙을 발행했고 추가로 메인 nft의 정보를 갖고올 컨트랙을 발행했습니다 정보를 갖고올 컨트랙으로 토큰아이디 값의 중복값을 거르기위해 메인NFT컨트렉의 ownerOf와 같은 함수를 이용해보고자 했지만 토큰아이디에 대한 오너가 없으면 bool 값이 아닌 require의 evm에러 처리로 소스단에서 컨트롤 불가능한 상태 ( 트랜잭션이 멈춰버림 ) 입니다
해당 require부분에 트랜잭션이 멈추지 않거나아니면 솔리디티에서 함수 호출이 아닌 타 컨트랙의 토큰 넘버들을 받아올 수 있는 기능이 있는지 필요합니다

음 여러가지 방법을 말씀드리고자 길게 쓰려고 했지만 마지막 require관련부분만 해서 쓸게요
제가 클레이튼쪽 코드는 정확히모르나 (함수명 등 네이밍이 다른데 이걸 아직 잘모릅니다 )
erc랑 같기때문에 erc기준으로 설명드릴게요

function ownerOf(uint256 tokenId) public view virtual override returns (address) {
address owner = _owners[tokenId];
require(owner != address(0), “ERC721: owner query for nonexistent token”);
return owner;
}

ERC721 에서는 컨트랙트가 저렇게 되어있습니다
일단 트랜잭션을 발생시키는 코드를 어떻게 코딩하셨는지는 잘 모르겠지만 저 부분은 함수 콜로 실행할수 있기 때문에 오류가 발생한다면 해당 부분은 패스하고 다음 코드블럭으로 넘어가야합니다. ( 트랜잭션을 발생시키면안됨)
또는 트랜잭션이 멈추는게 아니라 함수콜 시간이 오래걸리는 걸 수도 있습니다. (ERC에서는 몇십초까지도 가능… 방금 팬케잌스쿼드 NFT컨트랙트에서 함수콜 해봤습니당)

정 안되면 저 require부분을 지우시고 if ( owner == address(0) ) { return address(0); } 을 통해서 0값을 받으신 후 패스 처리하시는 방법도 있겠네욤

메인 NFT컨트랙트 코드를 정보컨트랙트파일에 같이 넣어서 컴파일하고,
정보컨트랙트 발행할 때,
메인NFT컨트랙트 발행된 주소값을 정보컨트랙트 내에서 직접불러와서
mainNFTContract.원하는함수명(id) 이런식으로 사용가능해요

만약에 원하는 함수명이 interface에 있는기능이라면 인터페이스 이용해서 함수확장 후 사용하시면됩니다 IERC721(address).ownerOf(id)