API KMS
ระบบการจัดการกุญแจในคลาวด์ (KMS) เป็นบริการที่คลาวด์จัดการกุญแจที่เข้ารหัสแทนผู้ใช้ (Google Cloud Platform (GCP) KMS, Amazon Web Services (AWS) KMS).
Blockchain Open API - KMS API ช่วยให้คุณสามารถใช้กุญแจที่เก็บไว้ใน KMS ของคลาวด์เป็นกุญแจกระเป๋าเงินบัญชีบล็อกเชนของคุณ (กุญแจส่วนตัว หรือกุญแจส่วนตัวของกระเป๋าเงิน) ด้วย KMS API ผู้ใช้สามารถสร้างธุรกรรม ลงนาม และส่งไปยังบล็อกเชนโดยไม่ต้องจัดการกุญแจกระเป๋าเงินบัญชีบล็อกเชนของตนโดยตรง ผ่านกุญแจที่เก็บไว้ใน KMS แทน แพลตฟอร์ม KMS ของคลาวด์ที่รองรับโดย KMS API ได้แก่ GCP และ AWS.
ตัวอย่างเช่น KMS API สามารถใช้งานได้ดังนี้:
 
หากคุณมีคีย์ในคลาวด์ KMS แล้ว
- เตรียมข้อมูลรับรองคลาวด์
- ลงทะเบียนข้อมูลบัญชีบริการคลาวด์ (Credentials) ที่ Hive Console > Blockchain > KMS Credentials > Add Credentials และรับx-credential-id
- เตรียมข้อมูลคีย์ KMS ของคลาวด์
- เรียก API เพื่อ ลงทะเบียนที่อยู่กระเป๋าเงิน
- รับที่อยู่กระเป๋าเงิน
- สอบถามข้อมูลกระเป๋าเงิน KMS
- สร้างธุรกรรมด้วยกระเป๋าเงิน KMS: เรียก APIs สำหรับการสร้างธุรกรรมใหม่ เช่น การส่งโทเค็น และ การปรับใช้สัญญาอัจฉริยะ
- ลงนามธุรกรรมที่สร้างขึ้นด้วย KMS Sign API
- ส่งธุรกรรมที่ลงนามไปยัง เครือข่ายบล็อกเชน
หากคุณไม่ได้ใช้ cloud KMS หรือหากไม่มีคีย์ใน cloud KMS
- เตรียมบัญชีบริการ KMS บนคลาวด์
- สร้างคีย์กระเป๋า: สร้างมันโดย API การสร้างคีย์กระเป๋า- เตรียมข้อมูลรับรองคลาวด์
- เตรียม คีย์การตรวจสอบสิทธิ์ API Blockchain
- ลงทะเบียนข้อมูลบัญชีบริการคลาวด์ (Credentials) ที่ Hive Console > Blockchain > KMS Credentials > Add Credentials และรับx-credential-id
- ใช้ x-credential-idและคีย์การตรวจสอบสิทธิ์ API เพื่อ สร้างคีย์กระเป๋า KMS
- รับคีย์กระเป๋าและที่อยู่กระเป๋า
 
- สอบถามข้อมูลกระเป๋า KMS
- สร้างธุรกรรมด้วยกระเป๋า KMS: เรียกใช้ API สำหรับการสร้างธุรกรรมใหม่ เช่น การส่งโทเค็น และ การปรับใช้สัญญาอัจฉริยะ
- ลงนามธุรกรรมที่สร้างขึ้นด้วย KMS Sign API
- ส่งธุรกรรมที่ลงนามไปยัง เครือข่ายบล็อกเชน
Note
การทำธุรกรรมที่สามารถลงนามด้วย KMS Sign API จะเป็นเพียงธุรกรรมที่สร้างด้วยกุญแจกระเป๋า KMS เท่านั้น
ข้อกำหนดเบื้องต้น¶
ลงทะเบียน Credentials ของ Cloud KMS ของคุณใน Hive Console > Blockchain > KMS Credentials > เพิ่ม Credentials.
การสร้างที่อยู่กระเป๋าเงินบัญชีบล็อกเชนและกุญแจกระเป๋าเงิน KMS¶
สร้างกุญแจกระเป๋าใน KMS โดยใช้บัญชีบริการคลาวด์ของคุณ และตามกุญแจกระเป๋านี้ สร้างที่อยู่กระเป๋าบัญชีบล็อกเชน กุญแจกระเป๋าจะถูกเก็บไว้ใน KMS และไม่สามารถตรวจสอบได้ หากมีความล่าช้าในระหว่างกระบวนการสร้างกุญแจ ที่อยู่กระเป๋าอาจไม่รวมอยู่ในการตอบสนอง API คุณสามารถเรียกคืนที่อยู่กระเป๋าโดยใช้ KMS Wallet Information Inquiry API พร้อมกับ ID กุญแจ (keyId).
URL ที่ร้องขอ¶
| ลิงก์สด | https://bc-api.qpyou.cn/core/v1/kms | 
|---|---|
| ลิงก์ Sandbox | https://sandbox-bc-api.qpyou.cn/core/v1/kms | 
| วิธีการ HTTP | POST | 
| ประเภทเนื้อหา | application/json | 
พารามิเตอร์หัวเรื่อง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| x-network | เครือข่าย Blockchain | string | Y | 
| x-credential-id | ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentialsใน Hive Console | string | Y | 
| Authorization | โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียก API | string | Y | 
เนื้อหาคำขอ¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| keyName | ป้อนชื่อที่ต้องการสำหรับคีย์ที่จะสร้าง | string | Y | 
| keyOptions | ข้อมูลตัวเลือกคีย์กระเป๋า KMS | json | Y | 
| keyOptions.location | สถานที่ที่คีย์จะถูกเก็บ นี่หมายถึงข้อมูลสถานที่ KMS ที่ใช้โดยบริการคลาวด์แต่ละราย | string | * GCP: Y (location, ตัวอย่าง: asia-northeast3) * AWS: Y (region, ตัวอย่าง: ap-northeast-2d) | 
| keyOptions.project | GCP project ID | string | * GCP: Y * AWS: N | 
| keyOptions.keyRing | ข้อมูลเกี่ยวกับ GCP KeyRing | string | * GCP: Y * AWS: N | 
การตอบสนอง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| code | รหัสผลลัพธ์การเรียก API, 0: สำเร็จ | number | 
| message | ข้อความผลลัพธ์ | string | 
| data | ข้อมูลการตอบกลับ API | json | 
| data.keyId | รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น | string | 
| data.keyName | ชื่อเล่นของคีย์ที่สร้างขึ้น | string | 
| data.address | ที่อยู่กระเป๋าเงินบัญชี Blockchain ที่สร้างด้วยคีย์ KMS | string | 
| data.purpose | วัตถุประสงค์ของการใช้งานคีย์ | string | 
| data.algorithm | ประเภทของอัลกอริธึมการสร้างคีย์ | string | 
| data.cloudType | ประเภทของแพลตฟอร์มคลาวด์ | string | 
| data.network | เครือข่าย Blockchain ที่คีย์จะถูกใช้ | string | 
| data.options | ข้อมูลตัวเลือกคีย์ | json | 
| data.options.project | รหัสโครงการ GCP | string | 
| data.options.location | สถานที่ที่เก็บคีย์ | string | 
| data.options.keyRing | ข้อมูลเกี่ยวกับ GCP KeyRing | string | 
| data.options.keyVersion | ข้อมูลเกี่ยวกับเวอร์ชันคีย์ GCP | string | 
| data.regId | รหัสผู้ลงทะเบียนคีย์ | string | 
| data.modId | รหัสผู้ปรับเปลี่ยนคีย์ | string | 
| data.createdAt | วันที่ลงทะเบียนคีย์ | string | 
| data.updatedAt | วันที่ปรับเปลี่ยนคีย์ | string | 
ตัวอย่างคำขอ¶
curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms' 
  -H 'accept: application/json' 
  -H 'x-credential-id: eb6cc005-b8d0-bc96-8b60-a531c2f15fd2' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiO... 
  -H 'Content-Type: application/json' 
  -d '{
  "keyName": "test-key",
  "keyOptions": {
    "project": "test-project",
    "location": "asia-northeast3",
    "keyRing": "test-keyring"
    },
    "requesterId": "system"
    }'
ตัวอย่างการตอบกลับ¶
{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "test1-game-provider",
    "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test1-game-provider/cryptoKeyVersions/1",
    "address": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "project",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "test",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}
ลงทะเบียนที่อยู่กระเป๋าเงินบัญชีบล็อกเชน¶
สร้างที่อยู่กระเป๋าเงินบัญชีบล็อกเชนตามกุญแจกระเป๋า KMS และลงทะเบียนกับ Hive เซิร์ฟเวอร์ เมื่อใช้ GCP คุณต้องระบุเวอร์ชันของกุญแจ (keyVersion).
URL การร้องขอ¶
| ลิงก์สด | https://bc-api.qpyou.cn/core/v1/kms/import | 
|---|---|
| ลิงก์ Sandbox | https://sandbox-bc-api.qpyou.cn/core/v1/kms/import | 
| วิธีการ HTTP | POST | 
| ประเภทเนื้อหา | application/json | 
พารามิเตอร์หัวเรื่อง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| x-network | เครือข่ายบล็อกเชน | สตริง | ใช่ | 
| x-credential-id | ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentialsใน Hive Console | สตริง | ใช่ | 
| Authorization | โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API | สตริง | ใช่ | 
เนื้อหาคำขอ¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| keys | ข้อมูลคีย์กระเป๋า KMS | array(json) | ใช่ | 
| keys.keyId | รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น | string | ใช่ | 
| keys.keyVersion | ข้อมูลเวอร์ชันคีย์เมื่อใช้ GCP | string | * GCP: ใช่ * AWS: ไม่ | 
| keyOptions | ข้อมูลตัวเลือกคีย์ | json | ใช่ | 
| keyOptions.location | ตำแหน่งที่จัดเก็บคีย์ นี่คือข้อมูลตำแหน่ง KMS ที่ใช้โดยแต่ละคลาวด์ | string | * GCP: ใช่ (location, ตัวอย่าง: asia-northeast3) * AWS: ใช่ (region, ตัวอย่าง: ap-northeast-2d) | 
| keyOptions.project | รหัสโปรเจ็กต์ GCP | string | * GCP: ใช่ * AWS: ไม่ | 
| keyOptions.keyRing | ข้อมูลเกี่ยวกับ GCP key ring | string | * GCP: ใช่ * AWS: ไม่ | 
| requesterId | รหัสผู้ขอ ข้อมูลนี้เป็นค่าที่กำหนดเองเพื่อแยกแยะผู้เรียก API รหัสบัญชีที่เข้าสู่ระบบใน Hive Console จะถูกป้อนเป็น requesterId เมื่อสร้างกระเป๋า KMS | string | ไม่ | 
การตอบสนอง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| code | รหัสผลลัพธ์การเรียก API, 0: สำเร็จ | number | 
| message | ข้อความผลลัพธ์ | string | 
| data | ข้อมูลการตอบกลับ API | json | 
| data.keyId | รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น | string | 
| data.keyName | ชื่อเล่นของคีย์ที่สร้างขึ้น | string | 
| data.address | ที่อยู่กระเป๋าเงินบัญชี Blockchain ที่สร้างด้วยคีย์ KMS | string | 
| data.purpose | วัตถุประสงค์ในการใช้คีย์ | string | 
| data.algorithm | ประเภทของอัลกอริธึมการสร้างคีย์ | string | 
| data.cloudType | ประเภทของแพลตฟอร์มคลาวด์ | string | 
| data.network | เครือข่าย Blockchain ที่คีย์จะถูกใช้ | string | 
| data.options | ข้อมูลตัวเลือกคีย์ | json | 
| data.options.project | รหัสโครงการ GCP | string | 
| data.options.location | ตำแหน่งที่เก็บคีย์ | string | 
| data.options.keyRing | ข้อมูลเกี่ยวกับ GCP key ring | string | 
| data.options.keyVersion | ข้อมูลเกี่ยวกับ GCP key version | string | 
| data.regId | รหัสของผู้ลงทะเบียนคีย์ ซึ่งเหมือนกับ requesterId | string | 
| data.modId | รหัสของผู้แก้ไขคีย์ | string | 
| data.createdAt | วันที่ลงทะเบียนคีย์ | string | 
| data.updatedAt | วันที่แก้ไขคีย์ | string | 
ตัวอย่างคำขอ¶
curl -X 'POST' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms/import' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 9b3c0c1d-868c-71ea-a1a9-e615148b7f14' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJvb...' 
  -H 'Content-Type: application/json' 
  -d '{
  "keys": [
    {
      "keyId": "test1-game-provider",
      "keyVersion": "1"
    }
  ],
  "keyOptions": {
    "project": "kms-test",
    "location": "asia-northeast3",
    "keyRing": "key-ring"
  },
  "requesterId": "system"
}'
ตัวอย่างการตอบกลับ¶
{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "kms-key-002",
    "keyName": "projects/quixotic-carver-412405/locations/asia-northeast3/keyRings/keyring/cryptoKeys/kms-key-002/cryptoKeyVersions/1",
    "address": "0x1e0481127b0ed12b6b6911bec32d414d76042860",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "quixotic-carver-412405",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "system",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}
ดึงข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชี¶
ดึงข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋า account โดยใช้ ID ที่ไม่ซ้ำกัน (keyId) ของ KMS wallet key หรือชื่อคีย์ (keyName) ซึ่งสามารถใช้ได้หากคุณไม่สามารถตรวจสอบที่อยู่กระเป๋าได้เมื่อ สร้างคีย์ 
URL การร้องขอ¶
| ลิงก์สด | https://bc-api.qpyou.cn/core/v1/kms/{key} | 
|---|---|
| ลิงก์ Sandbox | https://sandbox-bc-api.qpyou.cn/core/v1/kms/{key} | 
| วิธีการ HTTP | GET | 
| ประเภทเนื้อหา | application/json | 
พารามิเตอร์เส้นทาง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| key | รหัสประจำตัวที่ไม่ซ้ำกันของคีย์ หรือชื่อคีย์ | สตริง | ใช่ | 
พารามิเตอร์หัวเรื่อง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| x-credential-id | ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentialsใน Hive Console | string | Y | 
| Authorization | โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียก API | string | Y | 
การตอบสนอง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| code | รหัสผลลัพธ์การเรียก API, 0:สำเร็จ | หมายเลข | 
| message | ข้อความผลลัพธ์ | สตริง | 
| data | ข้อมูลการตอบกลับ API | json | 
| data.keyId | รหัสประจำตัวที่ไม่ซ้ำของกุญแจที่สร้างขึ้น | สตริง | 
| data.keyName | ชื่อเล่นของกุญแจที่สร้างขึ้น | สตริง | 
| data.purpose | วัตถุประสงค์ของการใช้งานกุญแจ | สตริง | 
| data.algorithm | ประเภทของอัลกอริธึมการสร้างกุญแจ | สตริง | 
| data.cloudType | ประเภทของแพลตฟอร์มคลาวด์ | สตริง | 
| data.network | เครือข่ายบล็อกเชนที่กุญแจจะถูกใช้ | สตริง | 
| data.options | ข้อมูลตัวเลือกกุญแจ | json | 
| data.options.project | รหัสโครงการ GCP | สตริง | 
| data.options.location | สถานที่ที่เก็บกุญแจ | สตริง | 
| data.options.keyRing | ข้อมูลวงแหวนกุญแจ GCP | สตริง | 
| data.options.keyVersion | ข้อมูลเวอร์ชันกุญแจ GCP | สตริง | 
| data.regId | รหัสผู้ลงทะเบียนกุญแจ | สตริง | 
| data.modId | รหัสผู้แก้ไขกุญแจ | สตริง | 
| data.createdAt | วันที่ลงทะเบียนกุญแจ | สตริง | 
| data.updatedAt | วันที่แก้ไขกุญแจ | สตริง | 
ตัวอย่างคำขอ¶
curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms/kms-key-002' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 9b3c0c1d-868c-71ea-a1a9-e615148b7f14' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJvbGUiOiJhZG1pb...'
ตัวอย่างการตอบกลับ¶
{
  "code": 0,
  "message": "success",
  "data": {
    "keyId": "test1-game-provider",
    "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test1-game-provider/cryptoKeyVersions/1",
    "address": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
    "purpose": "ASYMMETRIC_SIGN",
    "algorithm": "EC_SIGN_SECP256K1_SHA256",
    "cloudType": "gcp",
    "network": "polygon",
    "options": {
      "project": "project",
      "location": "asia-northeast3",
      "keyRing": "keyring",
      "keyVersion": "1"
    },
    "regId": "test",
    "modId": null,
    "createdAt": "2024-02-22T08:28:04.000Z",
    "updatedAt": null
  }
}
ดึงข้อมูลกระเป๋า KMS key และรายการที่อยู่กระเป๋า¶
ดึงข้อมูลรายการข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชี
URL ที่ร้องขอ¶
| ลิงก์สด | https://bc-api.qpyou.cn/core/v1/kms | 
|---|---|
| ลิงก์ Sandbox | https://sandbox-bc-api.qpyou.cn/core/v1/kms | 
| วิธีการ HTTP | GET | 
| ประเภทเนื้อหา | application/json | 
พารามิเตอร์หัว¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| x-network | เครือข่ายบล็อกเชน | สตริง | ใช่ | 
| x-credential-id | ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentialsใน Hive Console | สตริง | ใช่ | 
| Authorization | โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API | สตริง | ใช่ | 
พารามิเตอร์การค้นหา¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| page | หมายเลขหน้าปัจจุบัน | หมายเลข | ไม่ | 
| limit | จำนวนข้อมูลกระเป๋า KMS key และที่อยู่กระเป๋าบัญชีที่จะแสดงต่อหน้า | หมายเลข | ไม่ | 
การตอบสนอง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| code | รหัสผลลัพธ์การเรียก API, 0: สำเร็จ | หมายเลข | 
| message | ข้อความผลลัพธ์ | สตริง | 
| data | ข้อมูลการตอบกลับ API | json | 
| data.kms | รายการข้อมูลคีย์กระเป๋า KMS และที่อยู่กระเป๋า | อาร์เรย์(json) | 
| data.meta | ข้อมูลการแบ่งหน้า | json | 
| data.meta.totalItems | จำนวนรายการทั้งหมดที่ค้นหา (จำนวนคีย์กระเป๋า KMS และข้อมูลที่อยู่กระเป๋า) | หมายเลข | 
| data.meta.itemsPerPage | จำนวนข้อมูลคีย์กระเป๋า KMS และข้อมูลที่อยู่กระเป๋าที่แสดงต่อหน้า | หมายเลข | 
| data.meta.totalPages | จำนวนหน้าทั้งหมด | หมายเลข | 
| data.meta.currentPage | หมายเลขหน้าปัจจุบัน | หมายเลข | 
ข้อมูลของแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์ data.kms: ข้อมูลคีย์กระเป๋า KMS และที่อยู่กระเป๋าบัญชี¶
 | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| keyId | รหัสประจำตัวที่ไม่ซ้ำของคีย์ที่สร้างขึ้น | string | 
| keyName | ชื่อเล่นของคีย์ที่สร้างขึ้น | string | 
| address | ที่อยู่กระเป๋าเงินบัญชีบล็อกเชนที่สร้างขึ้นด้วยคีย์ KMS | string | 
| purpose | วัตถุประสงค์ในการใช้คีย์ | string | 
| algorithm | ประเภทของอัลกอริธึมการสร้างคีย์ | string | 
| cloudType | ประเภทของแพลตฟอร์มคลาวด์ | string | 
| network | เครือข่ายบล็อกเชนที่คีย์จะถูกใช้ | string | 
| options | ข้อมูลตัวเลือกคีย์ | json | 
| options.project | รหัสโครงการ GCP | string | 
| options.location | สถานที่ที่คีย์ถูกเก็บ | string | 
| options.keyRing | ข้อมูลคีย์ริง GCP | string | 
| options.keyVersion | ข้อมูลเวอร์ชันคีย์ GCP | string | 
| regId | รหัสผู้ลงทะเบียนคีย์ | string | 
| modId | รหัสผู้แก้ไขคีย์ | string | 
| createdAt | วันที่ลงทะเบียนคีย์ | string | 
| updatedAt | วันที่แก้ไขคีย์ | string | 
ตัวอย่างคำขอ¶
curl -X 'GET' 
  'https://sandbox-bc-api.qpyou.cn/core/v1/kms?page=1&limit=10' 
  -H 'accept: application/json' 
  -H 'x-credential-id: 41e26545-547e-7632-be1f-289f75c092d2' 
  -H 'x-network: polygon' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlObyI6MSwiaWQiOiJwbGF0Zm9ybSIsImNvbXBhbnkiOm51bGwsInJv...'
ตัวอย่างการตอบกลับ¶
{
  "code": 0,
  "message": "success",
  "data": {
    "kms": [
      {
        "keyId": "test-polygon-001",
        "keyName": "projects/tribal-octane-403302/locations/asia-northeast3/keyRings/test-keyring-001/cryptoKeys/test-polygon-001/cryptoKeyVersions/1",
        "address": "0x599220fb6cd54553b9c2dfda3b0f711d7ebc21fb",
        "purpose": "ASYMMETRIC_SIGN",
        "algorithm": "EC_SIGN_SECP256K1_SHA256",
        "cloudType": "gcp",
        "network": "polygon",
        "options": {
          "project": "tribal-octane-403302",
          "location": "asia-northeast3",
          "keyRing": "test-keyring-001",
          "keyVersion": "1"
        },
        "regId": "system",
        "modId": null,
        "createdAt": "2024-02-22T08:27:58.000Z",
        "updatedAt": null
      },{
        "keyId": "kms-key-002",
        "keyName": "projects/quixotic-carver-412405/locations/asia-northeast3/keyRings/keyring/cryptoKeys/kms-key-002/cryptoKeyVersions/1",
        "address": "0x1e0481127b0ed12b6b6911bec32d414d76042860",
        "purpose": "ASYMMETRIC_SIGN",
        "algorithm": "EC_SIGN_SECP256K1_SHA256",
        "cloudType": "gcp",
        "network": "polygon",
        "options": {
          "project": "quixotic-carver-412405",
          "location": "asia-northeast3",
          "keyRing": "keyring",
          "keyVersion": "1"
        },
        "regId": "system",
        "modId": null,
        "createdAt": "2024-02-22T08:28:04.000Z",
        "updatedAt": null
      }
    ],
    "meta": {
      "totalItems": 2,
      "itemCount": 2,
      "itemsPerPage": 10,
      "totalPages": 1,
      "currentPage": 1
    }
  }
}
ลงนามธุรกรรมด้วยกุญแจกระเป๋า KMS¶
ลงนามธุรกรรมด้วยกุญแจกระเป๋า KMS เท่านั้น ธุรกรรมที่สร้างขึ้นด้วยบัญชีกระเป๋า KMS เท่านั้นที่สามารถลงนามด้วยกุญแจกระเป๋า KMS ได้
URL การร้องขอ¶
| ลิงก์สด | https://bc-api.qpyou.cn/core/v1/kms/sign | 
|---|---|
| ลิงก์ Sandbox | https://sandbox-bc-api.qpyou.cn/core/v1/kms/sign | 
| วิธีการ HTTP | POST | 
| ประเภทเนื้อหา | application/json | 
พารามิเตอร์หัว¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| x-credential-id | ค่าที่ไม่ซ้ำกันที่ได้รับเมื่อทำการลงทะเบียน Credentialsใน Hive Console | string | Y | 
| Authorization | โทเค็นการตรวจสอบสิทธิ์ที่จำเป็นในการเรียกใช้ API | string | Y | 
เนื้อหาคำขอ¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
|---|---|---|---|
| from | ที่อยู่กระเป๋า KMS ที่จะใช้ในการสร้างลายเซ็น ต้องตรงกับ fromใน Request Body ของ API (ตัวอย่าง) ที่สร้างธุรกรรม | string | Y | 
| unsignedTx | ข้อมูลธุรกรรมที่ยังไม่ได้ลงนาม นี่คือ data.rawTxที่คุณได้รับเป็นการตอบกลับเมื่อสร้างธุรกรรม ประเภทต่อไปนี้ได้รับการสนับสนุนสำหรับ unsignedTx:1. ข้อมูลธุรกรรม 2. ข้อมูลธุรกรรมหลายลายเซ็น (เมื่อ x-networkคือpolygon) | string | Y | 
การตอบสนอง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| code | รหัสผลลัพธ์การเรียก API, 0: สำเร็จ | number | 
| message | ข้อความผลลัพธ์ | string | 
| data | ข้อมูลการตอบกลับของ API | json | 
| data.signedTx | ข้อมูลของธุรกรรมที่ลงนาม | string | 
ตัวอย่างคำขอ¶
curl -X 'POST' 
  'http://sandbox-bc-api.qpyou.cn/core/v1/kms/sign' 
  -H 'accept: application/json' 
  -H 'x-credential-id: eb6cc005-b8d0-bc96-8b60-a531c2f15fd2' 
  -H 'Content-Type: application/json' 
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20yd...' 
  -d '{
  "from": "0xc5AC98006fe612395b132742Fbe80a6Dc184670a",
  "unsignedTx": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125..."
}'
