Cover photo

Eth-google sheets на API

Как уже только я не предлагал использовать таблицы, писал множество формул, но все они имели один огромный недостаток - ограничение.

У гугла стоит стоит ограничение на ~20 запросов в минуту и ~200 запросов в час. Это очень сильно бесило, когда у тебя, к примеру, 100 аккаунтов, а гугл не может загрузить и посчитать балансы всех.

Но я нашел выход, я написал свои формулы при помощи Etherscan API, в чем преимущество:

  • Количество запросов ~15/сек, 300 000/день

  • Больше данных для импорта

  • Бесплатное API

На текущий момент написал только для блокчейна Ethereum, надеюсь мне будет не лень написать для большинства других блокчейнов и я сделаю это в ближайшее время, следите за анонсами в TG: Thor Lab

Начнем..

Ключи API

Для начала нам нужно получить ключи API (опять же они бесплатные). Для этого нужно зарегистрироваться на etherscan.

post image

После регистрации и авторизации идем сюда

post image

Нажимаем на +Add, придумываем названия и генерируем себе 3 ключа

post image
post image

Таблица

Теперь переходим в таблицу

post image

Думаю что к чему понятно:

Wallets - столбец кошельков, вставляем с A2

BAL $ETH - баланс эфира

to USD - баланс эфира в $ (курс автоматически подтягивается в ячейку L7)

Count txns - количество транзакций в сети эфира

Last txn - когда последний раз была транзакция на кошельке

BAL $USDT - баланс USDT

BAL $USDC - баланс USDC

$CUSTOM - вы можете вставить любой адрес контракта в R9 (Custom $contract) и получить столбец с балансами этого токена.

Столбец L суммирует все балансы.

Custom $contract - сюда можно поместить любой токен-контракт, чтобы посмотреть балансы токенов

Etherscan API - сюда суем 3 API ключа

Для того чтобы скопировать к себе таблицу нужно нажать на Файл -> Создать копию

post image
post image

Можем поменять название, файлы 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.

Заключение

Не все формулы идеальные, будет желание и время возможно буду оптимизировать, в течение недели возможно напишу под другие блокчейны, под какой написать в первую очередь пишите в комментах крч.

Любые вопросы можно задавать в чате Thor Chat (торчат)

Подписывайтесь на Thor Lab (основной канал), может будет полезно, часто пытаюсь придумать интересные вещи.