Klaytn IDE에서 제가 직접 만든 함수 호출은 잘 되는데, 이미 배포되어 있는(위 기능의 경우 Contract address 0xc6a2ad8cc6e4a7e08fc37cc5954be07d499e7654에 있는 것 같습니다) 컨트랙을 호출해서 swap 비율을 조회하고자 하면 어떻게 해야 할까요?
해당 수량을 확인하실 토큰을 caver로 KIP7 객체를 생성하셔서 balanceOf 메소드를 이용해 LP컨트랙트 주소에대한 잔고를 확인하시면됩니다.
만약 LP가 클레이와 페어인경우에는 LP컨트랙트 주소의 객체를 KIP7으로.생성해, 기본메소드인 balance 를 통해 클레이 잔고 확인이 가능하십니다.
이 두 잔고 비율과 총 유동성을 이용해, 스왑 모델인 k = tokenA x tokenB 의 수식을 적용해 (여기서 k는 lp 발행된 lp토큰 수량이 일정하다는 가정에서 상수) 스왑하시는 토큰 수량에 따른 슬리피지 고려하신 계산이 가능한데, 공부하시는 측면에서 접근하시는 것이면 이부분 직접 고려해서 계산해보시는것도 좋을것 같습니다.
이 이외에도 스왑 프로토콜에서 쉽게 비율 구할수있는 view 함수를 제공하고있는경우도 있기때문에 이부분은 해당 스왑 프로토콜 팀에 문의를 주시는게 빠를것이라 생각됩니다.
제가 좀 더 근본적으로 궁금한것은, deploy된 contract address만 있으면 해당 함수를 호출할 수 있는 것이 맞나요?
맞다면 해당 contract address에 포함된 함수 이름이나 기능을 확인하기 위해서는 개발팀에 문의를 꼭 해야 하는 것인가요, 아니면 클레이튼 스코프 등에서 조회를 해볼 수가 있나요? 개인적으로 개발을 하고 있는데 함수 사용법을 알기 위해 매번 회사에 연락을 하면 빠른 답변을 받기도 힘들것 같아서요ㅠ
특정 컨트랙트에 해당하는 interfact 파일이나 ABI파일 요청해보셔도되고, 직접작성하시다가 파라미터 이해 안되는부분을 정리해서 이메일 드리거나, 이해가 쉽게 독스 수정제안을 하신다거나 하는 방법이 있습니다.
단 해당 부분은, 클레이튼 측에서 지원하는 부분은 아니고, 이 커뮤니티에 KlaySwap 관계자가 계신부분은 아니라 클레이튼 개발팀에서 기술지원을 해주기에는 좀 힘든 토픽이라 생각합니다.
솔직히 질문하시기 나름인데, 만약 KlaySwap의 컨트랙트의 함수를 따와서, 인터페이스 만들어서 트랜잭선 실행시 에러가 난 경우에, 사용하신 소스와 오류메시지 등을 공유하시고, 트랜잭션이 실패한 이유를 물어보신다면 아마 그 부분에는 어느정도 답변을 드릴수 있을거라 생각합니다.
만약 질문이 단순히 '솔리디티로 작성한 컨트랙트 내에서 외부 컨트랙트를 어떻게 실행하는지’ 이셨다면
이는 solidity로 Interface 라는 객체를 작성하시면됩니다. 이는 사용하시는 솔리디티 컴파일러 버젼에따라 조금씩 다를수는 있지만 아래 링크에서 설명되어있습니다.