Как разобрать сценарий paymaster ZKsync до подтверждения

Адрес paymaster определяет спонсора, а paymasterInput задаёт взаимодействие аккаунта с ним. Кошельку нужны оба значения, чтобы объяснить возможное разрешение ERC-20.

Определите селектор сценария

Сопоставьте первые четыре байта paymasterInput с интерфейсом поддерживаемых сценариев. Для approval-based проверьте токен, минимальный allowance и внутренние данные. Для general разберите innerInput по схеме спонсора.

general(bytes innerInput)
approvalBased(address token, uint256 minimalAllowance, bytes innerInput)

Если пользователь выбрал X, а approval-based содержит токен Y, отклоните предложение даже при знакомом адресе спонсора. Минимальный allowance показывает запрашиваемую настройку, но сам по себе не задаёт окончательное списание.

Проверьте пользовательские условия валидации

Собственный аккаунт может иначе реализовывать сценарии, а paymaster — вводить дополнительные проверки. Симулируйте полную транзакцию с фактическими аккаунтом, спонсором и данными и сверьте окончательные подписываемые поля. docs.zksync.io ZKsync documentation