Как определить получателя allowance при депозите ERC-20 через мост Arbitrum

Пользователь может выдать allowance роутеру и всё равно получить отказ при депозите через стандартный мост. Маршрутизация сообщения и списание токенов могут выполняться разными контрактами.

Получите шлюз именно для этого токена

В родительской сети запросите у настроенного gateway router действующий шлюз родительского токена. Для стандартного депозита сравните разрешение ERC-20 от отправителя шлюзу, принимающему эскроу, с нужной суммой.

user → L1 gateway router → token-specific gateway → escrow

Если роутеру разрешено 100 единиц, а эскроу-шлюзу ноль, разрешение роутеру не даёт стандартному шлюзу выполнить transferFrom. Перед новым запросом разрешения сверьте родительский токен и сеть.

Учтите особенности пользовательских шлюзов

Пользовательский шлюз может реализовывать другой поток, а старые версии могут не поддерживать новые точки входа роутера. Проверьте маршрут токена и интерфейс развёртывания. После успешного родительского депозита для баланса на дочерней стороне ещё требуется финализация. docs.arbitrum.io Arbitrum documentation