SignedTransaction

עסקה עם חתימות מצורפות. כדי לשלוח עסקה, צריך להוסיף את ההודעה הזו ל-SubmitTransactionRequest אחרי שעברה סריאליזציה.

ייצוג ב-JSON
{
  "serializedClientTransaction": string,
  "senderSignature": string,
  "senderSigningKeySlot": enum (KeySlot),
  "otherSignatures": [
    string
  ],
  "otherSigningKeySlots": [
    enum (KeySlot)
  ]
}
שדות
serializedClientTransaction

string (bytes format)

חובה. ‫ClientTransaction עם פרטי העסקה.

מחרוזת בקידוד Base64.

senderSignature

string (bytes format)

חובה. החתימה של שולח העסקה.

כדי לחשב את החתימה, צריך לחתום על הבייטים של serializedClientTransaction באמצעות המפתח הפרטי שלהם.

בשרשרת עסקאות, הבייטים לחתימה מחושבים כשרשור של:

  • תקציר של עסקת הלקוח שעברה סריאליזציה של כל השרשרת.
  • תקציר של העסקה החתומה בסדרה של כל יחידה בשרשרת, לפי הסדר שבו הן מופיעות בשרשרת.

התקצירים מחושבים באמצעות SHA-256.

מחרוזת בקידוד Base64.

senderSigningKeySlot

enum (KeySlot)

זה שינוי אופציונלי. חריץ המפתח של השולח שמשמש לחתימה על העסקה. אם לא מציינים משבצת, המערכת משתמשת במשבצת הראשית של חשבון השולח.

otherSignatures[]

string (bytes format)

זה שינוי אופציונלי. החתימות של החשבונות שרשומים כבעלי זכות חתימה נוספים על העסקה. המספר והסדר של החתימות האלה חייבים להתאים לשדה signatories ב-ClientTransaction.

הבייטים שצריך לחתום עליהם זהים לאלה של senderSignature, וכל חותם צריך לחתום עליהם באמצעות המפתח הפרטי שלו.

מספר החותמים הנוספים והזהות שלהם תלויים בסוג העסקה הספציפי. בשרשרת עסקאות, נדרשת חתימה אחת לכל חשבון שמופיע כשולח או כחותם על יחידה בשרשרת.

מחרוזת בקידוד Base64.

otherSigningKeySlots[]

enum (KeySlot)

זה שינוי אופציונלי. החריצים למפתחות של החשבונות שרשומים כבעלי זכות חתימה נוספים על העסקה. אם הוא מוגדר, המספר והסדר של משבצות המפתחות האלה חייבים להתאים לשדה otherSignatures ב-SignedTransaction. אם לא מציינים ערך, ברירת המחדל היא המשבצת הראשית של כל חשבון.