Заполните паспорт операции перед новым подтверждением

В модуле `pallet-multisig` незавершённая операция определяется не подписью и не текстом из кошелька. Нужно одновременно сверить сеть, аккаунт мультиподписи, порог, участников, `call_hash` и `Timepoint`. Если отличается хотя бы одна строка, участники работают с разными операциями.

`SCALE` — формат байтового кодирования вызова для сети. Поэтому участникам нужны одинаковые байты вызова, а не только совпадающее описание в кошельке.

Рабочий лист одной незавершённой операции
СтрокаЧто записатьГде сверить
Сеть и версия исполненияидентификатор цепи, `specVersion`, `transactionVersion`, хеш метаданныхRPC и метаданные, которыми кодировали вызов
Аккаунт мультиподписиадрес, полученный из полного набора участников и порогахранилище операции и кошелёк каждого участника
Участникиполный набор; в `other_signatories` — остальные адреса без вызывающегоодинаковый порядок аккаунтов во всех клиентах
Вызоводни SCALE-байты, их расшифровка и `call_hash`сохранённый файл, а не заново собранная форма
`Timepoint`номер блока и индекс первой внешней операцииполе `when` в хранилище и событие `NewMultisig`
Текущий ход`depositor`, список `approvals`, зарезервированный депозитзапись `Multisig` в актуальном состоянии сети
Рабочий лист одной незавершённой операции
Строка
Сеть и версия исполнения
Что записать
идентификатор цепи, `specVersion`, `transactionVersion`, хеш метаданных
Где сверить
RPC и метаданные, которыми кодировали вызов
Строка
Аккаунт мультиподписи
Что записать
адрес, полученный из полного набора участников и порога
Где сверить
хранилище операции и кошелёк каждого участника
Строка
Участники
Что записать
полный набор; в `other_signatories` — остальные адреса без вызывающего
Где сверить
одинаковый порядок аккаунтов во всех клиентах
Строка
Вызов
Что записать
одни SCALE-байты, их расшифровка и `call_hash`
Где сверить
сохранённый файл, а не заново собранная форма
Строка
`Timepoint`
Что записать
номер блока и индекс первой внешней операции
Где сверить
поле `when` в хранилище и событие `NewMultisig`
Строка
Текущий ход
Что записать
`depositor`, список `approvals`, зарезервированный депозит
Где сверить
запись `Multisig` в актуальном состоянии сети

При первом `approve_as_multi` или `as_multi` поле `maybe_timepoint` пустое. Модуль создаёт запись и сохраняет координату в `when`. Все следующие подтверждения передают её как `Some(timepoint)`. Текущее время, номер события и сегодняшний блок для этого не подходят.

Найдите окончательную первую внешнюю операцию, событие `NewMultisig` и её позицию в блоке. Если кошелёк показывает ещё не окончательный блок, сверяйте его с разбором подтверждений и реорганизаций.

Хеш вызова сверяет байты, а не описание на экране

До первого подтверждения сохраните название модуля, метод, параметры, SCALE-байты и `call_hash`. Передайте участникам и байты, и их понятную расшифровку. После обновления версии исполнения похожий перевод может кодироваться иначе. Другой хеш означает другую операцию.

Перед подтверждением участник проверяет получателя, актив, сумму, вложенный `batch`- или `proxy`-вызов и ограничения. Материал о том, что именно подписывает кошелёк, помогает прочитать смысл. Техническим основанием остаются сохранённые SCALE-байты, декодированные по закреплённой версии метаданных.

Ошибка указывает, какую строку паспорта исправить

Ошибка модуля `pallet-multisig` и следующая сверка
ОшибкаЧто не совпалоЧто исправить
`NoTimepoint`Операция уже существует, а следующая заявка не передала `when`Взять `Timepoint` из хранилища или первого события
`WrongTimepoint`Передана другая координатаСверить номер блока и индекс внешней операции
`UnexpectedTimepoint`По этому multisig и `call_hash` записи нетПроверить сеть, участников, порог и хеш; не угадывать координату
`AlreadyApproved`Этот участник уже есть в `approvals`Не платить комиссию повторно; определить недостающего участника
`SignatoriesOutOfOrder` / `SenderInSignatories`Неверно собрано `other_signatories`Убрать вызывающего и отсортировать остальные аккаунты
`MaxWeightTooLow`Лимита веса не хватает для внутреннего вызоваПересчитать `max_weight` по текущей версии исполнения
`NotOwner` при отменеОтправитель отмены не совпал с `depositor`Отменяет первоначальный владелец депозита
Ошибка модуля `pallet-multisig` и следующая сверка
Ошибка
`NoTimepoint`
Что не совпало
Операция уже существует, а следующая заявка не передала `when`
Что исправить
Взять `Timepoint` из хранилища или первого события
Ошибка
`WrongTimepoint`
Что не совпало
Передана другая координата
Что исправить
Сверить номер блока и индекс внешней операции
Ошибка
`UnexpectedTimepoint`
Что не совпало
По этому multisig и `call_hash` записи нет
Что исправить
Проверить сеть, участников, порог и хеш; не угадывать координату
Ошибка
`AlreadyApproved`
Что не совпало
Этот участник уже есть в `approvals`
Что исправить
Не платить комиссию повторно; определить недостающего участника
Ошибка
`SignatoriesOutOfOrder` / `SenderInSignatories`
Что не совпало
Неверно собрано `other_signatories`
Что исправить
Убрать вызывающего и отсортировать остальные аккаунты
Ошибка
`MaxWeightTooLow`
Что не совпало
Лимита веса не хватает для внутреннего вызова
Что исправить
Пересчитать `max_weight` по текущей версии исполнения
Ошибка
`NotOwner` при отмене
Что не совпало
Отправитель отмены не совпал с `depositor`
Что исправить
Отменяет первоначальный владелец депозита

Собранный порог ещё не исполняет вызов

Остановите новые подтверждения, пока паспорт не совпал у всех. Затем недостающие участники используют `approve_as_multi` с теми же параметрами и `Timepoint`. Этот метод никогда не исполняет внутренний вызов, даже если порог уже достигнут.

Для завершения любой участник отправляет `as_multi`. Он передаёт полный исходный вызов, тот же порог, тот же список и сохранённый `Timepoint`. Лимит `max_weight` рассчитывают по текущей версии исполнения, не меняя сами байты вызова.

Итог читают во внутреннем результате

Событие `MultisigExecuted` содержит внутреннее поле `result`. Значение `Err` означает, что операция дошла до исполнения, но сам вызов завершился ошибкой. Значение `Ok` подтверждает выполнение вызова. После него проверьте ожидаемое изменение баланса, записи хранилища или событие целевого модуля.

Внешний успех заявки такого вывода не даёт. Сохраните окончательный блок, внешнюю операцию, `MultisigExecuted`, расшифрованный внутренний результат и целевое изменение. Распределить роли поможет статья о multisig для малого бизнеса, но она не заменит эти доказательства.

Изменившийся вызов начинают заново

Если получатель, сумма, метод или SCALE-байты изменились, старые подтверждения переносить нельзя. Первоначальный `depositor` может отменить точную старую запись через `cancel_as_multi`. Для отмены нужны тот же `Timepoint` и `call_hash`; после неё зарезервированный депозит освобождается.

Поставьте согласование на паузу, если

  • участникам прислали только `call_hash`, без байтов и понятной расшифровки;
  • `Timepoint` взят из текущего блока, времени на часах или номера события;
  • кошельки показывают разные пороги или наборы участников;
  • версия исполнения обновилась, а байты декодируют по старым метаданным;
  • `approve_as_multi` считают доказательством исполнения без `MultisigExecuted`;
  • для синхронизации просят сид-фразу, закрытый ключ или экспорт аккаунта.

Отсутствующая история требует архивного узла

Если RPC не отдаёт старые метаданные или тело блока, обратитесь к архивному узлу. Отсутствующий ответ не доказывает исчезновение операции. Эту границу объясняет устройство блокчейн-узла; материал поможет выбрать подходящий источник истории.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Polkadot SDK — pallet-multisig overview Parity Technologies / Polkadot SDK · Проверено 25 августа 2026 г. в 00:00 GMT+5
  2. Polkadot SDK — pallet-multisig dispatch methods Parity Technologies / Polkadot SDK · Проверено 25 августа 2026 г. в 00:00 GMT+5
  3. Polkadot SDK — open Multisig state Parity Technologies / Polkadot SDK · Проверено 25 августа 2026 г. в 00:00 GMT+5
  4. Polkadot SDK — multisig errors Parity Technologies / Polkadot SDK · Проверено 25 августа 2026 г. в 00:00 GMT+5
  5. Polkadot SDK — multisig events Parity Technologies / Polkadot SDK · Проверено 25 августа 2026 г. в 00:00 GMT+5
  6. Polkadot public RPC Polkadot · Проверено 25 августа 2026 г. в 00:00 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.