Ethereum+ARB google sheets на API
UPD 28.03 добавил возможность проверять кол-во NFT по адресу контракта. Функции getNFTCount и arb_getNFTCount
UPD 27.03 добавил формулы для сети Arbitrum. Формулы для Arbitrum имеют приставку "arb_", для работы нужно получить API KEY на arbiscan.io, принцип получения такой же, как и для ethscan.io
Как уже только я не предлагал использовать таблицы, писал множество формул, но все они имели один огромный недостаток - ограничение.
У гугла стоит стоит ограничение на ~20 запросов в минуту и ~200 запросов в час. Это очень сильно бесило, когда у тебя, к примеру, 100 аккаунтов, а гугл не может загрузить и посчитать балансы всех.
Но я нашел выход, я написал свои формулы при помощи Etherscan API, в чем преимущество:
На текущий момент написал только для блокчейна Ethereum, надеюсь мне будет не лень написать для большинства других блокчейнов и я сделаю это в ближайшее время, следите за анонсами в TG: Thor Lab
Ключи API
Для начала нам нужно получить ключи API (опять же они бесплатные). Для этого нужно зарегистрироваться на etherscan.
После регистрации и авторизации идем сюда
Нажимаем на +Add, придумываем названия и генерируем себе 3 ключа
Таблица
Теперь переходим в таблицу
Wallets - столбец кошельков, вставляем с A2
to USD - баланс эфира в $ (курс автоматически подтягивается в ячейку L7)
Count txns - количество транзакций в сети эфира
Last txn - когда последний раз была транзакция на кошельке
$CUSTOM - вы можете вставить любой адрес контракта в R9 (Custom $contract) и получить столбец с балансами этого токена.
Столбец L суммирует все балансы.
Custom $contract - сюда можно поместить любой токен-контракт, чтобы посмотреть балансы токенов
Etherscan API - сюда суем 3 API ключа
Для того чтобы скопировать к себе таблицу нужно нажать на Файл -> Создать копию
Можем поменять название, файлы Apps Script нужно оставить прикрепленными, для того чтобы кастомные формулы работали!
После копирования, таблица сохранится у вас на диске и доступ к ней будете иметь только вы!
После копирования вставьте список API ключей и список кошельков, загрузка всех данных займет до несколько минут. Я так же добавил параметр нулевого значения, функция не будет обращается к API, если кошелька в B-столбце нету, если же он есть функция будет обновлять данные примерно каждые ~3 секунды.
Кому интересны формулы подробнее о них:
=getEthBalance(ячейка; apiKey)
- получает баланс эфира, округляет до 4 знаков после запятой
=getEthTxCount(ячейка; apiKey)
- считает количество транзакций на кошельке
=getLastTransactionTime(ячейка; apiKey)
- проверяет время последней транзакций, считает от текущего (выводит минуты/часы/дни в зависимости от того сколько прошло времени)
=getTokenBalance(токенКонтракт;ячейка; apiKey)
- получает балансы токенов, единицы измерения подходящей для стейблов (10^6)
=getCustomTokenBalance(токенКонтракт;ячейка; apiKey)
- получает балансы токенов, единицы измерения подходящей для большинства токенов ERC-20 (10^18)
=customSum(первая_ячейка:последняя_ячейка)
- суммирует большинство ячеек, это кастомная формула, т.к. родная SUM не умеет нормально интерпретировать вывод цифр.
=EthBalance(колво_eth;цена_eth)
- считает оценочную стоимость эфира по актуальному прайсу в google.
=getNFTcount(контракт_NFT;кошелек; apiKey)
- считает оценочную стоимость эфира по актуальному прайсу в google.
Заключение
Не все формулы идеальные, будет желание и время возможно буду оптимизировать, в течение недели возможно напишу под другие блокчейны, под какой написать в первую очередь пишите в комментах крч.
Любые вопросы можно задавать в чате Thor Chat (торчат)
Подписывайтесь на Thor Lab (основной канал), может будет полезно, часто пытаюсь придумать какую-нибудь хуйню.