Truffle 로 KAS EN 을 활용하여 배포

안녕하세요,

두가지 질문이 있습니다.

  1. Truffle에서 배포를 할때 kas en 으로 배포를 하고 싶은데, 배포하는 owner 가 마찬가지로 kas 계정에 있는 account 이길 바랍니다.
    아래과 같은 코드는 KAS en 을 이용하는것으로 보이나, private key 를 넣는 부분이 있어서 결국 해당 private key 계정이 owner 가 되는 것으로 보입니다.
    kas에 있는 account는 private key 가 없어서 그게 불가능 해보이는데, 어떻게 할 수 있나요?
    Truffle 을 써야하는 이유는 openzepplin 의 deployProxy() 함수가 필요해서 그렇습니다. (여기서 해당 contract 가 upgrade-safe 하는지 등의 체크들이 들어가있기 때문)

 kasBaobab: {
      provider: () => {
        const option = {
          headers: [
            {
              name: "Authorization",
              value: kas,
            },
            { name: "x-chain-id", value: "1001" },
          ],
          keepAlive: false,
        };
        return new HDWalletProvider(
          privateKey,
          new Caver.providers.HttpProvider(
            "https://node-api.klaytnapi.com/v1/klaytn",
            option
          )
        );
      },
      network_id: "1001", //Klaytn baobab testnet's network id
      gas: "8500000",
      gasPrice: "25000000000",
    },
  1. Truffle로 mainnet에 contract배포할 때 설정하는 방법
    이글을 보면 truffle 등 개발하시지 않은 것들에 대한 이슈를 다루지 않고 truffle 측에 물어보도록 안내해주셨습니다.
    그러나 저는 openzepplin 의 plugin 등을 통해 proxy contract 를 안정적으로 배포 하려는 입장이고 많은 사람들 또한 proxy 를 쓴다면 필수적으로 해야할것으로 보이는데, 이때 truffle에 대한 지원이 앞으로 이루어지지 않는다면 klaytn chain 의 사용성이 좀 떨어지지 않을까 우려됩니다.

  2. 앞에 질문에 이어, truffle 에 대한 지원이 잘 이루어지지 않는다면, 지금 truffle 로 배포를 시켜도 추후에
    Node 12에서는 truffle-hdwallet-provider-klaytn 모듈이 설치가 되지 않습니다 - colin.kim님의 글 #4
    이러한 문제가 생기고 그거에 대해 지원이 안된다면
    지금 이 proxy deploy 하는 truffle 코드는 사용이 불가능 해보이는데 (특히 가장 필요한 openzepplin 의 deployProxy() 를 사용 못할 것으로 보이는데), 그렇다면 klaytn 측에서 openzep 과 비슷한 plugin 을 자체제작하여 proxy 를 안전하게 deploy 할 수 있는 방법을 만드실 계획도 있나요?

많은 노고에 감사드립니다!

안녕하세요. 클레이튼 포럼에 글을 남겨주셔서 감사합니다.

  1. KAS에서 private key를 사용 못하는 건에 대해서는, 별도로 존재하는 KAS 헬프센터를 이용해주시기 바랍니다.
    https://support.klaytnapi.com/hc/ko

  2. 현재는 truffle을 지원하고 있습니다. 해당 문서를 참고하시기 바랍니다.
    https://ko.docs.klaytn.foundation/smart-contract/ide-and-tools/truffle