동도리 개발 로그

Flutter(플러터) - ERC721 function 호출시 에러 본문

개발/Flutter

Flutter(플러터) - ERC721 function 호출시 에러

동돌이 2023. 4. 14. 09:51
반응형

요새 앱을 이용한 NFT 관련 프로젝트를 진행중이다.  

 

Flutter로 ERC721 스마트 컨트렉트를 호출 할때 'safeTransferFrom'을 호출 할 경우가 생겼다. 

하지만 아래와 같은 오류가 나온다. 

Unhandled Exception: Bad state: Too many elements get function flutter deployed contract

트랜잭션 전송 전  contract.function('safeTransferFrom') 에서 나오는 오류다.

 

이게 뭔가해서 삽질을 하다가, 다른 function 을 호출 하면 정상적으로 넘어가는것을 보고 깨달았다. 

 

ERC721에는 safeTranferFrom이 2개다. (from, to, tokenId), (from, to, tokenId, data) 파라미터를 3개와 4개를 받는 함수가 기본적으로 생성이된다. 

 

두 함수가 모두 포함된 ABI를 이용해서 받은 DeployedContract에 있는 같은 이름의 function 을 가져오는것에 문제가 있는것이다. 

 

왜 이런처리는 안해놓은것인가..... 

 

해결방법은 사용하지 않는 파라미터 4개를 받는 함수를 ABI에서 지우고 다시 실행하니 잘 넘어간다. 

 

Flutter에서는 이름이 중복되는 함수를 사용 할 수 없다!!!

반응형