Как объединить частичные подписи браузерного кошелька Cardano

Кошелёк CIP-30 может добавить лишь доступные ему подписи в транзакцию для нескольких участников. Результатом вызова будет сериализованный набор свидетелей.

Сохраните исходное тело транзакции

Передайте CBOR транзакции подключённому API кошелька и запросите частичную подпись, если предусмотрены внешние подписанты. Декодируйте возвращённые свидетели библиотекой реестра и объедините совместимые записи с исходной транзакцией.

const witnessCbor = await api.signTx(unsignedTxCbor, true)

Если нужны ключи A и B, а у кошелька только A, корректный частичный ответ может содержать лишь подпись A. Сохраните ранее подготовленные скрипты, redeemer и остальных свидетелей. Проверьте подписи ключей относительно неизменённого хеша тела.

Проверьте полноту до отправки

Определите нужных свидетелей по фактическим входам, сертификатам и другим целям транзакции. Успешный ответ кошелька сам по себе не означает полноту. Изменение комиссии, выходов или интервала действия меняет тело и требует новых подписей. cips.cardano.org Cardano CIP-30