Klaytn IDE로 배포하려고 하는데 문제가 발생하였습니다

image

저는 가스비를 많이 지불하더라도 계약 프로그램을 배포하고 싶은데

Klaytn IDE에서 자꾸 배포 실패가 됩니다.

제가 보기에는 다 필요한 코드라서 어떻게 해야될지 모르겠습니다.

트러플을 설치해서 배포하면 성공할까요?

이미지에 적힌 경고는 트러플, Klaytn IDE 툴에 상관없이

코드가 너무 길어서 발생하는 문제일까요?

참고한 코드를 보면 대부분 문서 하나에 관련 내용들을 전부 포함시키는 것 같았습니다.

이더리움 쪽은 오픈제플린을 사용해서 임포트 하는 방법도 있는 것 같은데…

클래스 별로 파일을 나누면 괜찮을까요?

답변 부탁드리겠습니다.

긴 글 읽어주셔서 감사합니다!!

배포가능한 컨트랙트의 byte size 크기는 한정되어있기 때문에 이를 효율적으로 줄이는 방법이 몇가지 있습니다.

하지만 일단 컨트랙트의 크기를 줄이시기 이전에 IDE 의 컴파일러에서 enable optimization 옵션을 켜서 200정도로 해보시고 다시 배포해주시고요.

만약 이방법으로도 안되면, 로직을 최적화하셔서 변수의 갯수를 줄인다거나, 반복적으로 사용되는 메소드를 internal method로 정의해서 재사용하시거나, 외부에 library contract 를 배포하셔서 delegate call 기능을 이용해 내부함수처럼 활용하는 방법이 있습니다.

유의하실 부분은 internal, external contract 사용이나. 다른 컨트랙트 interfact를 object 내에서 불러오는경우 하나하나마다 bytecode 로 인코딩되는 방식이 달라서 internal 또는 external 메소드로만 주로 쓰는 부분을 public 으로 정의하시게되면 bytecode 사용량이 증가하게되기때문에 이런부분 고려하셔서 효율적으로 코드작성하는것을 권장드립니다.

상기 제가 기술한 방법은 적용이 케이스마다 다르게 개발하시는 분이 선택하셔야 하는 문제고, 이 포럼에서 다루기에는 너무 방대한 내용이라 구글링하셔서 정보 얻으시는게 효율적이라 생각합니다.

답변되셨길 바랍니다.
감사합니다.

좋은 정보 알려주셔서 고맙습니다!!

optimization 적용해보니까 배포되네요!!
정말 감사합니다!!
즐거운 하루되시길 바랍니다!!

1 Like