Smart Contract 배포 및 조회
앞서 등록 및 생성한 정보를 활용하여 Smart Contract를 블록체인에 배포합니다.
사전 조건
1. ChainZ API Service를 사용하기 위한 인증이 되어 있어야 합니다. 자세한 사항은 Getting Started > 인증 정보 생성 및 Getting Started > 액세스 토큰 발급 항목을 참고하시기 바랍니다.
2. 발급된 액세스 토큰이 유효 기간 내에 있어야 합니다.
3. Contract Artifact(ABI, Bytecode 및 추가 정보)가 ChainZ API Service에 등록되어 있어야 합니다. 자세한 사항은 'Contract Artifact 정보 등록 및 조회' 항목을 참고하시기 바립니다.
4. Account API를 통해 생성한 Account의 Address를 알고 있어야 합니다. 자세한 사항은 'Account 생성 및 조회' 항목을 참고하시기 바랍니다.
Smart Contract 배포 및 조회
Smart Contract 배포
1. API 정보
Transaction API의 callContractFunction을 사용합니다(참고 링크).
2. 입력 정보
액세스 토큰 & API 키
ChainID - Blockchain 식별 정보
clientReqId - Request 의 사업자 고유 식별 정보
params - From Account의 Address, Contract ID, 초기값 매개변수
3. Smart Contract 배포 예시
Transaction API를 사용하여 Transaction을 전송합니다.
curl -X POST "https://tx-api.chainz.biz/api/v1/transactions/contract-deployment" \
-H "accept: application/json" \
-H "x-api-key: {API 키}" \
-H "Authorization: Bearer {액세스 토큰}" \
-H "Content-Type: application/json" \
-d "{
"chain": "8768cb29-2417-4281-84b1-924b82ebb720",
"clientReqId": "dc397f5d-6eb6-49e2-a4b4-b603b29c4729",
"params": {
"from": "0xbdc1776dd12feda8cc0f85fec65ea9e6ec906791",
"contractId": "745c7625-1467-4b66-ae9f-a9f8664f418c",
"initParams": [
],
"gas": "200000",
"gasPrice": "0"
},
"maxRetry": 3,
"isSync": true
}"
Transaction 전송 시에 UUID는 다르게 발송해야 합니다. 여러 번 테스트가 필요하면, 기존에 쓴 UUID에서 한 두개 문자만 변경한 후 테스트를 하세요.
{
"status": "SUCCEEDED",
"log": "{\"type\":\"CONTRACT_DEPLOYMENT\",\"isSync\":true,\"maxRetry\":3,\"txReceipt\":{\"blockHash\":\"0xfb461d242230abea4163284ae89ef4bb385446ba0aaa7cf8270ce39a140fc2b1\",\"blockNumber\":\"0x2b9a0f\",\"contractAddress\":\"0x64a0b1f26453e9fe70f03eb1a039664432da464f\",\"cumulativeGasUsed\":\"0x1d023\",\"from\":\"0xbdc1776dd12feda8cc0f85fec65ea9e6ec906791\",\"gasUsed\":\"0x1d023\",\"logs\":[],\"logsBloom\":\"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"status\":\"0x1\",\"to\":null,\"transactionHash\":\"0xa7651c822cb1eab6f8114dda801e2d8977226c86898e5d533dfc150a97548493\",\"transactionIndex\":\"0x0\"}}",
"timestamp": "2021-09-30T09:29:28.959Z",
"id": "98f9ee15-25c3-4bb4-900d-ed15411b4fc7"
}
Response로 받은 ID 값(RequestID)은 Transaction 의 처리 상태를 확인할 때 사용합니다.
Smart Contract 배포 상태 조회
1. API 정보
Transaction API의 findTxLogsByReqId 사용합니다(참고 링크).
2. 입력 정보
액세스 토큰 & API 키
ChainID - Blockchain 식별 정보
clientReqId - Request 의 사업자 고유 식별 정보
params - From Account의 Address, Contract ID, 초기값 매개변수
3. Smart Contract 배포 상태 조회 예시
curl -X GET "https://tx-api.chainz.biz/api/v1/transactions/98f9ee15-25c3-4bb4-900d-ed15411b4fc7
/logs" \
-H "accept: application/json" \
-H "x-api-key: {API 키}" \
-H "Authorization: Bearer {액세스 토큰}"
{
"logList": [
{
"status": "REQUESTED",
"log": "{\"type\":\"CONTRACT_DEPLOYMENT\",\"isSync\":true,\"maxRetry\":3}",
"timestamp": "2021-09-30T09:29:26.812Z"
},
{
"status": "SUCCEEDED",
"log": "{\"type\":\"CONTRACT_DEPLOYMENT\",\"isSync\":true,\"maxRetry\":3,\"txReceipt\":{\"blockHash\":\"0xfb461d242230abea4163284ae89ef4bb385446ba0aaa7cf8270ce39a140fc2b1\",\"blockNumber\":\"0x2b9a0f\",\"contractAddress\":\"0x64a0b1f26453e9fe70f03eb1a039664432da464f\",\"cumulativeGasUsed\":\"0x1d023\",\"from\":\"0xbdc1776dd12feda8cc0f85fec65ea9e6ec906791\",\"gasUsed\":\"0x1d023\",\"logs\":[],\"logsBloom\":\"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"status\":\"0x1\",\"to\":null,\"transactionHash\":\"0xa7651c822cb1eab6f8114dda801e2d8977226c86898e5d533dfc150a97548493\",\"transactionIndex\":\"0x0\"}}",
"timestamp": "2021-09-30T09:29:28.959Z"
}
],
"requestId": "98f9ee15-25c3-4bb4-900d-ed15411b4fc7",
"pCode": "DGFK6277"
}
4. log 정보 분석
Response Data 의 status 정보가 'SUCCEEDED' 상태인 log 정보의 모든 역슬래시(\)를 제거 후,
{"type":"CONTRACT_DEPLOYMENT","isSync":true,"maxRetry":3,"txReceipt":{"blockHash":"0xfb461d242230abea4163284ae89ef4bb385446ba0aaa7cf8270ce39a140fc2b1","blockNumber":"0x2b9a0f","contractAddress":"0x64a0b1f26453e9fe70f03eb1a039664432da464f","cumulativeGasUsed":"0x1d023","from":"0xbdc1776dd12feda8cc0f85fec65ea9e6ec906791","gasUsed":"0x1d023","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xa7651c822cb1eab6f8114dda801e2d8977226c86898e5d533dfc150a97548493","transactionIndex":"0x0"}}
JSON Parser(https://jsonformatter.org/json-parser)에서 JSON 형식으로 포맷팅합니다.

"txReceipt" 정보를 보면 Transaction Receipt 상세 정보를 확인할 수 있습니다.
{
"type": "CONTRACT_DEPLOYMENT",
"isSync": true,
"maxRetry": 3,
"txReceipt": {
"blockHash": "0xfb461d242230abea4163284ae89ef4bb385446ba0aaa7cf8270ce39a140fc2b1",
"blockNumber": "0x2b9a0f",
"contractAddress": "0x64a0b1f26453e9fe70f03eb1a039664432da464f",
"cumulativeGasUsed": "0x1d023",
"from": "0xbdc1776dd12feda8cc0f85fec65ea9e6ec906791",
"gasUsed": "0x1d023",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": "0x1",
"to": null,
"transactionHash": "0xa7651c822cb1eab6f8114dda801e2d8977226c86898e5d533dfc150a97548493",
"transactionIndex": "0x0"
}
}
txReceipt 정보 중, blockHash, blockNumber, transactionHash 정보를 가지고 Block Explorer에서 상세 정보를 확인 할 수 있습니다.
Block Explorer에서 조회
Block Explorer에서 Transaction 상세 정보를 조회할 수 있습니다.
메인넷 Block Explorer URL: https://block-explorer.chainz.biz
테스트넷 Block Explorer URL: https://test-block-explorer.chainz.biz
1. Block Hash로 검색

2. 조회 결과 화면

보다 자세한 사항은 Getting Started > Block Explorer 사용 항목을 참고하시기 바랍니다.
Last updated
Was this helpful?