Skip to content

Instantly share code, notes, and snippets.

@youngkiu
Last active June 17, 2021 04:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save youngkiu/b5be55a195a330aba2e815edd508bf12 to your computer and use it in GitHub Desktop.
Save youngkiu/b5be55a195a330aba2e815edd508bf12 to your computer and use it in GitHub Desktop.
Retrieve all transactions of a specific address.
import requests
import json
def get_all_transactions(address):
query = '''
query($address: Address!) {
chainQuery {
transactionQuery{
signerTransactions: transactions(signer: $address) {
...transactionFields
}
involvedAddressTransactions: transactions(involvedAddress: $address) {
...transactionFields
}
}
}
}
fragment transactionFields on Transaction {
id
actions {
inspection
}
}
'''
variables = {'address': address}
response = requests.post('http://localhost:23061/graphql',
json={'query': query, 'variables': variables})
results = response.json()
if 'errors' in results:
print(f'address: {address} - errors:',
json.dumps(results['errors'], indent=2))
return None
transactions = \
results['data']['chainQuery']['transactionQuery']['signerTransactions'] + \
results['data']['chainQuery']['transactionQuery']['involvedAddressTransactions']
tx_ids = []
for transaction in transactions:
tx_id = transaction['id']
tx_ids.append(tx_id)
print('TxId', tx_id)
for action in transaction['actions']:
print('Action', action['inspection'])
return tx_ids
if __name__ == '__main__':
import time
from datetime import timedelta
_start = time.time()
_address = '0x66D8A5E165196310497b0fc1Efc10B65d8538563'
_tx_ids = get_all_transactions(_address)
print('\n'.join(_tx_ids))
_end = time.time()
_execution_time = _end - _start
print('Elapsed time:', timedelta(seconds=_execution_time))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment