Last active
February 11, 2021 22:14
-
-
Save thephez/40d6d4e18e710f5885d9700a63ad9bb4 to your computer and use it in GitHub Desktop.
Get error info about invalid tenderdash transactions from a local full node
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import json | |
import pprint | |
import time | |
def get_contract_name(contract_id): | |
if contract_id == '2DAncD4YTjfhSQZYrsQ659xbM7M5dNEkyfBEAg9SsS3W': | |
return 'Dashpay' # ({})'.format(contract_id) | |
elif contract_id == '36ez8VqoDbR8NkdXwFaf9Tp8ukBdQxN8eYs8JNMnUyKz': | |
return 'DPNS' # ({})'.format(contract_id) | |
else: | |
return contract_id | |
def get_tenderdash_transaction(txs): | |
error_summary = { 'contracts': {}, 'errors': {} } | |
count = 0 | |
valid_tx_count = 0 | |
unparseable_count = 0 | |
for tx_hash in txs: | |
time.sleep(1) | |
query_url = 'http://127.0.0.1:26657/tx?hash=0x{}&prove=false'.format(tx_hash) | |
#print(query_url) | |
try: | |
results = requests.get(query_url) | |
# Check for invalid response | |
if results.status_code != requests.codes.ok: | |
print('{} Error: {}'.format(results.status_code, results.json()['message'])) | |
raise | |
count += 1 | |
tx_info = results.json() | |
tx_result = tx_info['result']['tx_result'] | |
#pprint.pprint(tx_result) | |
#pprint.pprint(tx_result['log']) | |
# Check if log empty string | |
if tx_result['log'] == "": | |
valid_tx_count += 1 | |
print('No "log" object. Valid tx. Skipping ({})\t{} of {}.\n-----'.format(tx_hash, count, len(txs))) | |
continue | |
tx_log = json.loads(tx_result['log']) | |
print('{} ({})\t{} of {}'.format(tx_log['error']['message'], tx_hash, count, len(txs))) | |
errors = json.loads(tx_result['log'])['error']['data']['errors'] | |
print('\t{} error(s) in tx'.format(len(errors))) | |
for error in errors: | |
try: | |
transition = error['documentTransition'] | |
contract_name = get_contract_name(transition['$dataContractId']) | |
error_message = error['message'] | |
document_type = transition['$type'] | |
print('\tContract: {}\n\tDocument: {} ({})'.format(contract_name, document_type, transition['$action'])) | |
print('\tIdentity: {}'.format(transition['$id'])) | |
print('\t{}: {}\n\t-----'.format(error['name'], error_message)) | |
if contract_name in error_summary['contracts']: | |
error_summary['contracts'][contract_name]['total_errors'] += 1 | |
else: | |
error_summary['contracts'][contract_name] = {} | |
error_summary['contracts'][contract_name]['total_errors'] = 1 | |
error_summary['contracts'][contract_name]['id'] = transition['$dataContractId'] | |
error_summary['contracts'][contract_name]['documents'] = {} | |
if document_type in error_summary['contracts'][contract_name]['documents']: | |
error_summary['contracts'][contract_name]['documents'][document_type]['document_errors'] += 1 | |
else: | |
error_summary['contracts'][contract_name]['documents'][document_type] = {} | |
error_summary['contracts'][contract_name]['documents'][document_type]['document_errors'] = 1 | |
if error_message in error_summary['errors']: | |
error_summary['errors'][error_message]['count'] += 1 | |
else: | |
error_summary['errors'][error_message] = {} | |
error_summary['errors'][error_message]['count'] = 1 | |
except Exception as e: | |
unparseable_count += 1 | |
print('\n\nError processing data: {}\n\nError info:\n\t{}\n\n'.format(e, error)) | |
#print(error_summary) | |
except Exception as e: | |
unparseable_count += 1 | |
print('\n\n!!! Error: {}\n\n'.format(e)) | |
pprint.pprint(error_summary) | |
print('{} txs were unparseable'.format(unparseable_count)) | |
print('{} valid txs skipped'.format(valid_tx_count)) | |
def main(): | |
# Get hashes from docker logs via: | |
# docker logs dash_masternode_testnet_drive_abci_1 | grep ': Deliver state transition ' | awk '{ print "\t'\''" $11 "'\'',"}' | sort | uniq | |
tx_hashes = [ | |
'0031c0393079716e0295db0f68ad76164cd285afc32fa13c2d87478165a55318', | |
'02713ccbe9d3b42bd74e852114e4e895bae9765a55478590d361ea4dfb5711ac', | |
'036b94ac0abdcb6fac070baf6ded81b1d1d36793f5829df8d21ce0db64806dd9', | |
'085b62f1f7bf1f615112a22c6bcbb3a7c871bd71d5a06a5ee8aa06ab25da0546', | |
'09b8e5057f3db5946938477a164203782e9435c7640fb9818c8acca44bca8654', | |
'0a9a763567472da9d014fbbbc7bae4b3e0d4787c389d4422f2bf06029aeabedd', | |
'0b421dcbd3476e7f7ff7afe0c4a7ba8d963141170d80e6fd52a9ab83ed373ca8', | |
'0b6582a803746b1f4d38126c98c8ca31f1e3e4147d22d05f6805c7bd36fafb65', | |
'0b8944e33267d87aca79ac22030643eb86989a6cb9bf41e38c4307cd15b01ac7', | |
'0c052ed4342df8689f6fdd9d51616ee05c1445f155d615ffc1630d1915cc01aa', | |
'0cbe02ccc29d0eab5db8e7d7d17916232d6677fd7b7ce4353572b0f96ce5889d', | |
'0f8f37ed1723b2b2de3d833708291461b159f3e0377a1559f27784690dcd3d78', | |
'0feea4a8cb9e7d06d8f169192bebc53a8f2e43613d56d556e6b0066ffbeb849d', | |
'1017d081b012cbcc9fafbb9641c30b0905235f6b5658ddf38d95bb913e876776', | |
'11439f4475560bb97b022edb1b0c0c655ee046de0e5ace2180db0e59ef96d411', | |
'1188b664f5448814851a716b458e794189dc5089b1b836e71ea5890040d18d00', | |
'1190930a7c471db32d7733a666a81fd8867ffaf275d5399d7c6ad1770091d9ea', | |
'13c8a41282f3d7fe521f970074184d1ccb2a7bf6191cfbb041e80a7e8f178e34', | |
'13e7a8b9c89b8e13ad5c2e2a7484869710b6b11468ed2745b76e13bf11296a69', | |
'18ed3008542aa141e80c1f7af808bad1cfcc1f4a73a6b3ef882b8584b7afe9a1', | |
'190a39d739909f79e2deff583d4f82dc133e6b9d3bc00a88c5bc3512ce1781f9', | |
'1c977919f10f814f06410bc1c895fac7dbb73a8a057f450cb30e60b8dc7f870b', | |
'1d7fa794365ac963e56148311aeb24a67aaa7f9af4a5dfbb59a55b39069236bb', | |
'1d9a170516b6498d1751b25fda793546511cf4c3fb7bcd8d81ed1a30fad2b6ee', | |
'1dab61258e20a9c65c8f9477a174b04e18d5446ea50afedaff30205da78b3a30', | |
'1e5b3edc1cf3ccd45d4496e46354427a8e6d88d76475c50f5d40f4cddff711d0', | |
'1ecbeae04f8092c52f2dcad846d09b0ab6dc734dd2bd0f113385803278b2a73e', | |
'1ef245b7efba8b5287c0df96d1939b9f93b008b013398b2aa50da7a69d5b9466', | |
'1ffcd6eb2fa044a5613534a8448d17bf9b61122c4e559bc97f6173b99ee288ca', | |
'21cba2326d5c67b142d2416a0c382e662bbac7a1e101084bd7996860b54a8703', | |
'21fff1acc1615f038472fd3fb5a162ffe02451101904641726e4a1abf0b44710', | |
'2363ef9ae4a374144c19de614fa205236f81e602b490cbd618866bfe7f091d6f', | |
'2491c7cc4b85fbe41be6b557b740165c98235298d65d16d343d1837829c9e893', | |
'27155ce7bd8ee9fd391a480c1f90d7968eacadf8e6b440989cca7ea3578ca6ba', | |
'2ccfad351273131fb071f8a8d7b0e1704327b05b44c8b459cd2d23c9ac81ed75', | |
'2d7e12907addee2f5c00678745a152b82aaa9e760e754153180c8238256795d8', | |
'2dbd607414b0e97ae5b6771fc9976845cc9e1dabeeab000ec01bd88ce2657700', | |
'2de3c080402737b3f933cea9beb3310287abb6f563397d100d2f0fbfd776b5fc', | |
'3090218dcdf2553e4206d0cabce279ebe2f9aa41dd98a42c2d68350e617b9cd7', | |
'31e7b6493aa5e693a6e4dc3e7b441df7e6ca5e215a0fbff35673d3a0c52572c8', | |
'33db2f990d447530f8c68d29ac02f0302942212cbb5c1580aa629128bca89bf6', | |
'34bb5bc40a5d7831c6060158fd037b85e4d6ba47843fd1fed362e7f42d33b718', | |
'35fc36a5f3fceeaec665c3dd18566653bac52caac7273eea126a34d86e53bcac', | |
'3693abca42326cc8ff292fd465e1fccc7c20215703a5a95fcace54995279cf95', | |
'3719b665317941218afd95c946c98271fc42cdff3c61bac4da1e5e44694dd986', | |
'38651072e2bfae5d077d2eaa3ef7f9199e041f03b1f517210a2576f8b1a34ffd', | |
'3a515bbf50d81d6f3af034b62aab80ac2295a6464fe0dd03f4a028ca246be487', | |
'3bf48ce2736433b6cf7c25ac23970851e00374951c038506709a75d3a4da207c', | |
'3cab688179cfb4e8daaf5bb89eeb58e6a009725992293d1ebf2d9b7621f4ba27', | |
'3e778707f929ea5507895ee5ef470281fbcd9f73efd5c2362e0ba4b70082f00f', | |
'444a507496b4c9dac8254e76a9b9c31149b8f07bfbed00fcb770e12e45629f32', | |
'45d350d4edb50eceaf8a7437651fc7ff5351d97b6b7a177a22182911a8852991', | |
'4642656f4e836f05e8c7eb9fee1e8f457e0718d916cf63b31e83dd2f89cb3615', | |
'466771e40cc76a340c5c4c94769bd689d70f89f340eaf8c98018b57631e83588', | |
'46bdf7d66d141518f233f7092b8e07a9aac614778b0eda58f89f07cbaca87766', | |
'49aa9f2b5f4c6eb1c4dc8cc72252d6894a2e420d13f448075134976307e162d6', | |
'4aceca80b723b84ccf30e16d7f9358c0067600b74336017cd49f5d669787c2a7', | |
'4c3c0bf40421ac1772cbd8e49bbc2483ec91f34d5d50902a5d0a966aba9aa7f2', | |
'4ecff29a0742417e47d8ec5083ecc78812155c8f69af08e68098d679573731ed', | |
'4f63ee88f6f67872afe82e780cc6759c92f4e45497088d8bb19cda3c7288f511', | |
'507a68e1d2f60d6d184178b5d6fcebd8b7db2d8b9b8666e25a33be769a82064c', | |
'543cb8ba142361d271a7342edea25fa6ddd14daed3686107014bd1800137b317', | |
'54bfc873c5ea7193a1f81e67d3aebe091393165c0efd72a661ff6456b8e9b618', | |
'54e1aa6c62658556592ef054970879e7ac1c07f19ece9a79b96433c87891cf48', | |
'54f8a90c2e908eb7a214a72519aed0913421c0e687fd12cb0ed45df88c0144f7', | |
'58c6349b337466c1e69fb17cad82472cb605b62b62ac83768a96ed030cba4479', | |
'58da3f47ff0505e57e30befe0c6cfcb0afa016a7d37b3ceb4993abce78642e67', | |
'59d8e5d71500662e7e6817ce850977cfaa0584622cd131398311faad263f1de7', | |
'5a30888832e78da4863beaa4376b9e5d082f6958d3cfec71a1a48ed3a7fd495a', | |
'5c4eee85fe7783545b4b5c071c1ac223b04695e354728ed5258099281bdc05cd', | |
'5e707945e9edd6be576de56b5aa44a412c4858557a4e9bd8d044ae8e2ee7fe35', | |
'622ddbd5b7317d65c8bac8c0d6367f39f9f0348b2cfc2dc0aaeded6637d951d3', | |
'62e1e381e4da991a5a7fba82f2ca5af0b6f892b3bf614fb63a53db19d1997585', | |
'6307ef6ff9f5e5d507b0bea004580feaf0ec5114820fcd619ca32df20aed189f', | |
'65667bc31c947d0f3c4f77d9aa9a3e53061297618af52491d90212c34d24941f', | |
'662a469d53a9768f6085d2714a2349ffce368ee934cab0dbfc89713c6fa44320', | |
'6988fd49045d6f642d7ff319b26c86d777dd4bbfa4d824cc44a562dab293db80', | |
'69b0f5d729c39f1027ce9254ab9c1c37b31e11114ca8b35e9827e6427f3b0f6c', | |
'6a6a8b061a7ad800d0e4e4c05a9b7ada50e9a5dc3bfc0091d11c82756967370d', | |
'6e7e1b4fbb4fb9f6050c8e17cd8302a60b3f6b2a02d4ec61fb259b067c5283fa', | |
'6f21957466993a3cbf46e3e6ce7e85f96ca90cc04a335987dea5be99567e5f9f', | |
'706dec2c5064f89ef85cc1a0467f34708c28410a43f6b2f979da3d888850682d', | |
'7472754a45ed6bb42c1a45f0934b3f5fbe40a5cb160f236d85cbb04730b5c3e0', | |
'74b336e66d63804eb0f185868d60bc9f6ff34a81048226e1a99f6f8042de9b17', | |
'75d831665ff3f01d99e0d14724d4d80d09b6552f7312a822b7ff5246df007596', | |
'77ba3f45c47169c803d3473ad83ad2e76397f467fd8b3740846aed0d8c6278f9', | |
'77d3c1eed65e32a324cdee4370169e863bb4f7978690a4b68ae9de639b48d3b4', | |
'79bbce00acf43d9356f9c4c12de96ac1aad82224685d2ef05fc5de0c6b325dfd', | |
'7ba0fcb57045eb64e756fd1aad6111135d1e7cd3f4023735d7bd0a1fea4060db', | |
'7bf612d5c0bc2e46c0510620f1a8aa2a35e39d4da214939aecf82aaa6012263c', | |
'7e4885a65e15937d6c8a9bd6170e50c34609df97018a1b7037b564d7997f4d5b', | |
'7fb3d81fa5318f939712096b69aa2f56ff70616f8cb3ae372fda85e295ee9caf', | |
'81501be6cf8863af7a200ea3f66f8e05583ab9299ce7cbc9abf722538ebbd317', | |
'815afecb93919a9f0ad822d74cca5f03c923fb3e5637da1a4313fc7c1070988e', | |
'829b274175a1de132d06d2ff0f8e303c951da03830a258fb017263661144c4d3', | |
'82c144c8019c7aae92c9b01b15453b846c3af8d918806afd36543aee0a1a570d', | |
'84d5d5137aaacc247570b6ff6952b516a2da2913e0bfbd554e3abe60978d7bb4', | |
'855b6caa83020f0156eca610b32c707fc5108e9c375c81655c5fa2d9393384c1', | |
'8bdc523a837a7209a7a05d9e13aaf20d01a4b3223544db98dd312e20c5a7fa22', | |
'8c52bc4eaf63a96e16551afc8ed48887b1881290bcff4be28e91702a9e933f56', | |
'8e1c9bc52040e0496f11ea3125d94bae590505e4e548e26a6a540653c8f36a4b', | |
'90e33cf3d27ea2feeb8eda20a350f4ccd0590ac730b69cce692ee7d48e216dd8', | |
'90e7bc11681e3318e8653127d921926454903f8cd390983a17d356f762330aa0', | |
'91ef418ce8cf05d2c5aa314f00b44e3fe8c58c08fecbfc999ab2e0b653540d89', | |
'94b9f5121b3ab37a373f00c2e665825364affa9261c6aa7e95da467e44257618', | |
'95f5d8261f558cdd5eb57ee092d5f089e10a52b0f54b58a699408d855a9dc51c', | |
'97b86d26c5943b684668222b7e6bbaf72f6e405a4a652c750095d320280761f8', | |
'9a83a1cab82379931951ba9800c57df0b6bf1d3bfebb0da9b62ac6f352b6867f', | |
'9f3660155948b1c356c5d01e1b7fbbcde930b042351780b0a27a14fc11bdc4a3', | |
'9fe2183586dac2039cc8d53177756a8f60a296f22bde411633403361a3b8d260', | |
'a11f6e5727622f3e6c57a2ac398b4e5c1c5a3707c2d5fc97d541bd08cf240056', | |
'a616a1314360abbd4ff488d0aa6c8681b487ba31c4fd18dea2f6919953a30dfe', | |
'a65e143a55d8bb58de81c5f3e70b9f671ee6a339d6cc190f21c12a8540ff9b73', | |
'a68f6d680714567c485819c34ad9be3c135431838a70014370b396ddc4c6c35e', | |
'a6f9faf47deb36af7ad5540a9e29f03d98069d85153c5d52c095e029c35c451e', | |
'a775ff4cb5097ddc4570af343fe808bf01b7c21f0f7c129f3ca582864863ae91', | |
'a80a70da33a77379d09f01ebf41a5e7bfe9ada12674fb60da44f738e5fdf6bdf', | |
'a93f0a724250b7cbb470ff3fd3efe98de23f82dcf4fdab7ea1ba77d636d83dbb', | |
'a94dac7310a29d89ea0fd86a2bfac63dbab9eaf56d9c50c57a60f895b67b9626', | |
'aa812580473df87f963598605a0c25b0def973ed58d593227bf8cf4e138b1024', | |
'ac0ef27c93345794c173e0f4df38af0b6bb634590df488752bf936ec735b0f19', | |
'af49278eb958329b8e5bda765a37174fa111a753b2d010ecb7251c8bfa6dab0f', | |
'af97b9b6537ff2f7d615ba1e55569b9d61a28ba7cd00deeb3eaea1db27540c16', | |
'aff89adf7ae8c1ccc480f37b7feedf5118ceb0d7d66bd335d4e7ee1b2001accc', | |
'b04d89dbe179122b9a1d30ff29072802d244599394ee8df4dc750377d6c6bd76', | |
'b0aa30bd4c1c8d159d900908ce4f47511b8ab1a3a36ac881ec2725609f83c412', | |
'b0f4f3eefd2d1b9f2325ed493c957a51922bc5ee7cfdd947b1f243aae174adef', | |
'b10be0ab9444a794ba5d3113124c8b470294e1de84e51b9b814481fe43e7e355', | |
'b1224274cd1e20764ea36701edd6aef2468582f1b58c1798e3306652491c097d', | |
'b6ad553ebf2e9c756d21e53b1eb51d86b0c5176b4c133cf582a452ab996abc40', | |
'b996d4f84b58e015200dfc69b0cb568523925b52bbc22b0c0298e5a7702d1f9e', | |
'bca43577bc11382aa2abface80a34d0444ec3224f9d9b635d7dd80c688f89cce', | |
'bd4801e7dba71d2776e66fb9d3a192f0e4d2e1d7022e691fee90015b8a3d19a6', | |
'bdc44676f9e5aa7af40eb9c7cb448581248f3d89728622e814d6a4f1c91dcb0b', | |
'c13ee8af17e8e0336e1bd133f08f34d336b76a10f497eaa752f3c7971bfd1cd7', | |
'c18db8d346007a3a304ee29ff9db6c2d1e58e1bcba4aeb4203de9e83aebe05d3', | |
'c3a3b61f6661c06f387d119dc023e905847ced08708fb14bc51890b176e4f82a', | |
'c3e0c455efbcfd241e70b7119e13e6aecde75ccbb846aa81afba8377da55599f', | |
'c4dffe5e24dc8e4218307568f5df8a47c9f050c2f570561fcbb0090375be60df', | |
'c7e1fe683371bb813402c1cf3d6d5c7192f80d137eff98331b708864788be46e', | |
'c9fb7fec8c49bcd1a8470c5e4c49b42fd7bcb9c92d58c067f0ade9b79cc04350', | |
'ca5b2e78b9208f8f11679bf88deb00a3f9f177e7e25aeb7ed9a9bf9b50efcef8', | |
'cb792b9f0a04c99cca6842150db483b286c5d4f7d4af7af737769ab5d307c854', | |
'cc06accb63d6574d6687d50c28b26b459194bb4ef5449b087662a56084cf1092', | |
'cc805674bcc49e21001fac7007b78e6a18d24cf891783829a4f16aaefbff3480', | |
'ceef648992030e9b15ad4b1c6cf5ccf7eb3ae4b00ee533d1eced4b56729ecf15', | |
'd367c3a9dbfc4b5d9dacb11c48f629a643187de41eb5c4cfbdbdc54292615c7f', | |
'd69b16adc15e1d6f8d3764f14c032f5778c5e9db0f8103b9065292903ec7850c', | |
'd844187ddbeac6dc6b7fc04d113bffd83a19595fe3915b3c64b14cc4560e98cb', | |
'd8c609ab6e4d74a5fd42391b2744e92d9a449fb109fe4f3b69a97d1f011fa1cd', | |
'da86e7ab66700ba5ac1865aa663c2ddf87c4ca03513db452b84eab8eb38c01c2', | |
'db9557c48ab7af59d17ae7b6eb53a3b9f89e4db0c8da3d0310d514f846ff6d3d', | |
'dcf5478bc4696f17e3007c67416837e0c5a3e575b5d9513b9c06d312f01c5375', | |
'debbb164fd09e2f9c0601bd18277a89e783a19aaaca44e017aaf5581b96918ce', | |
'df638058a705c735d721d2c7cb3bb99d1856d4a7a60885e20e868149243df275', | |
'df671d912f0664781ab4ebf22af9962eb3f5a32413f251033a9e7e3ef04f0f7b', | |
'dff365850c5612c18c6834d06d80680ebb2dda60b0df4abc21ae04610e9f476e', | |
'e02891477909cad48b5da92fd8694c7ec3362bdd8a7a8611a21b34f7a9c5b89a', | |
'e0e89aed9cdfd923e4ef84b74f2c33b393fa64b427816f52442a21e9e054ae2a', | |
'e3ebf1e5a53b3a780b942310689e07ccebf6fa4ac6bb4e33a15138f768fc10c3', | |
'e4a122d775e35f90fbe0169af99dc3f0e04a75230264a959c40e6e97a6276227', | |
'e95a2f10113fa05504b56fe52ccf1f00a6c95109f9268afbf44f9ebb7d0e24d6', | |
'e961a5f6479599ff9f8a73cb096ca9084ee574c29e05f529e792f1800c2f0989', | |
'e9e8a3b18f64e3860173dcf53e4bb59c268cfd697cbc2b5e95eb20dbb5a0fa4a', | |
'ea77167095e347416c18f63d84ff3ecc9833aa4bec37ac86a35d9928580a29e7', | |
'ee7a43fe9fcc5574e69c2ec505942f8ecb798e79656e530ab04dde3c840349cd', | |
'f03bccd5cade17989e1a8d94d0fdbafa6cadc7372daeb92d2f28054e6834c2c7', | |
'f4c39e5c3c435ccf7acc9e8cc5f14426494aae82c9d9b09e075de4087ad0521a', | |
'f65fae71c82627ce6bee960f3910171f52f735cf5acae6ccac75c2473bb2ad8d', | |
'fa0bbbe0bfe643bc55cd25b300f608fc8a58d72b69e2041abdc50231e82a40b1', | |
'faeb9ec2baaddf1bcd7a29140b94e49dbac5f833a98c558af7460aac1df64a36', | |
'feef1e75712eb61ddd5804443c2311c11a4b17d5d3d2d7f82baa9937ed33668d', | |
'ff3b944d96d76eb40dc02c4a3a14d4d2f68a120abc228671be8966dcd1fed35c', | |
] | |
get_tenderdash_transaction(tx_hashes) | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment