Как объединить частичные подписи браузерного кошелька Cardano
Кошелёк CIP-30 может добавить лишь доступные ему подписи в транзакцию для нескольких участников. Результатом вызова будет сериализованный набор свидетелей.
Сохраните исходное тело транзакции
Передайте CBOR транзакции подключённому API кошелька и запросите частичную подпись, если предусмотрены внешние подписанты. Декодируйте возвращённые свидетели библиотекой реестра и объедините совместимые записи с исходной транзакцией.
const witnessCbor = await api.signTx(unsignedTxCbor, true)
Если нужны ключи A и B, а у кошелька только A, корректный частичный ответ может содержать лишь подпись A. Сохраните ранее подготовленные скрипты, redeemer и остальных свидетелей. Проверьте подписи ключей относительно неизменённого хеша тела.
Проверьте полноту до отправки
Определите нужных свидетелей по фактическим входам, сертификатам и другим целям транзакции. Успешный ответ кошелька сам по себе не означает полноту. Изменение комиссии, выходов или интервала действия меняет тело и требует новых подписей. cips.cardano.org Cardano CIP-30