<초보> 스마트컨트랙트 배포 시 input 데이터

토큰을 만들어서 스마트컨트랙트를 배포하려고 합니다.

https://refs.klaytnapi.com/ko/wallet/latest#operation/ContractDeployTransaction

위의 가이드를 따라서 스마트컨트랙트를 배포하고자 합니다.
저기서 input 데이터를 어떤식으로 컴파일하고 가져와야하는 지 몰라서 질문드립니다.

지금은 IDE에서 컴파일 후에 Bytecode 복사 후에
object “608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b57806360573~~~~”

해당 object 값을 input에 넣으면 되는 건가요?

초보라서 너그러운 마음으로 이해 부탁드립니다.
감사합니다.

일단 bytecode 로 컴파일된 값을 입력하시면 되는데, testnet에서 직접 해보시고 막히는 부분이 생기면 오류메시지와 함께 질문 올려주시면 더 확실한 답을 드릴수 있을것 같습니다.

근데 IDE로도 충분히 컨트랙트가 deploy 가능한데, 궂이 API를 통하는 이유가 있으실까요?

답변 감사합니다.

KSA에서 발행한 토큰에 적용하려면 API 호출만 가능한게 아니였나요?
KSA에서 발행하면 프라이핏키가 나오지 않아서 해당 토큰에 스마트컨트랙트가 적용이 안 되는 것으로 이해를 했습니다.

제가 처음 개발하다보니 잘 몰라서 가이드 보면서 하고 있습니다.
스마트컨트랙트를 적용하려고 하는데 정말 어렵네요.

최근 Klaytn IDE 가 업그레이드가 되서 문서가 최신이 아니지만, 아래링크를 보시면, 지갑을 연결해서 컨트랙트를 디플로이 하는 방법이 소개되어있습니다.

https://ko.docs.klaytn.com/smart-contract/ide-and-tools/klaytn-ide

IDE통해서 컴파일을 하셨다고하니, 좌측 탭에 디플로이 메뉴 (클레이 모양 아이콘) 으로 접근하시면 네트워크 및 지갑 선택 후 디플로이 하는 버튼이 있습니다. 이것을 통해서 하시는게, API를 직접 사용하시는것보다는 편의성이 좋을것이라 생각합니다.

KAS를 이용해서 꼭 디플로이 하셔야하는 이유가 있으신가요?

참고로 토큰을 발행하셨다하더라도, 컨트랙트 사용권한은 Ownership 이동을 통해 가능합니다.

죄송합니다.
혹시 아래 링크는 어디를 말씀하셨는지 알 수 있을까요?

IDE로 발행을 하고 KAS로 발행을 했는데 Ownership을 이동 가능한 것은 말씀해주셔서 알게되었습니다.
혹시 Ownership 이동하게 되면 모든 것이 옮겨지는 것일까요?

계속 질문드려 죄송합니다.

누락되었던 링크 첨부하였습니다.

소유권 이전에 대한부분은 단순히 컨트랙트상에서 구현된 Ownership입니다. Klaytn Ownable.sol 컨트랙트를 확인해보시면 _owner 라는 컨트랙트의 private 변수에 저장된 주소를 소유자로 인식하도록, 관리자 전용 함수에 onlyOwner 라는 modifier 를 이용해 접근을 제한합니다.

오픈씨는 이부분으로 컨트랙트 소유권을 인식하는 방식을 취하는것으로 알고있습니다. 소유권을 옮기시면, _owner 변수가 한개의 주소만 저장할 수 있기때문에 발행할때 사용한 주소는 해당 함수에 접근이 불가능해집니다.

이를 복수의 소유자형태로 관리하시려면, ownerble 외에 다른 role 을 부여하는 컨트랙트를 만들고 해당함수를 onlyXXX등 modifier 를 이용해 관리하시면 됩니다.

답변이 도움이 되셨으면 좋겠습니다.
감사합니다

1개의 좋아요

답변 정말 감사합니다.
너무 막막해서 힘들었는데 친절한 답변에 정말 감사드립니다.

죄송하지만 하나만 더 여쭤보겠습니다.

제가 아는 게 너무 없어서 커뮤니티나 이해를 좀 더 할 수 있는 곳이 또 있을까요?
개발직무가 아니라서 너무 생소해서 여쭤봅니다.

도움되셨다니 다행이네요.

디스코드 채널이 운영되고있으나, 본 포럼이 더 활성화되어있는것 같습니다.
클레이튼에서 개발자 지원에 이전보다 많은 인적 리소스 투자를 시작한것 같아서, 본 공식 포럼 및 디스코드 채널을 통해 질문주시면 답변 빨리받으실 수 있을것으로 생각됩니다.

컨트랙트 관련 학습하시는것에 대해서는 그 외에는 블럭체인과 관련된 서적을 읽어보시는것도 도움이 되지않을까 싶어요.

저는 개인적으로 솔리디티 컨트랙트 공부하실때 상속받은 모체쪽 함수나 변수들 어떤식으로 작동하는지 하나씩 뜯어보는것이 도움을 많이받았습니다.

제가 공유해드린 Ownerble.sol 처럼 Low-level 함수일수록 구조가 단순해 아마 공부하기 좋으실꺼에요.

solidity 공식문서도 0.5.6버젼은 한글번역이 어느정도 진행되어있습니다. 이쪽도 참고해주셔도 도움되실꺼에요.

마지막으로 클레이튼 공식문서도 현재 지속적으로 업데이트되고있습니다. 보시고 이해안되시는 부분 질문주시면, 문서 작성하시는 분들께서 아마 답변도 주시고 문서 개선에도 긍정적 효과가 있으리라 생각됩니다.

감사합니다.

1개의 좋아요