RandomNumber APIs#

신뢰된 난수 생성을 위한 API를 제공합니다.

※ RandomNumber API 를 사용하기 위해서는, 별도의 RandomNumber ContractID 를 발급받아야 합니다.


난수(RandomNumber) 생성 요청#

난수 발행 요청 후, 해당 txHash 값을 리턴합니다.

Request

  • HOST:

    api.boraecosystem.com

  • URI:

    /v1/chain/rng/{contractId}/random

  • METHOD:

    POST

Request Parameters

Parameter Required Values Description Parameter type Data Type
Authorization * Bearer {Client's AccessToken} Client Access Token header string
contractId * RNG Contract ID url integer
tokenAddr * 난수생성 요청자 지갑주소 formData string, length(42)
blockOffset * 대기할 블록수, {현재블록번호 + blockOffset}에 해당하는 블록의 블록해시값이 난수생성인자로 사용됨 formData integer, minimum(0)
maxNumber * 생성할 난수의 최대값(1~maxNumber) formData integer

Response

 {
   "status": integer,
   "data": {
    "tx_hash": string, length(66),      // 블록체인 내 TransactionHash
    "sequence": integer                 // 난수발행요청순번
  }
}

Error

문서 하단 Error Code 참조

Sample:

Sample Request:

curl -X POST "https://api.boraecosystem.com/v1/chain/rng/4/random" -H "accept: application/json" -H "Authorization: Bearer {Client's AccessToken}" -H "Content-Type: application/x-www-form-urlencoded" -d "tokenAddr=0x9961064b96c71ce47f3a14a1c7456de7fb5ec644&blockOffset=1&maxNumber=100"

Sample Response:

{
   "status": 200,
   "data": {
    "tx_hash": "0x8da32434d08be077c7995b7cb4b89ab4b8a65ade57004793da20bed19674e1bc",
    "sequence": 12
  }
}

난수(RandomNumber) 결과 요청#

생성된 난수값과 생성에 사용된 모든 인자값들을 리턴합니다. 결과값 중 일부는 난수 검증시 사용됩니다.

Request

  • HOST:

    api.boraecosystem.com

  • URI:

    /v1/chain/rng/{contractId}/random

  • METHOD:

    GET

Parameters

Request Parameters

Parameter Required Values Description Parameter type Data Type
Authorization * Bearer {Client's AccessToken} Client Access Token header string
contractId * RNG Contract ID url integer
tokenAddr * 난수생성 요청자 지갑주소 query string, length(42)
sequence * 난수생성요청시 발급받은 난수생성순번 query integer

Response

{
  "status": integer,
  "data": {
    "id": integer,                      // [내부용]
    "contract_id": integer,             // RNG Contract ID
    "token_addr": string, length(42),   // 난수생성요청자 지갑주소
    "request_block_no": integer,        // 난수생성요청시점 블록번호
    "block_offset": integer,            // 난수생성요청시 block_offset
    "expected_block_no": integer,       // CurrentBlockNo + block_offset
    "block_hash": string, length(66),   // expected_block_no 의 블록Hash
    "seed": string, length(66),         // 연산된 Seed 값
    "sequence": integer,                // 난수요청 순번
    "min_number": integer,              // 난수발행 최소번호
    "max_number": integer,              // 난수발행 최대번호
    "random_number": integer,           // 난수발행 결과값
    "app_no": integer,                  // 난수생성요청 Bapp
    "tx_hash": string, length(66),      // 난수생성요청 트랜잭션Hash
    "verified": integer,                // 난수검증여부  (1:성공, 0:검증전, -1:실패)
    "created_at": string,               // 난수생성요청일시
    "updated_at": string                // 난수검증완료일시
  }
}

Error

문서 하단 Error Code 참조

Sample:

Sample Request:

curl -X GET "https://api.boraecosystem.com/v1/chain/rng/4/random?tokenAddr=0x9961064b96c71ce47f3a14a1c7456de7fb5ec644&sequence=12" -H "accept: application/json" -H "Authorization: Bearer {Client's AccessToken}"

Sample Response:

{
  "status": integer,
  "data": {
    "id": integer,
    "contract_id": integer,
    "token_addr": "0x9961064b96c71ce47f3a14a1c7456de7fb5ec644",
    "request_block_no": 10684,
    "block_offset": 1,
    "expected_block_no": 10685,
    "block_hash": "0x474bd720ebafa9c17f81b2c9a4f9e2452ed4ebc1ec81c0f89dc49f226094b37b",
    "seed": "0xa5f369b0eb0f4327768b50fcfccb66569c85d84e87882847364b55d8c25181bf",
    "sequence": 12,
    "min_number": 1,
    "max_number": 100,
    "random_number": 15,
    "app_no": 100004,
    "tx_hash": "0x4e6645aa749faca3cf16140d45f8180d1fd8c2fada732faf5beeaa35519b76c5",
    "verified": 1,
    "created_at": "2019-02-13 19:25:55",
    "updated_at": "2019-02-13 19:25:58"
  }
}

난수(RandomNumber) 결과 검증#

생성된 난수값이 맞는지 검증하며, 난수생성에 사용한 모든 값을 리턴합니다.

Request

  • HOST:

    api.boraecosystem.com

  • URI:

    /v1/chain/rng/{contractId}/random/verify

  • METHOD:

    GET

Parameters

Request Parameters

Parameter Required Values Description Parameter type Data Type
Authorization * Bearer {Client's AccessToken} Client Access Token header string
contractId * RNG Contract ID url integer
tokenAddr * 난수생성 요청자 지갑주소 query string, length(42)
requestBlockNo * 난수생성요청시 블록번호 query integer
blockOffset * 난수생성요청시 입력한 blockOffset query integer
sequence * 난수생성요청시 발급받은 난수생성순번 query integer
maxNumber * 난수생성요청시 입력한 난수 최대값 query integer

Response

{
  "status": integer,
  "data": {
    "status": integer,                  // 상태값 (-1:비정상,0:채굴전,1:정상)
    "block_hash": string, length(66),   // expected_block_no 의 블록Hash
    "seed": string, length(66),         // 연산된 Seed 값
    "random_number": integer,           // 난수발행 결과값
    "last_sequence": integer,           // [내부용]
    "expected_block_no": integer,       // expected_block_no
    "current_block_no": integer         // [내부용]
  }
}

Error

문서 하단 Error Code 참조

Sample:

Sample Request:

curl -X GET "https://api.boraecosystem.com/v1/chain/rng/4/random/verify?tokenAddr=0x9961064b96c71ce47f3a14a1c7456de7fb5ec644&requestBlockNo=10684&blockOffset=1&sequence=12&maxNumber=100" -H "accept: application/json" -H "Authorization: Bearer {Client's AccessToken}"

Sample Response:

{
  "status": 200,
  "data": {
    "status": 1,
    "block_hash": "0x474bd720ebafa9c17f81b2c9a4f9e2452ed4ebc1ec81c0f89dc49f226094b37b",
    "seed": "0xa5f369b0eb0f4327768b50fcfccb66569c85d84e87882847364b55d8c25181bf",
    "random_number": 15,
    "last_sequence": 13,
    "expected_block_no": 10685,
    "current_block_no": 10701
  }
}

Error Code#

Response Format

{
  "status": 400,
  "error": [
    {
      "message": "string",
      "field": "string",
      "validation": "string"
    }
  ]
}

Error Code

HTTP CodeStatusDescExample
200400Validation Error:
파라미터가 잘못 되었습니다.
wzxhzdk:10
200401Unauthorized: 권한이 없습니다. wzxhzdk:11
200404Not Found: 없는 URL 입니다. wzxhzdk:12
200422Unprocessable Entity: 요청을 처리할 수 없습니다. wzxhzdk:13
200500Internal Server Error: 서버 내부 오류입니다. wzxhzdk:14
4xx
5xx
기타 오류 HTTP Code: 503
Body: Response: 503, Under Maintenance