parity-bridge-research/erc20/get_transaction.py

46 lines
1.0 KiB
Python
Executable File

#!/opt/anaconda3/bin/python
from web3.utils.datastructures import AttributeDict
import json
import hexbytes
from utils.getenv import BridgeEnv
from sys import argv, exit
b = BridgeEnv()
b.initEnv()
if len(argv[1:]) == 2:
if argv[1] in ["h", "f"]:
direction = argv[1]
else:
exit("Incorrect direction")
txHash = argv[2]
else:
exit("h/f for direction and transaction hash are expected")
if direction == "h":
web3 = b.connectionToHome()
else:
web3 = b.connectionToForeign()
class ReceiptEncoder(json.JSONEncoder):
def default(self, obj):
if type(obj) == hexbytes.HexBytes:
return obj.hex()
elif type(obj) == AttributeDict:
return dict(obj)
# Let the base class default method raise the TypeError
return json.JSONEncoder.default(self, obj)
if txHash[:2] != "0x":
txHash = "0x" + txHash
tx = web3.eth.getTransaction(txHash)
if tx:
print(json.dumps(dict(tx), cls=ReceiptEncoder, indent=2))
else:
exit("Transaction does not exist")
exit(0)