Kip contract deploy 문의

안녕하세요 오늘도 찾아뵙게 됐습니다.

위 공식문서를 보고 컨트랙트 배포 로직을 짜는 와중에

caver.klay.abi.encodeContractDeploy(jsonInterface, hexString, params)

위의 메서드를 통해 jsoninterface는 이해가 되서 찾았는데 저 중간에 hexString은 어떻게 구하는걸까요?

const encodedData = await caver.klay.abi.encodeContractDeploy(
        jsoninterface,
        hexString, // 스마트컨트랙트의 바이트코드?
        constructorParams
      );

      await caver.klay.sendTransaction({
        type: "SMART_CONTRACT_DEPLOY",
        from: account.address,
        data: encodedData,
        gas: 3000000,
        value: caver.utils.toPeb(0, "KLAY"),
      });

현재 여기까지 진행된 상황인데 더 진전을 못하겠습니다 ㅜㅜ
배포할 스마트컨트랙트의 바이트코드가 뭔지와 어떻게 구하는지 아시는분 도와주세요 감사합니다.

말씀하신대로 컨트랙트의 바이트 코드를 입력하면 됩니다.

바이트 코드란, 간단하게 solidity로 작성된 스마트 컨트랙트를 EVM 상에 띄우기 위한 로우레벨 코드라고 생각하시면 됩니다.

구하는 방법은,

  1. 리믹스 IDE를 사용하신다면 컴파일러 탭 아래에 Bytecode를 복사할 수 있는 버튼이 있습니다.

  2. 트러플이나 하드햇을 사용하신다면 컴파일 후 artifacts 디렉토리의 abi와 함께 기록됩니다. (코드를 보니 컴파일 후 abi가 있는 json 파일을 확인하신 것 같은데요, 해당 파일 아래에 bytecode가 함께 있을 겁니다.)

감사합니다.

{
	"functionDebugData": {
		"@_157": {
			"entryPoint": null,
			"id": 157,
			"parameterSlots": 1,
			"returnSlots": 0
		},
		"@_23": {
			"entryPoint": null,
			"id": 23,
			"parameterSlots": 0,
			"returnSlots": 0
		},
		"@_2362": {
...
7:421;;;;;:::o;448:355::-;515:5;564:3;557:4;549:6;545:17;541:27;531:122;;572:79;;:::i;:::-;531:122;682:6;676:13;707:90;793:3;785:6;778:4;770:6;766:17;707:90;:::i;:::-;698:99;;521:282;448:355;;;;:::o;809:524::-;889:6;938:2;926:9;917:7;913:23;909:32;906:119;;;944:79;;:::i;:::-;906:119;1085:1;1074:9;1070:17;1064:24;1115:18;1107:6;1104:30;1101:117;;;1137:79;;:::i;:::-;1101:117;1242:74;1308:7;1299:6;1288:9;1284:22;1242:74;:::i;:::-;1232:84;;1035:291;809:524;;;;:::o;1339:129::-;1373:6;1400:20;;:::i;:::-;1390:30;;1429:33;1457:4;1449:6;1429:33;:::i;:::-;1339:129;;;:::o;1474:75::-;1507:6;1540:2;1534:9;1524:19;;1474:75;:::o;1555:308::-;1617:4;1707:18;1699:6;1696:30;1693:56;;;1729:18;;:::i;:::-;1693:56;1767:29;1789:6;1767:29;:::i;:::-;1759:37;;1851:4;1845;1841:15;1833:23;;1555:308;;;:::o;1869:307::-;1937:1;1947:113;1961:6;1958:1;1955:13;1947:113;;;2046:1;2041:3;2037:11;2031:18;2027:1;2022:3;2018:11;2011:39;1983:2;1980:1;1976:10;1971:15;;1947:113;;;2078:6;2075:1;2072:13;2069:101;;;2158:1;2149:6;2144:3;2140:16;2133:27;2069:101;1918:258;1869:307;;;:::o;2182:320::-;2226:6;2263:1;2257:4;2253:12;2243:22;;2310:1;2304:4;2300:12;2331:18;2321:81;;2387:4;2379:6;2375:17;2365:27;;2321:81;2449:2;2441:6;2438:14;2418:18;2415:38;2412:84;;;2468:18;;:::i;:::-;2412:84;2233:269;2182:320;;;:::o;2508:281::-;2591:27;2613:4;2591:27;:::i;:::-;2583:6;2579:40;2721:6;2709:10;2706:22;2685:18;2673:10;2670:34;2667:62;2664:88;;;2732:18;;:::i;:::-;2664:88;2772:10;2768:2;2761:22;2551:238;2508:281;;:::o;2795:180::-;2843:77;2840:1;2833:88;2940:4;2937:1;2930:15;2964:4;2961:1;2954:15;2981:180;3029:77;3026:1;3019:88;3126:4;3123:1;3116:15;3150:4;3147:1;3140:15;3167:117;3276:1;3273;3266:12;3290:117;3399:1;3396;3389:12;3413:117;3522:1;3519;3512:12;3536:117;3645:1;3642;3635:12;3659:102;3700:6;3751:2;3747:7;3742:2;3735:5;3731:14;3727:28;3717:38;;3659:102;;;:::o;311:8829:11:-;;;;;;;"
}

리믹스에서 복사하니까 이렇게 나옵니다.

근데 docs 예제를 보니까

0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029

이렇게 hex로만 나와야 하는거 같은데 혹시 저 위에꺼로 진행해도 되는걸까요??

아 제가 리믹스에서 네트워크를 클레이튼으로 안하고 가나슈로 진행해서 그런거 같습니다. 다시 한번 해보겠습니다. 감사합니다.

Bytecode = 0x{object field} 입니다.

복사하신 부분 중 object field에 앞에 0x prefix를 붙여주시면 됩니다.