Мультипідпис для трансферів
За замовчуванням лише ключ користувача підписує транзакції в Прозорій Мережі Stellar.

Як варіант, з метою зниження ризику таємної підробки транзакція також може бути підписана кількома учасниками.
Цей потік поєднує підписи з двох сторін (Контрагента та DCM):

Ключові принципи
Контрагент з самого початку вирішує, який підхід використовувати (мультипідпис або використовувати за замовчуванням з єдиним підписом)
Контрагент генерує 2 пари ключів і надає публічні частини в DCM перед ініціюванням операції
Для публікації транзакції потрібні 3 підписи (Контрагент, DCM і Клієнт)
Початкове значення Клієнта зашифровано на стороні DCM
Секрет (зберігається Контрагентом) потрібен для розшифровки початкового коду Клієнта
Контрагент використовує власне початкове значення для підписання транзакції.
Підтвердити оплату мультипідписом
На кроках 4, 5 і 9 усі три підписи додаються до конверта транзакції.

POST /sign
Приклад запиту
Аутентифікація не використовується
{
"address":[
"GALY4D4HZ6XMC2YI5FOWXZ3JKMEOYPWZPADPXBC7ZA232SSEEUCGAR5X"
],
"transaction_xdr":"AAAAAgAAAAAOc/Ep0SpnfQ9wyROTSWSDI5dnsJpSL15kDAmaTEqyIwAAAMgAExmIAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAC9uikHe+PC/4jPg01zIk3O7mOC0oFATGCEC3VG3Sz8BAAAAAFlVUFIAAAAAL26KQd748L/iM+DTXMiTc7uY4LSgUBMYIQLdUbdLPwEAAAAAAABhqAAAAAAAAAACgAAAAxwYXltZW50X2d1aWQAAAABAAAAJGRiNzhjNzVjLTFhNTAtMTFlZS1iZDVmLTNhNmFhNDQzNmZlZQAAAAAAAAAA"
}
Адреса атрибута містить список усіх очікуваних підписантів для платежу. Конверт із tranasction_xdr для цілей тестування можна розшифрувати вручну за допомогою Stellar.Laboratory.
Блок «manageDataOp» містить атрибут payment_guid, який слід використовувати в методіТрансфер (перерозподілення ідентифікаторів) щоб отримати реквізити трансферу.
Приклад відповіді
{
"address": [
"GALY4D4HZ6XMC2YI5FOWXZ3JKMEOYPWZPADPXBC7ZA232SSEEUCGAR5X"
],
"transaction_xdr": "AAAAAgAAAAAOc/Ep0SpnfQ9wyROTSWSDI5dnsJpSL15kDAmaTEqyIwAAAMgAExmIAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABB0ZXN0IG1hbmFnZV9kYXRhAAAAAgAAAAAAAAABAAAAAL26KQd748L/iM+DTXMiTc7uY4LSgUBMYIQLdUbdLPwEAAAAAAAAAAAAAABkAAAAAAAAAAoAAAAVZXh0ZXJuYWxfcGF5bWVudF9ndWlkAAAAAAAAAQAAACRkYjc4Yzc1Yy0xYTUwLTExZWUtYmQ1Zi0zYTZhYTQ0MzZmZWUAAAAAAAAAAUxKsiMAAABAC26wsxgT6q/Pdelp7wEXYfZJUZxfU24yyK7nomVPRMEZ/bUELq1fzL4A7OEjSPeBzzekG+R+Oc9lteZKA0OuAQ=="
}
У відповіді обов'язкові обидва атрибути: адреса та підпис на конверті. У транзакції_xdr потрібен принаймні 1 підпис.
Очікувані помилки
400 Bad request: якщо конверт має неправильну форму
трансфер припинено
401 Unauthorized: жодна з адрес з запиту недоступна для підпису
трансфер припинено
404 Not found: у випадку, якщо відповідь від GET /payments не повертає результатів.
повторна спроба буде надіслана пізніше до POST /sign (до 5 повторів)
Створення Клієнта з мультипідписом
Щоб обліковий запис клієнта мав 3 підписантів, процес створення Клієнта змінюється кроком 9, коли попередньо налаштований набір відкритих ключів приписується адресі Stellar як підписантом.
Що стосується інтеграції з API, створення відбувається як зазвичай.

Last updated