Как сопоставить подписи X-Chain Avalanche с индексами владельцев

В мультиподписном расходовании может хватать подписей, но проверка завершится ошибкой, если их порядок расходится с выбранными индексами исходного выхода.

Возьмите массив владельцев конкретного UTXO

Декодируйте исходный secp256k1-выход, включая порог и locktime. Используйте отсортированный массив владельцев из сериализованных данных. В примере подписывают A и C с индексами 0 и 2. Локальный список контактов C, A, B не должен менять нумерацию.

owners       = [A, B, C]   // already sorted by address bytes
threshold    = 2
ownerIndices = [0, 2]
credential   = [signatureFromA, signatureFromC]

Соберите credential для соответствующего входа

Упорядочьте подписи по возрастающим индексам адресов входа. При нескольких входах сопоставьте каждый credential с его входом в итоговой сериализации. Сортировка входов после подписания меняет подписываемые данные и может привязать подпись к неверному входу. Условие locktime проверяйте отдельно от достаточности подписей.

Источники