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..."
}'