Как запросить несколько балансов ERC-1155 одним вызовом
В одном контракте ERC-1155 могут находиться разные активы разных владельцев. Пакетный метод сопоставляет элементы двух входных массивов по позиции.
Составьте пары перед кодированием
Чтобы узнать балансы Алисы для ID 7 и 8 и Боба для ID 7, дважды укажите Алису в первом массиве. Закодируйте balanceOfBatch(address[],uint256[]) по ABI коллекции и вызовите на блоке снимка.
accounts = [Alice, Alice, Bob]
ids = [7, 8, 7]
Если получен массив [3,0,9], у Алисы три единицы ID 7 и ноль единиц ID 8, у Боба девять единиц ID 7. Сохраните входные пары вместе с результатом, чтобы сортировка при выводе не перепутала владельцев.
Учитывайте границы коллекции
Длины массивов должны совпадать, а адреса владельцев должны быть ненулевыми. Группируйте запросы по сети и контракту. Актив с тем же номером в другом контракте имеет собственные балансы. eips.ethereum.org ERC-1155