Как экспортировать транзакции в файл CSV

Есть ли простой способ экспортировать все транзакции, связанные с определенной учетной записью/смарт-контрактом, в CSV или другой текстовый формат?

Возможный дубликат исторических цен на эфир
Два совершенно разных вопроса в моих глазах.
В моих глазах тоже разные вопросы.
Согласен - не обращайте внимания.

Ответы (7)

Или вы можете просто использовать etherscan API и онлайн-сервис Json to CSV.

Используйте API, например: https://api.etherscan.io/api?module=account&action=txlist&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae&sort=asc и поместите его в поле URL-адреса http://www.convertcsv.com/json-to-csv. хтм

И вуаля.

Удобное решение, спасибо за публикацию! Теперь, однако, знаете ли вы, что такое формат временной метки в JSON? Excel просто подавляет его как дату, время, а также дату и время.
@JonathanvanClute, похоже, это временная метка Unix. Попробуйте проверить, правильный ли это формат, используя timestamp.fr
Да, это был Unix, спасибо!. Использовал формулу здесь, чтобы преобразовать на сегодняшний день: extendoffice.com/documents/excel/…
Это не работает для смарт-контрактов только для учетной записи (он дает вам список адресов, которые отправляются в цепочку, а не взаимодействия с контрактами).

Вот руководство о том, как экспортировать данные Ethereum в csv https://medium.com/@medvedev1088/exporting-and-analyzing-ethereum-blockchain-f5353414a94e .

Он использует https://github.com/medvedev1088/ethereum-etl , который выводит данные в файлы blocks.csv, transactions.csv, erc20_transfers.csv.

blocks.csv

Column                  | Type               |
------------------------|---------------------
block_number            | bigint             |
block_hash              | hex_string         |
block_parent_hash       | hex_string         |
block_nonce             | hex_string         |
block_sha3_uncles       | hex_string         |
block_logs_bloom        | hex_string         |
block_transactions_root | hex_string         |
block_state_root        | hex_string         |
block_miner             | hex_string         |
block_difficulty        | bigint             |
block_total_difficulty  | bigint             |
block_size              | bigint             |
block_extra_data        | hex_string         |
block_gas_limit         | bigint             |
block_gas_used          | bigint             |
block_timestamp         | bigint             |
block_transaction_count | bigint             |

transactions.csv

Column              |    Type     |
--------------------|--------------
tx_hash             | hex_string  |
tx_nonce            | bigint      |
tx_block_hash       | hex_string  |
tx_block_number     | bigint      |
tx_index            | bigint      |
tx_from             | hex_string  |
tx_to               | hex_string  |
tx_value            | bigint      |
tx_gas              | bigint      |
tx_gas_price        | bigint      |
tx_input            | hex_string  |

erc20_transfers.csv

Column              |    Type     |
--------------------|--------------
erc20_token         | hex_string  |
erc20_from          | hex_string  |
erc20_to            | hex_string  |
erc20_value         | bigint      |
erc20_tx_hash       | hex_string  |
erc20_block_number  | bigint      |

Недавно PeterChauYEG собрал приложение-скрапер узла для адреса DAO, которое использует API Etehrescan и выводит CSV.

То же самое будет сделано для любого предоставленного адреса, если вы изменили строку 8 @ main.js: const address = '0xbb9bc244d798123fde783fcc1c72d3bb8c189413';на адрес, из которого вы хотите создать CSV.


Если вы сочтете это полезным, поддержите разработчика пожертвованием:0x1A416af553Faca53b4be48DCFB6E749C9737455D

Я нашел еще один хороший ресурс для мониторинга создания DAO: daostats.github.io/tokenvol.html .

QuickBlocks делает именно это. Он даже улавливает входящие внутренние транзакции. Кроме того, он экспортируется в JSON, CSV, TEXT или любой другой формат одним щелчком переключателя. При этом оставаясь на 100% децентрализованным.

Теперь QuickBlocks называется TrueBlocks?
Да. Мы изменились примерно год назад, как раз в то время, когда получили грант EF.

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

Транзакции, инициированные внешней учетной записью, легко найти, так как «от» является одним из полей транзакции - хотя нет вызова API, который возвращает только транзакции, инициированные данной учетной записью, вы можете, по крайней мере, сканировать транзакции в поисках тех, которые вам нужны о.

Транзакции с внешней учетной записи на другую или на контракт также легко обнаружить, поскольку есть также поле «Кому».

Однако все усложняется при переводе стоимости, инициированном контрактом. Их часто называют «внутренними транзакциями», хотя на самом деле они вовсе не являются транзакциями. В Эфириуме нет прямой записи о них, за исключением их побочных эффектов (перенесенная стоимость и сделанные изменения состояния), поэтому нет простого способа их экспортировать. Блокчейн-эксплореры, которые предоставляют эту функциональность, отслеживают выполнение транзакций в EVM, записывая подробности о том, что произошло.

Однако позвольте мне подключить свой собственный проект Etherquery . Это дамп данных блокчейна Ethereum — блоков, транзакций и переводов — в BigQuery, который позволяет выполнять произвольные аналитические запросы и поддерживает экспорт в ряд форматов, включая CSV. BigQuery оплачивается пользователями, но первый терабайт обработки в месяц предоставляется бесплатно. Если у вас нет проекта Google Cloud, вам необходимо создать пустой проект, чтобы получить доступ к общедоступным таблицам, указанным выше.

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

В Solidity вы регистрируетесь с помощью Events . Затем вы можете прослушивать все события вашего контракта с помощью обратного вызова web3.js "allEvents" .

В обратном вызове события Javascript allEventsочень легко войти в JSON (это уже объект), а регистрация в CSV в Javascript означает просто выбор подходящей библиотеки CSV.

Etherscan теперь предоставляет эту встроенную возможность!

Перейдите на etherscan и перечислите все транзакции для вашей учетной записи. Затем внизу нажмите кнопку «Загрузить экспорт CSV».

введите описание изображения здесь

В полученном файле .CSV есть два столбца: один для комиссии за транзакцию в ETH, а другой — для комиссии за транзакцию в долларах США.

введите описание изображения здесь