Function view 최대 return size가 어떻게 되나요?

혹시 NONEXEC 최대 return 사이즈가 Main net과 baobab Net 각각 어떻게 되나요?
ex) function getItem() view returns(bytes32) { return item }

만약 제한이 있다면 어떤 옵션을 변경해야하나요?
감사합니다.

view function을 통한 리턴 데이터의 크기 자체는 컨트랙트 내에서 핸들링 가능한 사이즈라면 제한이 없습니다. 다만, view function또한 가스 리밋이 존재함으로 내부 동작으로 인한 가스 소모가 리밋을 넘어선다면 오류가 발생할 수 있습니다.

예를 들어, view function내부에서 과도한 for loop(타입에 따라 허용되는 loop 사이즈가 다르겠지만, 시간에 따라 점점 for loop의 크기가 늘어나는 구현이라면 이를 피하시기 바랍니다.)를 사용한다면 지연시간이 늘어날 뿐만 아니라 gas limit때문에 제대로 리턴값을 받지 못할 것입니다.

만약 그런 것이 아니고 단순 struct, 혹은 pagination된 부분 for loop를 사용하실 경우 큰 문제없을 것 같습니다.
올려주신 함수 인터페이스에서는 return value가 bytes32인데, 이럴 경우 리턴값 계산을 위해 내부에서 무리한 계산을 하지 않는다면 괜찮습니다.

감사합니다.

2개의 좋아요