Transaction API
 Transaction API는 트랜잭션 전송, 조회 기능을 제공합니다.
 트랜잭션 생성
 블록체인 네트워크에 전송할 트랜잭션을 생성합니다. 네이티브 토큰을 전송하거나 스마트 컨트랙트를 실행하는 트랜잭션을 생성할 수 있습니다.
 Request URL
      | 필드명 | 설명 | 타입 | 필수 여부 | 
    | x-network | 블록체인 네트워크 | string | Y | 
  | Authorization | API를 호출하기 위한 인증 토큰 | string | Y | 
  
 Request body
    | 필드명 | 설명 | 타입 | 필수 여부 | 
    | from | 트랜잭션을 블록체인에 전송할 계정주소입니다. | string | Y | 
  | to | 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 스마트 컨트랙트 주소  네이티브 토큰을 전송하는 트랜잭션: 토큰을 받을 계정 주소 | string | Y | 
  | amount | 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 0을 입력  네이티브 토큰을 전송하는 트랜잭션: 전송할 토큰 수량을 입력 | string | Y | 
  | data | 스마트 컨트랙트 관련 트랜잭션일 경우, 컨트랙트 함수명과 파라미터 정보입니다.  Polygon: Web3js encodeABI로data값 생성 가능  XPLA: XPLAjs 메세지 생성으로data값 생성 가능 | json | 스마트 컨트랙트 관련 트랜잭션: Y  네이티브 토큰 전송 트랜잭션: N | 
  | encoded | 반환받을 트랜잭션의 인코딩 여부 ( true: 인코딩된 Raw Transaction String,false: 디코딩된 JSON 결과) | boolean | N | 
  
 Responses
    | 필드명 | 설명 | 타입 | 
    | code | API 호출 결과 코드 , 0:성공 | number | 
  | message | 결과 메시지 | string | 
  | data | API 응답 데이터 | json | 
  | data.rawTx | 트랜잭션 데이터 | string 또는 json | 
  | data.hashedTx | 해시한 data.rawTx입니다. API 헤더x-network가 polygon이고 Request Bodyfrom이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. | string | 
  | data.requestId | API 요청을 식별할 수 있는 고유값 | string | 
  
 Request sample
 curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/tx' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Content-Type: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20yd...' 
  -d '{
  "from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
  "to": "0xFBd488D1b00604d3b05124d80E35FeA9A39C3296",
  "amount": "0.001",
  "data": "",
  "encoded": true
}'
Response sample
 {
  "code": 0,
  "message": "success",
  "data": {
    "rawTx": "02f68301388182013484618b021e84618b0235827b0c94fbd488d1b00604d3b05124d80e35fea9a39c329687038d7ea4c6800080c0808080",
    "requestId": "93ff43f7-3e19-42e1-a7d0-bbff40be1361"
  }
}
트랜잭션 조회
 트랜잭션 해시(txhash)를 지정하여 트랜잭션 정보를 조회합니다. 블록체인에 전송되어 블록에 기록된 트랜잭션만 조회할 수 있습니다.
 Request URL
  Path parameters
    | 필드명 | 설명 | 타입 | 필수 여부 | 
    | txhash | 트랜잭션 해시 | string | Y | 
  
     | 필드명 | 설명 | 타입 | 필수 여부 | 
    | x-network | 블록체인 네트워크{ploygon, xpla} | string | Y | 
  | Authorization | API를 호출하기 위한 인증 토큰 | string | Y | 
  
 Responses
    | 필드명 | 설명 | 타입 | 
    | code | api 호출 결과 코드, 0:성공 | number | 
  | message | 결과 메시지 | string | 
  | data | API 응답 데이터 | json | 
  | data.txhash | 트랜잭션 해시 | string | 
  | data.blockNumber | 트랜잭션이 담긴 블록 넘버 | number | 
  | data.contractAddress | 컨트랙트를 배포하는 트랜잭션인 경우 컨트랙트 주소 | string | 
  | data.status | 트랜잭션 상태이며, 블록체인 블록에 트랜잭션이 성공적으로 기록 완료되면 success | string | 
  | data.fee | 사용된 수수료 | json | 
  | data.data | 트랜잭션 데이터  Polygon  XPLA | json | 
  | data.logs | 트랜잭션 로그 | json[] | 
  
 Request sample
 curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/tx/0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125' 
  -H 'accept: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'x-network: polygon'
Response sample
 // Polygon Transaction
{
  "code": 0,
  "message": "success",
  "data": {
    "txhash": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125",
    "blockNumber": 33457511,
    "contractAddress": "0x4377C1bE43Db73561f1179e2637CFf0bbD617eFC",
    "status": "success",
    "fee": {
      "gas": 151232,
      ...
    },
    "data": {
      "from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
      ..
     },
    "logs": [
      {
        "transactionHash": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125",
        ....
      }
    ]
  }
}
// Xpla Transaction
{
  "code": 0,
  "message": "success",
  "data": {
    "txhash": "E21E0CC37CD1BCACADFDEBD4C7AF2F68257EA4591D670F4AA0A725B21422C29F",
    "blockNumber": 4818400,
    "contractAddress": "0x4377C1bE43Db73561f1179e2637CFf0bbD617eFC",
    "status": "success",
    "fee": {
      "gasUsed": 21000,
      ...
    },
    "data": {
      "memo": "",
      ...
    },
    "logs": [
      {
        "msg_index": 0,
        ...
      }
    ]
  }}
트랜잭션 전송
 서명한 트랜잭션을 블록체인에 전송합니다.
  Important
 트랜잭션 서명은 게임 유저가 개인 지갑에서 직접 수행하거나 게임사에서 직접 구현하여 진행해야 합니다.
    Note
 트랜잭션 해시(txhash)를 응답으로 받았더라도 전송이 실패할 수 있습니다. 트랜잭션 조회 API data.status로 전송 성공 여부를 확인해야 합니다.
   Request URL
      | 필드명 | 설명 | 타입 | 필수 여부 | 
    | x-network | 블록체인 네트워크{ploygon, xpla} | string | Y | 
  | Authorization | API를 호출하기 위한 인증 토큰 | string | Y | 
  
 Request body
  Note
 트랜잭션 전송 성공/실패 여부를 알려주는 기능(callbackUrl)은 Hive 블록체인 API에서만 지원합니다. 
      | 필드명 | 설명 | 타입 | 필수 여부 | 
    | signedTx | 서명한 트랜잭션 | string | Y | 
  | sync | 트랜잭션 동기/비동기 처리 여부  true: 동기식 처리로 트랜잭션이 블록에 담길 때까지 대기합니다. API를 호출한 상태로 응답값(txHash)을 받을 때까지 대기합니다.false: 비동기식 처리로 트랜잭션 전송 성공/실패를 바로 확인할 수 없습니다. 트랜잭션 조회 API를 호출해 트랜잭션 전송 성공 여부를 확인해야 합니다. | boolean | Y | 
  
 Responses
    | 필드명 | 설명 | 타입 | 
    | code | api 호출 결과 코드, 0:성공 | number | 
  | message | 결과 메시지 | string | 
  | data | API 응답 데이터 | json | 
  | data.txhash | 트랜잭션 해시 | string | 
  | data.status | 트랜잭션 상태 | string | 
  
  Note
 비동기식 처리 시 응답값을 조회할 수 없거나 data.status가 pending일 수 있습니다. 트랜잭션이 블록에 담긴 후 상태가 변경됩니다.
   Request sample
 curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/send' 
  -H 'accept: application/json' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...' 
  -H 'Content-Type: application/json' 
  -d '{
  "signedTx": "0x02f8b58301388181b985016d14154585016d1415578289219494853bdc9c...",
  "sync": false
}'
Response sample
 // Polygon
{
  "code": 0,
  "message": "success",
  "data": {
    "txhash": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076",
    "status": "pending"
  }
}
// Xpla
{
  "code": 0,
  "message": "success",
  "data": {
    "txhash": "84655BB965D709A4AAD4104C7FFBD8E42F52F0BB313493FFDCA02B01FE983A8F",
    "status": "pending"
  }
}