Как определить получателя allowance при депозите ERC-20 через мост Arbitrum
Пользователь может выдать allowance роутеру и всё равно получить отказ при депозите через стандартный мост. Маршрутизация сообщения и списание токенов могут выполняться разными контрактами.
Получите шлюз именно для этого токена
В родительской сети запросите у настроенного gateway router действующий шлюз родительского токена. Для стандартного депозита сравните разрешение ERC-20 от отправителя шлюзу, принимающему эскроу, с нужной суммой.
user → L1 gateway router → token-specific gateway → escrow
Если роутеру разрешено 100 единиц, а эскроу-шлюзу ноль, разрешение роутеру не даёт стандартному шлюзу выполнить transferFrom. Перед новым запросом разрешения сверьте родительский токен и сеть.
Учтите особенности пользовательских шлюзов
Пользовательский шлюз может реализовывать другой поток, а старые версии могут не поддерживать новые точки входа роутера. Проверьте маршрут токена и интерфейс развёртывания. После успешного родительского депозита для баланса на дочерней стороне ещё требуется финализация. docs.arbitrum.io Arbitrum documentation